commit f607aca18fe617f4e07aebc655bd3548e6509920 Author: Terry Jia Date: Tue Aug 5 20:38:44 2025 -0400 init commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d80d714 --- /dev/null +++ b/.gitignore @@ -0,0 +1,36 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*.tsbuildinfo + +__pycache__ + +node.zip + +/js \ No newline at end of file diff --git a/ComfyUIOpenCut.py b/ComfyUIOpenCut.py new file mode 100644 index 0000000..4e36d60 --- /dev/null +++ b/ComfyUIOpenCut.py @@ -0,0 +1,29 @@ +class ComfyUIOpenCut: + def __init__(self): + pass + + @classmethod + def INPUT_TYPES(s): + return { + "required": { + }, + } + + RETURN_TYPES = () + + FUNCTION = "run" + + OUTPUT_NODE = True + + CATEGORY = "OpenCut" + + def run(self, **kwargs): + return None, + +NODE_CLASS_MAPPINGS = { + "ComfyUIOpenCut": ComfyUIOpenCut +} + +NODE_DISPLAY_NAME_MAPPINGS = { + "ComfyUIOpenCut": "OpenCut" +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e1cc641 --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +(WIP, many features are not implemented yet) + +# ComfyUI-OpenCut +This is a ComfyUI plugin that integrated OpenCut into ComfyUI, originally developed by [OpenCut](https://github.com/OpenCut-app/OpenCut) +![img.png](docs/img.png) + +## Installation +1. git clone this repository into your ComfyUI custom_nodes directory: + ```bash + git clone + +## How to access this: +### Method 1 +Access to http://127.0.0.1:8188/opencut/ directly in your browser, or +### Method 2: +(requires ComfyUI_frontend greater than 1.25.0) +open from the ComfyUI, click on the "OpenCut" button \ No newline at end of file diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..d48a59d --- /dev/null +++ b/__init__.py @@ -0,0 +1,100 @@ +from .ComfyUIOpenCut import NODE_CLASS_MAPPINGS +import os +import nodes +from aiohttp import web +import importlib +import execution +import logging +from pathlib import Path +import uuid +import json +import datetime + +js_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "js") + +nodes.EXTENSION_WEB_DIRS["ComfyUI-OpenCut"] = js_dir + +__all__ = ['NODE_CLASS_MAPPINGS'] + +from server import PromptServer + +routes = PromptServer.instance.routes + +@routes.get('/opencut') +async def serve_opencut_index(request): + opencut_path = Path(__file__).parent / 'opencut-ui' / 'index.html' + if opencut_path.exists(): + return web.FileResponse(opencut_path) + else: + return web.Response(text="OpenCut UI not found", status=404) + +@routes.get('/opencut/{path:.*}') +async def serve_opencut_static(request): + path = request.match_info.get('path', '') + + if '..' in path or path.startswith('/'): + return web.Response(text="Invalid path", status=400) + + opencut_path = Path(__file__).parent / 'opencut-ui' / path + + if opencut_path.is_dir(): + index_path = opencut_path / 'index.html' + if index_path.exists(): + return web.FileResponse(index_path) + + if opencut_path.exists() and opencut_path.is_file(): + return web.FileResponse(opencut_path) + + if path.startswith('editor/') and '/' in path[7:]: + editor_html_path = opencut_path.with_suffix('.html') + if editor_html_path.exists() and editor_html_path.is_file(): + return web.FileResponse(editor_html_path) + + static_extensions = ['.js', '.css', '.png', '.jpg', '.jpeg', '.gif', '.ico', '.txt', '.map', '.woff', '.woff2', '.ttf', '.svg', '.json', '.webp'] + + is_route = not any(path.endswith(ext) for ext in static_extensions) and not path.endswith('.html') + + if is_route: + index_path = Path(__file__).parent / 'opencut-ui' / 'index.html' + if index_path.exists(): + return web.FileResponse(index_path, headers={ + 'Cache-Control': 'no-cache, no-store, must-revalidate', + 'Pragma': 'no-cache', + 'Expires': '0' + }) + + return web.Response(text="File not found", status=404) + +@routes.post('/opencut/api/projects') +async def create_project(request): + try: + data = await request.json() + project_id = str(uuid.uuid4()) + project = { + 'id': project_id, + 'name': data.get('name', 'Untitled Project'), + 'createdAt': datetime.datetime.now().isoformat(), + 'updatedAt': datetime.datetime.now().isoformat() + } + return web.json_response(project) + except Exception as e: + return web.json_response({'error': str(e)}, status=500) + +@routes.get('/opencut/api/projects/{project_id}') +async def get_project(request): + project_id = request.match_info['project_id'] + project = { + 'id': project_id, + 'name': 'Sample Project', + 'createdAt': datetime.datetime.now().isoformat(), + 'updatedAt': datetime.datetime.now().isoformat() + } + return web.json_response(project) + +@routes.put('/opencut/api/projects/{project_id}') +async def update_project(request): + project_id = request.match_info['project_id'] + try: + return web.json_response({'id': project_id, 'updated': True}) + except Exception as e: + return web.json_response({'error': str(e)}, status=500) \ No newline at end of file diff --git a/docs/img.png b/docs/img.png new file mode 100644 index 0000000..040dcd1 Binary files /dev/null and b/docs/img.png differ diff --git a/opencut-ui/404.html b/opencut-ui/404.html new file mode 100644 index 0000000..1f61d76 --- /dev/null +++ b/opencut-ui/404.html @@ -0,0 +1 @@ +404: This page could not be found.OpenCut

404

This page could not be found.

\ No newline at end of file diff --git a/opencut-ui/404/index.html b/opencut-ui/404/index.html new file mode 100644 index 0000000..1f61d76 --- /dev/null +++ b/opencut-ui/404/index.html @@ -0,0 +1 @@ +404: This page could not be found.OpenCut

404

This page could not be found.

\ No newline at end of file diff --git a/opencut-ui/_next/static/NYw2VZ10H0VP4lgWq7rVJ/_buildManifest.js b/opencut-ui/_next/static/NYw2VZ10H0VP4lgWq7rVJ/_buildManifest.js new file mode 100644 index 0000000..9c6dd57 --- /dev/null +++ b/opencut-ui/_next/static/NYw2VZ10H0VP4lgWq7rVJ/_buildManifest.js @@ -0,0 +1 @@ +self.__BUILD_MANIFEST=function(e,r,t,_){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:12,errorRate:1e-4,numBits:231,numHashes:14,bitArray:[1,1,e,0,e,0,r,r,r,r,r,e,r,r,e,r,e,r,e,e,r,r,r,e,e,e,e,e,r,r,e,e,r,e,r,e,e,e,r,r,r,r,e,r,e,r,e,r,r,e,e,e,e,r,e,r,e,r,r,r,e,r,e,e,r,e,e,e,e,e,e,e,e,e,r,r,e,e,e,r,r,r,e,e,e,e,e,r,r,e,r,r,r,e,r,e,r,e,r,r,r,e,r,r,e,r,e,r,r,r,e,e,r,e,e,r,r,r,e,e,e,e,e,r,e,e,r,r,e,e,r,e,e,e,e,e,e,e,e,e,r,r,r,r,e,e,e,e,r,e,e,r,e,r,r,e,r,r,r,r,e,e,r,e,e,e,r,e,r,e,e,e,e,r,e,e,e,e,e,e,e,r,r,e,r,r,r,r,e,e,r,r,e,r,e,e,r,e,e,e,r,e,r,r,e,r,r,r,r,e,r,e,r,e,r,r,e,r,r,r,e,r,r,r,r,r,r,e,e,r,r]},__routerFilterDynamic:{numItems:2,errorRate:1e-4,numBits:39,numHashes:14,bitArray:[r,e,r,r,r,e,r,e,r,e,r,e,e,r,e,e,e,r,e,r,r,r,e,e,r,e,r,r,e,r,e,e,r,e,e,r,e,r,e]},"/_error":["static/chunks/pages/_error-0bd26428e1130965.js"],sortedPages:["/_app","/_error"]}}(1,0,1e-4,14),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file diff --git a/opencut-ui/_next/static/NYw2VZ10H0VP4lgWq7rVJ/_ssgManifest.js b/opencut-ui/_next/static/NYw2VZ10H0VP4lgWq7rVJ/_ssgManifest.js new file mode 100644 index 0000000..91c6062 --- /dev/null +++ b/opencut-ui/_next/static/NYw2VZ10H0VP4lgWq7rVJ/_ssgManifest.js @@ -0,0 +1 @@ +self.__SSG_MANIFEST=new Set(["\u002Fblog\u002F[slug]","\u002Feditor\u002F[project_id]"]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB() \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/119-c7862c480bb99d0c.js b/opencut-ui/_next/static/chunks/119-c7862c480bb99d0c.js new file mode 100644 index 0000000..83d8743 --- /dev/null +++ b/opencut-ui/_next/static/chunks/119-c7862c480bb99d0c.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[119],{3532:(e,t,a)=>{a.d(t,{J:()=>r});let r="/opencut"},10952:(e,t,a)=>{a.d(t,{F:()=>n});var r=a(28064),s=a(74188),o=a(93146);let n=s.forwardRef((e,t)=>{let{className:a,children:s,...n}=e;return(0,r.jsx)("div",{ref:t,className:(0,o.cn)("overflow-auto scrollbar-thin",a),...n,children:s})});n.displayName="ScrollArea"},44775:(e,t,a)=>{a.d(t,{U:()=>i});var r=a(28064),s=a(61309),o=a(66981),n=a(84843),l=a(74188);function i(e){let{isOpen:t,onOpenChange:a,onConfirm:i,projectName:d}=e,[c,p]=(0,l.useState)(d);return(0,r.jsx)(o.lG,{open:t,onOpenChange:e=>{e&&p(d),a(e)},children:(0,r.jsxs)(o.Cf,{children:[(0,r.jsxs)(o.c7,{children:[(0,r.jsx)(o.L3,{children:"Rename Project"}),(0,r.jsx)(o.rr,{children:"Enter a new name for your project."})]}),(0,r.jsx)(n.p,{value:c,onChange:e=>p(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),i(c))},placeholder:"Enter a new name",className:"mt-4 bg-background/50"}),(0,r.jsxs)(o.Es,{children:[(0,r.jsx)(s.$,{variant:"outline",onClick:e=>{e.preventDefault(),e.stopPropagation(),a(!1)},children:"Cancel"}),(0,r.jsx)(s.$,{onClick:()=>i(c),children:"Rename"})]})]})})}},52801:(e,t,a)=>{a.d(t,{bq:()=>m,eb:()=>y,gC:()=>g,l6:()=>p,yv:()=>u});var r=a(28064),s=a(74188),o=a(89188),n=a(90320),l=a(44585),i=a(58090),d=a(24827),c=a(93146);let p=o.Root;o.Group;let u=o.Value,f=(0,d.F)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-hidden transition-opacity data-disabled:pointer-events-none data-disabled:opacity-50",{variants:{variant:{default:"focus:opacity-65 focus:text-accent-foreground",destructive:"text-destructive focus:text-destructive/80"}},defaultVariants:{variant:"default"}}),m=s.forwardRef((e,t)=>{let{className:a,children:s,...l}=e;return(0,r.jsxs)(o.Trigger,{ref:t,className:(0,c.cn)("flex gap-1 h-7 cursor-pointer w-auto items-center justify-between whitespace-nowrap rounded-md bg-accent px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-hidden focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",a),...l,children:[s,(0,r.jsx)(o.Icon,{asChild:!0,children:(0,r.jsx)(n.A,{className:"size-3 opacity-50"})})]})});m.displayName=o.Trigger.displayName;let x=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.ScrollUpButton,{ref:t,className:(0,c.cn)("flex cursor-default items-center justify-center py-1",a),...s,children:(0,r.jsx)(l.A,{className:"h-4 w-4"})})});x.displayName=o.ScrollUpButton.displayName;let h=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.ScrollDownButton,{ref:t,className:(0,c.cn)("flex cursor-default items-center justify-center py-1",a),...s,children:(0,r.jsx)(n.A,{className:"h-4 w-4"})})});h.displayName=o.ScrollDownButton.displayName;let g=s.forwardRef((e,t)=>{let{className:a,children:s,position:n="popper",...l}=e;return(0,r.jsx)(o.Portal,{children:(0,r.jsxs)(o.Content,{ref:t,className:(0,c.cn)("relative z-50 max-h-96 min-w-32 overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===n&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",a),position:n,onCloseAutoFocus:e=>{e.preventDefault(),e.stopPropagation()},...l,children:[(0,r.jsx)(x,{}),(0,r.jsx)(o.Viewport,{className:(0,c.cn)("p-1","popper"===n&&"h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width)"),children:s}),(0,r.jsx)(h,{})]})})});g.displayName=o.Content.displayName,s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.Label,{ref:t,className:(0,c.cn)("px-2 py-1.5 text-sm font-semibold",a),...s})}).displayName=o.Label.displayName;let y=s.forwardRef((e,t)=>{let{className:a,children:s,variant:n="default",...l}=e;return(0,r.jsxs)(o.Item,{ref:t,className:(0,c.cn)(f({variant:n}),a),...l,children:[(0,r.jsx)("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,r.jsx)(o.ItemIndicator,{children:(0,r.jsx)(i.A,{className:"h-4 w-4"})})}),(0,r.jsx)(o.ItemText,{children:s})]})});y.displayName=o.Item.displayName,s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.Separator,{ref:t,className:(0,c.cn)("-mx-1 my-1 h-px bg-foreground/10",a),...s})}).displayName=o.Separator.displayName},54678:(e,t,a)=>{a.d(t,{SQ:()=>m,_2:()=>x,hO:()=>h,mB:()=>g,rI:()=>p,ty:()=>u});var r=a(28064),s=a(74188),o=a(70554),n=a(37770),l=a(58090),i=a(57118),d=a(24827),c=a(93146);let p=o.Root,u=o.Trigger;o.Group,o.Portal,o.Sub,o.RadioGroup;let f=(0,d.F)("relative flex cursor-pointer select-none items-center gap-2 px-2 py-1.5 text-sm outline-hidden transition-opacity data-disabled:pointer-events-none data-disabled:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"focus:opacity-65 focus:text-accent-foreground",destructive:"text-destructive focus:text-destructive/80"}},defaultVariants:{variant:"default"}});s.forwardRef((e,t)=>{let{className:a,inset:s,children:l,variant:i="default",...d}=e;return(0,r.jsxs)(o.SubTrigger,{ref:t,className:(0,c.cn)(f({variant:i}),"data-[state=open]:bg-accent data-[state=open]:opacity-65",s&&"pl-8",a),...d,children:[l,(0,r.jsx)(n.A,{className:"ml-auto"})]})}).displayName=o.SubTrigger.displayName,s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.SubContent,{ref:t,className:(0,c.cn)("z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...s})}).displayName=o.SubContent.displayName;let m=s.forwardRef((e,t)=>{let{className:a,sideOffset:s=4,...n}=e;return(0,r.jsx)(o.Portal,{children:(0,r.jsx)(o.Content,{ref:t,sideOffset:s,onCloseAutoFocus:e=>{e.stopPropagation(),e.preventDefault()},className:(0,c.cn)("z-50 min-w-32 overflow-hidden rounded-md border p-1 bg-popover text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...n})})});m.displayName=o.Content.displayName;let x=s.forwardRef((e,t)=>{let{className:a,inset:s,variant:n="default",...l}=e;return(0,r.jsx)(o.Item,{ref:t,className:(0,c.cn)(f({variant:n}),s&&"pl-8",a),...l})});x.displayName=o.Item.displayName;let h=s.forwardRef((e,t)=>{let{className:a,children:s,checked:n,variant:i="default",...d}=e;return(0,r.jsxs)(o.CheckboxItem,{ref:t,className:(0,c.cn)(f({variant:i}),"pl-2 pr-8",a),checked:n,onSelect:e=>{e.preventDefault()},...d,children:[s,(0,r.jsx)("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,r.jsx)(o.ItemIndicator,{children:(0,r.jsx)(l.A,{className:"h-4 w-4"})})})]})});h.displayName=o.CheckboxItem.displayName,s.forwardRef((e,t)=>{let{className:a,children:s,variant:n="default",...l}=e;return(0,r.jsxs)(o.RadioItem,{ref:t,className:(0,c.cn)(f({variant:n}),"pl-8 pr-2",a),...l,children:[(0,r.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,r.jsx)(o.ItemIndicator,{children:(0,r.jsx)(i.A,{className:"h-2 w-2 fill-current"})})}),s]})}).displayName=o.RadioItem.displayName,s.forwardRef((e,t)=>{let{className:a,inset:s,...n}=e;return(0,r.jsx)(o.Label,{ref:t,className:(0,c.cn)("px-2 py-1.5 text-sm font-semibold",s&&"pl-8",a),...n})}).displayName=o.Label.displayName;let g=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.Separator,{ref:t,className:(0,c.cn)("-mx-1 my-1 h-px bg-foreground/10",a),...s})});g.displayName=o.Separator.displayName},61309:(e,t,a)=>{a.d(t,{$:()=>d});var r=a(28064),s=a(74188),o=a(8059),n=a(24827),l=a(93146);let i=(0,n.F)("inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-foreground text-background shadow-sm hover:bg-foreground/90",primary:"bg-primary text-primary-foreground shadow-sm hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90",outline:"border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",text:"bg-transparent p-0 rounded-none opacity-100 hover:opacity-50 transition-opacity",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-sm px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-7 w-7"}},defaultVariants:{variant:"default",size:"default"}}),d=s.forwardRef((e,t)=>{let{className:a,variant:s,size:n,asChild:d=!1,...c}=e,p=d?o.DX:"button";return(0,r.jsx)(p,{className:(0,l.cn)(i({variant:s,size:n,className:a})),ref:t,...c})});d.displayName="Button"},66981:(e,t,a)=>{a.d(t,{Cf:()=>f,Es:()=>x,L3:()=>h,c7:()=>m,lG:()=>d,rr:()=>g,zM:()=>c});var r=a(28064),s=a(74188),o=a(68522),n=a(45186),l=a(93146),i=a(10952);let d=o.Root,c=o.Trigger,p=o.Portal;o.Close;let u=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.Overlay,{ref:t,className:(0,l.cn)("fixed inset-0 z-100 bg-black/20 backdrop-blur-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...s})});u.displayName=o.Overlay.displayName;let f=s.forwardRef((e,t)=>{let{className:a,children:s,...d}=e;return(0,r.jsxs)(p,{children:[(0,r.jsx)(u,{}),(0,r.jsxs)(o.Content,{ref:t,className:(0,l.cn)("fixed left-[50%] top-[50%] z-150 grid w-[calc(100%-2rem)] max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-popover shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 rounded-lg",a),onCloseAutoFocus:e=>{e.stopPropagation(),e.preventDefault()},onOpenAutoFocus:e=>{e.stopPropagation(),e.preventDefault()},...d,children:[(0,r.jsx)(i.F,{className:"max-h-[75vh]",children:(0,r.jsx)("div",{className:"p-6 space-y-4",children:s})}),(0,r.jsxs)(o.Close,{className:"absolute right-4 top-4 opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,r.jsx)(n.A,{className:"h-4 w-4"}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});f.displayName=o.Content.displayName;let m=e=>{let{className:t,...a}=e;return(0,r.jsx)("div",{className:(0,l.cn)("flex flex-col space-y-2 text-center sm:text-left",t),...a})};m.displayName="DialogHeader";let x=e=>{let{className:t,...a}=e;return(0,r.jsx)("div",{className:(0,l.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...a})};x.displayName="DialogFooter";let h=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.Title,{ref:t,className:(0,l.cn)("text-lg font-semibold leading-none tracking-tight",a),...s})});h.displayName=o.Title.displayName;let g=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.Description,{ref:t,className:(0,l.cn)("text-sm text-muted-foreground",a),...s})});g.displayName=o.Description.displayName},84843:(e,t,a)=>{a.d(t,{p:()=>c});var r=a(28064),s=a(74188),o=a(45186),n=a(16224),l=a(61275),i=a(93146),d=a(61309);let c=s.forwardRef((e,t)=>{let{className:a,type:c,containerClassName:p,showPassword:u,onShowPasswordChange:f,showClearIcon:m,onClear:x,value:h,onFocus:g,onBlur:y,...b}=e,[v,N]=s.useState(!1),j="password"===c,w=j&&f,C=m&&x&&h&&String(h).length>0&&v,R=j&&u?"text":c,k=w||C,z=Number(w)+Number(C);return(0,r.jsxs)("div",{className:(0,i.cn)(k?"relative w-full":"",p),children:[(0,r.jsx)("input",{type:R,className:(0,i.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[2px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",2===z?"pr-20":1===z?"pr-10":"",a),ref:t,value:h,onFocus:e=>{N(!0),null==g||g(e)},onBlur:e=>{N(!1),null==y||y(e)},...b}),C&&(0,r.jsx)(d.$,{type:"button",variant:"text",size:"icon",onMouseDown:e=>{e.preventDefault(),null==x||x()},className:"absolute right-0 top-0 h-full px-3 text-muted-foreground !opacity-100","aria-label":"Clear input",children:(0,r.jsx)(o.A,{className:"!size-[0.85]"})}),w&&(0,r.jsx)(d.$,{type:"button",variant:"text",size:"icon",onClick:()=>null==f?void 0:f(!u),className:(0,i.cn)("absolute top-0 h-full px-3 text-muted-foreground hover:text-foreground",C?"right-10":"right-0"),"aria-label":u?"Hide password":"Show password",children:u?(0,r.jsx)(n.A,{className:"h-4 w-4"}):(0,r.jsx)(l.A,{className:"h-4 w-4"})})]})});c.displayName="Input"},93442:(e,t,a)=>{a.d(t,{B:()=>n});var r=a(28064),s=a(61309),o=a(66981);function n(e){let{isOpen:t,onOpenChange:a,onConfirm:n,projectName:l}=e;return(0,r.jsx)(o.lG,{open:t,onOpenChange:a,children:(0,r.jsxs)(o.Cf,{onOpenAutoFocus:e=>{e.preventDefault(),e.stopPropagation()},children:[(0,r.jsxs)(o.c7,{children:[(0,r.jsx)(o.L3,{children:l?(0,r.jsxs)(r.Fragment,{children:["Delete '",(0,r.jsx)("span",{className:"inline-block max-w-[300px] truncate align-bottom",children:l}),"'?"]}):"Delete Project?"}),(0,r.jsx)(o.rr,{children:"Are you sure you want to delete this project? This action cannot be undone."})]}),(0,r.jsxs)(o.Es,{children:[(0,r.jsx)(s.$,{variant:"text",onClick:e=>{e.preventDefault(),e.stopPropagation(),a(!1)},children:"Cancel"}),(0,r.jsx)(s.$,{variant:"destructive",onClick:n,children:"Delete"})]})]})})}},97215:(e,t,a)=>{a.d(t,{C1:()=>s,vv:()=>o});var r=a(3532);function s(e){let t=e?"".concat(r.J,"/editor?project=").concat(encodeURIComponent(e)):"".concat(r.J,"/editor");window.location.href=t}function o(){window.location.href="".concat(r.J,"/projects")}}}]); +//# sourceMappingURL=119-c7862c480bb99d0c.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/119-c7862c480bb99d0c.js.map b/opencut-ui/_next/static/chunks/119-c7862c480bb99d0c.js.map new file mode 100644 index 0000000..639901e --- /dev/null +++ b/opencut-ui/_next/static/chunks/119-c7862c480bb99d0c.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/119-c7862c480bb99d0c.js","mappings":"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","sources":["webpack://_N_E/./src/lib/base-path.ts","webpack://_N_E/./src/components/ui/scroll-area.tsx","webpack://_N_E/./src/components/rename-project-dialog.tsx","webpack://_N_E/./src/components/ui/select.tsx","webpack://_N_E/./src/components/ui/dropdown-menu.tsx","webpack://_N_E/./src/components/ui/button.tsx","webpack://_N_E/./src/components/ui/dialog.tsx","webpack://_N_E/./src/components/ui/input.tsx","webpack://_N_E/./src/components/delete-project-dialog.tsx","webpack://_N_E/./src/lib/navigation.ts"],"sourcesContent":["// Helper to get the correct path with basePath for static export\r\nexport const basePath = \"/opencut\";\r\n\r\nexport function withBasePath(path: string): string {\r\n if (path.startsWith(\"/\")) {\r\n return `${basePath}${path}`;\r\n }\r\n return `${basePath}/${path}`;\r\n}","import * as React from \"react\";\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst ScrollArea = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes\r\n>(({ className, children, ...props }, ref) => (\r\n \r\n {children}\r\n \r\n));\r\nScrollArea.displayName = \"ScrollArea\";\r\n\r\nexport { ScrollArea };\r\n","import { Button } from \"@/components/ui/button\";\r\nimport {\r\n Dialog,\r\n DialogContent,\r\n DialogDescription,\r\n DialogFooter,\r\n DialogHeader,\r\n DialogTitle,\r\n} from \"@/components/ui/dialog\";\r\nimport { Input } from \"@/components/ui/input\";\r\nimport { useState } from \"react\";\r\n\r\nexport function RenameProjectDialog({\r\n isOpen,\r\n onOpenChange,\r\n onConfirm,\r\n projectName,\r\n}: {\r\n isOpen: boolean;\r\n onOpenChange: (open: boolean) => void;\r\n onConfirm: (name: string) => void;\r\n projectName: string;\r\n}) {\r\n const [name, setName] = useState(projectName);\r\n\r\n // Reset the name when dialog opens - this is better UX than syncing with every prop change\r\n const handleOpenChange = (open: boolean) => {\r\n if (open) {\r\n setName(projectName);\r\n }\r\n onOpenChange(open);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n Rename Project\r\n \r\n Enter a new name for your project.\r\n \r\n \r\n\r\n setName(e.target.value)}\r\n onKeyDown={(e) => {\r\n if (e.key === \"Enter\") {\r\n e.preventDefault();\r\n onConfirm(name);\r\n }\r\n }}\r\n placeholder=\"Enter a new name\"\r\n className=\"mt-4 bg-background/50\"\r\n />\r\n\r\n \r\n {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n onOpenChange(false);\r\n }}\r\n >\r\n Cancel\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { Select as SelectPrimitive } from \"radix-ui\";\r\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst Select = SelectPrimitive.Root;\r\n\r\nconst SelectGroup = SelectPrimitive.Group;\r\n\r\nconst SelectValue = SelectPrimitive.Value;\r\n\r\nconst selectItemVariants = cva(\r\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-hidden transition-opacity data-disabled:pointer-events-none data-disabled:opacity-50\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"focus:opacity-65 focus:text-accent-foreground\",\r\n destructive: \"text-destructive focus:text-destructive/80\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n },\r\n }\r\n);\r\n\r\nconst SelectTrigger = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef\r\n>(({ className, children, ...props }, ref) => (\r\n span]:line-clamp-1\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n \r\n \r\n \r\n \r\n));\r\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\r\n\r\nconst SelectScrollUpButton = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef\r\n>(({ className, ...props }, ref) => (\r\n \r\n \r\n \r\n));\r\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\r\n\r\nconst SelectScrollDownButton = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef\r\n>(({ className, ...props }, ref) => (\r\n \r\n \r\n \r\n));\r\nSelectScrollDownButton.displayName =\r\n SelectPrimitive.ScrollDownButton.displayName;\r\n\r\nconst SelectContent = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef\r\n>(({ className, children, position = \"popper\", ...props }, ref) => (\r\n \r\n {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }}\r\n {...props}\r\n >\r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n));\r\nSelectContent.displayName = SelectPrimitive.Content.displayName;\r\n\r\nconst SelectLabel = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef\r\n>(({ className, ...props }, ref) => (\r\n \r\n));\r\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\r\n\r\nconst SelectItem = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef & {\r\n variant?: VariantProps[\"variant\"];\r\n }\r\n>(({ className, children, variant = \"default\", ...props }, ref) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n));\r\nSelectItem.displayName = SelectPrimitive.Item.displayName;\r\n\r\nconst SelectSeparator = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef\r\n>(({ className, ...props }, ref) => (\r\n \r\n));\r\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\r\n\r\nexport {\r\n Select,\r\n SelectGroup,\r\n SelectValue,\r\n SelectTrigger,\r\n SelectContent,\r\n SelectLabel,\r\n SelectItem,\r\n SelectSeparator,\r\n SelectScrollUpButton,\r\n SelectScrollDownButton,\r\n};\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\";\r\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst DropdownMenu = DropdownMenuPrimitive.Root;\r\n\r\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\r\n\r\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\r\n\r\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\r\n\r\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\r\n\r\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\r\n\r\nconst dropdownMenuItemVariants = cva(\r\n \"relative flex cursor-pointer select-none items-center gap-2 px-2 py-1.5 text-sm outline-hidden transition-opacity data-disabled:pointer-events-none data-disabled:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"focus:opacity-65 focus:text-accent-foreground\",\r\n destructive: \"text-destructive focus:text-destructive/80\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n },\r\n }\r\n);\r\n\r\nconst DropdownMenuSubTrigger = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef & {\r\n inset?: boolean;\r\n variant?: VariantProps[\"variant\"];\r\n }\r\n>(({ className, inset, children, variant = \"default\", ...props }, ref) => (\r\n \r\n {children}\r\n \r\n \r\n));\r\nDropdownMenuSubTrigger.displayName =\r\n DropdownMenuPrimitive.SubTrigger.displayName;\r\n\r\nconst DropdownMenuSubContent = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef\r\n>(({ className, ...props }, ref) => (\r\n \r\n));\r\nDropdownMenuSubContent.displayName =\r\n DropdownMenuPrimitive.SubContent.displayName;\r\n\r\nconst DropdownMenuContent = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef\r\n>(({ className, sideOffset = 4, ...props }, ref) => (\r\n \r\n {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }}\r\n className={cn(\r\n \"z-50 min-w-32 overflow-hidden rounded-md border p-1 bg-popover text-popover-foreground shadow-md\",\r\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n \r\n));\r\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\r\n\r\nconst DropdownMenuItem = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef & {\r\n inset?: boolean;\r\n variant?: VariantProps[\"variant\"];\r\n }\r\n>(({ className, inset, variant = \"default\", ...props }, ref) => (\r\n \r\n));\r\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\r\n\r\nconst DropdownMenuCheckboxItem = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef & {\r\n variant?: VariantProps[\"variant\"];\r\n }\r\n>(({ className, children, checked, variant = \"default\", ...props }, ref) => (\r\n {\r\n e.preventDefault();\r\n }}\r\n {...props}\r\n >\r\n {children}\r\n \r\n \r\n \r\n \r\n \r\n \r\n));\r\n\r\nDropdownMenuCheckboxItem.displayName =\r\n DropdownMenuPrimitive.CheckboxItem.displayName;\r\n\r\nconst DropdownMenuRadioItem = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef & {\r\n variant?: VariantProps[\"variant\"];\r\n }\r\n>(({ className, children, variant = \"default\", ...props }, ref) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n));\r\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\r\n\r\nconst DropdownMenuLabel = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef & {\r\n inset?: boolean;\r\n }\r\n>(({ className, inset, ...props }, ref) => (\r\n \r\n));\r\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\r\n\r\nconst DropdownMenuSeparator = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef\r\n>(({ className, ...props }, ref) => (\r\n \r\n));\r\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\r\n\r\nconst DropdownMenuShortcut = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes) => {\r\n return (\r\n \r\n );\r\n};\r\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\r\n\r\nexport {\r\n DropdownMenu,\r\n DropdownMenuTrigger,\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n DropdownMenuCheckboxItem,\r\n DropdownMenuRadioItem,\r\n DropdownMenuLabel,\r\n DropdownMenuSeparator,\r\n DropdownMenuShortcut,\r\n DropdownMenuGroup,\r\n DropdownMenuPortal,\r\n DropdownMenuSub,\r\n DropdownMenuSubContent,\r\n DropdownMenuSubTrigger,\r\n DropdownMenuRadioGroup,\r\n};\r\n","import * as React from \"react\";\r\nimport { Slot as SlotPrimitive } from \"radix-ui\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst buttonVariants = cva(\r\n \"inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\r\n {\r\n variants: {\r\n variant: {\r\n default:\r\n \"bg-foreground text-background shadow-sm hover:bg-foreground/90\",\r\n primary:\r\n \"bg-primary text-primary-foreground shadow-sm hover:bg-primary/90\",\r\n destructive:\r\n \"bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90\",\r\n outline:\r\n \"border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground\",\r\n secondary:\r\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\r\n text: \"bg-transparent p-0 rounded-none opacity-100 hover:opacity-50 transition-opacity\", // Instead of ghost (matches app better)\r\n link: \"text-primary underline-offset-4 hover:underline\",\r\n },\r\n size: {\r\n default: \"h-9 px-4 py-2\",\r\n sm: \"h-8 rounded-sm px-3 text-xs\",\r\n lg: \"h-10 rounded-md px-8\",\r\n icon: \"h-7 w-7\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n }\r\n);\r\n\r\nexport interface ButtonProps\r\n extends React.ButtonHTMLAttributes,\r\n VariantProps {\r\n asChild?: boolean;\r\n}\r\n\r\nconst Button = React.forwardRef(\r\n ({ className, variant, size, asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? SlotPrimitive.Slot : \"button\";\r\n return (\r\n \r\n );\r\n }\r\n);\r\nButton.displayName = \"Button\";\r\n\r\nexport { Button, buttonVariants };\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { Dialog as DialogPrimitive } from \"radix-ui\";\r\nimport { X } from \"lucide-react\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\nimport { ScrollArea } from \"./scroll-area\";\r\n\r\nconst Dialog = DialogPrimitive.Root;\r\n\r\nconst DialogTrigger = DialogPrimitive.Trigger;\r\n\r\nconst DialogPortal = DialogPrimitive.Portal;\r\n\r\nconst DialogClose = DialogPrimitive.Close;\r\n\r\nconst DialogOverlay = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef\r\n>(({ className, ...props }, ref) => (\r\n \r\n));\r\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\r\n\r\nconst DialogContent = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef\r\n>(({ className, children, ...props }, ref) => (\r\n \r\n \r\n {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }}\r\n onOpenAutoFocus={(e) => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }}\r\n {...props}\r\n >\r\n \r\n
{children}
\r\n
\r\n \r\n \r\n Close\r\n \r\n \r\n
\r\n));\r\nDialogContent.displayName = DialogPrimitive.Content.displayName;\r\n\r\nconst DialogHeader = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes) => (\r\n \r\n);\r\nDialogHeader.displayName = \"DialogHeader\";\r\n\r\nconst DialogFooter = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes) => (\r\n \r\n);\r\nDialogFooter.displayName = \"DialogFooter\";\r\n\r\nconst DialogTitle = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef\r\n>(({ className, ...props }, ref) => (\r\n \r\n));\r\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\r\n\r\nconst DialogDescription = React.forwardRef<\r\n React.ElementRef,\r\n React.ComponentPropsWithoutRef\r\n>(({ className, ...props }, ref) => (\r\n \r\n));\r\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\r\n\r\nexport {\r\n Dialog,\r\n DialogPortal,\r\n DialogOverlay,\r\n DialogTrigger,\r\n DialogClose,\r\n DialogContent,\r\n DialogHeader,\r\n DialogFooter,\r\n DialogTitle,\r\n DialogDescription,\r\n};\r\n","import * as React from \"react\";\r\nimport { Eye, EyeOff, X } from \"lucide-react\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\nimport { Button } from \"./button\";\r\n\r\ninterface InputProps extends React.ComponentProps<\"input\"> {\r\n showPassword?: boolean;\r\n onShowPasswordChange?: (show: boolean) => void;\r\n showClearIcon?: boolean;\r\n onClear?: () => void;\r\n containerClassName?: string;\r\n}\r\n\r\nconst Input = React.forwardRef(\r\n (\r\n {\r\n className,\r\n type,\r\n containerClassName,\r\n showPassword,\r\n onShowPasswordChange,\r\n showClearIcon,\r\n onClear,\r\n value,\r\n onFocus,\r\n onBlur,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const [isFocused, setIsFocused] = React.useState(false);\r\n\r\n const isPassword = type === \"password\";\r\n const showPasswordToggle = isPassword && onShowPasswordChange;\r\n const showClear =\r\n showClearIcon &&\r\n onClear &&\r\n value &&\r\n String(value).length > 0 &&\r\n isFocused;\r\n const inputType = isPassword && showPassword ? \"text\" : type;\r\n\r\n const hasIcons = showPasswordToggle || showClear;\r\n const iconCount = Number(showPasswordToggle) + Number(showClear);\r\n const paddingRight =\r\n iconCount === 2 ? \"pr-20\" : iconCount === 1 ? \"pr-10\" : \"\";\r\n\r\n return (\r\n
\r\n {\r\n setIsFocused(true);\r\n onFocus?.(e);\r\n }}\r\n onBlur={(e) => {\r\n setIsFocused(false);\r\n onBlur?.(e);\r\n }}\r\n {...props}\r\n />\r\n {showClear && (\r\n {\r\n e.preventDefault();\r\n onClear?.();\r\n }}\r\n className=\"absolute right-0 top-0 h-full px-3 text-muted-foreground !opacity-100\"\r\n aria-label=\"Clear input\"\r\n >\r\n \r\n \r\n )}\r\n {showPasswordToggle && (\r\n onShowPasswordChange?.(!showPassword)}\r\n className={cn(\r\n \"absolute top-0 h-full px-3 text-muted-foreground hover:text-foreground\",\r\n showClear ? \"right-10\" : \"right-0\"\r\n )}\r\n aria-label={showPassword ? \"Hide password\" : \"Show password\"}\r\n >\r\n {showPassword ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n
\r\n );\r\n }\r\n);\r\nInput.displayName = \"Input\";\r\n\r\nexport { Input };\r\n","import { Button } from \"@/components/ui/button\";\r\nimport {\r\n Dialog,\r\n DialogContent,\r\n DialogDescription,\r\n DialogFooter,\r\n DialogHeader,\r\n DialogTitle,\r\n} from \"@/components/ui/dialog\";\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nexport function DeleteProjectDialog({\r\n isOpen,\r\n onOpenChange,\r\n onConfirm,\r\n projectName,\r\n}: {\r\n isOpen: boolean;\r\n onOpenChange: (open: boolean) => void;\r\n onConfirm: () => void;\r\n projectName?: string;\r\n}) {\r\n return (\r\n \r\n {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }}\r\n >\r\n \r\n \r\n {projectName ? (\r\n <>\r\n {\"Delete '\"}\r\n \r\n {projectName}\r\n \r\n {\"'?\"}\r\n \r\n ) : (\r\n \"Delete Project?\"\r\n )}\r\n \r\n \r\n Are you sure you want to delete this project? This action cannot be\r\n undone.\r\n \r\n \r\n \r\n {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n onOpenChange(false);\r\n }}\r\n >\r\n Cancel\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","// Navigation helpers for query-based routing\r\nimport { basePath } from './base-path';\r\n\r\nexport function navigateToEditor(projectId?: string) {\r\n const url = projectId \r\n ? `${basePath}/editor?project=${encodeURIComponent(projectId)}`\r\n : `${basePath}/editor`;\r\n window.location.href = url;\r\n}\r\n\r\nexport function navigateToProjects() {\r\n window.location.href = `${basePath}/projects`;\r\n}\r\n\r\nexport function navigateToHome() {\r\n window.location.href = basePath || '/';\r\n}\r\n\r\n// Helper to build editor URL with project ID\r\nexport function getEditorUrl(projectId: string): string {\r\n return `${basePath}/editor?project=${encodeURIComponent(projectId)}`;\r\n}\r\n\r\n// Helper to build projects URL\r\nexport function getProjectsUrl(): string {\r\n return `${basePath}/projects`;\r\n}"],"names":["basePath","ScrollArea","React","ref","className","children","props","div","cn","displayName","RenameProjectDialog","isOpen","onOpenChange","onConfirm","projectName","name","setName","useState","Dialog","open","handleOpenChange","DialogContent","DialogHeader","DialogTitle","DialogDescription","Input","value","onChange","e","target","onKeyDown","key","preventDefault","placeholder","DialogFooter","Button","variant","onClick","stopPropagation","Select","SelectPrimitive","SelectValue","selectItemVariants","cva","variants","default","destructive","defaultVariants","SelectTrigger","asChild","ChevronDown","SelectScrollUpButton","ChevronUp","SelectScrollDownButton","SelectContent","position","onCloseAutoFocus","SelectLabel","SelectItem","span","Check","DropdownMenu","DropdownMenuPrimitive","DropdownMenuTrigger","dropdownMenuItemVariants","DropdownMenuSubTrigger","inset","ChevronRight","DropdownMenuContent","sideOffset","DropdownMenuItem","DropdownMenuCheckboxItem","checked","onSelect","Circle","DropdownMenuSeparator","buttonVariants","primary","outline","secondary","text","link","size","sm","lg","icon","Comp","SlotPrimitive","DialogPrimitive","DialogTrigger","DialogPortal","DialogOverlay","onOpenAutoFocus","X","type","containerClassName","showPassword","onShowPasswordChange","showClearIcon","onClear","onFocus","onBlur","isFocused","setIsFocused","isPassword","showPasswordToggle","showClear","String","length","inputType","hasIcons","iconCount","Number","input","paddingRight","onMouseDown","aria-label","Eye","EyeOff","DeleteProjectDialog","navigateToEditor","projectId","url","encodeURIComponent","window","location","href","navigateToProjects"],"sourceRoot":"","ignoreList":[]} \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/165-d64abcc50feb7107.js b/opencut-ui/_next/static/chunks/165-d64abcc50feb7107.js new file mode 100644 index 0000000..e04134c --- /dev/null +++ b/opencut-ui/_next/static/chunks/165-d64abcc50feb7107.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[165],{434:(e,r,t)=>{t.r(r),t.d(r,{Indicator:()=>G,Item:()=>O,RadioGroup:()=>I,RadioGroupIndicator:()=>M,RadioGroupItem:()=>F,Root:()=>_,createRadioGroupScope:()=>P});var n=t(74188),o=t(48841),a=t(89607),l=t(68533),i=t(98765),s=t(69834),u=t(14392),d=t(5672),c=t(48396),f=t(59044),p=t(24847),v=t(28064),m="Radio",[h,g]=(0,l.A)(m),[w,b]=h(m),x=n.forwardRef((e,r)=>{let{__scopeRadio:t,name:l,checked:s=!1,required:u,disabled:d,value:c="on",onCheck:f,form:p,...m}=e,[h,g]=n.useState(null),b=(0,a.s)(r,e=>g(e)),x=n.useRef(!1),y=!h||p||!!h.closest("form");return(0,v.jsxs)(w,{scope:t,checked:s,disabled:d,children:[(0,v.jsx)(i.sG.button,{type:"button",role:"radio","aria-checked":s,"data-state":T(s),"data-disabled":d?"":void 0,disabled:d,value:c,...m,ref:b,onClick:(0,o.m)(e.onClick,e=>{s||null==f||f(),y&&(x.current=e.isPropagationStopped(),x.current||e.stopPropagation())})}),y&&(0,v.jsx)(R,{control:h,bubbles:!x.current,name:l,value:c,checked:s,required:u,disabled:d,form:p,style:{transform:"translateX(-100%)"}})]})});x.displayName=m;var y="RadioIndicator",C=n.forwardRef((e,r)=>{let{__scopeRadio:t,forceMount:n,...o}=e,a=b(y,t);return(0,v.jsx)(p.C,{present:n||a.checked,children:(0,v.jsx)(i.sG.span,{"data-state":T(a.checked),"data-disabled":a.disabled?"":void 0,...o,ref:r})})});C.displayName=y;var R=n.forwardRef((e,r)=>{let{__scopeRadio:t,control:o,checked:l,bubbles:s=!0,...u}=e,d=n.useRef(null),p=(0,a.s)(d,r),m=(0,f.Z)(l),h=(0,c.X)(o);return n.useEffect(()=>{let e=d.current;if(!e)return;let r=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(m!==l&&r){let t=new Event("click",{bubbles:s});r.call(e,l),e.dispatchEvent(t)}},[m,l,s]),(0,v.jsx)(i.sG.input,{type:"radio","aria-hidden":!0,defaultChecked:l,...u,tabIndex:-1,ref:p,style:{...u.style,...h,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function T(e){return e?"checked":"unchecked"}R.displayName="RadioBubbleInput";var E=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],j="RadioGroup",[S,P]=(0,l.A)(j,[s.RG,g]),A=(0,s.RG)(),k=g(),[N,D]=S(j),I=n.forwardRef((e,r)=>{let{__scopeRadioGroup:t,name:n,defaultValue:o,value:a,required:l=!1,disabled:c=!1,orientation:f,dir:p,loop:m=!0,onValueChange:h,...g}=e,w=A(t),b=(0,d.jH)(p),[x,y]=(0,u.i)({prop:a,defaultProp:null!=o?o:null,onChange:h,caller:j});return(0,v.jsx)(N,{scope:t,name:n,required:l,disabled:c,value:x,onValueChange:y,children:(0,v.jsx)(s.bL,{asChild:!0,...w,orientation:f,dir:b,loop:m,children:(0,v.jsx)(i.sG.div,{role:"radiogroup","aria-required":l,"aria-orientation":f,"data-disabled":c?"":void 0,dir:b,...g,ref:r})})})});I.displayName=j;var L="RadioGroupItem",F=n.forwardRef((e,r)=>{let{__scopeRadioGroup:t,disabled:l,...i}=e,u=D(L,t),d=u.disabled||l,c=A(t),f=k(t),p=n.useRef(null),m=(0,a.s)(r,p),h=u.value===i.value,g=n.useRef(!1);return n.useEffect(()=>{let e=e=>{E.includes(e.key)&&(g.current=!0)},r=()=>g.current=!1;return document.addEventListener("keydown",e),document.addEventListener("keyup",r),()=>{document.removeEventListener("keydown",e),document.removeEventListener("keyup",r)}},[]),(0,v.jsx)(s.q7,{asChild:!0,...c,focusable:!d,active:h,children:(0,v.jsx)(x,{disabled:d,required:u.required,checked:h,...f,...i,name:u.name,ref:m,onCheck:()=>u.onValueChange(i.value),onKeyDown:(0,o.m)(e=>{"Enter"===e.key&&e.preventDefault()}),onFocus:(0,o.m)(i.onFocus,()=>{var e;g.current&&(null==(e=p.current)||e.click())})})})});F.displayName=L;var M=n.forwardRef((e,r)=>{let{__scopeRadioGroup:t,...n}=e,o=k(t);return(0,v.jsx)(C,{...o,...n,ref:r})});M.displayName="RadioGroupIndicator";var _=I,O=F,G=M},8938:(e,r,t)=>{t.r(r),t.d(r,{Action:()=>M,AlertDialog:()=>v,AlertDialogAction:()=>S,AlertDialogCancel:()=>A,AlertDialogContent:()=>C,AlertDialogDescription:()=>j,AlertDialogOverlay:()=>g,AlertDialogPortal:()=>h,AlertDialogTitle:()=>T,AlertDialogTrigger:()=>m,Cancel:()=>_,Content:()=>F,Description:()=>G,Overlay:()=>L,Portal:()=>I,Root:()=>N,Title:()=>O,Trigger:()=>D,createAlertDialogScope:()=>f});var n=t(74188),o=t(68533),a=t(89607),l=t(68522),i=t(48841),s=t(8059),u=t(28064),d="AlertDialog",[c,f]=(0,o.A)(d,[l.createDialogScope]),p=(0,l.createDialogScope)(),v=e=>{let{__scopeAlertDialog:r,...t}=e,n=p(r);return(0,u.jsx)(l.Root,{...n,...t,modal:!0})};v.displayName=d;var m=n.forwardRef((e,r)=>{let{__scopeAlertDialog:t,...n}=e,o=p(t);return(0,u.jsx)(l.Trigger,{...o,...n,ref:r})});m.displayName="AlertDialogTrigger";var h=e=>{let{__scopeAlertDialog:r,...t}=e,n=p(r);return(0,u.jsx)(l.Portal,{...n,...t})};h.displayName="AlertDialogPortal";var g=n.forwardRef((e,r)=>{let{__scopeAlertDialog:t,...n}=e,o=p(t);return(0,u.jsx)(l.Overlay,{...o,...n,ref:r})});g.displayName="AlertDialogOverlay";var w="AlertDialogContent",[b,x]=c(w),y=(0,s.Dc)("AlertDialogContent"),C=n.forwardRef((e,r)=>{let{__scopeAlertDialog:t,children:o,...s}=e,d=p(t),c=n.useRef(null),f=(0,a.s)(r,c),v=n.useRef(null);return(0,u.jsx)(l.WarningProvider,{contentName:w,titleName:R,docsSlug:"alert-dialog",children:(0,u.jsx)(b,{scope:t,cancelRef:v,children:(0,u.jsxs)(l.Content,{role:"alertdialog",...d,...s,ref:f,onOpenAutoFocus:(0,i.m)(s.onOpenAutoFocus,e=>{var r;e.preventDefault(),null==(r=v.current)||r.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,u.jsx)(y,{children:o}),(0,u.jsx)(k,{contentRef:c})]})})})});C.displayName=w;var R="AlertDialogTitle",T=n.forwardRef((e,r)=>{let{__scopeAlertDialog:t,...n}=e,o=p(t);return(0,u.jsx)(l.Title,{...o,...n,ref:r})});T.displayName=R;var E="AlertDialogDescription",j=n.forwardRef((e,r)=>{let{__scopeAlertDialog:t,...n}=e,o=p(t);return(0,u.jsx)(l.Description,{...o,...n,ref:r})});j.displayName=E;var S=n.forwardRef((e,r)=>{let{__scopeAlertDialog:t,...n}=e,o=p(t);return(0,u.jsx)(l.Close,{...o,...n,ref:r})});S.displayName="AlertDialogAction";var P="AlertDialogCancel",A=n.forwardRef((e,r)=>{let{__scopeAlertDialog:t,...n}=e,{cancelRef:o}=x(P,t),i=p(t),s=(0,a.s)(r,o);return(0,u.jsx)(l.Close,{...i,...n,ref:s})});A.displayName=P;var k=e=>{let{contentRef:r}=e,t="`".concat(w,"` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the `").concat(w,"` by passing a `").concat(E,"` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an `id` and passing the same value to the `aria-describedby` prop in `").concat(w,"`. If the description is confusing or duplicative for sighted users, you can use the `@radix-ui/react-visually-hidden` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog");return n.useEffect(()=>{var e;document.getElementById(null==(e=r.current)?void 0:e.getAttribute("aria-describedby"))},[t,r]),null},N=v,D=m,I=h,L=g,F=C,M=S,_=A,O=T,G=j},10251:(e,r,t)=>{t.r(r),t.d(r,{Collapsible:()=>w,CollapsibleContent:()=>C,CollapsibleTrigger:()=>x,Content:()=>S,Root:()=>E,Trigger:()=>j,createCollapsibleScope:()=>m});var n=t(74188),o=t(48841),a=t(68533),l=t(14392),i=t(92672),s=t(89607),u=t(98765),d=t(24847),c=t(39636),f=t(28064),p="Collapsible",[v,m]=(0,a.A)(p),[h,g]=v(p),w=n.forwardRef((e,r)=>{let{__scopeCollapsible:t,open:o,defaultOpen:a,disabled:i,onOpenChange:s,...d}=e,[v,m]=(0,l.i)({prop:o,defaultProp:null!=a&&a,onChange:s,caller:p});return(0,f.jsx)(h,{scope:t,disabled:i,contentId:(0,c.B)(),open:v,onOpenToggle:n.useCallback(()=>m(e=>!e),[m]),children:(0,f.jsx)(u.sG.div,{"data-state":T(v),"data-disabled":i?"":void 0,...d,ref:r})})});w.displayName=p;var b="CollapsibleTrigger",x=n.forwardRef((e,r)=>{let{__scopeCollapsible:t,...n}=e,a=g(b,t);return(0,f.jsx)(u.sG.button,{type:"button","aria-controls":a.contentId,"aria-expanded":a.open||!1,"data-state":T(a.open),"data-disabled":a.disabled?"":void 0,disabled:a.disabled,...n,ref:r,onClick:(0,o.m)(e.onClick,a.onOpenToggle)})});x.displayName=b;var y="CollapsibleContent",C=n.forwardRef((e,r)=>{let{forceMount:t,...n}=e,o=g(y,e.__scopeCollapsible);return(0,f.jsx)(d.C,{present:t||o.open,children:e=>{let{present:t}=e;return(0,f.jsx)(R,{...n,ref:r,present:t})}})});C.displayName=y;var R=n.forwardRef((e,r)=>{let{__scopeCollapsible:t,present:o,children:a,...l}=e,d=g(y,t),[c,p]=n.useState(o),v=n.useRef(null),m=(0,s.s)(r,v),h=n.useRef(0),w=h.current,b=n.useRef(0),x=b.current,C=d.open||c,R=n.useRef(C),E=n.useRef(void 0);return n.useEffect(()=>{let e=requestAnimationFrame(()=>R.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,i.N)(()=>{let e=v.current;if(e){E.current=E.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration="0s",e.style.animationName="none";let r=e.getBoundingClientRect();h.current=r.height,b.current=r.width,R.current||(e.style.transitionDuration=E.current.transitionDuration,e.style.animationName=E.current.animationName),p(o)}},[d.open,o]),(0,f.jsx)(u.sG.div,{"data-state":T(d.open),"data-disabled":d.disabled?"":void 0,id:d.contentId,hidden:!C,...l,ref:m,style:{"--radix-collapsible-content-height":w?"".concat(w,"px"):void 0,"--radix-collapsible-content-width":x?"".concat(x,"px"):void 0,...e.style},children:C&&a})});function T(e){return e?"open":"closed"}var E=w,j=x,S=C},11080:(e,r,t)=>{t.r(r),t.d(r,{Icon:()=>S,Input:()=>y,PasswordToggleField:()=>b,PasswordToggleFieldIcon:()=>S,PasswordToggleFieldInput:()=>y,PasswordToggleFieldSlot:()=>E,PasswordToggleFieldToggle:()=>R,Root:()=>b,Slot:()=>E,Toggle:()=>R});var n=t(74188),o=t(82749),a=t(48841),l=t(14392),i=t(98765),s=t(89607),u=t(39636),d=t(74068),c=t(26273),f=t(68533),p=t(28064),v="PasswordToggleField",[m]=(0,f.A)(v),[h,g]=m(v),w={clickTriggered:!1,selectionStart:null,selectionEnd:null},b=e=>{let{__scopePasswordToggleField:r,...t}=e,o=(0,u.B)(t.id),a="".concat(o,"-input"),[i,s]=n.useState(a),d=null!=i?i:a,c=n.useCallback(e=>s(null!=e?String(e):null),[]),{visible:f,defaultVisible:m,onVisiblityChange:g,children:b}=t,[x=!1,y]=(0,l.i)({caller:v,prop:f,defaultProp:null!=m&&m,onChange:g}),C=n.useRef(null),R=n.useRef(w);return(0,p.jsx)(h,{scope:r,inputId:d,inputRef:C,setVisible:y,syncInputId:c,visible:x,focusState:R,children:b})};b.displayName=v;var x=v+"Input",y=n.forwardRef((e,r)=>{let{__scopePasswordToggleField:t,autoComplete:o="current-password",autoCapitalize:l="off",spellCheck:u=!1,id:d,...f}=e,{visible:v,inputRef:m,inputId:h,syncInputId:w,setVisible:b,focusState:y}=g(x,t);n.useEffect(()=>{w(d)},[d,w]);let C=(0,c.J)(b);return n.useEffect(()=>{let e=m.current,r=null==e?void 0:e.form;if(!r)return;let t=new AbortController;return r.addEventListener("reset",e=>{e.defaultPrevented||C(!1)},{signal:t.signal}),r.addEventListener("submit",()=>{C(!1)},{signal:t.signal}),()=>{t.abort()}},[m,C]),(0,p.jsx)(i.sG.input,{...f,id:null!=d?d:h,autoCapitalize:l,autoComplete:o,ref:(0,s.s)(r,m),spellCheck:u,type:v?"text":"password",onBlur:(0,a.m)(f.onBlur,e=>{let{selectionStart:r,selectionEnd:t}=e.currentTarget;y.current.selectionStart=r,y.current.selectionEnd=t})})});y.displayName=x;var C=v+"Toggle",R=n.forwardRef((e,r)=>{let{__scopePasswordToggleField:t,onClick:l,onPointerDown:u,onPointerCancel:c,onPointerUp:f,onFocus:v,children:m,"aria-label":h,"aria-controls":b,"aria-hidden":x,tabIndex:y,...R}=e,{setVisible:T,visible:E,inputRef:j,inputId:S,focusState:P}=g(C,t),[A,k]=n.useState(void 0),N=n.useRef(null),D=(0,s.s)(r,N),I=(0,d.z)();n.useEffect(()=>{let e=N.current;if(!e||h)return void k(void 0);let r=E?"Hide password":"Show password";function t(e){k(e?void 0:r)}t(e.textContent);let n=new MutationObserver(r=>{let n;for(let t of r)"characterData"===t.type&&e.textContent&&(n=e.textContent);t(n)});return n.observe(e,{characterData:!0,subtree:!0}),()=>{n.disconnect()}},[E,h]);let L=h||A;return I?null!=b||(b=S):(null!=x||(x=!0),null!=y||(y=-1)),n.useEffect(()=>{var e,r;let t=()=>{},n=(null==(r=N.current)||null==(e=r.ownerDocument)?void 0:e.defaultView)||window,o=()=>P.current.clickTriggered=!1,a=()=>t=function(e,r,t){if(e.requestIdleCallback){let t=e.requestIdleCallback(r,void 0);return()=>{e.cancelIdleCallback(t)}}let n=Date.now(),o=e.setTimeout(()=>{r({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-n))})},1);return()=>{e.clearTimeout(o)}}(n,o);return n.addEventListener("pointerup",a),()=>{t(),n.removeEventListener("pointerup",a)}},[P]),(0,p.jsx)(i.sG.button,{"aria-controls":b,"aria-hidden":x,"aria-label":L,ref:D,id:S,...R,onPointerDown:(0,a.m)(u,()=>{P.current.clickTriggered=!0}),onPointerCancel:e=>{null==c||c(e),P.current=w},onClick:e=>{if(null==l||l(e),e.defaultPrevented){P.current=w;return}if((0,o.flushSync)(()=>{T(e=>!e)}),P.current.clickTriggered){let e=j.current;if(e){let{selectionStart:r,selectionEnd:t}=P.current;e.focus(),(null!==r||null!==t)&&requestAnimationFrame(()=>{e.ownerDocument.activeElement===e&&(e.selectionStart=r,e.selectionEnd=t)})}}P.current=w},onPointerUp:e=>{null==f||f(e),setTimeout(()=>{P.current=w},50)},type:"button",children:m})});R.displayName=C;var T=v+"Slot",E=e=>{let{__scopePasswordToggleField:r,...t}=e,{visible:n}=g(T,r);return"render"in t?t.render({visible:n}):n?t.visible:t.hidden};E.displayName=T;var j=v+"Icon",S=n.forwardRef((e,r)=>{let{__scopePasswordToggleField:t,children:n,...o}=e,{visible:a}=g(j,t),{visible:l,hidden:s,...u}=o;return(0,p.jsx)(i.sG.svg,{...u,ref:r,"aria-hidden":!0,asChild:!0,children:a?l:s})});S.displayName=j},12766:(e,r,t)=>{t.r(r),t.d(r,{Item:()=>S,Root:()=>j,ToggleGroup:()=>m,ToggleGroupItem:()=>T,createToggleGroupScope:()=>p});var n=t(74188),o=t(68533),a=t(98765),l=t(69834),i=t(47340),s=t(14392),u=t(5672),d=t(28064),c="ToggleGroup",[f,p]=(0,o.A)(c,[l.RG]),v=(0,l.RG)(),m=n.forwardRef((e,r)=>{let{type:t,...n}=e;if("single"===t)return(0,d.jsx)(w,{...n,ref:r});if("multiple"===t)return(0,d.jsx)(b,{...n,ref:r});throw Error("Missing prop `type` expected on `".concat(c,"`"))});m.displayName=c;var[h,g]=f(c),w=n.forwardRef((e,r)=>{let{value:t,defaultValue:o,onValueChange:a=()=>{},...l}=e,[i,u]=(0,s.i)({prop:t,defaultProp:null!=o?o:"",onChange:a,caller:c});return(0,d.jsx)(h,{scope:e.__scopeToggleGroup,type:"single",value:n.useMemo(()=>i?[i]:[],[i]),onItemActivate:u,onItemDeactivate:n.useCallback(()=>u(""),[u]),children:(0,d.jsx)(C,{...l,ref:r})})}),b=n.forwardRef((e,r)=>{let{value:t,defaultValue:o,onValueChange:a=()=>{},...l}=e,[i,u]=(0,s.i)({prop:t,defaultProp:null!=o?o:[],onChange:a,caller:c}),f=n.useCallback(e=>u(function(){let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return[...r,e]}),[u]),p=n.useCallback(e=>u(function(){let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return r.filter(r=>r!==e)}),[u]);return(0,d.jsx)(h,{scope:e.__scopeToggleGroup,type:"multiple",value:i,onItemActivate:f,onItemDeactivate:p,children:(0,d.jsx)(C,{...l,ref:r})})});m.displayName=c;var[x,y]=f(c),C=n.forwardRef((e,r)=>{let{__scopeToggleGroup:t,disabled:n=!1,rovingFocus:o=!0,orientation:i,dir:s,loop:c=!0,...f}=e,p=v(t),m=(0,u.jH)(s),h={role:"group",dir:m,...f};return(0,d.jsx)(x,{scope:t,rovingFocus:o,disabled:n,children:o?(0,d.jsx)(l.bL,{asChild:!0,...p,orientation:i,dir:m,loop:c,children:(0,d.jsx)(a.sG.div,{...h,ref:r})}):(0,d.jsx)(a.sG.div,{...h,ref:r})})}),R="ToggleGroupItem",T=n.forwardRef((e,r)=>{let t=g(R,e.__scopeToggleGroup),o=y(R,e.__scopeToggleGroup),a=v(e.__scopeToggleGroup),i=t.value.includes(e.value),s=o.disabled||e.disabled,u={...e,pressed:i,disabled:s},c=n.useRef(null);return o.rovingFocus?(0,d.jsx)(l.q7,{asChild:!0,...a,focusable:!s,active:i,ref:c,children:(0,d.jsx)(E,{...u,ref:r})}):(0,d.jsx)(E,{...u,ref:r})});T.displayName=R;var E=n.forwardRef((e,r)=>{let{__scopeToggleGroup:t,value:n,...o}=e,a=g(R,t),l={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},s="single"===a.type?l:void 0;return(0,d.jsx)(i.Toggle,{...s,...o,ref:r,onPressedChange:e=>{e?a.onItemActivate(n):a.onItemDeactivate(n)}})}),j=m,S=T},18830:(e,r,t)=>{e.exports=t(76837)},20605:(e,r,t)=>{t.r(r),t.d(r,{Label:()=>l,Root:()=>i});var n=t(74188),o=t(98765),a=t(28064),l=n.forwardRef((e,r)=>(0,a.jsx)(o.sG.label,{...e,ref:r,onMouseDown:r=>{var t;r.target.closest("button, input, select, textarea")||(null==(t=e.onMouseDown)||t.call(e,r),!r.defaultPrevented&&r.detail>1&&r.preventDefault())}}));l.displayName="Label";var i=l},26273:(e,r,t)=>{t.d(r,{J:()=>s});var n,o=t(92672),a=t(74188),l=(n||(n=t.t(a,2)))[" useEffectEvent ".trim().toString()],i=(n||(n=t.t(a,2)))[" useInsertionEffect ".trim().toString()];function s(e){if("function"==typeof l)return l(e);let r=a.useRef(()=>{throw Error("Cannot call an event handler while rendering.")});return"function"==typeof i?i(()=>{r.current=e}):(0,o.N)(()=>{r.current=e}),a.useMemo(()=>(...e)=>r.current?.(...e),[])}},32929:(e,r,t)=>{t.r(r),t.d(r,{Action:()=>ee,Close:()=>er,Description:()=>$,Provider:()=>Y,Root:()=>J,Title:()=>Q,Toast:()=>F,ToastAction:()=>z,ToastClose:()=>V,ToastDescription:()=>K,ToastProvider:()=>j,ToastTitle:()=>H,ToastViewport:()=>N,Viewport:()=>Z,createToastScope:()=>R});var n=t(74188),o=t(82749),a=t(48841),l=t(89607),i=t(96007),s=t(68533),u=t(98370),d=t(58496),c=t(24847),f=t(98765),p=t(36432),v=t(14392),m=t(92672),h=t(85965),g=t(28064),w="ToastProvider",[b,x,y]=(0,i.N)("Toast"),[C,R]=(0,s.A)("Toast",[y]),[T,E]=C(w),j=e=>{let{__scopeToast:r,label:t="Notification",duration:o=5e3,swipeDirection:a="right",swipeThreshold:l=50,children:i}=e,[s,u]=n.useState(null),[d,c]=n.useState(0),f=n.useRef(!1),p=n.useRef(!1);return!t.trim(),(0,g.jsx)(b.Provider,{scope:r,children:(0,g.jsx)(T,{scope:r,label:t,duration:o,swipeDirection:a,swipeThreshold:l,toastCount:d,viewport:s,onViewportChange:u,onToastAdd:n.useCallback(()=>c(e=>e+1),[]),onToastRemove:n.useCallback(()=>c(e=>e-1),[]),isFocusedToastEscapeKeyDownRef:f,isClosePausedRef:p,children:i})})};j.displayName=w;var S="ToastViewport",P=["F8"],A="toast.viewportPause",k="toast.viewportResume",N=n.forwardRef((e,r)=>{let{__scopeToast:t,hotkey:o=P,label:a="Notifications ({hotkey})",...i}=e,s=E(S,t),d=x(t),c=n.useRef(null),p=n.useRef(null),v=n.useRef(null),m=n.useRef(null),h=(0,l.s)(r,m,s.onViewportChange),w=o.join("+").replace(/Key/g,"").replace(/Digit/g,""),y=s.toastCount>0;n.useEffect(()=>{let e=e=>{var r;0!==o.length&&o.every(r=>e[r]||e.code===r)&&(null==(r=m.current)||r.focus())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[o]),n.useEffect(()=>{let e=c.current,r=m.current;if(y&&e&&r){let t=()=>{if(!s.isClosePausedRef.current){let e=new CustomEvent(A);r.dispatchEvent(e),s.isClosePausedRef.current=!0}},n=()=>{if(s.isClosePausedRef.current){let e=new CustomEvent(k);r.dispatchEvent(e),s.isClosePausedRef.current=!1}},o=r=>{e.contains(r.relatedTarget)||n()},a=()=>{e.contains(document.activeElement)||n()};return e.addEventListener("focusin",t),e.addEventListener("focusout",o),e.addEventListener("pointermove",t),e.addEventListener("pointerleave",a),window.addEventListener("blur",t),window.addEventListener("focus",n),()=>{e.removeEventListener("focusin",t),e.removeEventListener("focusout",o),e.removeEventListener("pointermove",t),e.removeEventListener("pointerleave",a),window.removeEventListener("blur",t),window.removeEventListener("focus",n)}}},[y,s.isClosePausedRef]);let C=n.useCallback(e=>{let{tabbingDirection:r}=e,t=d().map(e=>{let t=e.ref.current,n=[t,...function(e){let r=[],t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let r="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||r?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;t.nextNode();)r.push(t.currentNode);return r}(t)];return"forwards"===r?n:n.reverse()});return("forwards"===r?t.reverse():t).flat()},[d]);return n.useEffect(()=>{let e=m.current;if(e){let r=r=>{let t=r.altKey||r.ctrlKey||r.metaKey;if("Tab"===r.key&&!t){var n,o,a;let t=document.activeElement,l=r.shiftKey;if(r.target===e&&l){null==(n=p.current)||n.focus();return}let i=C({tabbingDirection:l?"backwards":"forwards"}),s=i.findIndex(e=>e===t);X(i.slice(s+1))?r.preventDefault():l?null==(o=p.current)||o.focus():null==(a=v.current)||a.focus()}};return e.addEventListener("keydown",r),()=>e.removeEventListener("keydown",r)}},[d,C]),(0,g.jsxs)(u.lg,{ref:c,role:"region","aria-label":a.replace("{hotkey}",w),tabIndex:-1,style:{pointerEvents:y?void 0:"none"},children:[y&&(0,g.jsx)(I,{ref:p,onFocusFromOutsideViewport:()=>{X(C({tabbingDirection:"forwards"}))}}),(0,g.jsx)(b.Slot,{scope:t,children:(0,g.jsx)(f.sG.ol,{tabIndex:-1,...i,ref:h})}),y&&(0,g.jsx)(I,{ref:v,onFocusFromOutsideViewport:()=>{X(C({tabbingDirection:"backwards"}))}})]})});N.displayName=S;var D="ToastFocusProxy",I=n.forwardRef((e,r)=>{let{__scopeToast:t,onFocusFromOutsideViewport:n,...o}=e,a=E(D,t);return(0,g.jsx)(h.s6,{"aria-hidden":!0,tabIndex:0,...o,ref:r,style:{position:"fixed"},onFocus:e=>{var r;let t=e.relatedTarget;(null==(r=a.viewport)?void 0:r.contains(t))||n()}})});I.displayName=D;var L="Toast",F=n.forwardRef((e,r)=>{let{forceMount:t,open:n,defaultOpen:o,onOpenChange:l,...i}=e,[s,u]=(0,v.i)({prop:n,defaultProp:null==o||o,onChange:l,caller:L});return(0,g.jsx)(c.C,{present:t||s,children:(0,g.jsx)(O,{open:s,...i,ref:r,onClose:()=>u(!1),onPause:(0,p.c)(e.onPause),onResume:(0,p.c)(e.onResume),onSwipeStart:(0,a.m)(e.onSwipeStart,e=>{e.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:(0,a.m)(e.onSwipeMove,e=>{let{x:r,y:t}=e.detail.delta;e.currentTarget.setAttribute("data-swipe","move"),e.currentTarget.style.setProperty("--radix-toast-swipe-move-x","".concat(r,"px")),e.currentTarget.style.setProperty("--radix-toast-swipe-move-y","".concat(t,"px"))}),onSwipeCancel:(0,a.m)(e.onSwipeCancel,e=>{e.currentTarget.setAttribute("data-swipe","cancel"),e.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),e.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),e.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),e.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:(0,a.m)(e.onSwipeEnd,e=>{let{x:r,y:t}=e.detail.delta;e.currentTarget.setAttribute("data-swipe","end"),e.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),e.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),e.currentTarget.style.setProperty("--radix-toast-swipe-end-x","".concat(r,"px")),e.currentTarget.style.setProperty("--radix-toast-swipe-end-y","".concat(t,"px")),u(!1)})})})});F.displayName=L;var[M,_]=C(L,{onClose(){}}),O=n.forwardRef((e,r)=>{let{__scopeToast:t,type:i="foreground",duration:s,open:d,onClose:c,onEscapeKeyDown:v,onPause:m,onResume:h,onSwipeStart:w,onSwipeMove:x,onSwipeCancel:y,onSwipeEnd:C,...R}=e,T=E(L,t),[j,S]=n.useState(null),P=(0,l.s)(r,e=>S(e)),N=n.useRef(null),D=n.useRef(null),I=s||T.duration,F=n.useRef(0),_=n.useRef(I),O=n.useRef(0),{onToastAdd:H,onToastRemove:K}=T,z=(0,p.c)(()=>{var e;(null==j?void 0:j.contains(document.activeElement))&&(null==(e=T.viewport)||e.focus()),c()}),B=n.useCallback(e=>{e&&e!==1/0&&(window.clearTimeout(O.current),F.current=new Date().getTime(),O.current=window.setTimeout(z,e))},[z]);n.useEffect(()=>{let e=T.viewport;if(e){let r=()=>{B(_.current),null==h||h()},t=()=>{let e=new Date().getTime()-F.current;_.current=_.current-e,window.clearTimeout(O.current),null==m||m()};return e.addEventListener(A,t),e.addEventListener(k,r),()=>{e.removeEventListener(A,t),e.removeEventListener(k,r)}}},[T.viewport,I,m,h,B]),n.useEffect(()=>{d&&!T.isClosePausedRef.current&&B(I)},[d,I,T.isClosePausedRef,B]),n.useEffect(()=>(H(),()=>K()),[H,K]);let V=n.useMemo(()=>j?function e(r){let t=[];return Array.from(r.childNodes).forEach(r=>{var n;if(r.nodeType===r.TEXT_NODE&&r.textContent&&t.push(r.textContent),(n=r).nodeType===n.ELEMENT_NODE){let n=r.ariaHidden||r.hidden||"none"===r.style.display,o=""===r.dataset.radixToastAnnounceExclude;if(!n)if(o){let e=r.dataset.radixToastAnnounceAlt;e&&t.push(e)}else t.push(...e(r))}}),t}(j):null,[j]);return T.viewport?(0,g.jsxs)(g.Fragment,{children:[V&&(0,g.jsx)(G,{__scopeToast:t,role:"status","aria-live":"foreground"===i?"assertive":"polite","aria-atomic":!0,children:V}),(0,g.jsx)(M,{scope:t,onClose:z,children:o.createPortal((0,g.jsx)(b.ItemSlot,{scope:t,children:(0,g.jsx)(u.bL,{asChild:!0,onEscapeKeyDown:(0,a.m)(v,()=>{T.isFocusedToastEscapeKeyDownRef.current||z(),T.isFocusedToastEscapeKeyDownRef.current=!1}),children:(0,g.jsx)(f.sG.li,{role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":d?"open":"closed","data-swipe-direction":T.swipeDirection,...R,ref:P,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:(0,a.m)(e.onKeyDown,e=>{"Escape"===e.key&&(null==v||v(e.nativeEvent),e.nativeEvent.defaultPrevented||(T.isFocusedToastEscapeKeyDownRef.current=!0,z()))}),onPointerDown:(0,a.m)(e.onPointerDown,e=>{0===e.button&&(N.current={x:e.clientX,y:e.clientY})}),onPointerMove:(0,a.m)(e.onPointerMove,e=>{if(!N.current)return;let r=e.clientX-N.current.x,t=e.clientY-N.current.y,n=!!D.current,o=["left","right"].includes(T.swipeDirection),a=["left","up"].includes(T.swipeDirection)?Math.min:Math.max,l=o?a(0,r):0,i=o?0:a(0,t),s="touch"===e.pointerType?10:2,u={x:l,y:i},d={originalEvent:e,delta:u};n?(D.current=u,q("toast.swipeMove",x,d,{discrete:!1})):W(u,T.swipeDirection,s)?(D.current=u,q("toast.swipeStart",w,d,{discrete:!1}),e.target.setPointerCapture(e.pointerId)):(Math.abs(r)>s||Math.abs(t)>s)&&(N.current=null)}),onPointerUp:(0,a.m)(e.onPointerUp,e=>{let r=D.current,t=e.target;if(t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),D.current=null,N.current=null,r){let t=e.currentTarget,n={originalEvent:e,delta:r};W(r,T.swipeDirection,T.swipeThreshold)?q("toast.swipeEnd",C,n,{discrete:!0}):q("toast.swipeCancel",y,n,{discrete:!0}),t.addEventListener("click",e=>e.preventDefault(),{once:!0})}})})})}),T.viewport)})]}):null}),G=e=>{let{__scopeToast:r,children:t,...o}=e,a=E(L,r),[l,i]=n.useState(!1),[s,u]=n.useState(!1);return function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>{},r=(0,p.c)(e);(0,m.N)(()=>{let e=0,t=0;return e=window.requestAnimationFrame(()=>t=window.requestAnimationFrame(r)),()=>{window.cancelAnimationFrame(e),window.cancelAnimationFrame(t)}},[r])}(()=>i(!0)),n.useEffect(()=>{let e=window.setTimeout(()=>u(!0),1e3);return()=>window.clearTimeout(e)},[]),s?null:(0,g.jsx)(d.Portal,{asChild:!0,children:(0,g.jsx)(h.s6,{...o,children:l&&(0,g.jsxs)(g.Fragment,{children:[a.label," ",t]})})})},H=n.forwardRef((e,r)=>{let{__scopeToast:t,...n}=e;return(0,g.jsx)(f.sG.div,{...n,ref:r})});H.displayName="ToastTitle";var K=n.forwardRef((e,r)=>{let{__scopeToast:t,...n}=e;return(0,g.jsx)(f.sG.div,{...n,ref:r})});K.displayName="ToastDescription";var z=n.forwardRef((e,r)=>{let{altText:t,...n}=e;return t.trim()?(0,g.jsx)(U,{altText:t,asChild:!0,children:(0,g.jsx)(V,{...n,ref:r})}):null});z.displayName="ToastAction";var B="ToastClose",V=n.forwardRef((e,r)=>{let{__scopeToast:t,...n}=e,o=_(B,t);return(0,g.jsx)(U,{asChild:!0,children:(0,g.jsx)(f.sG.button,{type:"button",...n,ref:r,onClick:(0,a.m)(e.onClick,o.onClose)})})});V.displayName=B;var U=n.forwardRef((e,r)=>{let{__scopeToast:t,altText:n,...o}=e;return(0,g.jsx)(f.sG.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":n||void 0,...o,ref:r})});function q(e,r,t,n){let{discrete:o}=n,a=t.originalEvent.currentTarget,l=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:t});r&&a.addEventListener(e,r,{once:!0}),o?(0,f.hO)(a,l):a.dispatchEvent(l)}var W=function(e,r){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=Math.abs(e.x),o=Math.abs(e.y),a=n>o;return"left"===r||"right"===r?a&&n>t:!a&&o>t};function X(e){let r=document.activeElement;return e.some(e=>e===r||(e.focus(),document.activeElement!==r))}var Y=j,Z=N,J=F,Q=H,$=K,ee=z,er=V},35095:(e,r,t)=>{t.r(r),t.d(r,{HiddenInput:()=>P,Input:()=>A,OneTimePasswordField:()=>S,OneTimePasswordFieldHiddenInput:()=>P,OneTimePasswordFieldInput:()=>A,Root:()=>S});var n=t(98765),o=t(89607),a=t(14392),l=t(48841),i=t(96007),s=t(69834),u=t(74068),d=t(74188),c=t(82749),f=t(68533),p=t(5672),v=t(43850),m=t(26273),h=t(28064),g={numeric:{type:"numeric",regexp:/[^\d]/g,pattern:"\\d{1}",inputMode:"numeric"},alpha:{type:"alpha",regexp:/[^a-zA-Z]/g,pattern:"[a-zA-Z]{1}",inputMode:"text"},alphanumeric:{type:"alphanumeric",regexp:/[^a-zA-Z0-9]/g,pattern:"[a-zA-Z0-9]{1}",inputMode:"text"},none:null},w="OneTimePasswordField",[b,{useCollection:x,createCollectionScope:y,useInitCollection:C}]=(0,i.C)(w),[R]=(0,f.A)(w,[y,s.RG]),T=(0,s.RG)(),[E,j]=R(w),S=d.forwardRef(function(e,r){var t;let{__scopeOneTimePasswordField:i,defaultValue:f,value:v,onValueChange:w,autoSubmit:x=!1,children:y,onPaste:R,onAutoSubmit:j,disabled:S=!1,readOnly:P=!1,autoComplete:A="one-time-code",autoFocus:D=!1,form:I,name:L,placeholder:F,type:M="text",orientation:_="horizontal",dir:O,validationType:G="numeric",sanitizeValue:H,...K}=e,z=T(i),B=(0,p.jH)(O),V=C(),[U]=V,q=g[G]?g[G]:null,W=d.useCallback(e=>{if(e=Array.isArray(e)?e.map(k).join(""):k(e),q){let r=new RegExp(q.regexp);e=e.replace(r,"")}else H&&(e=H(e));return e.split("")},[q,H]),X=d.useMemo(()=>null!=v?W(v):void 0,[v,W]),[Y,Z]=(0,a.i)({caller:"OneTimePasswordField",prop:X,defaultProp:null!=f?W(f):[],onChange:d.useCallback(e=>null==w?void 0:w(e.join("")),[w])}),J=(0,m.J)(e=>{var r,t,n,o,a,l,i,s,u;switch(e.type){case"SET_CHAR":{let{index:l,char:i}=e,s=null==(r=U.at(l))?void 0:r.element;if(Y[l]===i)return void N(s&&(null==(n=U.from(s,1))?void 0:n.element));if(""===i)return;if(q){let e=new RegExp(q.regexp);if(i.replace(e,"")!==i)return}if(Y.length>=U.size){let e=[...Y];e[l]=i,(0,c.flushSync)(()=>Z(e)),N(s&&(null==(o=U.from(s,1))?void 0:o.element));return}let u=[...Y];u[l]=i;let d=null==(t=U.at(-1))?void 0:t.element;(0,c.flushSync)(()=>Z(u)),s!==d?N(s&&(null==(a=U.from(s,1))?void 0:a.element)):null==s||s.select();return}case"CLEAR_CHAR":{let{index:r,reason:t}=e;if(!Y[r])return;let n=Y.filter((e,t)=>t!==r),o=null==(l=U.at(r))?void 0:l.element,a=o&&(null==(i=U.from(o,-1))?void 0:i.element);(0,c.flushSync)(()=>Z(n)),"Backspace"===t?N(a):("Delete"===t||"Cut"===t)&&N(o);return}case"CLEAR":if(0===Y.length)return;"Backspace"===e.reason||"Delete"===e.reason?((0,c.flushSync)(()=>Z([])),N(null==(s=U.at(0))?void 0:s.element)):Z([]);return;case"PASTE":{let{value:r}=e,t=W(r);if(!t)return;(0,c.flushSync)(()=>Z(t)),N(null==(u=U.at(t.length-1))?void 0:u.element);return}}}),Q=d.useRef(q);d.useEffect(()=>{var e;q&&(null==(e=Q.current)?void 0:e.type)!==q.type&&(Q.current=q,Z(W(Y.join(""))))},[W,Z,q,Y]);let $=d.useRef(null),ee=d.useRef(null),er=d.useRef(null),et=(0,o.s)(r,er),en=null==(t=U.at(0))?void 0:t.element,eo=d.useCallback(()=>{let e;if(I){var r,t,n;let o=(null!=(t=null==(r=er.current)?void 0:r.ownerDocument)?t:document).getElementById(I);(null==(n=o)?void 0:n.tagName)==="FORM"&&(e=o)}else $.current?e=$.current.form:en&&(e=en.form);return null!=e?e:null},[I,en]),ea=d.useCallback(()=>{let e=eo();null==e||e.requestSubmit()},[eo]);d.useEffect(()=>{let e=eo();if(e){let r=()=>J({type:"CLEAR",reason:"Reset"});return e.addEventListener("reset",r),()=>e.removeEventListener("reset",r)}},[J,eo]);let el=Y.join(""),ei=d.useRef(el),es=U.size;d.useEffect(()=>{let e=ei.current;ei.current=el,e!==el&&x&&Y.every(e=>""!==e)&&Y.length===es&&(null==j||j(Y.join("")),ea())},[ea,x,el,es,j,Y]);let eu=(0,u.z)();return(0,h.jsx)(E,{scope:i,value:Y,attemptSubmit:ea,disabled:S,readOnly:P,autoComplete:A,autoFocus:D,form:I,name:L,placeholder:F,type:M,hiddenInputRef:$,userActionRef:ee,dispatch:J,validationType:G,orientation:_,isHydrated:eu,sanitizeValue:W,children:(0,h.jsx)(b.Provider,{scope:i,state:V,children:(0,h.jsx)(b.Slot,{scope:i,children:(0,h.jsx)(s.bL,{asChild:!0,...z,orientation:_,dir:B,children:(0,h.jsx)(n.bL.div,{...K,role:"group",ref:et,onPaste:(0,l.m)(R,e=>{e.preventDefault(),J({type:"PASTE",value:e.clipboardData.getData("Text")})}),children:y})})})})})}),P=d.forwardRef(function(e,r){let{__scopeOneTimePasswordField:t,...n}=e,{value:a,hiddenInputRef:l,name:i}=j("OneTimePasswordFieldHiddenInput",t),s=(0,o.s)(l,r);return(0,h.jsx)("input",{ref:s,name:i,value:a.join("").trim(),autoComplete:"off",autoFocus:!1,autoCapitalize:"off",autoCorrect:"off",autoSave:"off",spellCheck:!1,...n,type:"hidden",readOnly:!0})}),A=d.forwardRef(function(e,r){var t;let a,{__scopeOneTimePasswordField:i,onInvalidChange:u,index:c,...f}=e,{value:p,defaultValue:m,disabled:w,readOnly:y,autoComplete:C,autoFocus:R,form:E,name:S,placeholder:P,type:A,...k}=f,D=j("OneTimePasswordFieldInput",i),{dispatch:I,userActionRef:L,validationType:F,isHydrated:M}=D,_=x(i),O=T(i),G=d.useRef(null),[H,K]=d.useState(null),z=null!=c?c:H?_.indexOf(H):-1;(null!=c||M)&&D.placeholder&&0===D.value.length&&(a=D.placeholder[z]);let B=(0,o.s)(r,G,K),V=null!=(t=D.value[z])?t:"",U=d.useRef(null);d.useEffect(()=>()=>{window.clearTimeout(U.current)},[]);let q=D.value.join("").trim(),W=(0,v.q)(q.length,[0,_.size-1]),X=z<=W,Y=F in g?g[F]:void 0;return(0,h.jsx)(b.ItemSlot,{scope:i,children:(0,h.jsx)(s.q7,{...O,asChild:!0,focusable:!D.disabled&&X,active:z===W,children:e=>{let{hasTabStop:r,isCurrentTabStop:t}=e,o=r?t:0===z;return(0,h.jsx)(n.bL.input,{ref:B,type:D.type,"aria-label":"Character ".concat(z+1," of ").concat(_.size),autoComplete:o?D.autoComplete:"off","data-1p-ignore":o?void 0:"true","data-lpignore":o?void 0:"true","data-protonpass-ignore":o?void 0:"true","data-bwignore":o?void 0:"true",inputMode:null==Y?void 0:Y.inputMode,maxLength:1,pattern:null==Y?void 0:Y.pattern,readOnly:D.readOnly,value:V,placeholder:a,"data-radix-otp-input":"","data-radix-index":z,...k,onFocus:(0,l.m)(f.onFocus,e=>{e.currentTarget.select()}),onCut:(0,l.m)(f.onCut,e=>{""!==e.currentTarget.value&&(L.current={type:"cut"},U.current=window.setTimeout(()=>{L.current=null},10))}),onInput:(0,l.m)(f.onInput,e=>{let r=e.currentTarget.value;r.length>1&&(e.preventDefault(),I({type:"PASTE",value:r}))}),onChange:(0,l.m)(f.onChange,e=>{let r=e.target.value;e.preventDefault();let t=L.current;if(L.current=null,t)switch(t.type){case"cut":I({type:"CLEAR_CHAR",index:z,reason:"Cut"});return;case"keydown":{if("Char"===t.key)return;let e="Backspace"===t.key&&(t.metaKey||t.ctrlKey);"Clear"===t.key||e?I({type:"CLEAR",reason:"Backspace"}):I({type:"CLEAR_CHAR",index:z,reason:t.key});return}default:return}if(e.target.validity.valid)if(""===r){let r="Backspace";if("input"===e.nativeEvent.type){let t=e.nativeEvent.inputType;"deleteContentBackward"===t?r="Backspace":"deleteByCut"===t&&(r="Cut")}I({type:"CLEAR_CHAR",index:z,reason:r})}else I({type:"SET_CHAR",char:r,index:z,event:e});else{let r=e.target;null==u||u(r.value),requestAnimationFrame(()=>{r.ownerDocument.activeElement===r&&r.select()})}}),onKeyDown:(0,l.m)(f.onKeyDown,e=>{switch(e.key){case"Clear":case"Delete":case"Backspace":if(""===e.currentTarget.value){if("Delete"===e.key)return;if("Clear"===e.key||e.metaKey||e.ctrlKey)I({type:"CLEAR",reason:"Backspace"});else{let r=e.currentTarget;requestAnimationFrame(()=>{var e;N(null==(e=_.from(r,-1))?void 0:e.element)})}}else L.current={type:"keydown",key:e.key,metaKey:e.metaKey,ctrlKey:e.ctrlKey},U.current=window.setTimeout(()=>{L.current=null},10);return;case"Enter":e.preventDefault(),D.attemptSubmit();return;case"ArrowDown":case"ArrowUp":"horizontal"===D.orientation&&e.preventDefault();return;default:var r,t,n;if(e.currentTarget.value===e.key){let t=e.currentTarget;e.preventDefault(),N(null==(r=_.from(t,1))?void 0:r.element);return}if(e.currentTarget.value&&!(0===e.currentTarget.selectionStart&&null!=e.currentTarget.selectionEnd&&e.currentTarget.selectionEnd>0)){let r=e.key;if(e.key.length>1||" "===e.key)return;{let o=null==(t=_.from(e.currentTarget,1))?void 0:t.element,a=null==(n=_.at(-1))?void 0:n.element;o!==a&&e.currentTarget!==a&&(0===e.currentTarget.selectionStart?I({type:"SET_CHAR",char:r,index:z,event:e}):I({type:"SET_CHAR",char:r,index:z+1,event:e}),L.current={type:"keydown",key:"Char",metaKey:e.metaKey,ctrlKey:e.ctrlKey},U.current=window.setTimeout(()=>{L.current=null},10))}}}}),onPointerDown:(0,l.m)(f.onPointerDown,e=>{var r;e.preventDefault();let t=Math.min(z,W);N(null==(r=_.at(t))?void 0:r.element)})})}})})});function k(e){return e.replace(/\s/g,"")}function N(e){e&&(e.ownerDocument.activeElement===e?window.requestAnimationFrame(()=>{var r;null==(r=e.select)||r.call(e)}):e.focus())}},35511:(e,r,t)=>{t.r(r),t.d(r,{Corner:()=>J,Root:()=>W,ScrollArea:()=>b,ScrollAreaCorner:()=>_,ScrollAreaScrollbar:()=>R,ScrollAreaThumb:()=>L,ScrollAreaViewport:()=>y,Scrollbar:()=>Y,Thumb:()=>Z,Viewport:()=>X,createScrollAreaScope:()=>h});var n=t(74188),o=t(98765),a=t(24847),l=t(68533),i=t(89607),s=t(36432),u=t(5672),d=t(92672),c=t(43850),f=t(48841),p=t(28064),v="ScrollArea",[m,h]=(0,l.A)(v),[g,w]=m(v),b=n.forwardRef((e,r)=>{let{__scopeScrollArea:t,type:a="hover",dir:l,scrollHideDelay:s=600,...d}=e,[c,f]=n.useState(null),[v,m]=n.useState(null),[h,w]=n.useState(null),[b,x]=n.useState(null),[y,C]=n.useState(null),[R,T]=n.useState(0),[E,j]=n.useState(0),[S,P]=n.useState(!1),[A,k]=n.useState(!1),N=(0,i.s)(r,e=>f(e)),D=(0,u.jH)(l);return(0,p.jsx)(g,{scope:t,type:a,dir:D,scrollHideDelay:s,scrollArea:c,viewport:v,onViewportChange:m,content:h,onContentChange:w,scrollbarX:b,onScrollbarXChange:x,scrollbarXEnabled:S,onScrollbarXEnabledChange:P,scrollbarY:y,onScrollbarYChange:C,scrollbarYEnabled:A,onScrollbarYEnabledChange:k,onCornerWidthChange:T,onCornerHeightChange:j,children:(0,p.jsx)(o.sG.div,{dir:D,...d,ref:N,style:{position:"relative","--radix-scroll-area-corner-width":R+"px","--radix-scroll-area-corner-height":E+"px",...e.style}})})});b.displayName=v;var x="ScrollAreaViewport",y=n.forwardRef((e,r)=>{let{__scopeScrollArea:t,children:a,nonce:l,...s}=e,u=w(x,t),d=n.useRef(null),c=(0,i.s)(r,d,u.onViewportChange);return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:l}),(0,p.jsx)(o.sG.div,{"data-radix-scroll-area-viewport":"",...s,ref:c,style:{overflowX:u.scrollbarXEnabled?"scroll":"hidden",overflowY:u.scrollbarYEnabled?"scroll":"hidden",...e.style},children:(0,p.jsx)("div",{ref:u.onContentChange,style:{minWidth:"100%",display:"table"},children:a})})]})});y.displayName=x;var C="ScrollAreaScrollbar",R=n.forwardRef((e,r)=>{let{forceMount:t,...o}=e,a=w(C,e.__scopeScrollArea),{onScrollbarXEnabledChange:l,onScrollbarYEnabledChange:i}=a,s="horizontal"===e.orientation;return n.useEffect(()=>(s?l(!0):i(!0),()=>{s?l(!1):i(!1)}),[s,l,i]),"hover"===a.type?(0,p.jsx)(T,{...o,ref:r,forceMount:t}):"scroll"===a.type?(0,p.jsx)(E,{...o,ref:r,forceMount:t}):"auto"===a.type?(0,p.jsx)(j,{...o,ref:r,forceMount:t}):"always"===a.type?(0,p.jsx)(S,{...o,ref:r}):null});R.displayName=C;var T=n.forwardRef((e,r)=>{let{forceMount:t,...o}=e,l=w(C,e.__scopeScrollArea),[i,s]=n.useState(!1);return n.useEffect(()=>{let e=l.scrollArea,r=0;if(e){let t=()=>{window.clearTimeout(r),s(!0)},n=()=>{r=window.setTimeout(()=>s(!1),l.scrollHideDelay)};return e.addEventListener("pointerenter",t),e.addEventListener("pointerleave",n),()=>{window.clearTimeout(r),e.removeEventListener("pointerenter",t),e.removeEventListener("pointerleave",n)}}},[l.scrollArea,l.scrollHideDelay]),(0,p.jsx)(a.C,{present:t||i,children:(0,p.jsx)(j,{"data-state":i?"visible":"hidden",...o,ref:r})})}),E=n.forwardRef((e,r)=>{var t;let{forceMount:o,...l}=e,i=w(C,e.__scopeScrollArea),s="horizontal"===e.orientation,u=U(()=>c("SCROLL_END"),100),[d,c]=(t={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},n.useReducer((e,r)=>{let n=t[e][r];return null!=n?n:e},"hidden"));return n.useEffect(()=>{if("idle"===d){let e=window.setTimeout(()=>c("HIDE"),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[d,i.scrollHideDelay,c]),n.useEffect(()=>{let e=i.viewport,r=s?"scrollLeft":"scrollTop";if(e){let t=e[r],n=()=>{let n=e[r];t!==n&&(c("SCROLL"),u()),t=n};return e.addEventListener("scroll",n),()=>e.removeEventListener("scroll",n)}},[i.viewport,s,c,u]),(0,p.jsx)(a.C,{present:o||"hidden"!==d,children:(0,p.jsx)(S,{"data-state":"hidden"===d?"hidden":"visible",...l,ref:r,onPointerEnter:(0,f.m)(e.onPointerEnter,()=>c("POINTER_ENTER")),onPointerLeave:(0,f.m)(e.onPointerLeave,()=>c("POINTER_LEAVE"))})})}),j=n.forwardRef((e,r)=>{let t=w(C,e.__scopeScrollArea),{forceMount:o,...l}=e,[i,s]=n.useState(!1),u="horizontal"===e.orientation,d=U(()=>{if(t.viewport){let e=t.viewport.offsetWidth{let{orientation:t="vertical",...o}=e,a=w(C,e.__scopeScrollArea),l=n.useRef(null),i=n.useRef(0),[s,u]=n.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),d=H(s.viewport,s.content),c={...o,sizes:s,onSizesChange:u,hasThumb:!!(d>0&&d<1),onThumbChange:e=>l.current=e,onThumbPointerUp:()=>i.current=0,onThumbPointerDown:e=>i.current=e};function f(e,r){return function(e,r,t){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"ltr",o=K(t),a=r||o/2,l=t.scrollbar.paddingStart+a,i=t.scrollbar.size-t.scrollbar.paddingEnd-(o-a),s=t.content-t.viewport;return B([l,i],"ltr"===n?[0,s]:[-1*s,0])(e)}(e,i.current,s,r)}return"horizontal"===t?(0,p.jsx)(P,{...c,ref:r,onThumbPositionChange:()=>{if(a.viewport&&l.current){let e=z(a.viewport.scrollLeft,s,a.dir);l.current.style.transform="translate3d(".concat(e,"px, 0, 0)")}},onWheelScroll:e=>{a.viewport&&(a.viewport.scrollLeft=e)},onDragScroll:e=>{a.viewport&&(a.viewport.scrollLeft=f(e,a.dir))}}):"vertical"===t?(0,p.jsx)(A,{...c,ref:r,onThumbPositionChange:()=>{if(a.viewport&&l.current){let e=z(a.viewport.scrollTop,s);l.current.style.transform="translate3d(0, ".concat(e,"px, 0)")}},onWheelScroll:e=>{a.viewport&&(a.viewport.scrollTop=e)},onDragScroll:e=>{a.viewport&&(a.viewport.scrollTop=f(e))}}):null}),P=n.forwardRef((e,r)=>{let{sizes:t,onSizesChange:o,...a}=e,l=w(C,e.__scopeScrollArea),[s,u]=n.useState(),d=n.useRef(null),c=(0,i.s)(r,d,l.onScrollbarXChange);return n.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),(0,p.jsx)(D,{"data-orientation":"horizontal",...a,ref:c,sizes:t,style:{bottom:0,left:"rtl"===l.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===l.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":K(t)+"px",...e.style},onThumbPointerDown:r=>e.onThumbPointerDown(r.x),onDragScroll:r=>e.onDragScroll(r.x),onWheelScroll:(r,t)=>{if(l.viewport){let n=l.viewport.scrollLeft+r.deltaX;e.onWheelScroll(n),function(e,r){return e>0&&e{d.current&&l.viewport&&s&&o({content:l.viewport.scrollWidth,viewport:l.viewport.offsetWidth,scrollbar:{size:d.current.clientWidth,paddingStart:G(s.paddingLeft),paddingEnd:G(s.paddingRight)}})}})}),A=n.forwardRef((e,r)=>{let{sizes:t,onSizesChange:o,...a}=e,l=w(C,e.__scopeScrollArea),[s,u]=n.useState(),d=n.useRef(null),c=(0,i.s)(r,d,l.onScrollbarYChange);return n.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),(0,p.jsx)(D,{"data-orientation":"vertical",...a,ref:c,sizes:t,style:{top:0,right:"ltr"===l.dir?0:void 0,left:"rtl"===l.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":K(t)+"px",...e.style},onThumbPointerDown:r=>e.onThumbPointerDown(r.y),onDragScroll:r=>e.onDragScroll(r.y),onWheelScroll:(r,t)=>{if(l.viewport){let n=l.viewport.scrollTop+r.deltaY;e.onWheelScroll(n),function(e,r){return e>0&&e{d.current&&l.viewport&&s&&o({content:l.viewport.scrollHeight,viewport:l.viewport.offsetHeight,scrollbar:{size:d.current.clientHeight,paddingStart:G(s.paddingTop),paddingEnd:G(s.paddingBottom)}})}})}),[k,N]=m(C),D=n.forwardRef((e,r)=>{let{__scopeScrollArea:t,sizes:a,hasThumb:l,onThumbChange:u,onThumbPointerUp:d,onThumbPointerDown:c,onThumbPositionChange:v,onDragScroll:m,onWheelScroll:h,onResize:g,...b}=e,x=w(C,t),[y,R]=n.useState(null),T=(0,i.s)(r,e=>R(e)),E=n.useRef(null),j=n.useRef(""),S=x.viewport,P=a.content-a.viewport,A=(0,s.c)(h),N=(0,s.c)(v),D=U(g,10);function I(e){E.current&&m({x:e.clientX-E.current.left,y:e.clientY-E.current.top})}return n.useEffect(()=>{let e=e=>{let r=e.target;(null==y?void 0:y.contains(r))&&A(e,P)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[S,y,P,A]),n.useEffect(N,[a,N]),q(y,D),q(x.content,D),(0,p.jsx)(k,{scope:t,scrollbar:y,hasThumb:l,onThumbChange:(0,s.c)(u),onThumbPointerUp:(0,s.c)(d),onThumbPositionChange:N,onThumbPointerDown:(0,s.c)(c),children:(0,p.jsx)(o.sG.div,{...b,ref:T,style:{position:"absolute",...b.style},onPointerDown:(0,f.m)(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),E.current=y.getBoundingClientRect(),j.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",x.viewport&&(x.viewport.style.scrollBehavior="auto"),I(e))}),onPointerMove:(0,f.m)(e.onPointerMove,I),onPointerUp:(0,f.m)(e.onPointerUp,e=>{let r=e.target;r.hasPointerCapture(e.pointerId)&&r.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=j.current,x.viewport&&(x.viewport.style.scrollBehavior=""),E.current=null})})})}),I="ScrollAreaThumb",L=n.forwardRef((e,r)=>{let{forceMount:t,...n}=e,o=N(I,e.__scopeScrollArea);return(0,p.jsx)(a.C,{present:t||o.hasThumb,children:(0,p.jsx)(F,{ref:r,...n})})}),F=n.forwardRef((e,r)=>{let{__scopeScrollArea:t,style:a,...l}=e,s=w(I,t),u=N(I,t),{onThumbPositionChange:d}=u,c=(0,i.s)(r,e=>u.onThumbChange(e)),v=n.useRef(void 0),m=U(()=>{v.current&&(v.current(),v.current=void 0)},100);return n.useEffect(()=>{let e=s.viewport;if(e){let r=()=>{m(),v.current||(v.current=V(e,d),d())};return d(),e.addEventListener("scroll",r),()=>e.removeEventListener("scroll",r)}},[s.viewport,m,d]),(0,p.jsx)(o.sG.div,{"data-state":u.hasThumb?"visible":"hidden",...l,ref:c,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...a},onPointerDownCapture:(0,f.m)(e.onPointerDownCapture,e=>{let r=e.target.getBoundingClientRect(),t=e.clientX-r.left,n=e.clientY-r.top;u.onThumbPointerDown({x:t,y:n})}),onPointerUp:(0,f.m)(e.onPointerUp,u.onThumbPointerUp)})});L.displayName=I;var M="ScrollAreaCorner",_=n.forwardRef((e,r)=>{let t=w(M,e.__scopeScrollArea),n=!!(t.scrollbarX&&t.scrollbarY);return"scroll"!==t.type&&n?(0,p.jsx)(O,{...e,ref:r}):null});_.displayName=M;var O=n.forwardRef((e,r)=>{let{__scopeScrollArea:t,...a}=e,l=w(M,t),[i,s]=n.useState(0),[u,d]=n.useState(0),c=!!(i&&u);return q(l.scrollbarX,()=>{var e;let r=(null==(e=l.scrollbarX)?void 0:e.offsetHeight)||0;l.onCornerHeightChange(r),d(r)}),q(l.scrollbarY,()=>{var e;let r=(null==(e=l.scrollbarY)?void 0:e.offsetWidth)||0;l.onCornerWidthChange(r),s(r)}),c?(0,p.jsx)(o.sG.div,{...a,ref:r,style:{width:i,height:u,position:"absolute",right:"ltr"===l.dir?0:void 0,left:"rtl"===l.dir?0:void 0,bottom:0,...e.style}}):null});function G(e){return e?parseInt(e,10):0}function H(e,r){let t=e/r;return isNaN(t)?0:t}function K(e){let r=H(e.viewport,e.content),t=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-t)*r,18)}function z(e,r){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"ltr",n=K(r),o=r.scrollbar.paddingStart+r.scrollbar.paddingEnd,a=r.scrollbar.size-o,l=r.content-r.viewport,i=(0,c.q)(e,"ltr"===t?[0,l]:[-1*l,0]);return B([0,l],[0,a-n])(i)}function B(e,r){return t=>{if(e[0]===e[1]||r[0]===r[1])return r[0];let n=(r[1]-r[0])/(e[1]-e[0]);return r[0]+n*(t-e[0])}}var V=function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:()=>{},t={left:e.scrollLeft,top:e.scrollTop},n=0;return!function o(){let a={left:e.scrollLeft,top:e.scrollTop},l=t.left!==a.left,i=t.top!==a.top;(l||i)&&r(),t=a,n=window.requestAnimationFrame(o)}(),()=>window.cancelAnimationFrame(n)};function U(e,r){let t=(0,s.c)(e),o=n.useRef(0);return n.useEffect(()=>()=>window.clearTimeout(o.current),[]),n.useCallback(()=>{window.clearTimeout(o.current),o.current=window.setTimeout(t,r)},[t,r])}function q(e,r){let t=(0,s.c)(r);(0,d.N)(()=>{let r=0;if(e){let n=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(t)});return n.observe(e),()=>{window.cancelAnimationFrame(r),n.unobserve(e)}}},[e,t])}var W=b,X=y,Y=R,Z=L,J=_},38155:(e,r,t)=>{t.r(r),t.d(r,{Root:()=>C,Switch:()=>g,SwitchThumb:()=>b,Thumb:()=>R,createSwitchScope:()=>v});var n=t(74188),o=t(48841),a=t(89607),l=t(68533),i=t(14392),s=t(59044),u=t(48396),d=t(98765),c=t(28064),f="Switch",[p,v]=(0,l.A)(f),[m,h]=p(f),g=n.forwardRef((e,r)=>{let{__scopeSwitch:t,name:l,checked:s,defaultChecked:u,required:p,disabled:v,value:h="on",onCheckedChange:g,form:w,...b}=e,[C,R]=n.useState(null),T=(0,a.s)(r,e=>R(e)),E=n.useRef(!1),j=!C||w||!!C.closest("form"),[S,P]=(0,i.i)({prop:s,defaultProp:null!=u&&u,onChange:g,caller:f});return(0,c.jsxs)(m,{scope:t,checked:S,disabled:v,children:[(0,c.jsx)(d.sG.button,{type:"button",role:"switch","aria-checked":S,"aria-required":p,"data-state":y(S),"data-disabled":v?"":void 0,disabled:v,value:h,...b,ref:T,onClick:(0,o.m)(e.onClick,e=>{P(e=>!e),j&&(E.current=e.isPropagationStopped(),E.current||e.stopPropagation())})}),j&&(0,c.jsx)(x,{control:C,bubbles:!E.current,name:l,value:h,checked:S,required:p,disabled:v,form:w,style:{transform:"translateX(-100%)"}})]})});g.displayName=f;var w="SwitchThumb",b=n.forwardRef((e,r)=>{let{__scopeSwitch:t,...n}=e,o=h(w,t);return(0,c.jsx)(d.sG.span,{"data-state":y(o.checked),"data-disabled":o.disabled?"":void 0,...n,ref:r})});b.displayName=w;var x=n.forwardRef((e,r)=>{let{__scopeSwitch:t,control:o,checked:l,bubbles:i=!0,...d}=e,f=n.useRef(null),p=(0,a.s)(f,r),v=(0,s.Z)(l),m=(0,u.X)(o);return n.useEffect(()=>{let e=f.current;if(!e)return;let r=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(v!==l&&r){let t=new Event("click",{bubbles:i});r.call(e,l),e.dispatchEvent(t)}},[v,l,i]),(0,c.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:l,...d,tabIndex:-1,ref:p,style:{...d.style,...m,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function y(e){return e?"checked":"unchecked"}x.displayName="SwitchBubbleInput";var C=g,R=b},47282:(e,r,t)=>{t.r(r),t.d(r,{Button:()=>A,Link:()=>k,Root:()=>S,Separator:()=>P,ToggleGroup:()=>N,ToggleItem:()=>D,Toolbar:()=>b,ToolbarButton:()=>C,ToolbarLink:()=>R,ToolbarSeparator:()=>y,ToolbarToggleGroup:()=>E,ToolbarToggleItem:()=>j,createToolbarScope:()=>v});var n=t(74188),o=t(48841),a=t(68533),l=t(69834),i=t(98765),s=t(22276),u=t(12766),d=t(5672),c=t(28064),f="Toolbar",[p,v]=(0,a.A)(f,[l.RG,u.createToggleGroupScope]),m=(0,l.RG)(),h=(0,u.createToggleGroupScope)(),[g,w]=p(f),b=n.forwardRef((e,r)=>{let{__scopeToolbar:t,orientation:n="horizontal",dir:o,loop:a=!0,...s}=e,u=m(t),f=(0,d.jH)(o);return(0,c.jsx)(g,{scope:t,orientation:n,dir:f,children:(0,c.jsx)(l.bL,{asChild:!0,...u,orientation:n,dir:f,loop:a,children:(0,c.jsx)(i.sG.div,{role:"toolbar","aria-orientation":n,dir:f,...s,ref:r})})})});b.displayName=f;var x="ToolbarSeparator",y=n.forwardRef((e,r)=>{let{__scopeToolbar:t,...n}=e,o=w(x,t);return(0,c.jsx)(s.b,{orientation:"horizontal"===o.orientation?"vertical":"horizontal",...n,ref:r})});y.displayName=x;var C=n.forwardRef((e,r)=>{let{__scopeToolbar:t,...n}=e,o=m(t);return(0,c.jsx)(l.q7,{asChild:!0,...o,focusable:!e.disabled,children:(0,c.jsx)(i.sG.button,{type:"button",...n,ref:r})})});C.displayName="ToolbarButton";var R=n.forwardRef((e,r)=>{let{__scopeToolbar:t,...n}=e,a=m(t);return(0,c.jsx)(l.q7,{asChild:!0,...a,focusable:!0,children:(0,c.jsx)(i.sG.a,{...n,ref:r,onKeyDown:(0,o.m)(e.onKeyDown,e=>{" "===e.key&&e.currentTarget.click()})})})});R.displayName="ToolbarLink";var T="ToolbarToggleGroup",E=n.forwardRef((e,r)=>{let{__scopeToolbar:t,...n}=e,o=w(T,t),a=h(t);return(0,c.jsx)(u.Root,{"data-orientation":o.orientation,dir:o.dir,...a,...n,ref:r,rovingFocus:!1})});E.displayName=T;var j=n.forwardRef((e,r)=>{let{__scopeToolbar:t,...n}=e,o=h(t),a={__scopeToolbar:e.__scopeToolbar};return(0,c.jsx)(C,{asChild:!0,...a,children:(0,c.jsx)(u.Item,{...o,...n,ref:r})})});j.displayName="ToolbarToggleItem";var S=b,P=y,A=C,k=R,N=E,D=j},47340:(e,r,t)=>{t.r(r),t.d(r,{Root:()=>d,Toggle:()=>u});var n=t(74188),o=t(48841),a=t(14392),l=t(98765),i=t(28064),s="Toggle",u=n.forwardRef((e,r)=>{let{pressed:t,defaultPressed:n,onPressedChange:u,...d}=e,[c,f]=(0,a.i)({prop:t,onChange:u,defaultProp:null!=n&&n,caller:s});return(0,i.jsx)(l.sG.button,{type:"button","aria-pressed":c,"data-state":c?"on":"off","data-disabled":e.disabled?"":void 0,...d,ref:r,onClick:(0,o.m)(e.onClick,()=>{e.disabled||f(!c)})})});u.displayName=s;var d=u},51374:(e,r,t)=>{t.r(r),t.d(r,{Avatar:()=>m,AvatarFallback:()=>b,AvatarImage:()=>g,Fallback:()=>R,Image:()=>C,Root:()=>y,createAvatarScope:()=>f});var n=t(74188),o=t(68533),a=t(36432),l=t(92672),i=t(98765),s=t(74068),u=t(28064),d="Avatar",[c,f]=(0,o.A)(d),[p,v]=c(d),m=n.forwardRef((e,r)=>{let{__scopeAvatar:t,...o}=e,[a,l]=n.useState("idle");return(0,u.jsx)(p,{scope:t,imageLoadingStatus:a,onImageLoadingStatusChange:l,children:(0,u.jsx)(i.sG.span,{...o,ref:r})})});m.displayName=d;var h="AvatarImage",g=n.forwardRef((e,r)=>{let{__scopeAvatar:t,src:o,onLoadingStatusChange:d=()=>{},...c}=e,f=v(h,t),p=function(e,r){let{referrerPolicy:t,crossOrigin:o}=r,a=(0,s.z)(),i=n.useRef(null),u=a?(i.current||(i.current=new window.Image),i.current):null,[d,c]=n.useState(()=>x(u,e));return(0,l.N)(()=>{c(x(u,e))},[u,e]),(0,l.N)(()=>{let e=e=>()=>{c(e)};if(!u)return;let r=e("loaded"),n=e("error");return u.addEventListener("load",r),u.addEventListener("error",n),t&&(u.referrerPolicy=t),"string"==typeof o&&(u.crossOrigin=o),()=>{u.removeEventListener("load",r),u.removeEventListener("error",n)}},[u,o,t]),d}(o,c),m=(0,a.c)(e=>{d(e),f.onImageLoadingStatusChange(e)});return(0,l.N)(()=>{"idle"!==p&&m(p)},[p,m]),"loaded"===p?(0,u.jsx)(i.sG.img,{...c,ref:r,src:o}):null});g.displayName=h;var w="AvatarFallback",b=n.forwardRef((e,r)=>{let{__scopeAvatar:t,delayMs:o,...a}=e,l=v(w,t),[s,d]=n.useState(void 0===o);return n.useEffect(()=>{if(void 0!==o){let e=window.setTimeout(()=>d(!0),o);return()=>window.clearTimeout(e)}},[o]),s&&"loaded"!==l.imageLoadingStatus?(0,u.jsx)(i.sG.span,{...a,ref:r}):null});function x(e,r){return e?r?(e.src!==r&&(e.src=r),e.complete&&e.naturalWidth>0?"loaded":"loading"):"error":"idle"}b.displayName=w;var y=m,C=g,R=b},56387:(e,r,t)=>{t.r(r),t.d(r,{Checkbox:()=>y,CheckboxIndicator:()=>R,Indicator:()=>R,Root:()=>y,createCheckboxScope:()=>m,unstable_BubbleInput:()=>E,unstable_CheckboxBubbleInput:()=>E,unstable_CheckboxProvider:()=>w,unstable_CheckboxTrigger:()=>x,unstable_Provider:()=>w,unstable_Trigger:()=>x});var n=t(74188),o=t(89607),a=t(68533),l=t(48841),i=t(14392),s=t(59044),u=t(48396),d=t(24847),c=t(98765),f=t(28064),p="Checkbox",[v,m]=(0,a.A)(p),[h,g]=v(p);function w(e){let{__scopeCheckbox:r,checked:t,children:o,defaultChecked:a,disabled:l,form:s,name:u,onCheckedChange:d,required:c,value:v="on",internal_do_not_use_render:m}=e,[g,w]=(0,i.i)({prop:t,defaultProp:null!=a&&a,onChange:d,caller:p}),[b,x]=n.useState(null),[y,C]=n.useState(null),R=n.useRef(!1),T=!b||!!s||!!b.closest("form"),E={checked:g,disabled:l,setChecked:w,control:b,setControl:x,name:u,form:s,value:v,hasConsumerStoppedPropagationRef:R,required:c,defaultChecked:!j(a)&&a,isFormControl:T,bubbleInput:y,setBubbleInput:C};return(0,f.jsx)(h,{scope:r,...E,children:"function"==typeof m?m(E):o})}var b="CheckboxTrigger",x=n.forwardRef((e,r)=>{let{__scopeCheckbox:t,onKeyDown:a,onClick:i,...s}=e,{control:u,value:d,disabled:p,checked:v,required:m,setControl:h,setChecked:w,hasConsumerStoppedPropagationRef:x,isFormControl:y,bubbleInput:C}=g(b,t),R=(0,o.s)(r,h),T=n.useRef(v);return n.useEffect(()=>{let e=null==u?void 0:u.form;if(e){let r=()=>w(T.current);return e.addEventListener("reset",r),()=>e.removeEventListener("reset",r)}},[u,w]),(0,f.jsx)(c.sG.button,{type:"button",role:"checkbox","aria-checked":j(v)?"mixed":v,"aria-required":m,"data-state":S(v),"data-disabled":p?"":void 0,disabled:p,value:d,...s,ref:R,onKeyDown:(0,l.m)(a,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,l.m)(i,e=>{w(e=>!!j(e)||!e),C&&y&&(x.current=e.isPropagationStopped(),x.current||e.stopPropagation())})})});x.displayName=b;var y=n.forwardRef((e,r)=>{let{__scopeCheckbox:t,name:n,checked:o,defaultChecked:a,required:l,disabled:i,value:s,onCheckedChange:u,form:d,...c}=e;return(0,f.jsx)(w,{__scopeCheckbox:t,checked:o,defaultChecked:a,disabled:i,required:l,onCheckedChange:u,name:n,form:d,value:s,internal_do_not_use_render:e=>{let{isFormControl:n}=e;return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(x,{...c,ref:r,__scopeCheckbox:t}),n&&(0,f.jsx)(E,{__scopeCheckbox:t})]})}})});y.displayName=p;var C="CheckboxIndicator",R=n.forwardRef((e,r)=>{let{__scopeCheckbox:t,forceMount:n,...o}=e,a=g(C,t);return(0,f.jsx)(d.C,{present:n||j(a.checked)||!0===a.checked,children:(0,f.jsx)(c.sG.span,{"data-state":S(a.checked),"data-disabled":a.disabled?"":void 0,...o,ref:r,style:{pointerEvents:"none",...e.style}})})});R.displayName=C;var T="CheckboxBubbleInput",E=n.forwardRef((e,r)=>{let{__scopeCheckbox:t,...a}=e,{control:l,hasConsumerStoppedPropagationRef:i,checked:d,defaultChecked:p,required:v,disabled:m,name:h,value:w,form:b,bubbleInput:x,setBubbleInput:y}=g(T,t),C=(0,o.s)(r,y),R=(0,s.Z)(d),E=(0,u.X)(l);n.useEffect(()=>{if(!x)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,r=!i.current;if(R!==d&&e){let t=new Event("click",{bubbles:r});x.indeterminate=j(d),e.call(x,!j(d)&&d),x.dispatchEvent(t)}},[x,R,d,i]);let S=n.useRef(!j(d)&&d);return(0,f.jsx)(c.sG.input,{type:"checkbox","aria-hidden":!0,defaultChecked:null!=p?p:S.current,required:v,disabled:m,name:h,value:w,form:b,...a,tabIndex:-1,ref:C,style:{...a.style,...E,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function j(e){return"indeterminate"===e}function S(e){return j(e)?"indeterminate":e?"checked":"unchecked"}E.displayName=T},59178:(e,r,t)=>{t.r(r),t.d(r,{Content:()=>ey,Indicator:()=>ex,Item:()=>eg,Link:()=>eb,List:()=>eh,NavigationMenu:()=>I,NavigationMenuContent:()=>J,NavigationMenuIndicator:()=>X,NavigationMenuItem:()=>z,NavigationMenuLink:()=>q,NavigationMenuList:()=>O,NavigationMenuSub:()=>F,NavigationMenuTrigger:()=>V,NavigationMenuViewport:()=>et,Root:()=>ev,Sub:()=>em,Trigger:()=>ew,Viewport:()=>eC,createNavigationMenuScope:()=>P});var n=t(74188),o=t(82749),a=t(68533),l=t(48841),i=t(98765),s=t(14392),u=t(89607),d=t(5672),c=t(24847),f=t(39636),p=t(96007),v=t(98370),m=t(59044),h=t(92672),g=t(36432),w=t(85965),b=t(28064),x="NavigationMenu",[y,C,R]=(0,p.N)(x),[T,E,j]=(0,p.N)(x),[S,P]=(0,a.A)(x,[R,j]),[A,k]=S(x),[N,D]=S(x),I=n.forwardRef((e,r)=>{let{__scopeNavigationMenu:t,value:o,onValueChange:a,defaultValue:l,delayDuration:c=200,skipDelayDuration:f=300,orientation:p="horizontal",dir:v,...m}=e,[h,g]=n.useState(null),w=(0,u.s)(r,e=>g(e)),y=(0,d.jH)(v),C=n.useRef(0),R=n.useRef(0),T=n.useRef(0),[E,j]=n.useState(!0),[S,P]=(0,s.i)({prop:o,onChange:e=>{let r=f>0;""!==e?(window.clearTimeout(T.current),r&&j(!1)):(window.clearTimeout(T.current),T.current=window.setTimeout(()=>j(!0),f)),null==a||a(e)},defaultProp:null!=l?l:"",caller:x}),A=n.useCallback(()=>{window.clearTimeout(R.current),R.current=window.setTimeout(()=>P(""),150)},[P]),k=n.useCallback(e=>{window.clearTimeout(R.current),P(e)},[P]),N=n.useCallback(e=>{S===e?window.clearTimeout(R.current):C.current=window.setTimeout(()=>{window.clearTimeout(R.current),P(e)},c)},[S,P,c]);return n.useEffect(()=>()=>{window.clearTimeout(C.current),window.clearTimeout(R.current),window.clearTimeout(T.current)},[]),(0,b.jsx)(M,{scope:t,isRootMenu:!0,value:S,dir:y,orientation:p,rootNavigationMenu:h,onTriggerEnter:e=>{window.clearTimeout(C.current),E?N(e):k(e)},onTriggerLeave:()=>{window.clearTimeout(C.current),A()},onContentEnter:()=>window.clearTimeout(R.current),onContentLeave:A,onItemSelect:e=>{P(r=>r===e?"":e)},onItemDismiss:()=>P(""),children:(0,b.jsx)(i.sG.nav,{"aria-label":"Main","data-orientation":p,dir:y,...m,ref:w})})});I.displayName=x;var L="NavigationMenuSub",F=n.forwardRef((e,r)=>{let{__scopeNavigationMenu:t,value:n,onValueChange:o,defaultValue:a,orientation:l="horizontal",...u}=e,d=k(L,t),[c,f]=(0,s.i)({prop:n,onChange:o,defaultProp:null!=a?a:"",caller:L});return(0,b.jsx)(M,{scope:t,isRootMenu:!1,value:c,dir:d.dir,orientation:l,rootNavigationMenu:d.rootNavigationMenu,onTriggerEnter:e=>f(e),onItemSelect:e=>f(e),onItemDismiss:()=>f(""),children:(0,b.jsx)(i.sG.div,{"data-orientation":l,...u,ref:r})})});F.displayName=L;var M=e=>{let{scope:r,isRootMenu:t,rootNavigationMenu:o,dir:a,orientation:l,children:i,value:s,onItemSelect:u,onItemDismiss:d,onTriggerEnter:c,onTriggerLeave:p,onContentEnter:v,onContentLeave:h}=e,[w,x]=n.useState(null),[C,R]=n.useState(new Map),[T,E]=n.useState(null);return(0,b.jsx)(A,{scope:r,isRootMenu:t,rootNavigationMenu:o,value:s,previousValue:(0,m.Z)(s),baseId:(0,f.B)(),dir:a,orientation:l,viewport:w,onViewportChange:x,indicatorTrack:T,onIndicatorTrackChange:E,onTriggerEnter:(0,g.c)(c),onTriggerLeave:(0,g.c)(p),onContentEnter:(0,g.c)(v),onContentLeave:(0,g.c)(h),onItemSelect:(0,g.c)(u),onItemDismiss:(0,g.c)(d),onViewportContentChange:n.useCallback((e,r)=>{R(t=>(t.set(e,r),new Map(t)))},[]),onViewportContentRemove:n.useCallback(e=>{R(r=>r.has(e)?(r.delete(e),new Map(r)):r)},[]),children:(0,b.jsx)(y.Provider,{scope:r,children:(0,b.jsx)(N,{scope:r,items:C,children:i})})})},_="NavigationMenuList",O=n.forwardRef((e,r)=>{let{__scopeNavigationMenu:t,...n}=e,o=k(_,t),a=(0,b.jsx)(i.sG.ul,{"data-orientation":o.orientation,...n,ref:r});return(0,b.jsx)(i.sG.div,{style:{position:"relative"},ref:o.onIndicatorTrackChange,children:(0,b.jsx)(y.Slot,{scope:t,children:o.isRootMenu?(0,b.jsx)(eo,{asChild:!0,children:a}):a})})});O.displayName=_;var G="NavigationMenuItem",[H,K]=S(G),z=n.forwardRef((e,r)=>{let{__scopeNavigationMenu:t,value:o,...a}=e,l=(0,f.B)(),s=n.useRef(null),u=n.useRef(null),d=n.useRef(null),c=n.useRef(()=>{}),p=n.useRef(!1),v=n.useCallback(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"start";if(s.current){c.current();let r=ei(s.current);r.length&&es("start"===e?r:r.reverse())}},[]),m=n.useCallback(()=>{if(s.current){let e=ei(s.current);e.length&&(c.current=function(e){return e.forEach(e=>{e.dataset.tabindex=e.getAttribute("tabindex")||"",e.setAttribute("tabindex","-1")}),()=>{e.forEach(e=>{let r=e.dataset.tabindex;e.setAttribute("tabindex",r)})}}(e))}},[]);return(0,b.jsx)(H,{scope:t,value:o||l||"LEGACY_REACT_AUTO_VALUE",triggerRef:u,contentRef:s,focusProxyRef:d,wasEscapeCloseRef:p,onEntryKeyDown:v,onFocusProxyEnter:v,onRootContentClose:m,onContentFocusOutside:m,children:(0,b.jsx)(i.sG.li,{...a,ref:r})})});z.displayName=G;var B="NavigationMenuTrigger",V=n.forwardRef((e,r)=>{let{__scopeNavigationMenu:t,disabled:o,...a}=e,s=k(B,e.__scopeNavigationMenu),d=K(B,e.__scopeNavigationMenu),c=n.useRef(null),f=(0,u.s)(c,d.triggerRef,r),p=ec(s.baseId,d.value),v=ef(s.baseId,d.value),m=n.useRef(!1),h=n.useRef(!1),g=d.value===s.value;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(y.ItemSlot,{scope:t,value:d.value,children:(0,b.jsx)(el,{asChild:!0,children:(0,b.jsx)(i.sG.button,{id:p,disabled:o,"data-disabled":o?"":void 0,"data-state":ed(g),"aria-expanded":g,"aria-controls":v,...a,ref:f,onPointerEnter:(0,l.m)(e.onPointerEnter,()=>{h.current=!1,d.wasEscapeCloseRef.current=!1}),onPointerMove:(0,l.m)(e.onPointerMove,ep(()=>{o||h.current||d.wasEscapeCloseRef.current||m.current||(s.onTriggerEnter(d.value),m.current=!0)})),onPointerLeave:(0,l.m)(e.onPointerLeave,ep(()=>{o||(s.onTriggerLeave(),m.current=!1)})),onClick:(0,l.m)(e.onClick,()=>{s.onItemSelect(d.value),h.current=g}),onKeyDown:(0,l.m)(e.onKeyDown,e=>{let r={horizontal:"ArrowDown",vertical:"rtl"===s.dir?"ArrowLeft":"ArrowRight"}[s.orientation];g&&e.key===r&&(d.onEntryKeyDown(),e.preventDefault())})})})}),g&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(w.bL,{"aria-hidden":!0,tabIndex:0,ref:d.focusProxyRef,onFocus:e=>{let r=d.contentRef.current,t=e.relatedTarget,n=t===c.current,o=null==r?void 0:r.contains(t);(n||!o)&&d.onFocusProxyEnter(n?"start":"end")}}),s.viewport&&(0,b.jsx)("span",{"aria-owns":v})]})]})});V.displayName=B;var U="navigationMenu.linkSelect",q=n.forwardRef((e,r)=>{let{__scopeNavigationMenu:t,active:n,onSelect:o,...a}=e;return(0,b.jsx)(el,{asChild:!0,children:(0,b.jsx)(i.sG.a,{"data-active":n?"":void 0,"aria-current":n?"page":void 0,...a,ref:r,onClick:(0,l.m)(e.onClick,e=>{let r=e.target,t=new CustomEvent(U,{bubbles:!0,cancelable:!0});if(r.addEventListener(U,e=>null==o?void 0:o(e),{once:!0}),(0,i.hO)(r,t),!t.defaultPrevented&&!e.metaKey){let e=new CustomEvent($,{bubbles:!0,cancelable:!0});(0,i.hO)(r,e)}},{checkForDefaultPrevented:!1})})})});q.displayName="NavigationMenuLink";var W="NavigationMenuIndicator",X=n.forwardRef((e,r)=>{let{forceMount:t,...n}=e,a=k(W,e.__scopeNavigationMenu),l=!!a.value;return a.indicatorTrack?o.createPortal((0,b.jsx)(c.C,{present:t||l,children:(0,b.jsx)(Y,{...n,ref:r})}),a.indicatorTrack):null});X.displayName=W;var Y=n.forwardRef((e,r)=>{let{__scopeNavigationMenu:t,...o}=e,a=k(W,t),l=C(t),[s,u]=n.useState(null),[d,c]=n.useState(null),f="horizontal"===a.orientation,p=!!a.value;n.useEffect(()=>{var e;let r=null==(e=l().find(e=>e.value===a.value))?void 0:e.ref.current;r&&u(r)},[l,a.value]);let v=()=>{s&&c({size:f?s.offsetWidth:s.offsetHeight,offset:f?s.offsetLeft:s.offsetTop})};return eu(s,v),eu(a.indicatorTrack,v),d?(0,b.jsx)(i.sG.div,{"aria-hidden":!0,"data-state":p?"visible":"hidden","data-orientation":a.orientation,...o,ref:r,style:{position:"absolute",...f?{left:0,width:d.size+"px",transform:"translateX(".concat(d.offset,"px)")}:{top:0,height:d.size+"px",transform:"translateY(".concat(d.offset,"px)")},...o.style}}):null}),Z="NavigationMenuContent",J=n.forwardRef((e,r)=>{let{forceMount:t,...n}=e,o=k(Z,e.__scopeNavigationMenu),a=K(Z,e.__scopeNavigationMenu),i=(0,u.s)(a.contentRef,r),s=a.value===o.value,d={value:a.value,triggerRef:a.triggerRef,focusProxyRef:a.focusProxyRef,wasEscapeCloseRef:a.wasEscapeCloseRef,onContentFocusOutside:a.onContentFocusOutside,onRootContentClose:a.onRootContentClose,...n};return o.viewport?(0,b.jsx)(Q,{forceMount:t,...d,ref:i}):(0,b.jsx)(c.C,{present:t||s,children:(0,b.jsx)(ee,{"data-state":ed(s),...d,ref:i,onPointerEnter:(0,l.m)(e.onPointerEnter,o.onContentEnter),onPointerLeave:(0,l.m)(e.onPointerLeave,ep(o.onContentLeave)),style:{pointerEvents:!s&&o.isRootMenu?"none":void 0,...d.style}})})});J.displayName=Z;var Q=n.forwardRef((e,r)=>{let{onViewportContentChange:t,onViewportContentRemove:n}=k(Z,e.__scopeNavigationMenu);return(0,h.N)(()=>{t(e.value,{ref:r,...e})},[e,r,t]),(0,h.N)(()=>()=>n(e.value),[e.value,n]),null}),$="navigationMenu.rootContentDismiss",ee=n.forwardRef((e,r)=>{let{__scopeNavigationMenu:t,value:o,triggerRef:a,focusProxyRef:i,wasEscapeCloseRef:s,onRootContentClose:d,onContentFocusOutside:c,...f}=e,p=k(Z,t),m=n.useRef(null),h=(0,u.s)(m,r),g=ec(p.baseId,o),w=ef(p.baseId,o),x=C(t),y=n.useRef(null),{onItemDismiss:R}=p;n.useEffect(()=>{let e=m.current;if(p.isRootMenu&&e){let r=()=>{var r;R(),d(),e.contains(document.activeElement)&&(null==(r=a.current)||r.focus())};return e.addEventListener($,r),()=>e.removeEventListener($,r)}},[p.isRootMenu,e.value,a,R,d]);let T=n.useMemo(()=>{let e=x().map(e=>e.value);"rtl"===p.dir&&e.reverse();let r=e.indexOf(p.value),t=e.indexOf(p.previousValue),n=o===p.value,a=t===e.indexOf(o);if(!n&&!a)return y.current;let l=(()=>{if(r!==t){if(n&&-1!==t)return r>t?"from-end":"from-start";if(a&&-1!==r)return r>t?"to-start":"to-end"}return null})();return y.current=l,l},[p.previousValue,p.value,p.dir,x,o]);return(0,b.jsx)(eo,{asChild:!0,children:(0,b.jsx)(v.qW,{id:w,"aria-labelledby":g,"data-motion":T,"data-orientation":p.orientation,...f,ref:h,disableOutsidePointerEvents:!1,onDismiss:()=>{var e;let r=new Event($,{bubbles:!0,cancelable:!0});null==(e=m.current)||e.dispatchEvent(r)},onFocusOutside:(0,l.m)(e.onFocusOutside,e=>{var r;c();let t=e.target;(null==(r=p.rootNavigationMenu)?void 0:r.contains(t))&&e.preventDefault()}),onPointerDownOutside:(0,l.m)(e.onPointerDownOutside,e=>{var r;let t=e.target,n=x().some(e=>{var r;return null==(r=e.ref.current)?void 0:r.contains(t)}),o=p.isRootMenu&&(null==(r=p.viewport)?void 0:r.contains(t));(n||o||!p.isRootMenu)&&e.preventDefault()}),onKeyDown:(0,l.m)(e.onKeyDown,e=>{let r=e.altKey||e.ctrlKey||e.metaKey;if("Tab"===e.key&&!r){let r=ei(e.currentTarget),n=document.activeElement,o=r.findIndex(e=>e===n);if(es(e.shiftKey?r.slice(0,o).reverse():r.slice(o+1,r.length)))e.preventDefault();else{var t;null==(t=i.current)||t.focus()}}}),onEscapeKeyDown:(0,l.m)(e.onEscapeKeyDown,e=>{s.current=!0})})})}),er="NavigationMenuViewport",et=n.forwardRef((e,r)=>{let{forceMount:t,...n}=e,o=!!k(er,e.__scopeNavigationMenu).value;return(0,b.jsx)(c.C,{present:t||o,children:(0,b.jsx)(en,{...n,ref:r})})});et.displayName=er;var en=n.forwardRef((e,r)=>{let{__scopeNavigationMenu:t,children:o,...a}=e,s=k(er,t),d=(0,u.s)(r,s.onViewportChange),f=D(Z,e.__scopeNavigationMenu),[p,v]=n.useState(null),[m,h]=n.useState(null),g=p?(null==p?void 0:p.width)+"px":void 0,w=p?(null==p?void 0:p.height)+"px":void 0,x=!!s.value,y=x?s.value:s.previousValue;return eu(m,()=>{m&&v({width:m.offsetWidth,height:m.offsetHeight})}),(0,b.jsx)(i.sG.div,{"data-state":ed(x),"data-orientation":s.orientation,...a,ref:d,style:{pointerEvents:!x&&s.isRootMenu?"none":void 0,"--radix-navigation-menu-viewport-width":g,"--radix-navigation-menu-viewport-height":w,...a.style},onPointerEnter:(0,l.m)(e.onPointerEnter,s.onContentEnter),onPointerLeave:(0,l.m)(e.onPointerLeave,ep(s.onContentLeave)),children:Array.from(f.items).map(e=>{let[r,{ref:t,forceMount:n,...o}]=e,a=y===r;return(0,b.jsx)(c.C,{present:n||a,children:(0,b.jsx)(ee,{...o,ref:(0,u.t)(t,e=>{a&&e&&h(e)})})},r)})})}),eo=n.forwardRef((e,r)=>{let{__scopeNavigationMenu:t,...n}=e,o=k("FocusGroup",t);return(0,b.jsx)(T.Provider,{scope:t,children:(0,b.jsx)(T.Slot,{scope:t,children:(0,b.jsx)(i.sG.div,{dir:o.dir,...n,ref:r})})})}),ea=["ArrowRight","ArrowLeft","ArrowUp","ArrowDown"],el=n.forwardRef((e,r)=>{let{__scopeNavigationMenu:t,...n}=e,o=E(t),a=k("FocusGroupItem",t);return(0,b.jsx)(T.ItemSlot,{scope:t,children:(0,b.jsx)(i.sG.button,{...n,ref:r,onKeyDown:(0,l.m)(e.onKeyDown,e=>{if(["Home","End",...ea].includes(e.key)){let r=o().map(e=>e.ref.current);if(["rtl"===a.dir?"ArrowRight":"ArrowLeft","ArrowUp","End"].includes(e.key)&&r.reverse(),ea.includes(e.key)){let t=r.indexOf(e.currentTarget);r=r.slice(t+1)}setTimeout(()=>es(r)),e.preventDefault()}})})})});function ei(e){let r=[],t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let r="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||r?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;t.nextNode();)r.push(t.currentNode);return r}function es(e){let r=document.activeElement;return e.some(e=>e===r||(e.focus(),document.activeElement!==r))}function eu(e,r){let t=(0,g.c)(r);(0,h.N)(()=>{let r=0;if(e){let n=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(t)});return n.observe(e),()=>{window.cancelAnimationFrame(r),n.unobserve(e)}}},[e,t])}function ed(e){return e?"open":"closed"}function ec(e,r){return"".concat(e,"-trigger-").concat(r)}function ef(e,r){return"".concat(e,"-content-").concat(r)}function ep(e){return r=>"mouse"===r.pointerType?e(r):void 0}var ev=I,em=F,eh=O,eg=z,ew=V,eb=q,ex=X,ey=J,eC=et},59668:(e,r,t)=>{t.r(r),t.d(r,{Indicator:()=>y,Progress:()=>f,ProgressIndicator:()=>v,Root:()=>x,createProgressScope:()=>u});var n=t(74188),o=t(68533),a=t(98765),l=t(28064),i="Progress",[s,u]=(0,o.A)(i),[d,c]=s(i),f=n.forwardRef((e,r)=>{let{__scopeProgress:t,value:n=null,max:o,getValueLabel:i=m,...s}=e;(o||0===o)&&w(o);let u=w(o)?o:100;null!==n&&b(n,u);let c=b(n,u)?n:null,f=g(c)?i(c,u):void 0;return(0,l.jsx)(d,{scope:t,value:c,max:u,children:(0,l.jsx)(a.sG.div,{"aria-valuemax":u,"aria-valuemin":0,"aria-valuenow":g(c)?c:void 0,"aria-valuetext":f,role:"progressbar","data-state":h(c,u),"data-value":null!=c?c:void 0,"data-max":u,...s,ref:r})})});f.displayName=i;var p="ProgressIndicator",v=n.forwardRef((e,r)=>{var t;let{__scopeProgress:n,...o}=e,i=c(p,n);return(0,l.jsx)(a.sG.div,{"data-state":h(i.value,i.max),"data-value":null!=(t=i.value)?t:void 0,"data-max":i.max,...o,ref:r})});function m(e,r){return"".concat(Math.round(e/r*100),"%")}function h(e,r){return null==e?"indeterminate":e===r?"complete":"loading"}function g(e){return"number"==typeof e}function w(e){return g(e)&&!isNaN(e)&&e>0}function b(e,r){return g(e)&&!isNaN(e)&&e<=r&&e>=0}v.displayName=p;var x=f,y=v},62899:(e,r,t)=>{t.r(r),t.d(r,{Control:()=>W,Field:()=>U,Form:()=>w,FormControl:()=>j,FormField:()=>C,FormLabel:()=>T,FormMessage:()=>k,FormSubmit:()=>M,FormValidityState:()=>F,Label:()=>q,Message:()=>X,Root:()=>V,Submit:()=>Z,ValidityState:()=>Y,createFormScope:()=>f});var n=t(74188),o=t(48841),a=t(89607),l=t(68533),i=t(39636),s=t(20605),u=t(98765),d=t(28064),[c,f]=(0,l.A)("Form"),p="Form",[v,m]=c(p),[h,g]=c(p),w=n.forwardRef((e,r)=>{let{__scopeForm:t,onClearServerErrors:l=()=>{},...i}=e,s=n.useRef(null),c=(0,a.s)(r,s),[f,p]=n.useState({}),m=n.useCallback(e=>f[e],[f]),g=n.useCallback((e,r)=>p(t=>{var n;return{...t,[e]:{...null!=(n=t[e])?n:{},...r}}}),[]),w=n.useCallback(e=>{p(r=>({...r,[e]:void 0})),E(r=>({...r,[e]:{}}))},[]),[b,x]=n.useState({}),y=n.useCallback(e=>{var r;return null!=(r=b[e])?r:[]},[b]),C=n.useCallback((e,r)=>{x(t=>{var n;return{...t,[e]:[...null!=(n=t[e])?n:[],r]}})},[]),R=n.useCallback((e,r)=>{x(t=>{var n;return{...t,[e]:(null!=(n=t[e])?n:[]).filter(e=>e.id!==r)}})},[]),[T,E]=n.useState({}),j=n.useCallback(e=>{var r;return null!=(r=T[e])?r:{}},[T]),S=n.useCallback((e,r)=>{E(t=>{var n;return{...t,[e]:{...null!=(n=t[e])?n:{},...r}}})},[]),[P,A]=n.useState({}),k=n.useCallback((e,r)=>{A(t=>{let n=new Set(t[e]).add(r);return{...t,[e]:n}})},[]),N=n.useCallback((e,r)=>{A(t=>{let n=new Set(t[e]);return n.delete(r),{...t,[e]:n}})},[]),D=n.useCallback(e=>{var r;return Array.from(null!=(r=P[e])?r:[]).join(" ")||void 0},[P]);return(0,d.jsx)(v,{scope:t,getFieldValidity:m,onFieldValidityChange:g,getFieldCustomMatcherEntries:y,onFieldCustomMatcherEntryAdd:C,onFieldCustomMatcherEntryRemove:R,getFieldCustomErrors:j,onFieldCustomErrorsChange:S,onFieldValiditionClear:w,children:(0,d.jsx)(h,{scope:t,onFieldMessageIdAdd:k,onFieldMessageIdRemove:N,getFieldDescription:D,children:(0,d.jsx)(u.sG.form,{...i,ref:c,onInvalid:(0,o.m)(e.onInvalid,e=>{let r=H(e.currentTarget);r===e.target&&r.focus(),e.preventDefault()}),onSubmit:(0,o.m)(e.onSubmit,l,{checkForDefaultPrevented:!1}),onReset:(0,o.m)(e.onReset,l)})})})});w.displayName=p;var b="FormField",[x,y]=c(b),C=n.forwardRef((e,r)=>{let{__scopeForm:t,name:n,serverInvalid:o=!1,...a}=e,l=m(b,t).getFieldValidity(n),s=(0,i.B)();return(0,d.jsx)(x,{scope:t,id:s,name:n,serverInvalid:o,children:(0,d.jsx)(u.sG.div,{"data-valid":z(l,o),"data-invalid":B(l,o),...a,ref:r})})});C.displayName=b;var R="FormLabel",T=n.forwardRef((e,r)=>{let{__scopeForm:t,...n}=e,o=m(R,t),a=y(R,t),l=n.htmlFor||a.id,i=o.getFieldValidity(a.name);return(0,d.jsx)(s.Label,{"data-valid":z(i,a.serverInvalid),"data-invalid":B(i,a.serverInvalid),...n,ref:r,htmlFor:l})});T.displayName=R;var E="FormControl",j=n.forwardRef((e,r)=>{let{__scopeForm:t,...l}=e,i=m(E,t),s=y(E,t),c=g(E,t),f=n.useRef(null),p=(0,a.s)(r,f),v=l.name||s.name,h=l.id||s.id,w=i.getFieldCustomMatcherEntries(v),{onFieldValidityChange:b,onFieldCustomErrorsChange:x,onFieldValiditionClear:C}=i,R=n.useCallback(async e=>{if(K(e.validity))return void b(v,_(e.validity));let r=e.form?new FormData(e.form):new FormData,t=[e.value,r],n=[],o=[];w.forEach(e=>{!function(e,r){var t;return"AsyncFunction"===e.match.constructor.name||(t=e.match,t(...r)instanceof Promise)}(e,t)?"Function"===e.match.constructor.name&&n.push(e):o.push(e)});let a=Object.fromEntries(n.map(e=>{let{id:r,match:n}=e;return[r,n(...t)]})),l=Object.values(a).some(Boolean);if(e.setCustomValidity(l?S:""),b(v,_(e.validity)),x(v,a),!l&&o.length>0){let r=o.map(e=>{let{id:r,match:n}=e;return n(...t).then(e=>[r,e])}),n=Object.fromEntries(await Promise.all(r)),a=Object.values(n).some(Boolean);e.setCustomValidity(a?S:""),b(v,_(e.validity)),x(v,n)}},[w,v,x,b]);n.useEffect(()=>{let e=f.current;if(e){let r=()=>R(e);return e.addEventListener("change",r),()=>e.removeEventListener("change",r)}},[R]);let T=n.useCallback(()=>{let e=f.current;e&&(e.setCustomValidity(""),C(v))},[v,C]);n.useEffect(()=>{var e;let r=null==(e=f.current)?void 0:e.form;if(r)return r.addEventListener("reset",T),()=>r.removeEventListener("reset",T)},[T]),n.useEffect(()=>{let e=f.current,r=null==e?void 0:e.closest("form");if(r&&s.serverInvalid){let t=H(r);t===e&&t.focus()}},[s.serverInvalid]);let j=i.getFieldValidity(v);return(0,d.jsx)(u.sG.input,{"data-valid":z(j,s.serverInvalid),"data-invalid":B(j,s.serverInvalid),"aria-invalid":!!s.serverInvalid||void 0,"aria-describedby":c.getFieldDescription(v),title:"",...l,ref:p,id:h,name:v,onInvalid:(0,o.m)(e.onInvalid,e=>{R(e.currentTarget)}),onChange:(0,o.m)(e.onChange,e=>{T()})})});j.displayName=E;var S="This value is not valid",P={badInput:S,patternMismatch:"This value does not match the required pattern",rangeOverflow:"This value is too large",rangeUnderflow:"This value is too small",stepMismatch:"This value does not match the required step",tooLong:"This value is too long",tooShort:"This value is too short",typeMismatch:"This value does not match the required type",valid:void 0,valueMissing:"This value is missing"},A="FormMessage",k=n.forwardRef((e,r)=>{let{match:t,name:n,...o}=e,a=y(A,e.__scopeForm),l=null!=n?n:a.name;return void 0===t?(0,d.jsx)(I,{...o,ref:r,name:l,children:e.children||S}):"function"==typeof t?(0,d.jsx)(D,{match:t,...o,ref:r,name:l}):(0,d.jsx)(N,{match:t,...o,ref:r,name:l})});k.displayName=A;var N=n.forwardRef((e,r)=>{let{match:t,forceMatch:n=!1,name:o,children:a,...l}=e,i=m(A,l.__scopeForm).getFieldValidity(o);return n||(null==i?void 0:i[t])?(0,d.jsx)(I,{ref:r,...l,name:o,children:null!=a?a:P[t]}):null}),D=n.forwardRef((e,r)=>{let{match:t,forceMatch:o=!1,name:l,id:s,children:u,...c}=e,f=m(A,c.__scopeForm),p=n.useRef(null),v=(0,a.s)(r,p),h=(0,i.B)(),g=null!=s?s:h,w=n.useMemo(()=>({id:g,match:t}),[g,t]),{onFieldCustomMatcherEntryAdd:b,onFieldCustomMatcherEntryRemove:x}=f;n.useEffect(()=>(b(l,w),()=>x(l,w.id)),[w,l,b,x]);let y=f.getFieldValidity(l),C=f.getFieldCustomErrors(l)[g];return o||y&&!K(y)&&C?(0,d.jsx)(I,{id:g,ref:v,...c,name:l,children:null!=u?u:S}):null}),I=n.forwardRef((e,r)=>{let{__scopeForm:t,id:o,name:a,...l}=e,s=g(A,t),c=(0,i.B)(),f=null!=o?o:c,{onFieldMessageIdAdd:p,onFieldMessageIdRemove:v}=s;return n.useEffect(()=>(p(a,f),()=>v(a,f)),[a,f,p,v]),(0,d.jsx)(u.sG.span,{id:f,...l,ref:r})}),L="FormValidityState",F=e=>{let{__scopeForm:r,name:t,children:n}=e,o=m(L,r),a=y(L,r),l=null!=t?t:a.name,i=o.getFieldValidity(l);return(0,d.jsx)(d.Fragment,{children:n(i)})};F.displayName=L;var M=n.forwardRef((e,r)=>{let{__scopeForm:t,...n}=e;return(0,d.jsx)(u.sG.button,{type:"submit",...n,ref:r})});function _(e){let r={};for(let t in e)r[t]=e[t];return r}function O(e){return e instanceof HTMLElement}function G(e){return"validity"in e&&(!1===e.validity.valid||"true"===e.getAttribute("aria-invalid"))}function H(e){let[r]=Array.from(e.elements).filter(O).filter(G);return r}function K(e){let r=!1;for(let t in e)if("valid"!==t&&"customError"!==t&&e[t]){r=!0;break}return r}function z(e,r){if((null==e?void 0:e.valid)===!0&&!r)return!0}function B(e,r){if((null==e?void 0:e.valid)===!1||r)return!0}M.displayName="FormSubmit";var V=w,U=C,q=T,W=j,X=k,Y=F,Z=M},66262:(e,r,t)=>{t.r(r),t.d(r,{Arrow:()=>_,Content:()=>M,HoverCard:()=>y,HoverCardArrow:()=>N,HoverCardContent:()=>A,HoverCardPortal:()=>S,HoverCardTrigger:()=>R,Portal:()=>F,Root:()=>I,Trigger:()=>L,createHoverCardScope:()=>g});var n,o=t(74188),a=t(48841),l=t(68533),i=t(14392),s=t(89607),u=t(59078),d=t(58496),c=t(24847),f=t(98765),p=t(98370),v=t(28064),m="HoverCard",[h,g]=(0,l.A)(m,[u.Bk]),w=(0,u.Bk)(),[b,x]=h(m),y=e=>{let{__scopeHoverCard:r,children:t,open:n,defaultOpen:a,onOpenChange:l,openDelay:s=700,closeDelay:d=300}=e,c=w(r),f=o.useRef(0),p=o.useRef(0),h=o.useRef(!1),g=o.useRef(!1),[x,y]=(0,i.i)({prop:n,defaultProp:null!=a&&a,onChange:l,caller:m}),C=o.useCallback(()=>{clearTimeout(p.current),f.current=window.setTimeout(()=>y(!0),s)},[s,y]),R=o.useCallback(()=>{clearTimeout(f.current),h.current||g.current||(p.current=window.setTimeout(()=>y(!1),d))},[d,y]),T=o.useCallback(()=>y(!1),[y]);return o.useEffect(()=>()=>{clearTimeout(f.current),clearTimeout(p.current)},[]),(0,v.jsx)(b,{scope:r,open:x,onOpenChange:y,onOpen:C,onClose:R,onDismiss:T,hasSelectionRef:h,isPointerDownOnContentRef:g,children:(0,v.jsx)(u.bL,{...c,children:t})})};y.displayName=m;var C="HoverCardTrigger",R=o.forwardRef((e,r)=>{let{__scopeHoverCard:t,...n}=e,o=x(C,t),l=w(t);return(0,v.jsx)(u.Mz,{asChild:!0,...l,children:(0,v.jsx)(f.sG.a,{"data-state":o.open?"open":"closed",...n,ref:r,onPointerEnter:(0,a.m)(e.onPointerEnter,D(o.onOpen)),onPointerLeave:(0,a.m)(e.onPointerLeave,D(o.onClose)),onFocus:(0,a.m)(e.onFocus,o.onOpen),onBlur:(0,a.m)(e.onBlur,o.onClose),onTouchStart:(0,a.m)(e.onTouchStart,e=>e.preventDefault())})})});R.displayName=C;var T="HoverCardPortal",[E,j]=h(T,{forceMount:void 0}),S=e=>{let{__scopeHoverCard:r,forceMount:t,children:n,container:o}=e,a=x(T,r);return(0,v.jsx)(E,{scope:r,forceMount:t,children:(0,v.jsx)(c.C,{present:t||a.open,children:(0,v.jsx)(d.Portal,{asChild:!0,container:o,children:n})})})};S.displayName=T;var P="HoverCardContent",A=o.forwardRef((e,r)=>{let t=j(P,e.__scopeHoverCard),{forceMount:n=t.forceMount,...o}=e,l=x(P,e.__scopeHoverCard);return(0,v.jsx)(c.C,{present:n||l.open,children:(0,v.jsx)(k,{"data-state":l.open?"open":"closed",...o,onPointerEnter:(0,a.m)(e.onPointerEnter,D(l.onOpen)),onPointerLeave:(0,a.m)(e.onPointerLeave,D(l.onClose)),ref:r})})});A.displayName=P;var k=o.forwardRef((e,r)=>{let{__scopeHoverCard:t,onEscapeKeyDown:l,onPointerDownOutside:i,onFocusOutside:d,onInteractOutside:c,...f}=e,m=x(P,t),h=w(t),g=o.useRef(null),b=(0,s.s)(r,g),[y,C]=o.useState(!1);return o.useEffect(()=>{if(y){let e=document.body;return n=e.style.userSelect||e.style.webkitUserSelect,e.style.userSelect="none",e.style.webkitUserSelect="none",()=>{e.style.userSelect=n,e.style.webkitUserSelect=n}}},[y]),o.useEffect(()=>{if(g.current){let e=()=>{C(!1),m.isPointerDownOnContentRef.current=!1,setTimeout(()=>{var e;(null==(e=document.getSelection())?void 0:e.toString())!==""&&(m.hasSelectionRef.current=!0)})};return document.addEventListener("pointerup",e),()=>{document.removeEventListener("pointerup",e),m.hasSelectionRef.current=!1,m.isPointerDownOnContentRef.current=!1}}},[m.isPointerDownOnContentRef,m.hasSelectionRef]),o.useEffect(()=>{g.current&&(function(e){let r=[],t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;t.nextNode();)r.push(t.currentNode);return r})(g.current).forEach(e=>e.setAttribute("tabindex","-1"))}),(0,v.jsx)(p.qW,{asChild:!0,disableOutsidePointerEvents:!1,onInteractOutside:c,onEscapeKeyDown:l,onPointerDownOutside:i,onFocusOutside:(0,a.m)(d,e=>{e.preventDefault()}),onDismiss:m.onDismiss,children:(0,v.jsx)(u.UC,{...h,...f,onPointerDown:(0,a.m)(f.onPointerDown,e=>{e.currentTarget.contains(e.target)&&C(!0),m.hasSelectionRef.current=!1,m.isPointerDownOnContentRef.current=!0}),ref:b,style:{...f.style,userSelect:y?"text":void 0,WebkitUserSelect:y?"text":void 0,"--radix-hover-card-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-hover-card-content-available-width":"var(--radix-popper-available-width)","--radix-hover-card-content-available-height":"var(--radix-popper-available-height)","--radix-hover-card-trigger-width":"var(--radix-popper-anchor-width)","--radix-hover-card-trigger-height":"var(--radix-popper-anchor-height)"}})})}),N=o.forwardRef((e,r)=>{let{__scopeHoverCard:t,...n}=e,o=w(t);return(0,v.jsx)(u.i3,{...o,...n,ref:r})});function D(e){return r=>"touch"===r.pointerType?void 0:e()}N.displayName="HoverCardArrow";var I=y,L=R,F=S,M=A,_=N},74068:(e,r,t)=>{t.d(r,{z:()=>o});var n=t(18830);function o(){return(0,n.useSyncExternalStore)(a,()=>!0,()=>!1)}function a(){return()=>{}}},76837:(e,r,t)=>{var n=t(74188),o="function"==typeof Object.is?Object.is:function(e,r){return e===r&&(0!==e||1/e==1/r)||e!=e&&r!=r},a=n.useState,l=n.useEffect,i=n.useLayoutEffect,s=n.useDebugValue;function u(e){var r=e.getSnapshot;e=e.value;try{var t=r();return!o(e,t)}catch(e){return!0}}var d="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,r){return r()}:function(e,r){var t=r(),n=a({inst:{value:t,getSnapshot:r}}),o=n[0].inst,d=n[1];return i(function(){o.value=t,o.getSnapshot=r,u(o)&&d({inst:o})},[e,t,r]),l(function(){return u(o)&&d({inst:o}),e(function(){u(o)&&d({inst:o})})},[e]),s(t),t};r.useSyncExternalStore=void 0!==n.useSyncExternalStore?n.useSyncExternalStore:d},81727:(e,r,t)=>{t.r(r),t.d(r,{Arrow:()=>ei,CheckboxItem:()=>et,Content:()=>Q,Group:()=>$,Item:()=>er,ItemIndicator:()=>ea,Label:()=>ee,Menu:()=>Y,Menubar:()=>E,MenubarArrow:()=>B,MenubarCheckboxItem:()=>O,MenubarContent:()=>L,MenubarGroup:()=>F,MenubarItem:()=>_,MenubarItemIndicator:()=>K,MenubarLabel:()=>M,MenubarMenu:()=>A,MenubarPortal:()=>D,MenubarRadioGroup:()=>G,MenubarRadioItem:()=>H,MenubarSeparator:()=>z,MenubarSub:()=>U,MenubarSubContent:()=>W,MenubarSubTrigger:()=>q,MenubarTrigger:()=>N,Portal:()=>J,RadioGroup:()=>en,RadioItem:()=>eo,Root:()=>X,Separator:()=>el,Sub:()=>es,SubContent:()=>ed,SubTrigger:()=>eu,Trigger:()=>Z,createMenubarScope:()=>x});var n=t(74188),o=t(96007),a=t(5672),l=t(48841),i=t(89607),s=t(68533),u=t(39636),d=t(41490),c=t(69834),f=t(98765),p=t(14392),v=t(28064),m="Menubar",[h,g,w]=(0,o.N)(m),[b,x]=(0,s.A)(m,[w,c.RG]),y=(0,d.UE)(),C=(0,c.RG)(),[R,T]=b(m),E=n.forwardRef((e,r)=>{let{__scopeMenubar:t,value:o,onValueChange:l,defaultValue:i,loop:s=!0,dir:u,...d}=e,g=(0,a.jH)(u),w=C(t),[b,x]=(0,p.i)({prop:o,onChange:l,defaultProp:null!=i?i:"",caller:m}),[y,T]=n.useState(null);return(0,v.jsx)(R,{scope:t,value:b,onMenuOpen:n.useCallback(e=>{x(e),T(e)},[x]),onMenuClose:n.useCallback(()=>x(""),[x]),onMenuToggle:n.useCallback(e=>{x(r=>r?"":e),T(e)},[x]),dir:g,loop:s,children:(0,v.jsx)(h.Provider,{scope:t,children:(0,v.jsx)(h.Slot,{scope:t,children:(0,v.jsx)(c.bL,{asChild:!0,...w,orientation:"horizontal",loop:s,dir:g,currentTabStopId:y,onCurrentTabStopIdChange:T,children:(0,v.jsx)(f.sG.div,{role:"menubar",...d,ref:r})})})})})});E.displayName=m;var j="MenubarMenu",[S,P]=b(j),A=e=>{let{__scopeMenubar:r,value:t,...o}=e,a=(0,u.B)(),l=t||a||"LEGACY_REACT_AUTO_VALUE",i=T(j,r),s=y(r),c=n.useRef(null),f=n.useRef(!1),p=i.value===l;return n.useEffect(()=>{p||(f.current=!1)},[p]),(0,v.jsx)(S,{scope:r,value:l,triggerId:(0,u.B)(),triggerRef:c,contentId:(0,u.B)(),wasKeyboardTriggerOpenRef:f,children:(0,v.jsx)(d.bL,{...s,open:p,onOpenChange:e=>{e||i.onMenuClose()},modal:!1,dir:i.dir,...o})})};A.displayName=j;var k="MenubarTrigger",N=n.forwardRef((e,r)=>{let{__scopeMenubar:t,disabled:o=!1,...a}=e,s=C(t),u=y(t),p=T(k,t),m=P(k,t),g=n.useRef(null),w=(0,i.s)(r,g,m.triggerRef),[b,x]=n.useState(!1),R=p.value===m.value;return(0,v.jsx)(h.ItemSlot,{scope:t,value:m.value,disabled:o,children:(0,v.jsx)(c.q7,{asChild:!0,...s,focusable:!o,tabStopId:m.value,children:(0,v.jsx)(d.Mz,{asChild:!0,...u,children:(0,v.jsx)(f.sG.button,{type:"button",role:"menuitem",id:m.triggerId,"aria-haspopup":"menu","aria-expanded":R,"aria-controls":R?m.contentId:void 0,"data-highlighted":b?"":void 0,"data-state":R?"open":"closed","data-disabled":o?"":void 0,disabled:o,...a,ref:w,onPointerDown:(0,l.m)(e.onPointerDown,e=>{!o&&0===e.button&&!1===e.ctrlKey&&(p.onMenuOpen(m.value),R||e.preventDefault())}),onPointerEnter:(0,l.m)(e.onPointerEnter,()=>{if(p.value&&!R){var e;p.onMenuOpen(m.value),null==(e=g.current)||e.focus()}}),onKeyDown:(0,l.m)(e.onKeyDown,e=>{!o&&(["Enter"," "].includes(e.key)&&p.onMenuToggle(m.value),"ArrowDown"===e.key&&p.onMenuOpen(m.value),["Enter"," ","ArrowDown"].includes(e.key)&&(m.wasKeyboardTriggerOpenRef.current=!0,e.preventDefault()))}),onFocus:(0,l.m)(e.onFocus,()=>x(!0)),onBlur:(0,l.m)(e.onBlur,()=>x(!1))})})})})});N.displayName=k;var D=e=>{let{__scopeMenubar:r,...t}=e,n=y(r);return(0,v.jsx)(d.ZL,{...n,...t})};D.displayName="MenubarPortal";var I="MenubarContent",L=n.forwardRef((e,r)=>{let{__scopeMenubar:t,align:o="start",...a}=e,i=y(t),s=T(I,t),u=P(I,t),c=g(t),f=n.useRef(!1);return(0,v.jsx)(d.UC,{id:u.contentId,"aria-labelledby":u.triggerId,"data-radix-menubar-content":"",...i,...a,ref:r,align:o,onCloseAutoFocus:(0,l.m)(e.onCloseAutoFocus,e=>{if(!s.value&&!f.current){var r;null==(r=u.triggerRef.current)||r.focus()}f.current=!1,e.preventDefault()}),onFocusOutside:(0,l.m)(e.onFocusOutside,e=>{let r=e.target;c().some(e=>{var t;return null==(t=e.ref.current)?void 0:t.contains(r)})&&e.preventDefault()}),onInteractOutside:(0,l.m)(e.onInteractOutside,()=>{f.current=!0}),onEntryFocus:e=>{u.wasKeyboardTriggerOpenRef.current||e.preventDefault()},onKeyDown:(0,l.m)(e.onKeyDown,e=>{if(["ArrowRight","ArrowLeft"].includes(e.key)){let r=e.target,t=r.hasAttribute("data-radix-menubar-subtrigger"),n=r.closest("[data-radix-menubar-content]")!==e.currentTarget,o=("rtl"===s.dir?"ArrowRight":"ArrowLeft")===e.key;if(!o&&t||n&&o)return;let a=c().filter(e=>!e.disabled).map(e=>e.value);o&&a.reverse();let l=a.indexOf(u.value),[i]=a=s.loop?function(e,r){return e.map((t,n)=>e[(r+n)%e.length])}(a,l+1):a.slice(l+1);i&&s.onMenuOpen(i)}},{checkForDefaultPrevented:!1}),style:{...e.style,"--radix-menubar-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-menubar-content-available-width":"var(--radix-popper-available-width)","--radix-menubar-content-available-height":"var(--radix-popper-available-height)","--radix-menubar-trigger-width":"var(--radix-popper-anchor-width)","--radix-menubar-trigger-height":"var(--radix-popper-anchor-height)"}})});L.displayName=I;var F=n.forwardRef((e,r)=>{let{__scopeMenubar:t,...n}=e,o=y(t);return(0,v.jsx)(d.YJ,{...o,...n,ref:r})});F.displayName="MenubarGroup";var M=n.forwardRef((e,r)=>{let{__scopeMenubar:t,...n}=e,o=y(t);return(0,v.jsx)(d.JU,{...o,...n,ref:r})});M.displayName="MenubarLabel";var _=n.forwardRef((e,r)=>{let{__scopeMenubar:t,...n}=e,o=y(t);return(0,v.jsx)(d.q7,{...o,...n,ref:r})});_.displayName="MenubarItem";var O=n.forwardRef((e,r)=>{let{__scopeMenubar:t,...n}=e,o=y(t);return(0,v.jsx)(d.H_,{...o,...n,ref:r})});O.displayName="MenubarCheckboxItem";var G=n.forwardRef((e,r)=>{let{__scopeMenubar:t,...n}=e,o=y(t);return(0,v.jsx)(d.z6,{...o,...n,ref:r})});G.displayName="MenubarRadioGroup";var H=n.forwardRef((e,r)=>{let{__scopeMenubar:t,...n}=e,o=y(t);return(0,v.jsx)(d.hN,{...o,...n,ref:r})});H.displayName="MenubarRadioItem";var K=n.forwardRef((e,r)=>{let{__scopeMenubar:t,...n}=e,o=y(t);return(0,v.jsx)(d.VF,{...o,...n,ref:r})});K.displayName="MenubarItemIndicator";var z=n.forwardRef((e,r)=>{let{__scopeMenubar:t,...n}=e,o=y(t);return(0,v.jsx)(d.wv,{...o,...n,ref:r})});z.displayName="MenubarSeparator";var B=n.forwardRef((e,r)=>{let{__scopeMenubar:t,...n}=e,o=y(t);return(0,v.jsx)(d.i3,{...o,...n,ref:r})});B.displayName="MenubarArrow";var V="MenubarSub",U=e=>{let{__scopeMenubar:r,children:t,open:n,onOpenChange:o,defaultOpen:a}=e,l=y(r),[i,s]=(0,p.i)({prop:n,defaultProp:null!=a&&a,onChange:o,caller:V});return(0,v.jsx)(d.Pb,{...l,open:i,onOpenChange:s,children:t})};U.displayName=V;var q=n.forwardRef((e,r)=>{let{__scopeMenubar:t,...n}=e,o=y(t);return(0,v.jsx)(d.ZP,{"data-radix-menubar-subtrigger":"",...o,...n,ref:r})});q.displayName="MenubarSubTrigger";var W=n.forwardRef((e,r)=>{let{__scopeMenubar:t,...n}=e,o=y(t);return(0,v.jsx)(d.G5,{...o,"data-radix-menubar-content":"",...n,ref:r,style:{...e.style,"--radix-menubar-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-menubar-content-available-width":"var(--radix-popper-available-width)","--radix-menubar-content-available-height":"var(--radix-popper-available-height)","--radix-menubar-trigger-width":"var(--radix-popper-anchor-width)","--radix-menubar-trigger-height":"var(--radix-popper-anchor-height)"}})});W.displayName="MenubarSubContent";var X=E,Y=A,Z=N,J=D,Q=L,$=F,ee=M,er=_,et=O,en=G,eo=H,ea=K,el=z,ei=B,es=U,eu=q,ed=W},91554:(e,r,t)=>{t.r(r),t.d(r,{Anchor:()=>q,Arrow:()=>J,Close:()=>Z,Content:()=>Y,Popover:()=>j,PopoverAnchor:()=>P,PopoverArrow:()=>B,PopoverClose:()=>z,PopoverContent:()=>M,PopoverPortal:()=>L,PopoverTrigger:()=>k,Portal:()=>X,Root:()=>U,Trigger:()=>W,createPopoverScope:()=>C});var n=t(74188),o=t(48841),a=t(89607),l=t(68533),i=t(98370),s=t(59103),u=t(97676),d=t(39636),c=t(59078),f=t(58496),p=t(24847),v=t(98765),m=t(8059),h=t(14392),g=t(28056),w=t(58779),b=t(28064),x="Popover",[y,C]=(0,l.A)(x,[c.Bk]),R=(0,c.Bk)(),[T,E]=y(x),j=e=>{let{__scopePopover:r,children:t,open:o,defaultOpen:a,onOpenChange:l,modal:i=!1}=e,s=R(r),u=n.useRef(null),[f,p]=n.useState(!1),[v,m]=(0,h.i)({prop:o,defaultProp:null!=a&&a,onChange:l,caller:x});return(0,b.jsx)(c.bL,{...s,children:(0,b.jsx)(T,{scope:r,contentId:(0,d.B)(),triggerRef:u,open:v,onOpenChange:m,onOpenToggle:n.useCallback(()=>m(e=>!e),[m]),hasCustomAnchor:f,onCustomAnchorAdd:n.useCallback(()=>p(!0),[]),onCustomAnchorRemove:n.useCallback(()=>p(!1),[]),modal:i,children:t})})};j.displayName=x;var S="PopoverAnchor",P=n.forwardRef((e,r)=>{let{__scopePopover:t,...o}=e,a=E(S,t),l=R(t),{onCustomAnchorAdd:i,onCustomAnchorRemove:s}=a;return n.useEffect(()=>(i(),()=>s()),[i,s]),(0,b.jsx)(c.Mz,{...l,...o,ref:r})});P.displayName=S;var A="PopoverTrigger",k=n.forwardRef((e,r)=>{let{__scopePopover:t,...n}=e,l=E(A,t),i=R(t),s=(0,a.s)(r,l.triggerRef),u=(0,b.jsx)(v.sG.button,{type:"button","aria-haspopup":"dialog","aria-expanded":l.open,"aria-controls":l.contentId,"data-state":V(l.open),...n,ref:s,onClick:(0,o.m)(e.onClick,l.onOpenToggle)});return l.hasCustomAnchor?u:(0,b.jsx)(c.Mz,{asChild:!0,...i,children:u})});k.displayName=A;var N="PopoverPortal",[D,I]=y(N,{forceMount:void 0}),L=e=>{let{__scopePopover:r,forceMount:t,children:n,container:o}=e,a=E(N,r);return(0,b.jsx)(D,{scope:r,forceMount:t,children:(0,b.jsx)(p.C,{present:t||a.open,children:(0,b.jsx)(f.Portal,{asChild:!0,container:o,children:n})})})};L.displayName=N;var F="PopoverContent",M=n.forwardRef((e,r)=>{let t=I(F,e.__scopePopover),{forceMount:n=t.forceMount,...o}=e,a=E(F,e.__scopePopover);return(0,b.jsx)(p.C,{present:n||a.open,children:a.modal?(0,b.jsx)(O,{...o,ref:r}):(0,b.jsx)(G,{...o,ref:r})})});M.displayName=F;var _=(0,m.TL)("PopoverContent.RemoveScroll"),O=n.forwardRef((e,r)=>{let t=E(F,e.__scopePopover),l=n.useRef(null),i=(0,a.s)(r,l),s=n.useRef(!1);return n.useEffect(()=>{let e=l.current;if(e)return(0,g.Eq)(e)},[]),(0,b.jsx)(w.A,{as:_,allowPinchZoom:!0,children:(0,b.jsx)(H,{...e,ref:i,trapFocus:t.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,o.m)(e.onCloseAutoFocus,e=>{var r;e.preventDefault(),s.current||null==(r=t.triggerRef.current)||r.focus()}),onPointerDownOutside:(0,o.m)(e.onPointerDownOutside,e=>{let r=e.detail.originalEvent,t=0===r.button&&!0===r.ctrlKey;s.current=2===r.button||t},{checkForDefaultPrevented:!1}),onFocusOutside:(0,o.m)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),G=n.forwardRef((e,r)=>{let t=E(F,e.__scopePopover),o=n.useRef(!1),a=n.useRef(!1);return(0,b.jsx)(H,{...e,ref:r,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:r=>{var n,l;null==(n=e.onCloseAutoFocus)||n.call(e,r),r.defaultPrevented||(o.current||null==(l=t.triggerRef.current)||l.focus(),r.preventDefault()),o.current=!1,a.current=!1},onInteractOutside:r=>{var n,l;null==(n=e.onInteractOutside)||n.call(e,r),r.defaultPrevented||(o.current=!0,"pointerdown"===r.detail.originalEvent.type&&(a.current=!0));let i=r.target;(null==(l=t.triggerRef.current)?void 0:l.contains(i))&&r.preventDefault(),"focusin"===r.detail.originalEvent.type&&a.current&&r.preventDefault()}})}),H=n.forwardRef((e,r)=>{let{__scopePopover:t,trapFocus:n,onOpenAutoFocus:o,onCloseAutoFocus:a,disableOutsidePointerEvents:l,onEscapeKeyDown:d,onPointerDownOutside:f,onFocusOutside:p,onInteractOutside:v,...m}=e,h=E(F,t),g=R(t);return(0,s.Oh)(),(0,b.jsx)(u.n,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:o,onUnmountAutoFocus:a,children:(0,b.jsx)(i.qW,{asChild:!0,disableOutsidePointerEvents:l,onInteractOutside:v,onEscapeKeyDown:d,onPointerDownOutside:f,onFocusOutside:p,onDismiss:()=>h.onOpenChange(!1),children:(0,b.jsx)(c.UC,{"data-state":V(h.open),role:"dialog",id:h.contentId,...g,...m,ref:r,style:{...m.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),K="PopoverClose",z=n.forwardRef((e,r)=>{let{__scopePopover:t,...n}=e,a=E(K,t);return(0,b.jsx)(v.sG.button,{type:"button",...n,ref:r,onClick:(0,o.m)(e.onClick,()=>a.onOpenChange(!1))})});z.displayName=K;var B=n.forwardRef((e,r)=>{let{__scopePopover:t,...n}=e,o=R(t);return(0,b.jsx)(c.i3,{...o,...n,ref:r})});function V(e){return e?"open":"closed"}B.displayName="PopoverArrow";var U=j,q=P,W=k,X=L,Y=M,Z=z,J=B},91948:(e,r,t)=>{t.r(r),t.d(r,{Accordion:()=>C,AccordionContent:()=>K,AccordionHeader:()=>_,AccordionItem:()=>F,AccordionTrigger:()=>G,Content:()=>W,Header:()=>U,Item:()=>V,Root:()=>B,Trigger:()=>q,createAccordionScope:()=>x});var n=t(74188),o=t(68533),a=t(96007),l=t(89607),i=t(48841),s=t(14392),u=t(98765),d=t(10251),c=t(39636),f=t(5672),p=t(28064),v="Accordion",m=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[h,g,w]=(0,a.N)(v),[b,x]=(0,o.A)(v,[w,d.createCollapsibleScope]),y=(0,d.createCollapsibleScope)(),C=n.forwardRef((e,r)=>{let{type:t,...n}=e;return(0,p.jsx)(h.Provider,{scope:e.__scopeAccordion,children:"multiple"===t?(0,p.jsx)(P,{...n,ref:r}):(0,p.jsx)(S,{...n,ref:r})})});C.displayName=v;var[R,T]=b(v),[E,j]=b(v,{collapsible:!1}),S=n.forwardRef((e,r)=>{let{value:t,defaultValue:o,onValueChange:a=()=>{},collapsible:l=!1,...i}=e,[u,d]=(0,s.i)({prop:t,defaultProp:null!=o?o:"",onChange:a,caller:v});return(0,p.jsx)(R,{scope:e.__scopeAccordion,value:n.useMemo(()=>u?[u]:[],[u]),onItemOpen:d,onItemClose:n.useCallback(()=>l&&d(""),[l,d]),children:(0,p.jsx)(E,{scope:e.__scopeAccordion,collapsible:l,children:(0,p.jsx)(N,{...i,ref:r})})})}),P=n.forwardRef((e,r)=>{let{value:t,defaultValue:o,onValueChange:a=()=>{},...l}=e,[i,u]=(0,s.i)({prop:t,defaultProp:null!=o?o:[],onChange:a,caller:v}),d=n.useCallback(e=>u(function(){let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return[...r,e]}),[u]),c=n.useCallback(e=>u(function(){let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return r.filter(r=>r!==e)}),[u]);return(0,p.jsx)(R,{scope:e.__scopeAccordion,value:i,onItemOpen:d,onItemClose:c,children:(0,p.jsx)(E,{scope:e.__scopeAccordion,collapsible:!0,children:(0,p.jsx)(N,{...l,ref:r})})})}),[A,k]=b(v),N=n.forwardRef((e,r)=>{let{__scopeAccordion:t,disabled:o,dir:a,orientation:s="vertical",...d}=e,c=n.useRef(null),v=(0,l.s)(c,r),w=g(t),b="ltr"===(0,f.jH)(a),x=(0,i.m)(e.onKeyDown,e=>{var r;if(!m.includes(e.key))return;let t=e.target,n=w().filter(e=>{var r;return!(null==(r=e.ref.current)?void 0:r.disabled)}),o=n.findIndex(e=>e.ref.current===t),a=n.length;if(-1===o)return;e.preventDefault();let l=o,i=a-1,u=()=>{(l=o+1)>i&&(l=0)},d=()=>{(l=o-1)<0&&(l=i)};switch(e.key){case"Home":l=0;break;case"End":l=i;break;case"ArrowRight":"horizontal"===s&&(b?u():d());break;case"ArrowDown":"vertical"===s&&u();break;case"ArrowLeft":"horizontal"===s&&(b?d():u());break;case"ArrowUp":"vertical"===s&&d()}null==(r=n[l%a].ref.current)||r.focus()});return(0,p.jsx)(A,{scope:t,disabled:o,direction:a,orientation:s,children:(0,p.jsx)(h.Slot,{scope:t,children:(0,p.jsx)(u.sG.div,{...d,"data-orientation":s,ref:v,onKeyDown:o?void 0:x})})})}),D="AccordionItem",[I,L]=b(D),F=n.forwardRef((e,r)=>{let{__scopeAccordion:t,value:n,...o}=e,a=k(D,t),l=T(D,t),i=y(t),s=(0,c.B)(),u=n&&l.value.includes(n)||!1,f=a.disabled||e.disabled;return(0,p.jsx)(I,{scope:t,open:u,disabled:f,triggerId:s,children:(0,p.jsx)(d.Root,{"data-orientation":a.orientation,"data-state":z(u),...i,...o,ref:r,disabled:f,open:u,onOpenChange:e=>{e?l.onItemOpen(n):l.onItemClose(n)}})})});F.displayName=D;var M="AccordionHeader",_=n.forwardRef((e,r)=>{let{__scopeAccordion:t,...n}=e,o=k(v,t),a=L(M,t);return(0,p.jsx)(u.sG.h3,{"data-orientation":o.orientation,"data-state":z(a.open),"data-disabled":a.disabled?"":void 0,...n,ref:r})});_.displayName=M;var O="AccordionTrigger",G=n.forwardRef((e,r)=>{let{__scopeAccordion:t,...n}=e,o=k(v,t),a=L(O,t),l=j(O,t),i=y(t);return(0,p.jsx)(h.ItemSlot,{scope:t,children:(0,p.jsx)(d.Trigger,{"aria-disabled":a.open&&!l.collapsible||void 0,"data-orientation":o.orientation,id:a.triggerId,...i,...n,ref:r})})});G.displayName=O;var H="AccordionContent",K=n.forwardRef((e,r)=>{let{__scopeAccordion:t,...n}=e,o=k(v,t),a=L(H,t),l=y(t);return(0,p.jsx)(d.Content,{role:"region","aria-labelledby":a.triggerId,"data-orientation":o.orientation,...l,...n,ref:r,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});function z(e){return e?"open":"closed"}K.displayName=H;var B=C,V=F,U=_,q=G,W=K}}]); +//# sourceMappingURL=165-d64abcc50feb7107.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/165-d64abcc50feb7107.js.map b/opencut-ui/_next/static/chunks/165-d64abcc50feb7107.js.map new file mode 100644 index 0000000..d1bd1df --- /dev/null +++ b/opencut-ui/_next/static/chunks/165-d64abcc50feb7107.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/165-d64abcc50feb7107.js","mappings":"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","sources":["webpack://_N_E/../src/radio-group.tsx","webpack://_N_E/../src/radio.tsx","webpack://_N_E/../src/alert-dialog.tsx","webpack://_N_E/../src/collapsible.tsx","webpack://_N_E/../src/password-toggle-field.tsx","webpack://_N_E/../src/toggle-group.tsx","webpack://_N_E/../../node_modules/.bun/use-sync-external-store@1.5.0+f4eacebf2041cd4f/node_modules/use-sync-external-store/shim/index.js","webpack://_N_E/../src/label.tsx","webpack://_N_E/../../node_modules/.bun/@radix-ui+react-use-effect-event@0.0.2+0e2fb8dbc083adda/node_modules/@radix-ui/react-use-effect-event/dist/index.mjs","webpack://_N_E/../src/toast.tsx","webpack://_N_E/../src/one-time-password-field.tsx","webpack://_N_E/../src/scroll-area.tsx","webpack://_N_E/../src/use-state-machine.ts","webpack://_N_E/../src/switch.tsx","webpack://_N_E/../src/toolbar.tsx","webpack://_N_E/../src/toggle.tsx","webpack://_N_E/../src/avatar.tsx","webpack://_N_E/../src/checkbox.tsx","webpack://_N_E/../src/navigation-menu.tsx","webpack://_N_E/../src/progress.tsx","webpack://_N_E/../src/form.tsx","webpack://_N_E/../src/hover-card.tsx","webpack://_N_E/../../node_modules/.bun/@radix-ui+react-use-is-hydrated@0.1.0+0e2fb8dbc083adda/node_modules/@radix-ui/react-use-is-hydrated/dist/index.mjs","webpack://_N_E/../../node_modules/.bun/use-sync-external-store@1.5.0+f4eacebf2041cd4f/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","webpack://_N_E/../src/menubar.tsx","webpack://_N_E/../src/popover.tsx","webpack://_N_E/../src/accordion.tsx"],"sourcesContent":["import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as RovingFocusGroup from '@radix-ui/react-roving-focus';\nimport { createRovingFocusGroupScope } from '@radix-ui/react-roving-focus';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { Radio, RadioIndicator, createRadioScope } from './radio';\n\nimport type { Scope } from '@radix-ui/react-context';\n\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\n/* -------------------------------------------------------------------------------------------------\n * RadioGroup\n * -----------------------------------------------------------------------------------------------*/\nconst RADIO_GROUP_NAME = 'RadioGroup';\n\ntype ScopedProps

= P & { __scopeRadioGroup?: Scope };\nconst [createRadioGroupContext, createRadioGroupScope] = createContextScope(RADIO_GROUP_NAME, [\n createRovingFocusGroupScope,\n createRadioScope,\n]);\nconst useRovingFocusGroupScope = createRovingFocusGroupScope();\nconst useRadioScope = createRadioScope();\n\ntype RadioGroupContextValue = {\n name?: string;\n required: boolean;\n disabled: boolean;\n value: string | null;\n onValueChange(value: string): void;\n};\n\nconst [RadioGroupProvider, useRadioGroupContext] =\n createRadioGroupContext(RADIO_GROUP_NAME);\n\ntype RadioGroupElement = React.ComponentRef;\ntype RovingFocusGroupProps = React.ComponentPropsWithoutRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface RadioGroupProps extends PrimitiveDivProps {\n name?: RadioGroupContextValue['name'];\n required?: React.ComponentPropsWithoutRef['required'];\n disabled?: React.ComponentPropsWithoutRef['disabled'];\n dir?: RovingFocusGroupProps['dir'];\n orientation?: RovingFocusGroupProps['orientation'];\n loop?: RovingFocusGroupProps['loop'];\n defaultValue?: string;\n value?: string | null;\n onValueChange?: RadioGroupContextValue['onValueChange'];\n}\n\nconst RadioGroup = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeRadioGroup,\n name,\n defaultValue,\n value: valueProp,\n required = false,\n disabled = false,\n orientation,\n dir,\n loop = true,\n onValueChange,\n ...groupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? null,\n onChange: onValueChange as (value: string | null) => void,\n caller: RADIO_GROUP_NAME,\n });\n\n return (\n \n \n \n \n \n );\n }\n);\n\nRadioGroup.displayName = RADIO_GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * RadioGroupItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'RadioGroupItem';\n\ntype RadioGroupItemElement = React.ComponentRef;\ntype RadioProps = React.ComponentPropsWithoutRef;\ninterface RadioGroupItemProps extends Omit {\n value: string;\n}\n\nconst RadioGroupItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeRadioGroup, disabled, ...itemProps } = props;\n const context = useRadioGroupContext(ITEM_NAME, __scopeRadioGroup);\n const isDisabled = context.disabled || disabled;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const ref = React.useRef>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const checked = context.value === itemProps.value;\n const isArrowKeyPressedRef = React.useRef(false);\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (ARROW_KEYS.includes(event.key)) {\n isArrowKeyPressedRef.current = true;\n }\n };\n const handleKeyUp = () => (isArrowKeyPressedRef.current = false);\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('keyup', handleKeyUp);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('keyup', handleKeyUp);\n };\n }, []);\n\n return (\n \n context.onValueChange(itemProps.value)}\n onKeyDown={composeEventHandlers((event) => {\n // According to WAI ARIA, radio groups don't activate items on enter keypress\n if (event.key === 'Enter') event.preventDefault();\n })}\n onFocus={composeEventHandlers(itemProps.onFocus, () => {\n /**\n * Our `RovingFocusGroup` will focus the radio when navigating with arrow keys\n * and we need to \"check\" it in that case. We click it to \"check\" it (instead\n * of updating `context.value`) so that the radio change event fires.\n */\n if (isArrowKeyPressedRef.current) ref.current?.click();\n })}\n />\n \n );\n }\n);\n\nRadioGroupItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * RadioGroupIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'RadioGroupIndicator';\n\ntype RadioGroupIndicatorElement = React.ComponentRef;\ntype RadioIndicatorProps = React.ComponentPropsWithoutRef;\ninterface RadioGroupIndicatorProps extends RadioIndicatorProps {}\n\nconst RadioGroupIndicator = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeRadioGroup, ...indicatorProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return ;\n }\n);\n\nRadioGroupIndicator.displayName = INDICATOR_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nconst Root = RadioGroup;\nconst Item = RadioGroupItem;\nconst Indicator = RadioGroupIndicator;\n\nexport {\n createRadioGroupScope,\n //\n RadioGroup,\n RadioGroupItem,\n RadioGroupIndicator,\n //\n Root,\n Item,\n Indicator,\n};\nexport type { RadioGroupProps, RadioGroupItemProps, RadioGroupIndicatorProps };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Radio\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_NAME = 'Radio';\n\ntype ScopedProps

= P & { __scopeRadio?: Scope };\nconst [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);\n\ntype RadioContextValue = { checked: boolean; disabled?: boolean };\nconst [RadioProvider, useRadioContext] = createRadioContext(RADIO_NAME);\n\ntype RadioElement = React.ComponentRef;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef;\ninterface RadioProps extends PrimitiveButtonProps {\n checked?: boolean;\n required?: boolean;\n onCheck?(): void;\n}\n\nconst Radio = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeRadio,\n name,\n checked = false,\n required,\n disabled,\n value = 'on',\n onCheck,\n form,\n ...radioProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = button ? form || !!button.closest('form') : true;\n\n return (\n \n {\n // radios cannot be unchecked so we only communicate a checked state\n if (!checked) onCheck?.();\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n // if radio is in a form, stop propagation from the button so that we only propagate\n // one click event (from the input). We propagate changes from an input so that native\n // form validation works and form events reflect radio updates.\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })}\n />\n {isFormControl && (\n \n )}\n \n );\n }\n);\n\nRadio.displayName = RADIO_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * RadioIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'RadioIndicator';\n\ntype RadioIndicatorElement = React.ComponentRef;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef;\nexport interface RadioIndicatorProps extends PrimitiveSpanProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst RadioIndicator = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeRadio, forceMount, ...indicatorProps } = props;\n const context = useRadioContext(INDICATOR_NAME, __scopeRadio);\n return (\n \n \n \n );\n }\n);\n\nRadioIndicator.displayName = INDICATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * RadioBubbleInput\n * -----------------------------------------------------------------------------------------------*/\n\nconst BUBBLE_INPUT_NAME = 'RadioBubbleInput';\n\ntype InputProps = React.ComponentPropsWithoutRef;\ninterface RadioBubbleInputProps extends Omit {\n checked: boolean;\n control: HTMLElement | null;\n bubbles: boolean;\n}\n\nconst RadioBubbleInput = React.forwardRef(\n (\n {\n __scopeRadio,\n control,\n checked,\n bubbles = true,\n ...props\n }: ScopedProps,\n forwardedRef\n ) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n\n // Bubble checked change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n 'checked'\n ) as PropertyDescriptor;\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event('click', { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n\n return (\n \n );\n }\n);\n\nRadioBubbleInput.displayName = BUBBLE_INPUT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nfunction getState(checked: boolean) {\n return checked ? 'checked' : 'unchecked';\n}\n\nexport {\n createRadioScope,\n //\n Radio,\n RadioIndicator,\n};\nexport type { RadioProps };\n","import * as React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { createDialogScope } from '@radix-ui/react-dialog';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createSlottable } from '@radix-ui/react-slot';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst ROOT_NAME = 'AlertDialog';\n\ntype ScopedProps

= P & { __scopeAlertDialog?: Scope };\nconst [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [\n createDialogScope,\n]);\nconst useDialogScope = createDialogScope();\n\ntype DialogProps = React.ComponentPropsWithoutRef;\ninterface AlertDialogProps extends Omit {}\n\nconst AlertDialog: React.FC = (props: ScopedProps) => {\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return ;\n};\n\nAlertDialog.displayName = ROOT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogTrigger\n * -----------------------------------------------------------------------------------------------*/\nconst TRIGGER_NAME = 'AlertDialogTrigger';\n\ntype AlertDialogTriggerElement = React.ComponentRef;\ntype DialogTriggerProps = React.ComponentPropsWithoutRef;\ninterface AlertDialogTriggerProps extends DialogTriggerProps {}\n\nconst AlertDialogTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return ;\n }\n);\n\nAlertDialogTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'AlertDialogPortal';\n\ntype DialogPortalProps = React.ComponentPropsWithoutRef;\ninterface AlertDialogPortalProps extends DialogPortalProps {}\n\nconst AlertDialogPortal: React.FC = (\n props: ScopedProps\n) => {\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return ;\n};\n\nAlertDialogPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogOverlay\n * -----------------------------------------------------------------------------------------------*/\n\nconst OVERLAY_NAME = 'AlertDialogOverlay';\n\ntype AlertDialogOverlayElement = React.ComponentRef;\ntype DialogOverlayProps = React.ComponentPropsWithoutRef;\ninterface AlertDialogOverlayProps extends DialogOverlayProps {}\n\nconst AlertDialogOverlay = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return ;\n }\n);\n\nAlertDialogOverlay.displayName = OVERLAY_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'AlertDialogContent';\n\ntype AlertDialogContentContextValue = {\n cancelRef: React.MutableRefObject;\n};\n\nconst [AlertDialogContentProvider, useAlertDialogContentContext] =\n createAlertDialogContext(CONTENT_NAME);\n\ntype AlertDialogContentElement = React.ComponentRef;\ntype DialogContentProps = React.ComponentPropsWithoutRef;\ninterface AlertDialogContentProps\n extends Omit {}\n\nconst Slottable = createSlottable('AlertDialogContent');\n\nconst AlertDialogContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const cancelRef = React.useRef(null);\n\n return (\n \n \n {\n event.preventDefault();\n cancelRef.current?.focus({ preventScroll: true });\n })}\n onPointerDownOutside={(event) => event.preventDefault()}\n onInteractOutside={(event) => event.preventDefault()}\n >\n {/**\n * We have to use `Slottable` here as we cannot wrap the `AlertDialogContentProvider`\n * around everything, otherwise the `DescriptionWarning` would be rendered straight away.\n * This is because we want the accessibility checks to run only once the content is actually\n * open and that behaviour is already encapsulated in `DialogContent`.\n */}\n {children}\n {process.env.NODE_ENV === 'development' && (\n \n )}\n \n \n \n );\n }\n);\n\nAlertDialogContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'AlertDialogTitle';\n\ntype AlertDialogTitleElement = React.ComponentRef;\ntype DialogTitleProps = React.ComponentPropsWithoutRef;\ninterface AlertDialogTitleProps extends DialogTitleProps {}\n\nconst AlertDialogTitle = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return ;\n }\n);\n\nAlertDialogTitle.displayName = TITLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DESCRIPTION_NAME = 'AlertDialogDescription';\n\ntype AlertDialogDescriptionElement = React.ComponentRef;\ntype DialogDescriptionProps = React.ComponentPropsWithoutRef;\ninterface AlertDialogDescriptionProps extends DialogDescriptionProps {}\n\nconst AlertDialogDescription = React.forwardRef<\n AlertDialogDescriptionElement,\n AlertDialogDescriptionProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return ;\n});\n\nAlertDialogDescription.displayName = DESCRIPTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogAction\n * -----------------------------------------------------------------------------------------------*/\n\nconst ACTION_NAME = 'AlertDialogAction';\n\ntype AlertDialogActionElement = React.ComponentRef;\ntype DialogCloseProps = React.ComponentPropsWithoutRef;\ninterface AlertDialogActionProps extends DialogCloseProps {}\n\nconst AlertDialogAction = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return ;\n }\n);\n\nAlertDialogAction.displayName = ACTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogCancel\n * -----------------------------------------------------------------------------------------------*/\n\nconst CANCEL_NAME = 'AlertDialogCancel';\n\ntype AlertDialogCancelElement = React.ComponentRef;\ninterface AlertDialogCancelProps extends DialogCloseProps {}\n\nconst AlertDialogCancel = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = useComposedRefs(forwardedRef, cancelRef);\n return ;\n }\n);\n\nAlertDialogCancel.displayName = CANCEL_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype DescriptionWarningProps = {\n contentRef: React.RefObject;\n};\n\nconst DescriptionWarning: React.FC = ({ contentRef }) => {\n const MESSAGE = `\\`${CONTENT_NAME}\\` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the \\`${CONTENT_NAME}\\` by passing a \\`${DESCRIPTION_NAME}\\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an \\`id\\` and passing the same value to the \\`aria-describedby\\` prop in \\`${CONTENT_NAME}\\`. If the description is confusing or duplicative for sighted users, you can use the \\`@radix-ui/react-visually-hidden\\` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;\n\n React.useEffect(() => {\n const hasDescription = document.getElementById(\n contentRef.current?.getAttribute('aria-describedby')!\n );\n if (!hasDescription) console.warn(MESSAGE);\n }, [MESSAGE, contentRef]);\n\n return null;\n};\n\nconst Root = AlertDialog;\nconst Trigger = AlertDialogTrigger;\nconst Portal = AlertDialogPortal;\nconst Overlay = AlertDialogOverlay;\nconst Content = AlertDialogContent;\nconst Action = AlertDialogAction;\nconst Cancel = AlertDialogCancel;\nconst Title = AlertDialogTitle;\nconst Description = AlertDialogDescription;\n\nexport {\n createAlertDialogScope,\n //\n AlertDialog,\n AlertDialogTrigger,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogContent,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogTitle,\n AlertDialogDescription,\n //\n Root,\n Trigger,\n Portal,\n Overlay,\n Content,\n Action,\n Cancel,\n Title,\n Description,\n};\nexport type {\n AlertDialogProps,\n AlertDialogTriggerProps,\n AlertDialogPortalProps,\n AlertDialogOverlayProps,\n AlertDialogContentProps,\n AlertDialogActionProps,\n AlertDialogCancelProps,\n AlertDialogTitleProps,\n AlertDialogDescriptionProps,\n};\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Presence } from '@radix-ui/react-presence';\nimport { useId } from '@radix-ui/react-id';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Collapsible\n * -----------------------------------------------------------------------------------------------*/\n\nconst COLLAPSIBLE_NAME = 'Collapsible';\n\ntype ScopedProps

= P & { __scopeCollapsible?: Scope };\nconst [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);\n\ntype CollapsibleContextValue = {\n contentId: string;\n disabled?: boolean;\n open: boolean;\n onOpenToggle(): void;\n};\n\nconst [CollapsibleProvider, useCollapsibleContext] =\n createCollapsibleContext(COLLAPSIBLE_NAME);\n\ntype CollapsibleElement = React.ComponentRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface CollapsibleProps extends PrimitiveDivProps {\n defaultOpen?: boolean;\n open?: boolean;\n disabled?: boolean;\n onOpenChange?(open: boolean): void;\n}\n\nconst Collapsible = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeCollapsible,\n open: openProp,\n defaultOpen,\n disabled,\n onOpenChange,\n ...collapsibleProps\n } = props;\n\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: COLLAPSIBLE_NAME,\n });\n\n return (\n setOpen((prevOpen) => !prevOpen), [setOpen])}\n >\n \n \n );\n }\n);\n\nCollapsible.displayName = COLLAPSIBLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CollapsibleTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'CollapsibleTrigger';\n\ntype CollapsibleTriggerElement = React.ComponentRef;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef;\ninterface CollapsibleTriggerProps extends PrimitiveButtonProps {}\n\nconst CollapsibleTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeCollapsible, ...triggerProps } = props;\n const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);\n return (\n \n );\n }\n);\n\nCollapsibleTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CollapsibleContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'CollapsibleContent';\n\ntype CollapsibleContentElement = CollapsibleContentImplElement;\ninterface CollapsibleContentProps extends Omit {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst CollapsibleContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);\n return (\n \n {({ present }) => (\n \n )}\n \n );\n }\n);\n\nCollapsibleContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype CollapsibleContentImplElement = React.ComponentRef;\ninterface CollapsibleContentImplProps extends PrimitiveDivProps {\n present: boolean;\n}\n\nconst CollapsibleContentImpl = React.forwardRef<\n CollapsibleContentImplElement,\n CollapsibleContentImplProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeCollapsible, present, children, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);\n const [isPresent, setIsPresent] = React.useState(present);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const heightRef = React.useRef(0);\n const height = heightRef.current;\n const widthRef = React.useRef(0);\n const width = widthRef.current;\n // when opening we want it to immediately open to retrieve dimensions\n // when closing we delay `present` to retrieve dimensions before closing\n const isOpen = context.open || isPresent;\n const isMountAnimationPreventedRef = React.useRef(isOpen);\n const originalStylesRef = React.useRef>(undefined);\n\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => (isMountAnimationPreventedRef.current = false));\n return () => cancelAnimationFrame(rAF);\n }, []);\n\n useLayoutEffect(() => {\n const node = ref.current;\n if (node) {\n originalStylesRef.current = originalStylesRef.current || {\n transitionDuration: node.style.transitionDuration,\n animationName: node.style.animationName,\n };\n // block any animations/transitions so the element renders at its full dimensions\n node.style.transitionDuration = '0s';\n node.style.animationName = 'none';\n\n // get width and height from full dimensions\n const rect = node.getBoundingClientRect();\n heightRef.current = rect.height;\n widthRef.current = rect.width;\n\n // kick off any animations/transitions that were originally set up if it isn't the initial mount\n if (!isMountAnimationPreventedRef.current) {\n node.style.transitionDuration = originalStylesRef.current.transitionDuration!;\n node.style.animationName = originalStylesRef.current.animationName!;\n }\n\n setIsPresent(present);\n }\n /**\n * depends on `context.open` because it will change to `false`\n * when a close is triggered but `present` will be `false` on\n * animation end (so when close finishes). This allows us to\n * retrieve the dimensions *before* closing.\n */\n }, [context.open, present]);\n\n return (\n

= P & { __scopePasswordToggleField?: Scope };\n\ninterface PasswordToggleFieldProps {\n id?: string;\n visible?: boolean;\n defaultVisible?: boolean;\n onVisiblityChange?: (visible: boolean) => void;\n children?: React.ReactNode;\n}\n\nconst INITIAL_FOCUS_STATE: InternalFocusState = {\n clickTriggered: false,\n selectionStart: null,\n selectionEnd: null,\n};\n\nconst PasswordToggleField: React.FC = ({\n __scopePasswordToggleField,\n ...props\n}: ScopedProps) => {\n const baseId = useId(props.id);\n const defaultInputId = `${baseId}-input`;\n const [inputIdState, setInputIdState] = React.useState(defaultInputId);\n const inputId = inputIdState ?? defaultInputId;\n const syncInputId = React.useCallback(\n (providedId: string | number | undefined) =>\n setInputIdState(providedId != null ? String(providedId) : null),\n []\n );\n\n const { visible: visibleProp, defaultVisible, onVisiblityChange, children } = props;\n const [visible = false, setVisible] = useControllableState({\n caller: PASSWORD_TOGGLE_FIELD_NAME,\n prop: visibleProp,\n defaultProp: defaultVisible ?? false,\n onChange: onVisiblityChange,\n });\n\n const inputRef = React.useRef(null);\n const focusState = React.useRef(INITIAL_FOCUS_STATE);\n\n return (\n \n {children}\n \n );\n};\nPasswordToggleField.displayName = PASSWORD_TOGGLE_FIELD_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PasswordToggleFieldInput\n * -----------------------------------------------------------------------------------------------*/\n\nconst PASSWORD_TOGGLE_FIELD_INPUT_NAME = PASSWORD_TOGGLE_FIELD_NAME + 'Input';\n\ntype PrimitiveInputProps = React.ComponentPropsWithoutRef<'input'>;\n\ninterface PasswordToggleFieldOwnProps {\n autoComplete?: 'current-password' | 'new-password';\n}\n\ninterface PasswordToggleFieldInputProps\n extends PasswordToggleFieldOwnProps,\n Omit {\n autoComplete?: 'current-password' | 'new-password';\n}\n\nconst PasswordToggleFieldInput = React.forwardRef(\n (\n {\n __scopePasswordToggleField,\n autoComplete = 'current-password',\n autoCapitalize = 'off',\n spellCheck = false,\n id: idProp,\n ...props\n }: ScopedProps,\n forwardedRef\n ) => {\n const { visible, inputRef, inputId, syncInputId, setVisible, focusState } =\n usePasswordToggleFieldContext(PASSWORD_TOGGLE_FIELD_INPUT_NAME, __scopePasswordToggleField);\n\n React.useEffect(() => {\n syncInputId(idProp);\n }, [idProp, syncInputId]);\n\n // We want to reset the visibility to `false` to revert the input to\n // `type=\"password\"` when:\n // - The form is reset (for consistency with other form controls)\n // - The form is submitted (to prevent the browser from remembering the\n // input's value.\n //\n // See \"Keeping things secure\":\n // https://technology.blog.gov.uk/2021/04/19/simple-things-are-complicated-making-a-show-password-option/)\n const _setVisible = useEffectEvent(setVisible);\n React.useEffect(() => {\n const inputElement = inputRef.current;\n const form = inputElement?.form;\n if (!form) {\n return;\n }\n\n const controller = new AbortController();\n form.addEventListener(\n 'reset',\n (event) => {\n if (!event.defaultPrevented) {\n _setVisible(false);\n }\n },\n { signal: controller.signal }\n );\n form.addEventListener(\n 'submit',\n () => {\n // always reset the visibility on submit regardless of whether the\n // default action is prevented\n _setVisible(false);\n },\n { signal: controller.signal }\n );\n return () => {\n controller.abort();\n };\n }, [inputRef, _setVisible]);\n\n return (\n {\n // get the cursor position\n const { selectionStart, selectionEnd } = event.currentTarget;\n focusState.current.selectionStart = selectionStart;\n focusState.current.selectionEnd = selectionEnd;\n })}\n />\n );\n }\n);\nPasswordToggleFieldInput.displayName = PASSWORD_TOGGLE_FIELD_INPUT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PasswordToggleFieldToggle\n * -----------------------------------------------------------------------------------------------*/\n\nconst PASSWORD_TOGGLE_FIELD_TOGGLE_NAME = PASSWORD_TOGGLE_FIELD_NAME + 'Toggle';\n\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<'button'>;\n\ninterface PasswordToggleFieldToggleProps extends Omit {}\n\nconst PasswordToggleFieldToggle = React.forwardRef<\n HTMLButtonElement,\n PasswordToggleFieldToggleProps\n>(\n (\n {\n __scopePasswordToggleField,\n onClick,\n onPointerDown,\n onPointerCancel,\n onPointerUp,\n onFocus,\n children,\n 'aria-label': ariaLabelProp,\n 'aria-controls': ariaControls,\n 'aria-hidden': ariaHidden,\n tabIndex,\n ...props\n }: ScopedProps,\n forwardedRef\n ) => {\n const { setVisible, visible, inputRef, inputId, focusState } = usePasswordToggleFieldContext(\n PASSWORD_TOGGLE_FIELD_TOGGLE_NAME,\n __scopePasswordToggleField\n );\n const [internalAriaLabel, setInternalAriaLabel] = React.useState(undefined);\n const elementRef = React.useRef(null);\n const ref = useComposedRefs(forwardedRef, elementRef);\n const isHydrated = useIsHydrated();\n\n React.useEffect(() => {\n const element = elementRef.current;\n if (!element || ariaLabelProp) {\n setInternalAriaLabel(undefined);\n return;\n }\n\n const DEFAULT_ARIA_LABEL = visible ? 'Hide password' : 'Show password';\n\n function checkForInnerTextLabel(textContent: string | undefined | null) {\n const text = textContent ? textContent : undefined;\n // If the element has inner text, no need to force an aria-label.\n setInternalAriaLabel(text ? undefined : DEFAULT_ARIA_LABEL);\n }\n\n checkForInnerTextLabel(element.textContent);\n\n const observer = new MutationObserver((entries) => {\n let textContent: string | undefined;\n for (const entry of entries) {\n if (entry.type === 'characterData') {\n if (element.textContent) {\n textContent = element.textContent;\n }\n }\n }\n checkForInnerTextLabel(textContent);\n });\n observer.observe(element, { characterData: true, subtree: true });\n return () => {\n observer.disconnect();\n };\n }, [visible, ariaLabelProp]);\n\n const ariaLabel = ariaLabelProp || internalAriaLabel;\n\n // Before hydration the button will not work, but we want to render it\n // regardless to prevent potential layout shift. Hide it from assistive tech\n // by default. Post-hydration it will be visible, focusable and associated\n // with the input via aria-controls.\n if (!isHydrated) {\n ariaHidden ??= true;\n tabIndex ??= -1;\n } else {\n ariaControls ??= inputId;\n }\n\n React.useEffect(() => {\n let cleanup = () => {};\n const ownerWindow = elementRef.current?.ownerDocument?.defaultView || window;\n const reset = () => (focusState.current.clickTriggered = false);\n const handlePointerUp = () => (cleanup = requestIdleCallback(ownerWindow, reset));\n ownerWindow.addEventListener('pointerup', handlePointerUp);\n return () => {\n cleanup();\n ownerWindow.removeEventListener('pointerup', handlePointerUp);\n };\n }, [focusState]);\n\n return (\n {\n focusState.current.clickTriggered = true;\n })}\n onPointerCancel={(event) => {\n // do not use `composeEventHandlers` here because we always want to\n // reset the ref on cancellation, regardless of whether the user has\n // called preventDefault on the event\n onPointerCancel?.(event);\n focusState.current = INITIAL_FOCUS_STATE;\n }}\n // do not use `composeEventHandlers` here because we always want to\n // reset the ref after click, regardless of whether the user has\n // called preventDefault on the event\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) {\n focusState.current = INITIAL_FOCUS_STATE;\n return;\n }\n\n flushSync(() => {\n setVisible((s) => !s);\n });\n if (focusState.current.clickTriggered) {\n const input = inputRef.current;\n if (input) {\n const { selectionStart, selectionEnd } = focusState.current;\n input.focus();\n if (selectionStart !== null || selectionEnd !== null) {\n // wait a tick so that focus has settled, then restore select position\n requestAnimationFrame(() => {\n // make sure the input still has focus (developer may have\n // programatically moved focus elsewhere)\n if (input.ownerDocument.activeElement === input) {\n input.selectionStart = selectionStart;\n input.selectionEnd = selectionEnd;\n }\n });\n }\n }\n }\n focusState.current = INITIAL_FOCUS_STATE;\n }}\n onPointerUp={(event) => {\n onPointerUp?.(event);\n // if click handler hasn't been called at this point, it may have been\n // intercepted, in which case we still want to reset our internal\n // state\n setTimeout(() => {\n focusState.current = INITIAL_FOCUS_STATE;\n }, 50);\n }}\n type=\"button\"\n >\n {children}\n \n );\n }\n);\nPasswordToggleFieldToggle.displayName = PASSWORD_TOGGLE_FIELD_TOGGLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PasswordToggleFieldSlot\n * -----------------------------------------------------------------------------------------------*/\n\nconst PASSWORD_TOGGLE_FIELD_SLOT_NAME = PASSWORD_TOGGLE_FIELD_NAME + 'Slot';\n\ninterface PasswordToggleFieldSlotDeclarativeProps {\n visible: React.ReactNode;\n hidden: React.ReactNode;\n}\n\ninterface PasswordToggleFieldSlotRenderProps {\n render: (args: { visible: boolean }) => React.ReactElement;\n}\n\ntype PasswordToggleFieldSlotProps =\n | PasswordToggleFieldSlotDeclarativeProps\n | PasswordToggleFieldSlotRenderProps;\n\nconst PasswordToggleFieldSlot: React.FC = ({\n __scopePasswordToggleField,\n ...props\n}: ScopedProps) => {\n const { visible } = usePasswordToggleFieldContext(\n PASSWORD_TOGGLE_FIELD_SLOT_NAME,\n __scopePasswordToggleField\n );\n\n return 'render' in props\n ? //\n props.render({ visible })\n : visible\n ? props.visible\n : props.hidden;\n};\nPasswordToggleFieldSlot.displayName = PASSWORD_TOGGLE_FIELD_SLOT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PasswordToggleFieldIcon\n * -----------------------------------------------------------------------------------------------*/\n\nconst PASSWORD_TOGGLE_FIELD_ICON_NAME = PASSWORD_TOGGLE_FIELD_NAME + 'Icon';\n\ntype PrimitiveSvgProps = React.ComponentPropsWithoutRef<'svg'>;\n\ninterface PasswordToggleFieldIconProps extends Omit {\n visible: React.ReactElement;\n hidden: React.ReactElement;\n}\n\nconst PasswordToggleFieldIcon = React.forwardRef(\n (\n {\n __scopePasswordToggleField,\n // @ts-expect-error\n children,\n ...props\n }: ScopedProps,\n forwardedRef\n ) => {\n const { visible } = usePasswordToggleFieldContext(\n PASSWORD_TOGGLE_FIELD_ICON_NAME,\n __scopePasswordToggleField\n );\n const { visible: visibleIcon, hidden: hiddenIcon, ...domProps } = props;\n return (\n \n {visible ? visibleIcon : hiddenIcon}\n \n );\n }\n);\nPasswordToggleFieldIcon.displayName = PASSWORD_TOGGLE_FIELD_ICON_NAME;\n\nexport {\n PasswordToggleField,\n PasswordToggleFieldInput,\n PasswordToggleFieldToggle,\n PasswordToggleFieldSlot,\n PasswordToggleFieldIcon,\n //\n PasswordToggleField as Root,\n PasswordToggleFieldInput as Input,\n PasswordToggleFieldToggle as Toggle,\n PasswordToggleFieldSlot as Slot,\n PasswordToggleFieldIcon as Icon,\n};\nexport type {\n PasswordToggleFieldProps,\n PasswordToggleFieldInputProps,\n PasswordToggleFieldToggleProps,\n PasswordToggleFieldIconProps,\n PasswordToggleFieldSlotProps,\n};\n\nfunction requestIdleCallback(\n window: Window,\n callback: IdleRequestCallback,\n options?: IdleRequestOptions\n): () => void {\n if ((window as any).requestIdleCallback) {\n const id = window.requestIdleCallback(callback, options);\n return () => {\n window.cancelIdleCallback(id);\n };\n }\n const start = Date.now();\n const id = window.setTimeout(() => {\n const timeRemaining = () => Math.max(0, 50 - (Date.now() - start));\n callback({ didTimeout: false, timeRemaining });\n }, 1);\n return () => {\n window.clearTimeout(id);\n };\n}\n","import React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as RovingFocusGroup from '@radix-ui/react-roving-focus';\nimport { createRovingFocusGroupScope } from '@radix-ui/react-roving-focus';\nimport { Toggle } from '@radix-ui/react-toggle';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useDirection } from '@radix-ui/react-direction';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * ToggleGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst TOGGLE_GROUP_NAME = 'ToggleGroup';\n\ntype ScopedProps

= P & { __scopeToggleGroup?: Scope };\nconst [createToggleGroupContext, createToggleGroupScope] = createContextScope(TOGGLE_GROUP_NAME, [\n createRovingFocusGroupScope,\n]);\nconst useRovingFocusGroupScope = createRovingFocusGroupScope();\n\ntype ToggleGroupElement = ToggleGroupImplSingleElement | ToggleGroupImplMultipleElement;\ninterface ToggleGroupSingleProps extends ToggleGroupImplSingleProps {\n type: 'single';\n}\ninterface ToggleGroupMultipleProps extends ToggleGroupImplMultipleProps {\n type: 'multiple';\n}\n\nconst ToggleGroup = React.forwardRef<\n ToggleGroupElement,\n ToggleGroupSingleProps | ToggleGroupMultipleProps\n>((props, forwardedRef) => {\n const { type, ...toggleGroupProps } = props;\n\n if (type === 'single') {\n const singleProps = toggleGroupProps as ToggleGroupImplSingleProps;\n return ;\n }\n\n if (type === 'multiple') {\n const multipleProps = toggleGroupProps as ToggleGroupImplMultipleProps;\n return ;\n }\n\n throw new Error(`Missing prop \\`type\\` expected on \\`${TOGGLE_GROUP_NAME}\\``);\n});\n\nToggleGroup.displayName = TOGGLE_GROUP_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ToggleGroupValueContextValue = {\n type: 'single' | 'multiple';\n value: string[];\n onItemActivate(value: string): void;\n onItemDeactivate(value: string): void;\n};\n\nconst [ToggleGroupValueProvider, useToggleGroupValueContext] =\n createToggleGroupContext(TOGGLE_GROUP_NAME);\n\ntype ToggleGroupImplSingleElement = ToggleGroupImplElement;\ninterface ToggleGroupImplSingleProps extends ToggleGroupImplProps {\n /**\n * The controlled stateful value of the item that is pressed.\n */\n value?: string;\n /**\n * The value of the item that is pressed when initially rendered. Use\n * `defaultValue` if you do not need to control the state of a toggle group.\n */\n defaultValue?: string;\n /**\n * The callback that fires when the value of the toggle group changes.\n */\n onValueChange?(value: string): void;\n}\n\nconst ToggleGroupImplSingle = React.forwardRef<\n ToggleGroupImplSingleElement,\n ToggleGroupImplSingleProps\n>((props: ScopedProps, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {},\n ...toggleGroupSingleProps\n } = props;\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? '',\n onChange: onValueChange,\n caller: TOGGLE_GROUP_NAME,\n });\n\n return (\n (value ? [value] : []), [value])}\n onItemActivate={setValue}\n onItemDeactivate={React.useCallback(() => setValue(''), [setValue])}\n >\n \n \n );\n});\n\ntype ToggleGroupImplMultipleElement = ToggleGroupImplElement;\ninterface ToggleGroupImplMultipleProps extends ToggleGroupImplProps {\n /**\n * The controlled stateful value of the items that are pressed.\n */\n value?: string[];\n /**\n * The value of the items that are pressed when initially rendered. Use\n * `defaultValue` if you do not need to control the state of a toggle group.\n */\n defaultValue?: string[];\n /**\n * The callback that fires when the state of the toggle group changes.\n */\n onValueChange?(value: string[]): void;\n}\n\nconst ToggleGroupImplMultiple = React.forwardRef<\n ToggleGroupImplMultipleElement,\n ToggleGroupImplMultipleProps\n>((props: ScopedProps, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {},\n ...toggleGroupMultipleProps\n } = props;\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? [],\n onChange: onValueChange,\n caller: TOGGLE_GROUP_NAME,\n });\n\n const handleButtonActivate = React.useCallback(\n (itemValue: string) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n\n const handleButtonDeactivate = React.useCallback(\n (itemValue: string) =>\n setValue((prevValue = []) => prevValue.filter((value) => value !== itemValue)),\n [setValue]\n );\n\n return (\n \n \n \n );\n});\n\nToggleGroup.displayName = TOGGLE_GROUP_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ToggleGroupContextValue = { rovingFocus: boolean; disabled: boolean };\n\nconst [ToggleGroupContext, useToggleGroupContext] =\n createToggleGroupContext(TOGGLE_GROUP_NAME);\n\ntype RovingFocusGroupProps = React.ComponentPropsWithoutRef;\ntype ToggleGroupImplElement = React.ComponentRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface ToggleGroupImplProps extends PrimitiveDivProps {\n /**\n * Whether the group is disabled from user interaction.\n * @defaultValue false\n */\n disabled?: boolean;\n /**\n * Whether the group should maintain roving focus of its buttons.\n * @defaultValue true\n */\n rovingFocus?: boolean;\n loop?: RovingFocusGroupProps['loop'];\n orientation?: RovingFocusGroupProps['orientation'];\n dir?: RovingFocusGroupProps['dir'];\n}\n\nconst ToggleGroupImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeToggleGroup,\n disabled = false,\n rovingFocus = true,\n orientation,\n dir,\n loop = true,\n ...toggleGroupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeToggleGroup);\n const direction = useDirection(dir);\n const commonProps = { role: 'group', dir: direction, ...toggleGroupProps };\n return (\n \n {rovingFocus ? (\n \n \n \n ) : (\n \n )}\n \n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * ToggleGroupItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'ToggleGroupItem';\n\ntype ToggleGroupItemElement = ToggleGroupItemImplElement;\ninterface ToggleGroupItemProps extends Omit {}\n\nconst ToggleGroupItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const valueContext = useToggleGroupValueContext(ITEM_NAME, props.__scopeToggleGroup);\n const context = useToggleGroupContext(ITEM_NAME, props.__scopeToggleGroup);\n const rovingFocusGroupScope = useRovingFocusGroupScope(props.__scopeToggleGroup);\n const pressed = valueContext.value.includes(props.value);\n const disabled = context.disabled || props.disabled;\n const commonProps = { ...props, pressed, disabled };\n const ref = React.useRef(null);\n return context.rovingFocus ? (\n \n \n \n ) : (\n \n );\n }\n);\n\nToggleGroupItem.displayName = ITEM_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ToggleGroupItemImplElement = React.ComponentRef;\ntype ToggleProps = React.ComponentPropsWithoutRef;\ninterface ToggleGroupItemImplProps extends Omit {\n /**\n * A string value for the toggle group item. All items within a toggle group should use a unique value.\n */\n value: string;\n}\n\nconst ToggleGroupItemImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeToggleGroup, value, ...itemProps } = props;\n const valueContext = useToggleGroupValueContext(ITEM_NAME, __scopeToggleGroup);\n const singleProps = { role: 'radio', 'aria-checked': props.pressed, 'aria-pressed': undefined };\n const typeProps = valueContext.type === 'single' ? singleProps : undefined;\n return (\n {\n if (pressed) {\n valueContext.onItemActivate(value);\n } else {\n valueContext.onItemDeactivate(value);\n }\n }}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = ToggleGroup;\nconst Item = ToggleGroupItem;\n\nexport {\n createToggleGroupScope,\n //\n ToggleGroup,\n ToggleGroupItem,\n //\n Root,\n Item,\n};\nexport type { ToggleGroupSingleProps, ToggleGroupMultipleProps, ToggleGroupItemProps };\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","import * as React from 'react';\nimport { Primitive } from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * Label\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAME = 'Label';\n\ntype LabelElement = React.ComponentRef;\ntype PrimitiveLabelProps = React.ComponentPropsWithoutRef;\ninterface LabelProps extends PrimitiveLabelProps {}\n\nconst Label = React.forwardRef((props, forwardedRef) => {\n return (\n {\n // only prevent text selection if clicking inside the label itself\n const target = event.target as HTMLElement;\n if (target.closest('button, input, select, textarea')) return;\n\n props.onMouseDown?.(event);\n // prevent text selection when double clicking label\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }}\n />\n );\n});\n\nLabel.displayName = NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Label;\n\nexport {\n Label,\n //\n Root,\n};\nexport type { LabelProps };\n","// src/use-effect-event.tsx\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport * as React from \"react\";\nvar useReactEffectEvent = React[\" useEffectEvent \".trim().toString()];\nvar useReactInsertionEffect = React[\" useInsertionEffect \".trim().toString()];\nfunction useEffectEvent(callback) {\n if (typeof useReactEffectEvent === \"function\") {\n return useReactEffectEvent(callback);\n }\n const ref = React.useRef(() => {\n throw new Error(\"Cannot call an event handler while rendering.\");\n });\n if (typeof useReactInsertionEffect === \"function\") {\n useReactInsertionEffect(() => {\n ref.current = callback;\n });\n } else {\n useLayoutEffect(() => {\n ref.current = callback;\n });\n }\n return React.useMemo(() => (...args) => ref.current?.(...args), []);\n}\nexport {\n useEffectEvent\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createCollection } from '@radix-ui/react-collection';\nimport { createContextScope } from '@radix-ui/react-context';\nimport * as DismissableLayer from '@radix-ui/react-dismissable-layer';\nimport { Portal } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive, dispatchDiscreteCustomEvent } from '@radix-ui/react-primitive';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { VisuallyHidden } from '@radix-ui/react-visually-hidden';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * ToastProvider\n * -----------------------------------------------------------------------------------------------*/\n\nconst PROVIDER_NAME = 'ToastProvider';\n\nconst [Collection, useCollection, createCollectionScope] = createCollection('Toast');\n\ntype SwipeDirection = 'up' | 'down' | 'left' | 'right';\ntype ToastProviderContextValue = {\n label: string;\n duration: number;\n swipeDirection: SwipeDirection;\n swipeThreshold: number;\n toastCount: number;\n viewport: ToastViewportElement | null;\n onViewportChange(viewport: ToastViewportElement): void;\n onToastAdd(): void;\n onToastRemove(): void;\n isFocusedToastEscapeKeyDownRef: React.MutableRefObject;\n isClosePausedRef: React.MutableRefObject;\n};\n\ntype ScopedProps

= P & { __scopeToast?: Scope };\nconst [createToastContext, createToastScope] = createContextScope('Toast', [createCollectionScope]);\nconst [ToastProviderProvider, useToastProviderContext] =\n createToastContext(PROVIDER_NAME);\n\ninterface ToastProviderProps {\n children?: React.ReactNode;\n /**\n * An author-localized label for each toast. Used to help screen reader users\n * associate the interruption with a toast.\n * @defaultValue 'Notification'\n */\n label?: string;\n /**\n * Time in milliseconds that each toast should remain visible for.\n * @defaultValue 5000\n */\n duration?: number;\n /**\n * Direction of pointer swipe that should close the toast.\n * @defaultValue 'right'\n */\n swipeDirection?: SwipeDirection;\n /**\n * Distance in pixels that the swipe must pass before a close is triggered.\n * @defaultValue 50\n */\n swipeThreshold?: number;\n}\n\nconst ToastProvider: React.FC = (props: ScopedProps) => {\n const {\n __scopeToast,\n label = 'Notification',\n duration = 5000,\n swipeDirection = 'right',\n swipeThreshold = 50,\n children,\n } = props;\n const [viewport, setViewport] = React.useState(null);\n const [toastCount, setToastCount] = React.useState(0);\n const isFocusedToastEscapeKeyDownRef = React.useRef(false);\n const isClosePausedRef = React.useRef(false);\n\n if (!label.trim()) {\n console.error(\n `Invalid prop \\`label\\` supplied to \\`${PROVIDER_NAME}\\`. Expected non-empty \\`string\\`.`\n );\n }\n\n return (\n \n setToastCount((prevCount) => prevCount + 1), [])}\n onToastRemove={React.useCallback(() => setToastCount((prevCount) => prevCount - 1), [])}\n isFocusedToastEscapeKeyDownRef={isFocusedToastEscapeKeyDownRef}\n isClosePausedRef={isClosePausedRef}\n >\n {children}\n \n \n );\n};\n\nToastProvider.displayName = PROVIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ToastViewport\n * -----------------------------------------------------------------------------------------------*/\n\nconst VIEWPORT_NAME = 'ToastViewport';\nconst VIEWPORT_DEFAULT_HOTKEY = ['F8'];\nconst VIEWPORT_PAUSE = 'toast.viewportPause';\nconst VIEWPORT_RESUME = 'toast.viewportResume';\n\ntype ToastViewportElement = React.ComponentRef;\ntype PrimitiveOrderedListProps = React.ComponentPropsWithoutRef;\ninterface ToastViewportProps extends PrimitiveOrderedListProps {\n /**\n * The keys to use as the keyboard shortcut that will move focus to the toast viewport.\n * @defaultValue ['F8']\n */\n hotkey?: string[];\n /**\n * An author-localized label for the toast viewport to provide context for screen reader users\n * when navigating page landmarks. The available `{hotkey}` placeholder will be replaced for you.\n * @defaultValue 'Notifications ({hotkey})'\n */\n label?: string;\n}\n\nconst ToastViewport = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeToast,\n hotkey = VIEWPORT_DEFAULT_HOTKEY,\n label = 'Notifications ({hotkey})',\n ...viewportProps\n } = props;\n const context = useToastProviderContext(VIEWPORT_NAME, __scopeToast);\n const getItems = useCollection(__scopeToast);\n const wrapperRef = React.useRef(null);\n const headFocusProxyRef = React.useRef(null);\n const tailFocusProxyRef = React.useRef(null);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);\n const hotkeyLabel = hotkey.join('+').replace(/Key/g, '').replace(/Digit/g, '');\n const hasToasts = context.toastCount > 0;\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n // we use `event.code` as it is consistent regardless of meta keys that were pressed.\n // for example, `event.key` for `Control+Alt+t` is `†` and `t !== †`\n const isHotkeyPressed =\n hotkey.length !== 0 && hotkey.every((key) => (event as any)[key] || event.code === key);\n if (isHotkeyPressed) ref.current?.focus();\n };\n document.addEventListener('keydown', handleKeyDown);\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [hotkey]);\n\n React.useEffect(() => {\n const wrapper = wrapperRef.current;\n const viewport = ref.current;\n if (hasToasts && wrapper && viewport) {\n const handlePause = () => {\n if (!context.isClosePausedRef.current) {\n const pauseEvent = new CustomEvent(VIEWPORT_PAUSE);\n viewport.dispatchEvent(pauseEvent);\n context.isClosePausedRef.current = true;\n }\n };\n\n const handleResume = () => {\n if (context.isClosePausedRef.current) {\n const resumeEvent = new CustomEvent(VIEWPORT_RESUME);\n viewport.dispatchEvent(resumeEvent);\n context.isClosePausedRef.current = false;\n }\n };\n\n const handleFocusOutResume = (event: FocusEvent) => {\n const isFocusMovingOutside = !wrapper.contains(event.relatedTarget as HTMLElement);\n if (isFocusMovingOutside) handleResume();\n };\n\n const handlePointerLeaveResume = () => {\n const isFocusInside = wrapper.contains(document.activeElement);\n if (!isFocusInside) handleResume();\n };\n\n // Toasts are not in the viewport React tree so we need to bind DOM events\n wrapper.addEventListener('focusin', handlePause);\n wrapper.addEventListener('focusout', handleFocusOutResume);\n wrapper.addEventListener('pointermove', handlePause);\n wrapper.addEventListener('pointerleave', handlePointerLeaveResume);\n window.addEventListener('blur', handlePause);\n window.addEventListener('focus', handleResume);\n return () => {\n wrapper.removeEventListener('focusin', handlePause);\n wrapper.removeEventListener('focusout', handleFocusOutResume);\n wrapper.removeEventListener('pointermove', handlePause);\n wrapper.removeEventListener('pointerleave', handlePointerLeaveResume);\n window.removeEventListener('blur', handlePause);\n window.removeEventListener('focus', handleResume);\n };\n }\n }, [hasToasts, context.isClosePausedRef]);\n\n const getSortedTabbableCandidates = React.useCallback(\n ({ tabbingDirection }: { tabbingDirection: 'forwards' | 'backwards' }) => {\n const toastItems = getItems();\n const tabbableCandidates = toastItems.map((toastItem) => {\n const toastNode = toastItem.ref.current!;\n const toastTabbableCandidates = [toastNode, ...getTabbableCandidates(toastNode)];\n return tabbingDirection === 'forwards'\n ? toastTabbableCandidates\n : toastTabbableCandidates.reverse();\n });\n return (\n tabbingDirection === 'forwards' ? tabbableCandidates.reverse() : tabbableCandidates\n ).flat();\n },\n [getItems]\n );\n\n React.useEffect(() => {\n const viewport = ref.current;\n // We programmatically manage tabbing as we are unable to influence\n // the source order with portals, this allows us to reverse the\n // tab order so that it runs from most recent toast to least\n if (viewport) {\n const handleKeyDown = (event: KeyboardEvent) => {\n const isMetaKey = event.altKey || event.ctrlKey || event.metaKey;\n const isTabKey = event.key === 'Tab' && !isMetaKey;\n\n if (isTabKey) {\n const focusedElement = document.activeElement;\n const isTabbingBackwards = event.shiftKey;\n const targetIsViewport = event.target === viewport;\n\n // If we're back tabbing after jumping to the viewport then we simply\n // proxy focus out to the preceding document\n if (targetIsViewport && isTabbingBackwards) {\n headFocusProxyRef.current?.focus();\n return;\n }\n\n const tabbingDirection = isTabbingBackwards ? 'backwards' : 'forwards';\n const sortedCandidates = getSortedTabbableCandidates({ tabbingDirection });\n const index = sortedCandidates.findIndex((candidate) => candidate === focusedElement);\n if (focusFirst(sortedCandidates.slice(index + 1))) {\n event.preventDefault();\n } else {\n // If we can't focus that means we're at the edges so we\n // proxy to the corresponding exit point and let the browser handle\n // tab/shift+tab keypress and implicitly pass focus to the next valid element in the document\n isTabbingBackwards\n ? headFocusProxyRef.current?.focus()\n : tailFocusProxyRef.current?.focus();\n }\n }\n };\n\n // Toasts are not in the viewport React tree so we need to bind DOM events\n viewport.addEventListener('keydown', handleKeyDown);\n return () => viewport.removeEventListener('keydown', handleKeyDown);\n }\n }, [getItems, getSortedTabbableCandidates]);\n\n return (\n \n {hasToasts && (\n {\n const tabbableCandidates = getSortedTabbableCandidates({\n tabbingDirection: 'forwards',\n });\n focusFirst(tabbableCandidates);\n }}\n />\n )}\n {/**\n * tabindex on the the list so that it can be focused when items are removed. we focus\n * the list instead of the viewport so it announces number of items remaining.\n */}\n \n \n \n {hasToasts && (\n {\n const tabbableCandidates = getSortedTabbableCandidates({\n tabbingDirection: 'backwards',\n });\n focusFirst(tabbableCandidates);\n }}\n />\n )}\n \n );\n }\n);\n\nToastViewport.displayName = VIEWPORT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst FOCUS_PROXY_NAME = 'ToastFocusProxy';\n\ntype FocusProxyElement = React.ComponentRef;\ntype VisuallyHiddenProps = React.ComponentPropsWithoutRef;\ninterface FocusProxyProps extends VisuallyHiddenProps {\n onFocusFromOutsideViewport(): void;\n}\n\nconst FocusProxy = React.forwardRef>(\n (props, forwardedRef) => {\n const { __scopeToast, onFocusFromOutsideViewport, ...proxyProps } = props;\n const context = useToastProviderContext(FOCUS_PROXY_NAME, __scopeToast);\n\n return (\n {\n const prevFocusedElement = event.relatedTarget as HTMLElement | null;\n const isFocusFromOutsideViewport = !context.viewport?.contains(prevFocusedElement);\n if (isFocusFromOutsideViewport) onFocusFromOutsideViewport();\n }}\n />\n );\n }\n);\n\nFocusProxy.displayName = FOCUS_PROXY_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Toast\n * -----------------------------------------------------------------------------------------------*/\n\nconst TOAST_NAME = 'Toast';\nconst TOAST_SWIPE_START = 'toast.swipeStart';\nconst TOAST_SWIPE_MOVE = 'toast.swipeMove';\nconst TOAST_SWIPE_CANCEL = 'toast.swipeCancel';\nconst TOAST_SWIPE_END = 'toast.swipeEnd';\n\ntype ToastElement = ToastImplElement;\ninterface ToastProps extends Omit {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst Toast = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { forceMount, open: openProp, defaultOpen, onOpenChange, ...toastProps } = props;\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? true,\n onChange: onOpenChange,\n caller: TOAST_NAME,\n });\n return (\n \n setOpen(false)}\n onPause={useCallbackRef(props.onPause)}\n onResume={useCallbackRef(props.onResume)}\n onSwipeStart={composeEventHandlers(props.onSwipeStart, (event) => {\n event.currentTarget.setAttribute('data-swipe', 'start');\n })}\n onSwipeMove={composeEventHandlers(props.onSwipeMove, (event) => {\n const { x, y } = event.detail.delta;\n event.currentTarget.setAttribute('data-swipe', 'move');\n event.currentTarget.style.setProperty('--radix-toast-swipe-move-x', `${x}px`);\n event.currentTarget.style.setProperty('--radix-toast-swipe-move-y', `${y}px`);\n })}\n onSwipeCancel={composeEventHandlers(props.onSwipeCancel, (event) => {\n event.currentTarget.setAttribute('data-swipe', 'cancel');\n event.currentTarget.style.removeProperty('--radix-toast-swipe-move-x');\n event.currentTarget.style.removeProperty('--radix-toast-swipe-move-y');\n event.currentTarget.style.removeProperty('--radix-toast-swipe-end-x');\n event.currentTarget.style.removeProperty('--radix-toast-swipe-end-y');\n })}\n onSwipeEnd={composeEventHandlers(props.onSwipeEnd, (event) => {\n const { x, y } = event.detail.delta;\n event.currentTarget.setAttribute('data-swipe', 'end');\n event.currentTarget.style.removeProperty('--radix-toast-swipe-move-x');\n event.currentTarget.style.removeProperty('--radix-toast-swipe-move-y');\n event.currentTarget.style.setProperty('--radix-toast-swipe-end-x', `${x}px`);\n event.currentTarget.style.setProperty('--radix-toast-swipe-end-y', `${y}px`);\n setOpen(false);\n })}\n />\n \n );\n }\n);\n\nToast.displayName = TOAST_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype SwipeEvent = { currentTarget: EventTarget & ToastElement } & Omit<\n CustomEvent<{ originalEvent: React.PointerEvent; delta: { x: number; y: number } }>,\n 'currentTarget'\n>;\n\nconst [ToastInteractiveProvider, useToastInteractiveContext] = createToastContext(TOAST_NAME, {\n onClose() {},\n});\n\ntype ToastImplElement = React.ComponentRef;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef;\ntype ToastImplPrivateProps = { open: boolean; onClose(): void };\ntype PrimitiveListItemProps = React.ComponentPropsWithoutRef;\ninterface ToastImplProps extends ToastImplPrivateProps, PrimitiveListItemProps {\n type?: 'foreground' | 'background';\n /**\n * Time in milliseconds that toast should remain visible for. Overrides value\n * given to `ToastProvider`.\n */\n duration?: number;\n onEscapeKeyDown?: DismissableLayerProps['onEscapeKeyDown'];\n onPause?(): void;\n onResume?(): void;\n onSwipeStart?(event: SwipeEvent): void;\n onSwipeMove?(event: SwipeEvent): void;\n onSwipeCancel?(event: SwipeEvent): void;\n onSwipeEnd?(event: SwipeEvent): void;\n}\n\nconst ToastImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeToast,\n type = 'foreground',\n duration: durationProp,\n open,\n onClose,\n onEscapeKeyDown,\n onPause,\n onResume,\n onSwipeStart,\n onSwipeMove,\n onSwipeCancel,\n onSwipeEnd,\n ...toastProps\n } = props;\n const context = useToastProviderContext(TOAST_NAME, __scopeToast);\n const [node, setNode] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setNode(node));\n const pointerStartRef = React.useRef<{ x: number; y: number } | null>(null);\n const swipeDeltaRef = React.useRef<{ x: number; y: number } | null>(null);\n const duration = durationProp || context.duration;\n const closeTimerStartTimeRef = React.useRef(0);\n const closeTimerRemainingTimeRef = React.useRef(duration);\n const closeTimerRef = React.useRef(0);\n const { onToastAdd, onToastRemove } = context;\n const handleClose = useCallbackRef(() => {\n // focus viewport if focus is within toast to read the remaining toast\n // count to SR users and ensure focus isn't lost\n const isFocusInToast = node?.contains(document.activeElement);\n if (isFocusInToast) context.viewport?.focus();\n onClose();\n });\n\n const startTimer = React.useCallback(\n (duration: number) => {\n if (!duration || duration === Infinity) return;\n window.clearTimeout(closeTimerRef.current);\n closeTimerStartTimeRef.current = new Date().getTime();\n closeTimerRef.current = window.setTimeout(handleClose, duration);\n },\n [handleClose]\n );\n\n React.useEffect(() => {\n const viewport = context.viewport;\n if (viewport) {\n const handleResume = () => {\n startTimer(closeTimerRemainingTimeRef.current);\n onResume?.();\n };\n const handlePause = () => {\n const elapsedTime = new Date().getTime() - closeTimerStartTimeRef.current;\n closeTimerRemainingTimeRef.current = closeTimerRemainingTimeRef.current - elapsedTime;\n window.clearTimeout(closeTimerRef.current);\n onPause?.();\n };\n viewport.addEventListener(VIEWPORT_PAUSE, handlePause);\n viewport.addEventListener(VIEWPORT_RESUME, handleResume);\n return () => {\n viewport.removeEventListener(VIEWPORT_PAUSE, handlePause);\n viewport.removeEventListener(VIEWPORT_RESUME, handleResume);\n };\n }\n }, [context.viewport, duration, onPause, onResume, startTimer]);\n\n // start timer when toast opens or duration changes.\n // we include `open` in deps because closed !== unmounted when animating\n // so it could reopen before being completely unmounted\n React.useEffect(() => {\n if (open && !context.isClosePausedRef.current) startTimer(duration);\n }, [open, duration, context.isClosePausedRef, startTimer]);\n\n React.useEffect(() => {\n onToastAdd();\n return () => onToastRemove();\n }, [onToastAdd, onToastRemove]);\n\n const announceTextContent = React.useMemo(() => {\n return node ? getAnnounceTextContent(node) : null;\n }, [node]);\n\n if (!context.viewport) return null;\n\n return (\n <>\n {announceTextContent && (\n \n {announceTextContent}\n \n )}\n\n \n {ReactDOM.createPortal(\n \n {\n if (!context.isFocusedToastEscapeKeyDownRef.current) handleClose();\n context.isFocusedToastEscapeKeyDownRef.current = false;\n })}\n >\n {\n if (event.key !== 'Escape') return;\n onEscapeKeyDown?.(event.nativeEvent);\n if (!event.nativeEvent.defaultPrevented) {\n context.isFocusedToastEscapeKeyDownRef.current = true;\n handleClose();\n }\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n if (event.button !== 0) return;\n pointerStartRef.current = { x: event.clientX, y: event.clientY };\n })}\n onPointerMove={composeEventHandlers(props.onPointerMove, (event) => {\n if (!pointerStartRef.current) return;\n const x = event.clientX - pointerStartRef.current.x;\n const y = event.clientY - pointerStartRef.current.y;\n const hasSwipeMoveStarted = Boolean(swipeDeltaRef.current);\n const isHorizontalSwipe = ['left', 'right'].includes(context.swipeDirection);\n const clamp = ['left', 'up'].includes(context.swipeDirection)\n ? Math.min\n : Math.max;\n const clampedX = isHorizontalSwipe ? clamp(0, x) : 0;\n const clampedY = !isHorizontalSwipe ? clamp(0, y) : 0;\n const moveStartBuffer = event.pointerType === 'touch' ? 10 : 2;\n const delta = { x: clampedX, y: clampedY };\n const eventDetail = { originalEvent: event, delta };\n if (hasSwipeMoveStarted) {\n swipeDeltaRef.current = delta;\n handleAndDispatchCustomEvent(TOAST_SWIPE_MOVE, onSwipeMove, eventDetail, {\n discrete: false,\n });\n } else if (isDeltaInDirection(delta, context.swipeDirection, moveStartBuffer)) {\n swipeDeltaRef.current = delta;\n handleAndDispatchCustomEvent(TOAST_SWIPE_START, onSwipeStart, eventDetail, {\n discrete: false,\n });\n (event.target as HTMLElement).setPointerCapture(event.pointerId);\n } else if (Math.abs(x) > moveStartBuffer || Math.abs(y) > moveStartBuffer) {\n // User is swiping in wrong direction so we disable swipe gesture\n // for the current pointer down interaction\n pointerStartRef.current = null;\n }\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const delta = swipeDeltaRef.current;\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n swipeDeltaRef.current = null;\n pointerStartRef.current = null;\n if (delta) {\n const toast = event.currentTarget;\n const eventDetail = { originalEvent: event, delta };\n if (\n isDeltaInDirection(delta, context.swipeDirection, context.swipeThreshold)\n ) {\n handleAndDispatchCustomEvent(TOAST_SWIPE_END, onSwipeEnd, eventDetail, {\n discrete: true,\n });\n } else {\n handleAndDispatchCustomEvent(\n TOAST_SWIPE_CANCEL,\n onSwipeCancel,\n eventDetail,\n {\n discrete: true,\n }\n );\n }\n // Prevent click event from triggering on items within the toast when\n // pointer up is part of a swipe gesture\n toast.addEventListener('click', (event) => event.preventDefault(), {\n once: true,\n });\n }\n })}\n />\n \n ,\n context.viewport\n )}\n \n \n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ninterface ToastAnnounceProps\n extends Omit, 'children'>,\n ScopedProps<{ children: string[] }> {}\n\nconst ToastAnnounce: React.FC = (props: ScopedProps) => {\n const { __scopeToast, children, ...announceProps } = props;\n const context = useToastProviderContext(TOAST_NAME, __scopeToast);\n const [renderAnnounceText, setRenderAnnounceText] = React.useState(false);\n const [isAnnounced, setIsAnnounced] = React.useState(false);\n\n // render text content in the next frame to ensure toast is announced in NVDA\n useNextFrame(() => setRenderAnnounceText(true));\n\n // cleanup after announcing\n React.useEffect(() => {\n const timer = window.setTimeout(() => setIsAnnounced(true), 1000);\n return () => window.clearTimeout(timer);\n }, []);\n\n return isAnnounced ? null : (\n \n \n {renderAnnounceText && (\n <>\n {context.label} {children}\n \n )}\n \n \n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ToastTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'ToastTitle';\n\ntype ToastTitleElement = React.ComponentRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface ToastTitleProps extends PrimitiveDivProps {}\n\nconst ToastTitle = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeToast, ...titleProps } = props;\n return ;\n }\n);\n\nToastTitle.displayName = TITLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ToastDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DESCRIPTION_NAME = 'ToastDescription';\n\ntype ToastDescriptionElement = React.ComponentRef;\ninterface ToastDescriptionProps extends PrimitiveDivProps {}\n\nconst ToastDescription = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeToast, ...descriptionProps } = props;\n return ;\n }\n);\n\nToastDescription.displayName = DESCRIPTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ToastAction\n * -----------------------------------------------------------------------------------------------*/\n\nconst ACTION_NAME = 'ToastAction';\n\ntype ToastActionElement = ToastCloseElement;\ninterface ToastActionProps extends ToastCloseProps {\n /**\n * A short description for an alternate way to carry out the action. For screen reader users\n * who will not be able to navigate to the button easily/quickly.\n * @example Upgrade\n * @example Undo\n */\n altText: string;\n}\n\nconst ToastAction = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { altText, ...actionProps } = props;\n\n if (!altText.trim()) {\n console.error(\n `Invalid prop \\`altText\\` supplied to \\`${ACTION_NAME}\\`. Expected non-empty \\`string\\`.`\n );\n return null;\n }\n\n return (\n \n \n \n );\n }\n);\n\nToastAction.displayName = ACTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ToastClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'ToastClose';\n\ntype ToastCloseElement = React.ComponentRef;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef;\ninterface ToastCloseProps extends PrimitiveButtonProps {}\n\nconst ToastClose = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeToast, ...closeProps } = props;\n const interactiveContext = useToastInteractiveContext(CLOSE_NAME, __scopeToast);\n\n return (\n \n \n \n );\n }\n);\n\nToastClose.displayName = CLOSE_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype ToastAnnounceExcludeElement = React.ComponentRef;\ninterface ToastAnnounceExcludeProps extends PrimitiveDivProps {\n altText?: string;\n}\n\nconst ToastAnnounceExclude = React.forwardRef<\n ToastAnnounceExcludeElement,\n ToastAnnounceExcludeProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeToast, altText, ...announceExcludeProps } = props;\n\n return (\n \n );\n});\n\nfunction getAnnounceTextContent(container: HTMLElement) {\n const textContent: string[] = [];\n const childNodes = Array.from(container.childNodes);\n\n childNodes.forEach((node) => {\n if (node.nodeType === node.TEXT_NODE && node.textContent) textContent.push(node.textContent);\n if (isHTMLElement(node)) {\n const isHidden = node.ariaHidden || node.hidden || node.style.display === 'none';\n const isExcluded = node.dataset.radixToastAnnounceExclude === '';\n\n if (!isHidden) {\n if (isExcluded) {\n const altText = node.dataset.radixToastAnnounceAlt;\n if (altText) textContent.push(altText);\n } else {\n textContent.push(...getAnnounceTextContent(node));\n }\n }\n }\n });\n\n // We return a collection of text rather than a single concatenated string.\n // This allows SR VO to naturally pause break between nodes while announcing.\n return textContent;\n}\n\n/* ---------------------------------------------------------------------------------------------- */\n\nfunction handleAndDispatchCustomEvent<\n E extends CustomEvent,\n ReactEvent extends React.SyntheticEvent,\n>(\n name: string,\n handler: ((event: E) => void) | undefined,\n detail: { originalEvent: ReactEvent } & (E extends CustomEvent ? D : never),\n { discrete }: { discrete: boolean }\n) {\n const currentTarget = detail.originalEvent.currentTarget as HTMLElement;\n const event = new CustomEvent(name, { bubbles: true, cancelable: true, detail });\n if (handler) currentTarget.addEventListener(name, handler as EventListener, { once: true });\n\n if (discrete) {\n dispatchDiscreteCustomEvent(currentTarget, event);\n } else {\n currentTarget.dispatchEvent(event);\n }\n}\n\nconst isDeltaInDirection = (\n delta: { x: number; y: number },\n direction: SwipeDirection,\n threshold = 0\n) => {\n const deltaX = Math.abs(delta.x);\n const deltaY = Math.abs(delta.y);\n const isDeltaX = deltaX > deltaY;\n if (direction === 'left' || direction === 'right') {\n return isDeltaX && deltaX > threshold;\n } else {\n return !isDeltaX && deltaY > threshold;\n }\n};\n\nfunction useNextFrame(callback = () => {}) {\n const fn = useCallbackRef(callback);\n useLayoutEffect(() => {\n let raf1 = 0;\n let raf2 = 0;\n raf1 = window.requestAnimationFrame(() => (raf2 = window.requestAnimationFrame(fn)));\n return () => {\n window.cancelAnimationFrame(raf1);\n window.cancelAnimationFrame(raf2);\n };\n }, [fn]);\n}\n\nfunction isHTMLElement(node: any): node is HTMLElement {\n return node.nodeType === node.ELEMENT_NODE;\n}\n\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */\nfunction getTabbableCandidates(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n\nfunction focusFirst(candidates: HTMLElement[]) {\n const previouslyFocusedElement = document.activeElement;\n return candidates.some((candidate) => {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === previouslyFocusedElement) return true;\n candidate.focus();\n return document.activeElement !== previouslyFocusedElement;\n });\n}\n\nconst Provider = ToastProvider;\nconst Viewport = ToastViewport;\nconst Root = Toast;\nconst Title = ToastTitle;\nconst Description = ToastDescription;\nconst Action = ToastAction;\nconst Close = ToastClose;\n\nexport {\n createToastScope,\n //\n ToastProvider,\n ToastViewport,\n Toast,\n ToastTitle,\n ToastDescription,\n ToastAction,\n ToastClose,\n //\n Provider,\n Viewport,\n Root,\n Title,\n Description,\n Action,\n Close,\n};\nexport type {\n ToastProviderProps,\n ToastViewportProps,\n ToastProps,\n ToastTitleProps,\n ToastDescriptionProps,\n ToastActionProps,\n ToastCloseProps,\n};\n","import * as Primitive from '@radix-ui/react-primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { unstable_createCollection as createCollection } from '@radix-ui/react-collection';\nimport * as RovingFocusGroup from '@radix-ui/react-roving-focus';\nimport { createRovingFocusGroupScope } from '@radix-ui/react-roving-focus';\nimport { useIsHydrated } from '@radix-ui/react-use-is-hydrated';\nimport * as React from 'react';\nimport { flushSync } from 'react-dom';\nimport type { Scope } from '@radix-ui/react-context';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { clamp } from '@radix-ui/number';\nimport { useEffectEvent } from '@radix-ui/react-use-effect-event';\n\ntype InputValidationType = 'alpha' | 'numeric' | 'alphanumeric' | 'none';\n\nconst INPUT_VALIDATION_MAP = {\n numeric: {\n type: 'numeric',\n regexp: /[^\\d]/g,\n pattern: '\\\\d{1}',\n inputMode: 'numeric',\n },\n alpha: {\n type: 'alpha',\n regexp: /[^a-zA-Z]/g,\n pattern: '[a-zA-Z]{1}',\n inputMode: 'text',\n },\n alphanumeric: {\n type: 'alphanumeric',\n regexp: /[^a-zA-Z0-9]/g,\n pattern: '[a-zA-Z0-9]{1}',\n inputMode: 'text',\n },\n none: null,\n} satisfies InputValidation;\n\n/* -------------------------------------------------------------------------------------------------\n * OneTimePasswordFieldProvider\n * -----------------------------------------------------------------------------------------------*/\n\ntype RovingFocusGroupProps = RovingFocusGroup.RovingFocusGroupProps;\n\ninterface OneTimePasswordFieldContextValue {\n attemptSubmit: () => void;\n autoComplete: AutoComplete;\n autoFocus: boolean;\n disabled: boolean;\n dispatch: Dispatcher;\n form: string | undefined;\n hiddenInputRef: React.RefObject;\n isHydrated: boolean;\n name: string | undefined;\n orientation: Exclude;\n placeholder: string | undefined;\n readOnly: boolean;\n type: InputType;\n userActionRef: React.RefObject;\n validationType: InputValidationType;\n value: string[];\n sanitizeValue: (arg: string | string[]) => string[];\n}\n\nconst ONE_TIME_PASSWORD_FIELD_NAME = 'OneTimePasswordField';\nconst [Collection, { useCollection, createCollectionScope, useInitCollection }] =\n createCollection(ONE_TIME_PASSWORD_FIELD_NAME);\nconst [createOneTimePasswordFieldContext] = createContextScope(ONE_TIME_PASSWORD_FIELD_NAME, [\n createCollectionScope,\n createRovingFocusGroupScope,\n]);\nconst useRovingFocusGroupScope = createRovingFocusGroupScope();\n\nconst [OneTimePasswordFieldContext, useOneTimePasswordFieldContext] =\n createOneTimePasswordFieldContext(ONE_TIME_PASSWORD_FIELD_NAME);\n\n/* -------------------------------------------------------------------------------------------------\n * OneTimePasswordField\n * -----------------------------------------------------------------------------------------------*/\n\ninterface OneTimePasswordFieldOwnProps {\n /**\n * Specifies what—if any—permission the user agent has to provide automated\n * assistance in filling out form field values, as well as guidance to the\n * browser as to the type of information expected in the field. Allows\n * `\"one-time-code\"` or `\"off\"`.\n *\n * @defaultValue `\"one-time-code\"`\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete\n */\n autoComplete?: AutoComplete;\n /**\n * Whether or not the first fillable input should be focused on page-load.\n *\n * @defaultValue `false`\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/autofocus\n */\n autoFocus?: boolean;\n /**\n * Whether or not the component should attempt to automatically submit when\n * all fields are filled. If the field is associated with an HTML `form`\n * element, the form's `requestSubmit` method will be called.\n *\n * @defaultValue `false`\n */\n autoSubmit?: boolean;\n /**\n * The initial value of the uncontrolled field.\n */\n defaultValue?: string;\n /**\n * Indicates the horizontal directionality of the parent element's text.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/dir\n */\n dir?: RovingFocusGroupProps['dir'];\n /**\n * Whether or not the the field's input elements are disabled.\n */\n disabled?: boolean;\n /**\n * A string specifying the `form` element with which the input is associated.\n * This string's value, if present, must match the id of a `form` element in\n * the same document.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#form\n */\n form?: string | undefined;\n /**\n * A string specifying a name for the input control. This name is submitted\n * along with the control's value when the form data is submitted.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input#name\n */\n name?: string | undefined;\n /**\n * When the `autoSubmit` prop is set to `true`, this callback will be fired\n * before attempting to submit the associated form. It will be called whether\n * or not a form is located, or if submission is not allowed.\n */\n onAutoSubmit?: (value: string) => void;\n /**\n * A callback fired when the field's value changes. When the component is\n * controlled, this should update the state passed to the `value` prop.\n */\n onValueChange?: (value: string) => void;\n /**\n * Indicates the vertical directionality of the input elements.\n *\n * @defaultValue `\"horizontal\"`\n */\n orientation?: RovingFocusGroupProps['orientation'];\n /**\n * Defines the text displayed in a form control when the control has no value.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/placeholder\n */\n placeholder?: string | undefined;\n /**\n * Whether or not the input elements can be updated by the user.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/readonly\n */\n readOnly?: boolean;\n /**\n * Function for custom sanitization when `validationType` is set to `\"none\"`.\n * This function will be called before updating values in response to user\n * interactions.\n */\n sanitizeValue?: (value: string) => string;\n /**\n * The input type of the field's input elements. Can be `\"password\"` or `\"text\"`.\n */\n type?: InputType;\n /**\n * Specifies the type of input validation to be used. Can be `\"alpha\"`,\n * `\"numeric\"`, `\"alphanumeric\"` or `\"none\"`.\n *\n * @defaultValue `\"numeric\"`\n */\n validationType?: InputValidationType;\n /**\n * The controlled value of the field.\n */\n value?: string;\n}\n\ntype ScopedProps

= P & { __scopeOneTimePasswordField?: Scope };\n\ninterface OneTimePasswordFieldProps\n extends OneTimePasswordFieldOwnProps,\n Omit, keyof OneTimePasswordFieldOwnProps> {}\n\nconst OneTimePasswordField = React.forwardRef(\n function OneTimePasswordFieldImpl(\n {\n __scopeOneTimePasswordField,\n defaultValue,\n value: valueProp,\n onValueChange,\n autoSubmit = false,\n children,\n onPaste,\n onAutoSubmit,\n disabled = false,\n readOnly = false,\n autoComplete = 'one-time-code',\n autoFocus = false,\n form,\n name,\n placeholder,\n type = 'text',\n // TODO: Change default to vertical when inputs use vertical writing mode\n orientation = 'horizontal',\n dir,\n validationType = 'numeric',\n sanitizeValue: sanitizeValueProp,\n ...domProps\n }: ScopedProps,\n forwardedRef\n ) {\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeOneTimePasswordField);\n const direction = useDirection(dir);\n const collectionState = useInitCollection();\n const [collection] = collectionState;\n\n const validation = INPUT_VALIDATION_MAP[validationType]\n ? INPUT_VALIDATION_MAP[validationType as keyof InputValidation]\n : null;\n\n const sanitizeValue = React.useCallback(\n (value: string | string[]) => {\n if (Array.isArray(value)) {\n value = value.map(removeWhitespace).join('');\n } else {\n value = removeWhitespace(value);\n }\n\n if (validation) {\n // global regexp is stateful, so we clone it for each call\n const regexp = new RegExp(validation.regexp);\n value = value.replace(regexp, '');\n } else if (sanitizeValueProp) {\n value = sanitizeValueProp(value);\n }\n\n return value.split('');\n },\n [validation, sanitizeValueProp]\n );\n\n const controlledValue = React.useMemo(() => {\n return valueProp != null ? sanitizeValue(valueProp) : undefined;\n }, [valueProp, sanitizeValue]);\n\n const [value, setValue] = useControllableState({\n caller: 'OneTimePasswordField',\n prop: controlledValue,\n defaultProp: defaultValue != null ? sanitizeValue(defaultValue) : [],\n onChange: React.useCallback(\n (value: string[]) => onValueChange?.(value.join('')),\n [onValueChange]\n ),\n });\n\n // Update function *specifically* for event handlers.\n const dispatch = useEffectEvent((action) => {\n switch (action.type) {\n case 'SET_CHAR': {\n const { index, char } = action;\n const currentTarget = collection.at(index)?.element;\n if (value[index] === char) {\n const next = currentTarget && collection.from(currentTarget, 1)?.element;\n focusInput(next);\n return;\n }\n\n // empty values should be handled in the CLEAR_CHAR action\n if (char === '') {\n return;\n }\n\n if (validation) {\n const regexp = new RegExp(validation.regexp);\n const clean = char.replace(regexp, '');\n if (clean !== char) {\n // not valid; ignore\n return;\n }\n }\n\n // no more space\n if (value.length >= collection.size) {\n // replace current value; move to next input\n const newValue = [...value];\n newValue[index] = char;\n flushSync(() => setValue(newValue));\n const next = currentTarget && collection.from(currentTarget, 1)?.element;\n focusInput(next);\n return;\n }\n\n const newValue = [...value];\n newValue[index] = char;\n\n const lastElement = collection.at(-1)?.element;\n flushSync(() => setValue(newValue));\n if (currentTarget !== lastElement) {\n const next = currentTarget && collection.from(currentTarget, 1)?.element;\n focusInput(next);\n } else {\n currentTarget?.select();\n }\n return;\n }\n\n case 'CLEAR_CHAR': {\n const { index, reason } = action;\n if (!value[index]) {\n return;\n }\n\n const newValue = value.filter((_, i) => i !== index);\n const currentTarget = collection.at(index)?.element;\n const previous = currentTarget && collection.from(currentTarget, -1)?.element;\n\n flushSync(() => setValue(newValue));\n if (reason === 'Backspace') {\n focusInput(previous);\n } else if (reason === 'Delete' || reason === 'Cut') {\n focusInput(currentTarget);\n }\n return;\n }\n\n case 'CLEAR': {\n if (value.length === 0) {\n return;\n }\n\n if (action.reason === 'Backspace' || action.reason === 'Delete') {\n flushSync(() => setValue([]));\n focusInput(collection.at(0)?.element);\n } else {\n setValue([]);\n }\n return;\n }\n\n case 'PASTE': {\n const { value: pastedValue } = action;\n const value = sanitizeValue(pastedValue);\n if (!value) {\n return;\n }\n\n flushSync(() => setValue(value));\n focusInput(collection.at(value.length - 1)?.element);\n return;\n }\n }\n });\n\n // re-validate when the validation type changes\n const validationTypeRef = React.useRef(validation);\n React.useEffect(() => {\n if (!validation) {\n return;\n }\n\n if (validationTypeRef.current?.type !== validation.type) {\n validationTypeRef.current = validation;\n setValue(sanitizeValue(value.join('')));\n }\n }, [sanitizeValue, setValue, validation, value]);\n\n const hiddenInputRef = React.useRef(null);\n\n const userActionRef = React.useRef(null);\n const rootRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, rootRef);\n\n const firstInput = collection.at(0)?.element;\n const locateForm = React.useCallback(() => {\n let formElement: HTMLFormElement | null | undefined;\n if (form) {\n const associatedElement = (rootRef.current?.ownerDocument ?? document).getElementById(form);\n if (isFormElement(associatedElement)) {\n formElement = associatedElement;\n }\n } else if (hiddenInputRef.current) {\n formElement = hiddenInputRef.current.form;\n } else if (firstInput) {\n formElement = firstInput.form;\n }\n\n return formElement ?? null;\n }, [form, firstInput]);\n\n const attemptSubmit = React.useCallback(() => {\n const formElement = locateForm();\n formElement?.requestSubmit();\n }, [locateForm]);\n\n React.useEffect(() => {\n const form = locateForm();\n if (form) {\n const reset = () => dispatch({ type: 'CLEAR', reason: 'Reset' });\n form.addEventListener('reset', reset);\n return () => form.removeEventListener('reset', reset);\n }\n }, [dispatch, locateForm]);\n\n const currentValue = value.join('');\n const valueRef = React.useRef(currentValue);\n const length = collection.size;\n React.useEffect(() => {\n const previousValue = valueRef.current;\n valueRef.current = currentValue;\n if (previousValue === currentValue) {\n return;\n }\n\n if (autoSubmit && value.every((char) => char !== '') && value.length === length) {\n onAutoSubmit?.(value.join(''));\n attemptSubmit();\n }\n }, [attemptSubmit, autoSubmit, currentValue, length, onAutoSubmit, value]);\n const isHydrated = useIsHydrated();\n\n return (\n \n \n \n \n ) => {\n event.preventDefault();\n const pastedValue = event.clipboardData.getData('Text');\n dispatch({ type: 'PASTE', value: pastedValue });\n }\n )}\n >\n {children}\n \n \n \n \n \n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * OneTimePasswordFieldHiddenInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface OneTimePasswordFieldHiddenInputProps\n extends Omit<\n React.ComponentProps<'input'>,\n | keyof 'value'\n | 'defaultValue'\n | 'type'\n | 'onChange'\n | 'readOnly'\n | 'disabled'\n | 'autoComplete'\n | 'autoFocus'\n > {}\n\nconst OneTimePasswordFieldHiddenInput = React.forwardRef<\n HTMLInputElement,\n OneTimePasswordFieldHiddenInputProps\n>(function OneTimePasswordFieldHiddenInput(\n { __scopeOneTimePasswordField, ...props }: ScopedProps,\n forwardedRef\n) {\n const { value, hiddenInputRef, name } = useOneTimePasswordFieldContext(\n 'OneTimePasswordFieldHiddenInput',\n __scopeOneTimePasswordField\n );\n const ref = useComposedRefs(hiddenInputRef, forwardedRef);\n return (\n \n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * OneTimePasswordFieldInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface OneTimePasswordFieldInputProps\n extends Omit<\n Primitive.PrimitivePropsWithRef<'input'>,\n | 'value'\n | 'defaultValue'\n | 'disabled'\n | 'readOnly'\n | 'autoComplete'\n | 'autoFocus'\n | 'form'\n | 'name'\n | 'placeholder'\n | 'type'\n > {\n /**\n * Callback fired when the user input fails native HTML input validation.\n */\n onInvalidChange?: (character: string) => void;\n /**\n * User-provided index to determine the order of the inputs. This is useful if\n * you need certain index-based attributes to be set on the initial render,\n * often to prevent flickering after hydration.\n */\n index?: number;\n}\n\nconst OneTimePasswordFieldInput = React.forwardRef<\n HTMLInputElement,\n OneTimePasswordFieldInputProps\n>(function OneTimePasswordFieldInput(\n {\n __scopeOneTimePasswordField,\n onInvalidChange,\n index: indexProp,\n ...props\n }: ScopedProps,\n forwardedRef\n) {\n // TODO: warn if these values are passed\n const {\n value: _value,\n defaultValue: _defaultValue,\n disabled: _disabled,\n readOnly: _readOnly,\n autoComplete: _autoComplete,\n autoFocus: _autoFocus,\n form: _form,\n name: _name,\n placeholder: _placeholder,\n type: _type,\n ...domProps\n } = props as Primitive.PrimitivePropsWithRef<'input'>;\n\n const context = useOneTimePasswordFieldContext(\n 'OneTimePasswordFieldInput',\n __scopeOneTimePasswordField\n );\n const { dispatch, userActionRef, validationType, isHydrated } = context;\n const collection = useCollection(__scopeOneTimePasswordField);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeOneTimePasswordField);\n\n const inputRef = React.useRef(null);\n const [element, setElement] = React.useState(null);\n\n const index = indexProp ?? (element ? collection.indexOf(element) : -1);\n const canSetPlaceholder = indexProp != null || isHydrated;\n let placeholder: string | undefined;\n if (canSetPlaceholder && context.placeholder && context.value.length === 0) {\n // only set placeholder after hydration to prevent flickering when indices\n // are re-calculated\n placeholder = context.placeholder[index];\n }\n\n const composedInputRef = useComposedRefs(forwardedRef, inputRef, setElement);\n const char = context.value[index] ?? '';\n\n const keyboardActionTimeoutRef = React.useRef(null);\n React.useEffect(() => {\n return () => {\n window.clearTimeout(keyboardActionTimeoutRef.current!);\n };\n }, []);\n\n const totalValue = context.value.join('').trim();\n const lastSelectableIndex = clamp(totalValue.length, [0, collection.size - 1]);\n const isFocusable = index <= lastSelectableIndex;\n\n const validation =\n validationType in INPUT_VALIDATION_MAP\n ? INPUT_VALIDATION_MAP[validationType as keyof InputValidation]\n : undefined;\n\n return (\n \n \n {({ hasTabStop, isCurrentTabStop }) => {\n const supportsAutoComplete = hasTabStop ? isCurrentTabStop : index === 0;\n return (\n {\n event.currentTarget.select();\n })}\n onCut={composeEventHandlers(props.onCut, (event) => {\n const currentValue = event.currentTarget.value;\n if (currentValue !== '') {\n // In this case the value will be cleared, but we don't want to\n // set it directly because the user may want to prevent default\n // behavior in the onChange handler. The userActionRef will\n // is set temporarily so the change handler can behave correctly\n // in response to the action.\n userActionRef.current = {\n type: 'cut',\n };\n // Set a short timeout to clear the action tracker after the change\n // handler has had time to complete.\n keyboardActionTimeoutRef.current = window.setTimeout(() => {\n userActionRef.current = null;\n }, 10);\n }\n })}\n onInput={composeEventHandlers(props.onInput, (event) => {\n const value = event.currentTarget.value;\n if (value.length > 1) {\n // Password managers may try to insert the code into a single\n // input, in which case form validation will fail to prevent\n // additional input. Handle this the same as if a user were\n // pasting a value.\n event.preventDefault();\n dispatch({ type: 'PASTE', value });\n }\n })}\n onChange={composeEventHandlers(props.onChange, (event) => {\n const value = event.target.value;\n event.preventDefault();\n const action = userActionRef.current;\n userActionRef.current = null;\n\n if (action) {\n switch (action.type) {\n case 'cut':\n // TODO: do we want to assume the user wantt to clear the\n // entire value here and copy the code to the clipboard instead\n // of just the value of the given input?\n dispatch({ type: 'CLEAR_CHAR', index, reason: 'Cut' });\n return;\n case 'keydown': {\n if (action.key === 'Char') {\n // update resulting from a keydown event that set a value\n // directly. Ignore.\n return;\n }\n\n const isClearing =\n action.key === 'Backspace' && (action.metaKey || action.ctrlKey);\n if (action.key === 'Clear' || isClearing) {\n dispatch({ type: 'CLEAR', reason: 'Backspace' });\n } else {\n dispatch({ type: 'CLEAR_CHAR', index, reason: action.key });\n }\n return;\n }\n default:\n return;\n }\n }\n\n // Only update the value if it matches the input pattern\n if (event.target.validity.valid) {\n if (value === '') {\n let reason: 'Backspace' | 'Delete' | 'Cut' = 'Backspace';\n if (isInputEvent(event.nativeEvent)) {\n const inputType = event.nativeEvent.inputType;\n if (inputType === 'deleteContentBackward') {\n reason = 'Backspace';\n } else if (inputType === 'deleteByCut') {\n reason = 'Cut';\n }\n }\n dispatch({ type: 'CLEAR_CHAR', index, reason });\n } else {\n dispatch({ type: 'SET_CHAR', char: value, index, event });\n }\n } else {\n const element = event.target;\n onInvalidChange?.(element.value);\n requestAnimationFrame(() => {\n if (element.ownerDocument.activeElement === element) {\n element.select();\n }\n });\n }\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n switch (event.key) {\n case 'Clear':\n case 'Delete':\n case 'Backspace': {\n const currentValue = event.currentTarget.value;\n // if current value is empty, no change event will fire\n if (currentValue === '') {\n // if the user presses delete when there is no value, noop\n if (event.key === 'Delete') return;\n\n const isClearing = event.key === 'Clear' || event.metaKey || event.ctrlKey;\n if (isClearing) {\n dispatch({ type: 'CLEAR', reason: 'Backspace' });\n } else {\n const element = event.currentTarget;\n requestAnimationFrame(() => {\n focusInput(collection.from(element, -1)?.element);\n });\n }\n } else {\n // In this case the value will be cleared, but we don't want\n // to set it directly because the user may want to prevent\n // default behavior in the onChange handler. The userActionRef\n // will is set temporarily so the change handler can behave\n // correctly in response to the key vs. clearing the value by\n // setting state externally.\n userActionRef.current = {\n type: 'keydown',\n key: event.key,\n metaKey: event.metaKey,\n ctrlKey: event.ctrlKey,\n };\n // Set a short timeout to clear the action tracker after the change\n // handler has had time to complete.\n keyboardActionTimeoutRef.current = window.setTimeout(() => {\n userActionRef.current = null;\n }, 10);\n }\n\n return;\n }\n case 'Enter': {\n event.preventDefault();\n context.attemptSubmit();\n return;\n }\n case 'ArrowDown':\n case 'ArrowUp': {\n if (context.orientation === 'horizontal') {\n // in horizontal orientation, the up/down will de-select the\n // input instead of moving focus\n event.preventDefault();\n }\n return;\n }\n // TODO: Handle left/right arrow keys in vertical writing mode\n default: {\n if (event.currentTarget.value === event.key) {\n // if current value is same as the key press, no change event\n // will fire. Focus the next input.\n const element = event.currentTarget;\n event.preventDefault();\n focusInput(collection.from(element, 1)?.element);\n return;\n } else if (\n // input already has a value, but...\n event.currentTarget.value &&\n // the value is not selected\n !(\n event.currentTarget.selectionStart === 0 &&\n event.currentTarget.selectionEnd != null &&\n event.currentTarget.selectionEnd > 0\n )\n ) {\n const attemptedValue = event.key;\n if (event.key.length > 1 || event.key === ' ') {\n // not a character; do nothing\n return;\n } else {\n // user is attempting to enter a character, but the input\n // will not update by default since it's limited to a single\n // character.\n const nextInput = collection.from(event.currentTarget, 1)?.element;\n const lastInput = collection.at(-1)?.element;\n if (nextInput !== lastInput && event.currentTarget !== lastInput) {\n // if selection is before the value, set the value of the\n // current input. Otherwise set the value of the next\n // input.\n if (event.currentTarget.selectionStart === 0) {\n dispatch({ type: 'SET_CHAR', char: attemptedValue, index, event });\n } else {\n dispatch({\n type: 'SET_CHAR',\n char: attemptedValue,\n index: index + 1,\n event,\n });\n }\n\n userActionRef.current = {\n type: 'keydown',\n key: 'Char',\n metaKey: event.metaKey,\n ctrlKey: event.ctrlKey,\n };\n keyboardActionTimeoutRef.current = window.setTimeout(() => {\n userActionRef.current = null;\n }, 10);\n }\n }\n }\n }\n }\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n event.preventDefault();\n const indexToFocus = Math.min(index, lastSelectableIndex);\n const element = collection.at(indexToFocus)?.element;\n focusInput(element);\n })}\n />\n );\n }}\n \n \n );\n});\n\nexport {\n OneTimePasswordField,\n OneTimePasswordFieldInput,\n OneTimePasswordFieldHiddenInput,\n //\n OneTimePasswordField as Root,\n OneTimePasswordFieldInput as Input,\n OneTimePasswordFieldHiddenInput as HiddenInput,\n};\nexport type {\n OneTimePasswordFieldProps,\n OneTimePasswordFieldInputProps,\n OneTimePasswordFieldHiddenInputProps,\n InputValidationType,\n};\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction isFormElement(element: Element | null | undefined): element is HTMLFormElement {\n return element?.tagName === 'FORM';\n}\n\nfunction removeWhitespace(value: string) {\n return value.replace(/\\s/g, '');\n}\n\nfunction focusInput(element: HTMLInputElement | null | undefined) {\n if (!element) return;\n if (element.ownerDocument.activeElement === element) {\n // if the element is already focused, select the value in the next\n // animation frame\n window.requestAnimationFrame(() => {\n element.select?.();\n });\n } else {\n element.focus();\n }\n}\n\nfunction isInputEvent(event: Event): event is InputEvent {\n return event.type === 'input';\n}\n\ntype InputType = 'password' | 'text';\ntype AutoComplete = 'off' | 'one-time-code';\ntype KeyboardActionDetails =\n | {\n type: 'keydown';\n key: 'Backspace' | 'Delete' | 'Clear' | 'Char';\n metaKey: boolean;\n ctrlKey: boolean;\n }\n | { type: 'cut' };\n\ntype UpdateAction =\n | {\n type: 'SET_CHAR';\n char: string;\n index: number;\n event: React.KeyboardEvent | React.ChangeEvent;\n }\n | { type: 'CLEAR_CHAR'; index: number; reason: 'Backspace' | 'Delete' | 'Cut' }\n | { type: 'CLEAR'; reason: 'Reset' | 'Backspace' | 'Delete' | 'Clear' }\n | { type: 'PASTE'; value: string };\ntype Dispatcher = React.Dispatch;\ntype InputValidation = Record<\n InputValidationType,\n {\n type: InputValidationType;\n regexp: RegExp;\n pattern: string;\n inputMode: 'text' | 'numeric';\n } | null\n>;\n","import * as React from 'react';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Presence } from '@radix-ui/react-presence';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { clamp } from '@radix-ui/number';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useStateMachine } from './use-state-machine';\n\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\ntype Sizes = {\n content: number;\n viewport: number;\n scrollbar: {\n size: number;\n paddingStart: number;\n paddingEnd: number;\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollArea\n * -----------------------------------------------------------------------------------------------*/\n\nconst SCROLL_AREA_NAME = 'ScrollArea';\n\ntype ScopedProps

= P & { __scopeScrollArea?: Scope };\nconst [createScrollAreaContext, createScrollAreaScope] = createContextScope(SCROLL_AREA_NAME);\n\ntype ScrollAreaContextValue = {\n type: 'auto' | 'always' | 'scroll' | 'hover';\n dir: Direction;\n scrollHideDelay: number;\n scrollArea: ScrollAreaElement | null;\n viewport: ScrollAreaViewportElement | null;\n onViewportChange(viewport: ScrollAreaViewportElement | null): void;\n content: HTMLDivElement | null;\n onContentChange(content: HTMLDivElement): void;\n scrollbarX: ScrollAreaScrollbarElement | null;\n onScrollbarXChange(scrollbar: ScrollAreaScrollbarElement | null): void;\n scrollbarXEnabled: boolean;\n onScrollbarXEnabledChange(rendered: boolean): void;\n scrollbarY: ScrollAreaScrollbarElement | null;\n onScrollbarYChange(scrollbar: ScrollAreaScrollbarElement | null): void;\n scrollbarYEnabled: boolean;\n onScrollbarYEnabledChange(rendered: boolean): void;\n onCornerWidthChange(width: number): void;\n onCornerHeightChange(height: number): void;\n};\n\nconst [ScrollAreaProvider, useScrollAreaContext] =\n createScrollAreaContext(SCROLL_AREA_NAME);\n\ntype ScrollAreaElement = React.ComponentRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface ScrollAreaProps extends PrimitiveDivProps {\n type?: ScrollAreaContextValue['type'];\n dir?: ScrollAreaContextValue['dir'];\n scrollHideDelay?: number;\n}\n\nconst ScrollArea = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeScrollArea,\n type = 'hover',\n dir,\n scrollHideDelay = 600,\n ...scrollAreaProps\n } = props;\n const [scrollArea, setScrollArea] = React.useState(null);\n const [viewport, setViewport] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const [scrollbarX, setScrollbarX] = React.useState(null);\n const [scrollbarY, setScrollbarY] = React.useState(null);\n const [cornerWidth, setCornerWidth] = React.useState(0);\n const [cornerHeight, setCornerHeight] = React.useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = React.useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setScrollArea(node));\n const direction = useDirection(dir);\n\n return (\n \n \n \n );\n }\n);\n\nScrollArea.displayName = SCROLL_AREA_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaViewport\n * -----------------------------------------------------------------------------------------------*/\n\nconst VIEWPORT_NAME = 'ScrollAreaViewport';\n\ntype ScrollAreaViewportElement = React.ComponentRef;\ninterface ScrollAreaViewportProps extends PrimitiveDivProps {\n nonce?: string;\n}\n\nconst ScrollAreaViewport = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeScrollArea, children, nonce, ...viewportProps } = props;\n const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onViewportChange);\n return (\n <>\n {/* Hide scrollbars cross-browser and enable momentum scroll for touch devices */}\n \n

\n {children}\n
\n \n \n );\n }\n);\n\nScrollAreaViewport.displayName = VIEWPORT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaScrollbar\n * -----------------------------------------------------------------------------------------------*/\n\nconst SCROLLBAR_NAME = 'ScrollAreaScrollbar';\n\ntype ScrollAreaScrollbarElement = ScrollAreaScrollbarVisibleElement;\ninterface ScrollAreaScrollbarProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nconst ScrollAreaScrollbar = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === 'horizontal';\n\n React.useEffect(() => {\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return () => {\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n };\n }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n\n return context.type === 'hover' ? (\n \n ) : context.type === 'scroll' ? (\n \n ) : context.type === 'auto' ? (\n \n ) : context.type === 'always' ? (\n \n ) : null;\n }\n);\n\nScrollAreaScrollbar.displayName = SCROLLBAR_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaScrollbarHoverElement = ScrollAreaScrollbarAutoElement;\ninterface ScrollAreaScrollbarHoverProps extends ScrollAreaScrollbarAutoProps {\n forceMount?: true;\n}\n\nconst ScrollAreaScrollbarHover = React.forwardRef<\n ScrollAreaScrollbarHoverElement,\n ScrollAreaScrollbarHoverProps\n>((props: ScopedProps, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [visible, setVisible] = React.useState(false);\n\n React.useEffect(() => {\n const scrollArea = context.scrollArea;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = () => {\n window.clearTimeout(hideTimer);\n setVisible(true);\n };\n const handlePointerLeave = () => {\n hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);\n };\n scrollArea.addEventListener('pointerenter', handlePointerEnter);\n scrollArea.addEventListener('pointerleave', handlePointerLeave);\n return () => {\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener('pointerenter', handlePointerEnter);\n scrollArea.removeEventListener('pointerleave', handlePointerLeave);\n };\n }\n }, [context.scrollArea, context.scrollHideDelay]);\n\n return (\n \n \n \n );\n});\n\ntype ScrollAreaScrollbarScrollElement = ScrollAreaScrollbarVisibleElement;\ninterface ScrollAreaScrollbarScrollProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nconst ScrollAreaScrollbarScroll = React.forwardRef<\n ScrollAreaScrollbarScrollElement,\n ScrollAreaScrollbarScrollProps\n>((props: ScopedProps, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const isHorizontal = props.orientation === 'horizontal';\n const debounceScrollEnd = useDebounceCallback(() => send('SCROLL_END'), 100);\n const [state, send] = useStateMachine('hidden', {\n hidden: {\n SCROLL: 'scrolling',\n },\n scrolling: {\n SCROLL_END: 'idle',\n POINTER_ENTER: 'interacting',\n },\n interacting: {\n SCROLL: 'interacting',\n POINTER_LEAVE: 'idle',\n },\n idle: {\n HIDE: 'hidden',\n SCROLL: 'scrolling',\n POINTER_ENTER: 'interacting',\n },\n });\n\n React.useEffect(() => {\n if (state === 'idle') {\n const hideTimer = window.setTimeout(() => send('HIDE'), context.scrollHideDelay);\n return () => window.clearTimeout(hideTimer);\n }\n }, [state, context.scrollHideDelay, send]);\n\n React.useEffect(() => {\n const viewport = context.viewport;\n const scrollDirection = isHorizontal ? 'scrollLeft' : 'scrollTop';\n\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = () => {\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n send('SCROLL');\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n };\n viewport.addEventListener('scroll', handleScroll);\n return () => viewport.removeEventListener('scroll', handleScroll);\n }\n }, [context.viewport, isHorizontal, send, debounceScrollEnd]);\n\n return (\n \n send('POINTER_ENTER'))}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, () => send('POINTER_LEAVE'))}\n />\n \n );\n});\n\ntype ScrollAreaScrollbarAutoElement = ScrollAreaScrollbarVisibleElement;\ninterface ScrollAreaScrollbarAutoProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nconst ScrollAreaScrollbarAuto = React.forwardRef<\n ScrollAreaScrollbarAutoElement,\n ScrollAreaScrollbarAutoProps\n>((props: ScopedProps, forwardedRef) => {\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = React.useState(false);\n const isHorizontal = props.orientation === 'horizontal';\n const handleResize = useDebounceCallback(() => {\n if (context.viewport) {\n const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }, 10);\n\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n\n return (\n \n \n \n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaScrollbarVisibleElement = ScrollAreaScrollbarAxisElement;\ninterface ScrollAreaScrollbarVisibleProps\n extends Omit {\n orientation?: 'horizontal' | 'vertical';\n}\n\nconst ScrollAreaScrollbarVisible = React.forwardRef<\n ScrollAreaScrollbarVisibleElement,\n ScrollAreaScrollbarVisibleProps\n>((props: ScopedProps, forwardedRef) => {\n const { orientation = 'vertical', ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const thumbRef = React.useRef(null);\n const pointerOffsetRef = React.useRef(0);\n const [sizes, setSizes] = React.useState({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 },\n });\n const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n\n type UncommonProps = 'onThumbPositionChange' | 'onDragScroll' | 'onWheelScroll';\n const commonProps: Omit = {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: (thumb) => (thumbRef.current = thumb),\n onThumbPointerUp: () => (pointerOffsetRef.current = 0),\n onThumbPointerDown: (pointerPos) => (pointerOffsetRef.current = pointerPos),\n };\n\n function getScrollPosition(pointerPos: number, dir?: Direction) {\n return getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);\n }\n\n if (orientation === 'horizontal') {\n return (\n {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes, context.dir);\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n }}\n onWheelScroll={(scrollPos) => {\n if (context.viewport) context.viewport.scrollLeft = scrollPos;\n }}\n onDragScroll={(pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(pointerPos, context.dir);\n }\n }}\n />\n );\n }\n\n if (orientation === 'vertical') {\n return (\n {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n }}\n onWheelScroll={(scrollPos) => {\n if (context.viewport) context.viewport.scrollTop = scrollPos;\n }}\n onDragScroll={(pointerPos) => {\n if (context.viewport) context.viewport.scrollTop = getScrollPosition(pointerPos);\n }}\n />\n );\n }\n\n return null;\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaScrollbarAxisPrivateProps = {\n hasThumb: boolean;\n sizes: Sizes;\n onSizesChange(sizes: Sizes): void;\n onThumbChange(thumb: ScrollAreaThumbElement | null): void;\n onThumbPointerDown(pointerPos: number): void;\n onThumbPointerUp(): void;\n onThumbPositionChange(): void;\n onWheelScroll(scrollPos: number): void;\n onDragScroll(pointerPos: number): void;\n};\n\ntype ScrollAreaScrollbarAxisElement = ScrollAreaScrollbarImplElement;\ninterface ScrollAreaScrollbarAxisProps\n extends Omit,\n ScrollAreaScrollbarAxisPrivateProps {}\n\nconst ScrollAreaScrollbarX = React.forwardRef<\n ScrollAreaScrollbarAxisElement,\n ScrollAreaScrollbarAxisProps\n>((props: ScopedProps, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React.useState();\n const ref = React.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarXChange);\n\n React.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n\n return (\n props.onThumbPointerDown(pointerPos.x)}\n onDragScroll={(pointerPos) => props.onDragScroll(pointerPos.x)}\n onWheelScroll={(event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n // prevent window scroll when wheeling on scrollbar\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n }}\n onResize={() => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollWidth,\n viewport: context.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight),\n },\n });\n }\n }}\n />\n );\n});\n\nconst ScrollAreaScrollbarY = React.forwardRef<\n ScrollAreaScrollbarAxisElement,\n ScrollAreaScrollbarAxisProps\n>((props: ScopedProps, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] = React.useState();\n const ref = React.useRef(null);\n const composeRefs = useComposedRefs(forwardedRef, ref, context.onScrollbarYChange);\n\n React.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n\n return (\n props.onThumbPointerDown(pointerPos.y)}\n onDragScroll={(pointerPos) => props.onDragScroll(pointerPos.y)}\n onWheelScroll={(event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos);\n // prevent window scroll when wheeling on scrollbar\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n }}\n onResize={() => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom),\n },\n });\n }\n }}\n />\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollbarContext = {\n hasThumb: boolean;\n scrollbar: ScrollAreaScrollbarElement | null;\n onThumbChange(thumb: ScrollAreaThumbElement | null): void;\n onThumbPointerUp(): void;\n onThumbPointerDown(pointerPos: { x: number; y: number }): void;\n onThumbPositionChange(): void;\n};\n\nconst [ScrollbarProvider, useScrollbarContext] =\n createScrollAreaContext(SCROLLBAR_NAME);\n\ntype ScrollAreaScrollbarImplElement = React.ComponentRef;\ntype ScrollAreaScrollbarImplPrivateProps = {\n sizes: Sizes;\n hasThumb: boolean;\n onThumbChange: ScrollbarContext['onThumbChange'];\n onThumbPointerUp: ScrollbarContext['onThumbPointerUp'];\n onThumbPointerDown: ScrollbarContext['onThumbPointerDown'];\n onThumbPositionChange: ScrollbarContext['onThumbPositionChange'];\n onWheelScroll(event: WheelEvent, maxScrollPos: number): void;\n onDragScroll(pointerPos: { x: number; y: number }): void;\n onResize(): void;\n};\ninterface ScrollAreaScrollbarImplProps\n extends Omit,\n ScrollAreaScrollbarImplPrivateProps {}\n\nconst ScrollAreaScrollbarImpl = React.forwardRef<\n ScrollAreaScrollbarImplElement,\n ScrollAreaScrollbarImplProps\n>((props: ScopedProps, forwardedRef) => {\n const {\n __scopeScrollArea,\n sizes,\n hasThumb,\n onThumbChange,\n onThumbPointerUp,\n onThumbPointerDown,\n onThumbPositionChange,\n onDragScroll,\n onWheelScroll,\n onResize,\n ...scrollbarProps\n } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, __scopeScrollArea);\n const [scrollbar, setScrollbar] = React.useState(null);\n const composeRefs = useComposedRefs(forwardedRef, (node) => setScrollbar(node));\n const rectRef = React.useRef(null);\n const prevWebkitUserSelectRef = React.useRef('');\n const viewport = context.viewport;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = useCallbackRef(onWheelScroll);\n const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);\n const handleResize = useDebounceCallback(onResize, 10);\n\n function handleDragScroll(event: React.PointerEvent) {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({ x, y });\n }\n }\n\n /**\n * We bind wheel event imperatively so we can switch off passive\n * mode for document wheel event to allow it to be prevented\n */\n React.useEffect(() => {\n const handleWheel = (event: WheelEvent) => {\n const element = event.target as HTMLElement;\n const isScrollbarWheel = scrollbar?.contains(element);\n if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n };\n document.addEventListener('wheel', handleWheel, { passive: false });\n return () => document.removeEventListener('wheel', handleWheel, { passive: false } as any);\n }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);\n\n /**\n * Update thumb position on sizes change\n */\n React.useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);\n\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n\n return (\n \n {\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target as HTMLElement;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar!.getBoundingClientRect();\n // pointer capture doesn't prevent text selection in Safari\n // so we remove text selection manually when scrolling\n prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = 'none';\n if (context.viewport) context.viewport.style.scrollBehavior = 'auto';\n handleDragScroll(event);\n }\n })}\n onPointerMove={composeEventHandlers(props.onPointerMove, handleDragScroll)}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const element = event.target as HTMLElement;\n if (element.hasPointerCapture(event.pointerId)) {\n element.releasePointerCapture(event.pointerId);\n }\n document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n if (context.viewport) context.viewport.style.scrollBehavior = '';\n rectRef.current = null;\n })}\n />\n \n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'ScrollAreaThumb';\n\ntype ScrollAreaThumbElement = ScrollAreaThumbImplElement;\ninterface ScrollAreaThumbProps extends ScrollAreaThumbImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst ScrollAreaThumb = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);\n return (\n \n \n \n );\n }\n);\n\ntype ScrollAreaThumbImplElement = React.ComponentRef;\ninterface ScrollAreaThumbImplProps extends PrimitiveDivProps {}\n\nconst ScrollAreaThumbImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeScrollArea, style, ...thumbProps } = props;\n const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);\n const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = useComposedRefs(forwardedRef, (node) =>\n scrollbarContext.onThumbChange(node)\n );\n const removeUnlinkedScrollListenerRef = React.useRef<() => void>(undefined);\n const debounceScrollEnd = useDebounceCallback(() => {\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = undefined;\n }\n }, 100);\n\n React.useEffect(() => {\n const viewport = scrollAreaContext.viewport;\n if (viewport) {\n /**\n * We only bind to native scroll event so we know when scroll starts and ends.\n * When scroll starts we start a requestAnimationFrame loop that checks for\n * changes to scroll position. That rAF loop triggers our thumb position change\n * when relevant to avoid scroll-linked effects. We cancel the loop when scroll ends.\n * https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Scroll-linked_effects\n */\n const handleScroll = () => {\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n };\n onThumbPositionChange();\n viewport.addEventListener('scroll', handleScroll);\n return () => viewport.removeEventListener('scroll', handleScroll);\n }\n }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n\n return (\n {\n const thumb = event.target as HTMLElement;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({ x, y });\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)}\n />\n );\n }\n);\n\nScrollAreaThumb.displayName = THUMB_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollAreaCorner\n * -----------------------------------------------------------------------------------------------*/\n\nconst CORNER_NAME = 'ScrollAreaCorner';\n\ntype ScrollAreaCornerElement = ScrollAreaCornerImplElement;\ninterface ScrollAreaCornerProps extends ScrollAreaCornerImplProps {}\n\nconst ScrollAreaCorner = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);\n const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);\n const hasCorner = context.type !== 'scroll' && hasBothScrollbarsVisible;\n return hasCorner ? : null;\n }\n);\n\nScrollAreaCorner.displayName = CORNER_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaCornerImplElement = React.ComponentRef;\ninterface ScrollAreaCornerImplProps extends PrimitiveDivProps {}\n\nconst ScrollAreaCornerImpl = React.forwardRef<\n ScrollAreaCornerImplElement,\n ScrollAreaCornerImplProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeScrollArea, ...cornerProps } = props;\n const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);\n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n const hasSize = Boolean(width && height);\n\n useResizeObserver(context.scrollbarX, () => {\n const height = context.scrollbarX?.offsetHeight || 0;\n context.onCornerHeightChange(height);\n setHeight(height);\n });\n\n useResizeObserver(context.scrollbarY, () => {\n const width = context.scrollbarY?.offsetWidth || 0;\n context.onCornerWidthChange(width);\n setWidth(width);\n });\n\n return hasSize ? (\n \n ) : null;\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction toInt(value?: string) {\n return value ? parseInt(value, 10) : 0;\n}\n\nfunction getThumbRatio(viewportSize: number, contentSize: number) {\n const ratio = viewportSize / contentSize;\n return isNaN(ratio) ? 0 : ratio;\n}\n\nfunction getThumbSize(sizes: Sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n // minimum of 18 matches macOS minimum\n return Math.max(thumbSize, 18);\n}\n\nfunction getScrollPositionFromPointer(\n pointerPos: number,\n pointerOffset: number,\n sizes: Sizes,\n dir: Direction = 'ltr'\n) {\n const thumbSizePx = getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange = dir === 'ltr' ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange as [number, number]);\n return interpolate(pointerPos);\n}\n\nfunction getThumbOffsetFromScroll(scrollPos: number, sizes: Sizes, dir: Direction = 'ltr') {\n const thumbSizePx = getThumbSize(sizes);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange = dir === 'ltr' ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const scrollWithoutMomentum = clamp(scrollPos, scrollClampRange as [number, number]);\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n return interpolate(scrollWithoutMomentum);\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n\nfunction isScrollingWithinScrollbarBounds(scrollPos: number, maxScrollPos: number) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\n\n// Custom scroll handler to avoid scroll-linked effects\n// https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Scroll-linked_effects\nconst addUnlinkedScrollListener = (node: HTMLElement, handler = () => {}) => {\n let prevPosition = { left: node.scrollLeft, top: node.scrollTop };\n let rAF = 0;\n (function loop() {\n const position = { left: node.scrollLeft, top: node.scrollTop };\n const isHorizontalScroll = prevPosition.left !== position.left;\n const isVerticalScroll = prevPosition.top !== position.top;\n if (isHorizontalScroll || isVerticalScroll) handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n })();\n return () => window.cancelAnimationFrame(rAF);\n};\n\nfunction useDebounceCallback(callback: () => void, delay: number) {\n const handleCallback = useCallbackRef(callback);\n const debounceTimerRef = React.useRef(0);\n React.useEffect(() => () => window.clearTimeout(debounceTimerRef.current), []);\n return React.useCallback(() => {\n window.clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n }, [handleCallback, delay]);\n}\n\nfunction useResizeObserver(element: HTMLElement | null, onResize: () => void) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n /**\n * Resize Observer will throw an often benign error that says `ResizeObserver loop\n * completed with undelivered notifications`. This means that ResizeObserver was not\n * able to deliver all observations within a single animation frame, so we use\n * `requestAnimationFrame` to ensure we don't deliver unnecessary observations.\n * Further reading: https://github.com/WICG/resize-observer/issues/38\n */\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = ScrollArea;\nconst Viewport = ScrollAreaViewport;\nconst Scrollbar = ScrollAreaScrollbar;\nconst Thumb = ScrollAreaThumb;\nconst Corner = ScrollAreaCorner;\n\nexport {\n createScrollAreaScope,\n //\n ScrollArea,\n ScrollAreaViewport,\n ScrollAreaScrollbar,\n ScrollAreaThumb,\n ScrollAreaCorner,\n //\n Root,\n Viewport,\n Scrollbar,\n Thumb,\n Corner,\n};\nexport type {\n ScrollAreaProps,\n ScrollAreaViewportProps,\n ScrollAreaScrollbarProps,\n ScrollAreaThumbProps,\n ScrollAreaCornerProps,\n};\n","import * as React from 'react';\n\ntype Machine = { [k: string]: { [k: string]: S } };\ntype MachineState = keyof T;\ntype MachineEvent = keyof UnionToIntersection;\n\n// 🤯 https://fettblog.eu/typescript-union-to-intersection/\ntype UnionToIntersection = (T extends any ? (x: T) => any : never) extends (x: infer R) => any\n ? R\n : never;\n\nexport function useStateMachine(\n initialState: MachineState,\n machine: M & Machine>\n) {\n return React.useReducer((state: MachineState, event: MachineEvent): MachineState => {\n const nextState = (machine[state] as any)[event];\n return nextState ?? state;\n }, initialState);\n}\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Switch\n * -----------------------------------------------------------------------------------------------*/\n\nconst SWITCH_NAME = 'Switch';\n\ntype ScopedProps

= P & { __scopeSwitch?: Scope };\nconst [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\n\ntype SwitchContextValue = { checked: boolean; disabled?: boolean };\nconst [SwitchProvider, useSwitchContext] = createSwitchContext(SWITCH_NAME);\n\ntype SwitchElement = React.ComponentRef;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef;\ninterface SwitchProps extends PrimitiveButtonProps {\n checked?: boolean;\n defaultChecked?: boolean;\n required?: boolean;\n onCheckedChange?(checked: boolean): void;\n}\n\nconst Switch = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeSwitch,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = 'on',\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = button ? form || !!button.closest('form') : true;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME,\n });\n\n return (\n \n {\n setChecked((prevChecked) => !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n // if switch is in a form, stop propagation from the button so that we only propagate\n // one click event (from the input). We propagate changes from an input so that native\n // form validation works and form events reflect switch updates.\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })}\n />\n {isFormControl && (\n \n )}\n \n );\n }\n);\n\nSwitch.displayName = SWITCH_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SwitchThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'SwitchThumb';\n\ntype SwitchThumbElement = React.ComponentRef;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef;\ninterface SwitchThumbProps extends PrimitiveSpanProps {}\n\nconst SwitchThumb = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return (\n \n );\n }\n);\n\nSwitchThumb.displayName = THUMB_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SwitchBubbleInput\n * -----------------------------------------------------------------------------------------------*/\n\nconst BUBBLE_INPUT_NAME = 'SwitchBubbleInput';\n\ntype InputProps = React.ComponentPropsWithoutRef;\ninterface SwitchBubbleInputProps extends Omit {\n checked: boolean;\n control: HTMLElement | null;\n bubbles: boolean;\n}\n\nconst SwitchBubbleInput = React.forwardRef(\n (\n {\n __scopeSwitch,\n control,\n checked,\n bubbles = true,\n ...props\n }: ScopedProps,\n forwardedRef\n ) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n\n // Bubble checked change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n 'checked'\n ) as PropertyDescriptor;\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event('click', { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n\n return (\n \n );\n }\n);\n\nSwitchBubbleInput.displayName = BUBBLE_INPUT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(checked: boolean) {\n return checked ? 'checked' : 'unchecked';\n}\n\nconst Root = Switch;\nconst Thumb = SwitchThumb;\n\nexport {\n createSwitchScope,\n //\n Switch,\n SwitchThumb,\n //\n Root,\n Thumb,\n};\nexport type { SwitchProps, SwitchThumbProps };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContextScope } from '@radix-ui/react-context';\nimport * as RovingFocusGroup from '@radix-ui/react-roving-focus';\nimport { createRovingFocusGroupScope } from '@radix-ui/react-roving-focus';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as SeparatorPrimitive from '@radix-ui/react-separator';\nimport * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';\nimport { createToggleGroupScope } from '@radix-ui/react-toggle-group';\nimport { useDirection } from '@radix-ui/react-direction';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Toolbar\n * -----------------------------------------------------------------------------------------------*/\n\nconst TOOLBAR_NAME = 'Toolbar';\n\ntype ScopedProps

= P & { __scopeToolbar?: Scope };\nconst [createToolbarContext, createToolbarScope] = createContextScope(TOOLBAR_NAME, [\n createRovingFocusGroupScope,\n createToggleGroupScope,\n]);\nconst useRovingFocusGroupScope = createRovingFocusGroupScope();\nconst useToggleGroupScope = createToggleGroupScope();\n\ntype RovingFocusGroupProps = React.ComponentPropsWithoutRef;\ntype ToolbarContextValue = {\n orientation: RovingFocusGroupProps['orientation'];\n dir: RovingFocusGroupProps['dir'];\n};\nconst [ToolbarProvider, useToolbarContext] =\n createToolbarContext(TOOLBAR_NAME);\n\ntype ToolbarElement = React.ComponentRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface ToolbarProps extends PrimitiveDivProps {\n orientation?: RovingFocusGroupProps['orientation'];\n loop?: RovingFocusGroupProps['loop'];\n dir?: RovingFocusGroupProps['dir'];\n}\n\nconst Toolbar = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeToolbar, orientation = 'horizontal', dir, loop = true, ...toolbarProps } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeToolbar);\n const direction = useDirection(dir);\n return (\n \n \n \n \n \n );\n }\n);\n\nToolbar.displayName = TOOLBAR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ToolbarSeparator\n * -----------------------------------------------------------------------------------------------*/\n\nconst SEPARATOR_NAME = 'ToolbarSeparator';\n\ntype ToolbarSeparatorElement = React.ComponentRef;\ntype SeparatorProps = React.ComponentPropsWithoutRef;\ninterface ToolbarSeparatorProps extends SeparatorProps {}\n\nconst ToolbarSeparator = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeToolbar, ...separatorProps } = props;\n const context = useToolbarContext(SEPARATOR_NAME, __scopeToolbar);\n return (\n \n );\n }\n);\n\nToolbarSeparator.displayName = SEPARATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ToolbarButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst BUTTON_NAME = 'ToolbarButton';\n\ntype ToolbarButtonElement = React.ComponentRef;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef;\ninterface ToolbarButtonProps extends PrimitiveButtonProps {}\n\nconst ToolbarButton = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeToolbar, ...buttonProps } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeToolbar);\n return (\n \n \n \n );\n }\n);\n\nToolbarButton.displayName = BUTTON_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ToolbarLink\n * -----------------------------------------------------------------------------------------------*/\n\nconst LINK_NAME = 'ToolbarLink';\n\ntype ToolbarLinkElement = React.ComponentRef;\ntype PrimitiveLinkProps = React.ComponentPropsWithoutRef;\ninterface ToolbarLinkProps extends PrimitiveLinkProps {}\n\nconst ToolbarLink = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeToolbar, ...linkProps } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeToolbar);\n return (\n \n {\n if (event.key === ' ') event.currentTarget.click();\n })}\n />\n \n );\n }\n);\n\nToolbarLink.displayName = LINK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ToolbarToggleGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst TOGGLE_GROUP_NAME = 'ToolbarToggleGroup';\n\ntype ToolbarToggleGroupElement = React.ComponentRef;\ntype ToggleGroupProps = React.ComponentPropsWithoutRef;\ninterface ToolbarToggleGroupSingleProps extends Extract {}\ninterface ToolbarToggleGroupMultipleProps extends Extract {}\n\nconst ToolbarToggleGroup = React.forwardRef<\n ToolbarToggleGroupElement,\n ToolbarToggleGroupSingleProps | ToolbarToggleGroupMultipleProps\n>(\n (\n props: ScopedProps,\n forwardedRef\n ) => {\n const { __scopeToolbar, ...toggleGroupProps } = props;\n const context = useToolbarContext(TOGGLE_GROUP_NAME, __scopeToolbar);\n const toggleGroupScope = useToggleGroupScope(__scopeToolbar);\n return (\n \n );\n }\n);\n\nToolbarToggleGroup.displayName = TOGGLE_GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ToolbarToggleItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst TOGGLE_ITEM_NAME = 'ToolbarToggleItem';\n\ntype ToolbarToggleItemElement = React.ComponentRef;\ntype ToggleGroupItemProps = React.ComponentPropsWithoutRef;\ninterface ToolbarToggleItemProps extends ToggleGroupItemProps {}\n\nconst ToolbarToggleItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeToolbar, ...toggleItemProps } = props;\n const toggleGroupScope = useToggleGroupScope(__scopeToolbar);\n const scope = { __scopeToolbar: props.__scopeToolbar };\n\n return (\n \n \n \n );\n }\n);\n\nToolbarToggleItem.displayName = TOGGLE_ITEM_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nconst Root = Toolbar;\nconst Separator = ToolbarSeparator;\nconst Button = ToolbarButton;\nconst Link = ToolbarLink;\nconst ToggleGroup = ToolbarToggleGroup;\nconst ToggleItem = ToolbarToggleItem;\n\nexport {\n createToolbarScope,\n //\n Toolbar,\n ToolbarSeparator,\n ToolbarButton,\n ToolbarLink,\n ToolbarToggleGroup,\n ToolbarToggleItem,\n //\n Root,\n Separator,\n Button,\n Link,\n ToggleGroup,\n ToggleItem,\n};\nexport type {\n ToolbarProps,\n ToolbarSeparatorProps,\n ToolbarButtonProps,\n ToolbarLinkProps,\n ToolbarToggleGroupSingleProps,\n ToolbarToggleGroupMultipleProps,\n ToolbarToggleItemProps,\n};\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { Primitive } from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * Toggle\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAME = 'Toggle';\n\ntype ToggleElement = React.ComponentRef;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef;\ninterface ToggleProps extends PrimitiveButtonProps {\n /**\n * The controlled state of the toggle.\n */\n pressed?: boolean;\n /**\n * The state of the toggle when initially rendered. Use `defaultPressed`\n * if you do not need to control the state of the toggle.\n * @defaultValue false\n */\n defaultPressed?: boolean;\n /**\n * The callback that fires when the state of the toggle changes.\n */\n onPressedChange?(pressed: boolean): void;\n}\n\nconst Toggle = React.forwardRef((props, forwardedRef) => {\n const { pressed: pressedProp, defaultPressed, onPressedChange, ...buttonProps } = props;\n\n const [pressed, setPressed] = useControllableState({\n prop: pressedProp,\n onChange: onPressedChange,\n defaultProp: defaultPressed ?? false,\n caller: NAME,\n });\n\n return (\n {\n if (!props.disabled) {\n setPressed(!pressed);\n }\n })}\n />\n );\n});\n\nToggle.displayName = NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nconst Root = Toggle;\n\nexport {\n Toggle,\n //\n Root,\n};\nexport type { ToggleProps };\n","import * as React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useIsHydrated } from '@radix-ui/react-use-is-hydrated';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Avatar\n * -----------------------------------------------------------------------------------------------*/\n\nconst AVATAR_NAME = 'Avatar';\n\ntype ScopedProps

= P & { __scopeAvatar?: Scope };\nconst [createAvatarContext, createAvatarScope] = createContextScope(AVATAR_NAME);\n\ntype ImageLoadingStatus = 'idle' | 'loading' | 'loaded' | 'error';\n\ntype AvatarContextValue = {\n imageLoadingStatus: ImageLoadingStatus;\n onImageLoadingStatusChange(status: ImageLoadingStatus): void;\n};\n\nconst [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);\n\ntype AvatarElement = React.ComponentRef;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef;\ninterface AvatarProps extends PrimitiveSpanProps {}\n\nconst Avatar = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAvatar, ...avatarProps } = props;\n const [imageLoadingStatus, setImageLoadingStatus] = React.useState('idle');\n return (\n \n \n \n );\n }\n);\n\nAvatar.displayName = AVATAR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AvatarImage\n * -----------------------------------------------------------------------------------------------*/\n\nconst IMAGE_NAME = 'AvatarImage';\n\ntype AvatarImageElement = React.ComponentRef;\ntype PrimitiveImageProps = React.ComponentPropsWithoutRef;\ninterface AvatarImageProps extends PrimitiveImageProps {\n onLoadingStatusChange?: (status: ImageLoadingStatus) => void;\n}\n\nconst AvatarImage = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAvatar, src, onLoadingStatusChange = () => {}, ...imageProps } = props;\n const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);\n const imageLoadingStatus = useImageLoadingStatus(src, imageProps);\n const handleLoadingStatusChange = useCallbackRef((status: ImageLoadingStatus) => {\n onLoadingStatusChange(status);\n context.onImageLoadingStatusChange(status);\n });\n\n useLayoutEffect(() => {\n if (imageLoadingStatus !== 'idle') {\n handleLoadingStatusChange(imageLoadingStatus);\n }\n }, [imageLoadingStatus, handleLoadingStatusChange]);\n\n return imageLoadingStatus === 'loaded' ? (\n \n ) : null;\n }\n);\n\nAvatarImage.displayName = IMAGE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AvatarFallback\n * -----------------------------------------------------------------------------------------------*/\n\nconst FALLBACK_NAME = 'AvatarFallback';\n\ntype AvatarFallbackElement = React.ComponentRef;\ninterface AvatarFallbackProps extends PrimitiveSpanProps {\n delayMs?: number;\n}\n\nconst AvatarFallback = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAvatar, delayMs, ...fallbackProps } = props;\n const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);\n const [canRender, setCanRender] = React.useState(delayMs === undefined);\n\n React.useEffect(() => {\n if (delayMs !== undefined) {\n const timerId = window.setTimeout(() => setCanRender(true), delayMs);\n return () => window.clearTimeout(timerId);\n }\n }, [delayMs]);\n\n return canRender && context.imageLoadingStatus !== 'loaded' ? (\n \n ) : null;\n }\n);\n\nAvatarFallback.displayName = FALLBACK_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction resolveLoadingStatus(image: HTMLImageElement | null, src?: string): ImageLoadingStatus {\n if (!image) {\n return 'idle';\n }\n if (!src) {\n return 'error';\n }\n if (image.src !== src) {\n image.src = src;\n }\n return image.complete && image.naturalWidth > 0 ? 'loaded' : 'loading';\n}\n\nfunction useImageLoadingStatus(\n src: string | undefined,\n { referrerPolicy, crossOrigin }: AvatarImageProps\n) {\n const isHydrated = useIsHydrated();\n const imageRef = React.useRef(null);\n const image = (() => {\n if (!isHydrated) return null;\n if (!imageRef.current) {\n imageRef.current = new window.Image();\n }\n return imageRef.current;\n })();\n\n const [loadingStatus, setLoadingStatus] = React.useState(() =>\n resolveLoadingStatus(image, src)\n );\n\n useLayoutEffect(() => {\n setLoadingStatus(resolveLoadingStatus(image, src));\n }, [image, src]);\n\n useLayoutEffect(() => {\n const updateStatus = (status: ImageLoadingStatus) => () => {\n setLoadingStatus(status);\n };\n\n if (!image) return;\n\n const handleLoad = updateStatus('loaded');\n const handleError = updateStatus('error');\n image.addEventListener('load', handleLoad);\n image.addEventListener('error', handleError);\n if (referrerPolicy) {\n image.referrerPolicy = referrerPolicy;\n }\n if (typeof crossOrigin === 'string') {\n image.crossOrigin = crossOrigin;\n }\n\n return () => {\n image.removeEventListener('load', handleLoad);\n image.removeEventListener('error', handleError);\n };\n }, [image, crossOrigin, referrerPolicy]);\n\n return loadingStatus;\n}\n\nconst Root = Avatar;\nconst Image = AvatarImage;\nconst Fallback = AvatarFallback;\n\nexport {\n createAvatarScope,\n //\n Avatar,\n AvatarImage,\n AvatarFallback,\n //\n Root,\n Image,\n Fallback,\n};\nexport type { AvatarProps, AvatarImageProps, AvatarFallbackProps };\n","import * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type { Scope } from '@radix-ui/react-context';\n\nconst CHECKBOX_NAME = 'Checkbox';\n\ntype ScopedProps

= P & { __scopeCheckbox?: Scope };\nconst [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\n\ntype CheckedState = boolean | 'indeterminate';\n\ntype CheckboxContextValue = {\n checked: State | boolean;\n setChecked: React.Dispatch>;\n disabled: boolean | undefined;\n control: HTMLButtonElement | null;\n setControl: React.Dispatch>;\n name: string | undefined;\n form: string | undefined;\n value: string | number | readonly string[];\n hasConsumerStoppedPropagationRef: React.RefObject;\n required: boolean | undefined;\n defaultChecked: boolean | undefined;\n isFormControl: boolean;\n bubbleInput: HTMLInputElement | null;\n setBubbleInput: React.Dispatch>;\n};\n\nconst [CheckboxProviderImpl, useCheckboxContext] =\n createCheckboxContext(CHECKBOX_NAME);\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CheckboxProviderProps {\n checked?: State | boolean;\n defaultChecked?: State | boolean;\n required?: boolean;\n onCheckedChange?(checked: State | boolean): void;\n name?: string;\n form?: string;\n disabled?: boolean;\n value?: string | number | readonly string[];\n children?: React.ReactNode;\n}\n\nfunction CheckboxProvider(\n props: ScopedProps>\n) {\n const {\n __scopeCheckbox,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = 'on',\n // @ts-expect-error\n internal_do_not_use_render,\n } = props;\n\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: CHECKBOX_NAME,\n });\n const [control, setControl] = React.useState(null);\n const [bubbleInput, setBubbleInput] = React.useState(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = control\n ? !!form || !!control.closest('form')\n : // We set this to true by default so that events bubble to forms without JS (SSR)\n true;\n\n const context: CheckboxContextValue = {\n checked: checked,\n disabled: disabled,\n setChecked: setChecked,\n control: control,\n setControl: setControl,\n name: name,\n form: form,\n value: value,\n hasConsumerStoppedPropagationRef: hasConsumerStoppedPropagationRef,\n required: required,\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,\n isFormControl: isFormControl,\n bubbleInput,\n setBubbleInput,\n };\n\n return (\n )}\n >\n {isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children}\n \n );\n}\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'CheckboxTrigger';\n\ninterface CheckboxTriggerProps\n extends Omit<\n React.ComponentPropsWithoutRef,\n keyof CheckboxProviderProps\n > {\n children?: React.ReactNode;\n}\n\nconst CheckboxTrigger = React.forwardRef(\n (\n { __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }: ScopedProps,\n forwardedRef\n ) => {\n const {\n control,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n isFormControl,\n bubbleInput,\n } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form = control?.form;\n if (form) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form.addEventListener('reset', reset);\n return () => form.removeEventListener('reset', reset);\n }\n }, [control, setChecked]);\n\n return (\n {\n // According to WAI ARIA, Checkboxes don't activate on enter keypress\n if (event.key === 'Enter') event.preventDefault();\n })}\n onClick={composeEventHandlers(onClick, (event) => {\n setChecked((prevChecked) => (isIndeterminate(prevChecked) ? true : !prevChecked));\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n // if checkbox has a bubble input and is a form control, stop\n // propagation from the button so that we only propagate one click\n // event (from the input). We propagate changes from an input so\n // that native form validation works and form events reflect\n // checkbox updates.\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })}\n />\n );\n }\n);\n\nCheckboxTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Checkbox\n * -----------------------------------------------------------------------------------------------*/\n\ntype CheckboxElement = React.ComponentRef;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef;\ninterface CheckboxProps extends Omit {\n checked?: CheckedState;\n defaultChecked?: CheckedState;\n required?: boolean;\n onCheckedChange?(checked: CheckedState): void;\n}\n\nconst Checkbox = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n\n return (\n (\n <>\n \n {isFormControl && (\n \n )}\n \n )}\n />\n );\n }\n);\n\nCheckbox.displayName = CHECKBOX_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'CheckboxIndicator';\n\ntype CheckboxIndicatorElement = React.ComponentRef;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef;\ninterface CheckboxIndicatorProps extends PrimitiveSpanProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst CheckboxIndicator = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return (\n \n \n \n );\n }\n);\n\nCheckboxIndicator.displayName = INDICATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxBubbleInput\n * -----------------------------------------------------------------------------------------------*/\n\nconst BUBBLE_INPUT_NAME = 'CheckboxBubbleInput';\n\ntype InputProps = React.ComponentPropsWithoutRef;\ninterface CheckboxBubbleInputProps extends Omit {}\n\nconst CheckboxBubbleInput = React.forwardRef(\n ({ __scopeCheckbox, ...props }: ScopedProps, forwardedRef) => {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput,\n } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);\n\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n\n // Bubble checked change to parents (e.g form change event)\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n 'checked'\n ) as PropertyDescriptor;\n const setChecked = descriptor.set;\n\n const bubbles = !hasConsumerStoppedPropagationRef.current;\n if (prevChecked !== checked && setChecked) {\n const event = new Event('click', { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);\n\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return (\n \n );\n }\n);\n\nCheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nfunction isFunction(value: unknown): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n\nfunction isIndeterminate(checked?: CheckedState): checked is 'indeterminate' {\n return checked === 'indeterminate';\n}\n\nfunction getState(checked: CheckedState) {\n return isIndeterminate(checked) ? 'indeterminate' : checked ? 'checked' : 'unchecked';\n}\n\nexport {\n createCheckboxScope,\n //\n Checkbox,\n CheckboxProvider,\n CheckboxTrigger,\n CheckboxIndicator,\n CheckboxBubbleInput,\n //\n Checkbox as Root,\n CheckboxProvider as Provider,\n CheckboxTrigger as Trigger,\n CheckboxIndicator as Indicator,\n CheckboxBubbleInput as BubbleInput,\n};\nexport type {\n CheckboxProps,\n CheckboxProviderProps,\n CheckboxTriggerProps,\n CheckboxIndicatorProps,\n CheckboxBubbleInputProps,\n CheckedState,\n};\n","import * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { Primitive, dispatchDiscreteCustomEvent } from '@radix-ui/react-primitive';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { composeRefs, useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { Presence } from '@radix-ui/react-presence';\nimport { useId } from '@radix-ui/react-id';\nimport { createCollection } from '@radix-ui/react-collection';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport * as VisuallyHiddenPrimitive from '@radix-ui/react-visually-hidden';\n\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Orientation = 'vertical' | 'horizontal';\ntype Direction = 'ltr' | 'rtl';\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenu\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAVIGATION_MENU_NAME = 'NavigationMenu';\n\nconst [Collection, useCollection, createCollectionScope] = createCollection<\n NavigationMenuTriggerElement,\n { value: string }\n>(NAVIGATION_MENU_NAME);\n\nconst [FocusGroupCollection, useFocusGroupCollection, createFocusGroupCollectionScope] =\n createCollection(NAVIGATION_MENU_NAME);\n\ntype ScopedProps

= P & { __scopeNavigationMenu?: Scope };\nconst [createNavigationMenuContext, createNavigationMenuScope] = createContextScope(\n NAVIGATION_MENU_NAME,\n [createCollectionScope, createFocusGroupCollectionScope]\n);\n\ntype ContentData = {\n ref?: React.Ref;\n} & ViewportContentMounterProps;\n\ntype NavigationMenuContextValue = {\n isRootMenu: boolean;\n value: string;\n previousValue: string;\n baseId: string;\n dir: Direction;\n orientation: Orientation;\n rootNavigationMenu: NavigationMenuElement | null;\n indicatorTrack: HTMLDivElement | null;\n onIndicatorTrackChange(indicatorTrack: HTMLDivElement | null): void;\n viewport: NavigationMenuViewportElement | null;\n onViewportChange(viewport: NavigationMenuViewportElement | null): void;\n onViewportContentChange(contentValue: string, contentData: ContentData): void;\n onViewportContentRemove(contentValue: string): void;\n onTriggerEnter(itemValue: string): void;\n onTriggerLeave(): void;\n onContentEnter(): void;\n onContentLeave(): void;\n onItemSelect(itemValue: string): void;\n onItemDismiss(): void;\n};\n\nconst [NavigationMenuProviderImpl, useNavigationMenuContext] =\n createNavigationMenuContext(NAVIGATION_MENU_NAME);\n\nconst [ViewportContentProvider, useViewportContentContext] = createNavigationMenuContext<{\n items: Map;\n}>(NAVIGATION_MENU_NAME);\n\ntype NavigationMenuElement = React.ComponentRef;\ntype PrimitiveNavProps = React.ComponentPropsWithoutRef;\ninterface NavigationMenuProps\n extends Omit,\n PrimitiveNavProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n dir?: Direction;\n orientation?: Orientation;\n /**\n * The duration from when the pointer enters the trigger until the tooltip gets opened.\n * @defaultValue 200\n */\n delayDuration?: number;\n /**\n * How much time a user has to enter another trigger without incurring a delay again.\n * @defaultValue 300\n */\n skipDelayDuration?: number;\n}\n\nconst NavigationMenu = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value: valueProp,\n onValueChange,\n defaultValue,\n delayDuration = 200,\n skipDelayDuration = 300,\n orientation = 'horizontal',\n dir,\n ...NavigationMenuProps\n } = props;\n const [navigationMenu, setNavigationMenu] = React.useState(null);\n const composedRef = useComposedRefs(forwardedRef, (node) => setNavigationMenu(node));\n const direction = useDirection(dir);\n const openTimerRef = React.useRef(0);\n const closeTimerRef = React.useRef(0);\n const skipDelayTimerRef = React.useRef(0);\n const [isOpenDelayed, setIsOpenDelayed] = React.useState(true);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: (value) => {\n const isOpen = value !== '';\n const hasSkipDelayDuration = skipDelayDuration > 0;\n\n if (isOpen) {\n window.clearTimeout(skipDelayTimerRef.current);\n if (hasSkipDelayDuration) setIsOpenDelayed(false);\n } else {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => setIsOpenDelayed(true),\n skipDelayDuration\n );\n }\n\n onValueChange?.(value);\n },\n defaultProp: defaultValue ?? '',\n caller: NAVIGATION_MENU_NAME,\n });\n\n const startCloseTimer = React.useCallback(() => {\n window.clearTimeout(closeTimerRef.current);\n closeTimerRef.current = window.setTimeout(() => setValue(''), 150);\n }, [setValue]);\n\n const handleOpen = React.useCallback(\n (itemValue: string) => {\n window.clearTimeout(closeTimerRef.current);\n setValue(itemValue);\n },\n [setValue]\n );\n\n const handleDelayedOpen = React.useCallback(\n (itemValue: string) => {\n const isOpenItem = value === itemValue;\n if (isOpenItem) {\n // If the item is already open (e.g. we're transitioning from the content to the trigger)\n // then we want to clear the close timer immediately.\n window.clearTimeout(closeTimerRef.current);\n } else {\n openTimerRef.current = window.setTimeout(() => {\n window.clearTimeout(closeTimerRef.current);\n setValue(itemValue);\n }, delayDuration);\n }\n },\n [value, setValue, delayDuration]\n );\n\n React.useEffect(() => {\n return () => {\n window.clearTimeout(openTimerRef.current);\n window.clearTimeout(closeTimerRef.current);\n window.clearTimeout(skipDelayTimerRef.current);\n };\n }, []);\n\n return (\n {\n window.clearTimeout(openTimerRef.current);\n if (isOpenDelayed) handleDelayedOpen(itemValue);\n else handleOpen(itemValue);\n }}\n onTriggerLeave={() => {\n window.clearTimeout(openTimerRef.current);\n startCloseTimer();\n }}\n onContentEnter={() => window.clearTimeout(closeTimerRef.current)}\n onContentLeave={startCloseTimer}\n onItemSelect={(itemValue) => {\n setValue((prevValue) => (prevValue === itemValue ? '' : itemValue));\n }}\n onItemDismiss={() => setValue('')}\n >\n \n \n );\n }\n);\n\nNavigationMenu.displayName = NAVIGATION_MENU_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuSub\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_NAME = 'NavigationMenuSub';\n\ntype NavigationMenuSubElement = React.ComponentRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface NavigationMenuSubProps\n extends Omit,\n PrimitiveDivProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n orientation?: Orientation;\n}\n\nconst NavigationMenuSub = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = 'horizontal',\n ...subProps\n } = props;\n const context = useNavigationMenuContext(SUB_NAME, __scopeNavigationMenu);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? '',\n caller: SUB_NAME,\n });\n\n return (\n setValue(itemValue)}\n onItemSelect={(itemValue) => setValue(itemValue)}\n onItemDismiss={() => setValue('')}\n >\n \n \n );\n }\n);\n\nNavigationMenuSub.displayName = SUB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ninterface NavigationMenuProviderPrivateProps {\n isRootMenu: boolean;\n scope: Scope;\n children: React.ReactNode;\n orientation: Orientation;\n dir: Direction;\n rootNavigationMenu: NavigationMenuElement | null;\n value: string;\n onTriggerEnter(itemValue: string): void;\n onTriggerLeave?(): void;\n onContentEnter?(): void;\n onContentLeave?(): void;\n onItemSelect(itemValue: string): void;\n onItemDismiss(): void;\n}\n\ninterface NavigationMenuProviderProps extends NavigationMenuProviderPrivateProps {}\n\nconst NavigationMenuProvider: React.FC = (\n props: ScopedProps\n) => {\n const {\n scope,\n isRootMenu,\n rootNavigationMenu,\n dir,\n orientation,\n children,\n value,\n onItemSelect,\n onItemDismiss,\n onTriggerEnter,\n onTriggerLeave,\n onContentEnter,\n onContentLeave,\n } = props;\n const [viewport, setViewport] = React.useState(null);\n const [viewportContent, setViewportContent] = React.useState>(new Map());\n const [indicatorTrack, setIndicatorTrack] = React.useState(null);\n\n return (\n {\n setViewportContent((prevContent) => {\n prevContent.set(contentValue, contentData);\n return new Map(prevContent);\n });\n }, [])}\n onViewportContentRemove={React.useCallback((contentValue) => {\n setViewportContent((prevContent) => {\n if (!prevContent.has(contentValue)) return prevContent;\n prevContent.delete(contentValue);\n return new Map(prevContent);\n });\n }, [])}\n >\n \n \n {children}\n \n \n \n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuList\n * -----------------------------------------------------------------------------------------------*/\n\nconst LIST_NAME = 'NavigationMenuList';\n\ntype NavigationMenuListElement = React.ComponentRef;\ntype PrimitiveUnorderedListProps = React.ComponentPropsWithoutRef;\ninterface NavigationMenuListProps extends PrimitiveUnorderedListProps {}\n\nconst NavigationMenuList = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeNavigationMenu, ...listProps } = props;\n const context = useNavigationMenuContext(LIST_NAME, __scopeNavigationMenu);\n\n const list = (\n \n );\n\n return (\n \n \n {context.isRootMenu ? {list} : list}\n \n \n );\n }\n);\n\nNavigationMenuList.displayName = LIST_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'NavigationMenuItem';\n\ntype FocusProxyElement = React.ComponentRef;\n\ntype NavigationMenuItemContextValue = {\n value: string;\n triggerRef: React.RefObject;\n contentRef: React.RefObject;\n focusProxyRef: React.RefObject;\n wasEscapeCloseRef: React.MutableRefObject;\n onEntryKeyDown(): void;\n onFocusProxyEnter(side: 'start' | 'end'): void;\n onRootContentClose(): void;\n onContentFocusOutside(): void;\n};\n\nconst [NavigationMenuItemContextProvider, useNavigationMenuItemContext] =\n createNavigationMenuContext(ITEM_NAME);\n\ntype NavigationMenuItemElement = React.ComponentRef;\ntype PrimitiveListItemProps = React.ComponentPropsWithoutRef;\ninterface NavigationMenuItemProps extends PrimitiveListItemProps {\n value?: string;\n}\n\nconst NavigationMenuItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeNavigationMenu, value: valueProp, ...itemProps } = props;\n const autoValue = useId();\n // We need to provide an initial deterministic value as `useId` will return\n // empty string on the first render and we don't want to match our internal \"closed\" value.\n const value = valueProp || autoValue || 'LEGACY_REACT_AUTO_VALUE';\n const contentRef = React.useRef(null);\n const triggerRef = React.useRef(null);\n const focusProxyRef = React.useRef(null);\n const restoreContentTabOrderRef = React.useRef(() => {});\n const wasEscapeCloseRef = React.useRef(false);\n\n const handleContentEntry = React.useCallback((side = 'start') => {\n if (contentRef.current) {\n restoreContentTabOrderRef.current();\n const candidates = getTabbableCandidates(contentRef.current);\n if (candidates.length) focusFirst(side === 'start' ? candidates : candidates.reverse());\n }\n }, []);\n\n const handleContentExit = React.useCallback(() => {\n if (contentRef.current) {\n const candidates = getTabbableCandidates(contentRef.current);\n if (candidates.length) restoreContentTabOrderRef.current = removeFromTabOrder(candidates);\n }\n }, []);\n\n return (\n \n \n \n );\n }\n);\n\nNavigationMenuItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'NavigationMenuTrigger';\n\ntype NavigationMenuTriggerElement = React.ComponentRef;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef;\ninterface NavigationMenuTriggerProps extends PrimitiveButtonProps {}\n\nconst NavigationMenuTrigger = React.forwardRef<\n NavigationMenuTriggerElement,\n NavigationMenuTriggerProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeNavigationMenu, disabled, ...triggerProps } = props;\n const context = useNavigationMenuContext(TRIGGER_NAME, props.__scopeNavigationMenu);\n const itemContext = useNavigationMenuItemContext(TRIGGER_NAME, props.__scopeNavigationMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, itemContext.triggerRef, forwardedRef);\n const triggerId = makeTriggerId(context.baseId, itemContext.value);\n const contentId = makeContentId(context.baseId, itemContext.value);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const wasClickCloseRef = React.useRef(false);\n const open = itemContext.value === context.value;\n\n return (\n <>\n \n \n {\n wasClickCloseRef.current = false;\n itemContext.wasEscapeCloseRef.current = false;\n })}\n onPointerMove={composeEventHandlers(\n props.onPointerMove,\n whenMouse(() => {\n if (\n disabled ||\n wasClickCloseRef.current ||\n itemContext.wasEscapeCloseRef.current ||\n hasPointerMoveOpenedRef.current\n )\n return;\n context.onTriggerEnter(itemContext.value);\n hasPointerMoveOpenedRef.current = true;\n })\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n whenMouse(() => {\n if (disabled) return;\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n })\n )}\n onClick={composeEventHandlers(props.onClick, () => {\n context.onItemSelect(itemContext.value);\n wasClickCloseRef.current = open;\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const verticalEntryKey = context.dir === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n const entryKey = { horizontal: 'ArrowDown', vertical: verticalEntryKey }[\n context.orientation\n ];\n if (open && event.key === entryKey) {\n itemContext.onEntryKeyDown();\n // Prevent FocusGroupItem from handling the event\n event.preventDefault();\n }\n })}\n />\n \n \n\n {/* Proxy tab order between trigger and content */}\n {open && (\n <>\n {\n const content = itemContext.contentRef.current;\n const prevFocusedElement = event.relatedTarget as HTMLElement | null;\n const wasTriggerFocused = prevFocusedElement === ref.current;\n const wasFocusFromContent = content?.contains(prevFocusedElement);\n\n if (wasTriggerFocused || !wasFocusFromContent) {\n itemContext.onFocusProxyEnter(wasTriggerFocused ? 'start' : 'end');\n }\n }}\n />\n\n {/* Restructure a11y tree to make content accessible to screen reader when using the viewport */}\n {context.viewport && }\n \n )}\n \n );\n});\n\nNavigationMenuTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuLink\n * -----------------------------------------------------------------------------------------------*/\n\nconst LINK_NAME = 'NavigationMenuLink';\nconst LINK_SELECT = 'navigationMenu.linkSelect';\n\ntype NavigationMenuLinkElement = React.ComponentRef;\ntype PrimitiveLinkProps = React.ComponentPropsWithoutRef;\ninterface NavigationMenuLinkProps extends Omit {\n active?: boolean;\n onSelect?: (event: Event) => void;\n}\n\nconst NavigationMenuLink = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeNavigationMenu, active, onSelect, ...linkProps } = props;\n\n return (\n \n {\n const target = event.target as HTMLElement;\n const linkSelectEvent = new CustomEvent(LINK_SELECT, {\n bubbles: true,\n cancelable: true,\n });\n target.addEventListener(LINK_SELECT, (event) => onSelect?.(event), { once: true });\n dispatchDiscreteCustomEvent(target, linkSelectEvent);\n\n if (!linkSelectEvent.defaultPrevented && !event.metaKey) {\n const rootContentDismissEvent = new CustomEvent(ROOT_CONTENT_DISMISS, {\n bubbles: true,\n cancelable: true,\n });\n dispatchDiscreteCustomEvent(target, rootContentDismissEvent);\n }\n },\n { checkForDefaultPrevented: false }\n )}\n />\n \n );\n }\n);\n\nNavigationMenuLink.displayName = LINK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'NavigationMenuIndicator';\n\ntype NavigationMenuIndicatorElement = NavigationMenuIndicatorImplElement;\ninterface NavigationMenuIndicatorProps extends NavigationMenuIndicatorImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuIndicator = React.forwardRef<\n NavigationMenuIndicatorElement,\n NavigationMenuIndicatorProps\n>((props: ScopedProps, forwardedRef) => {\n const { forceMount, ...indicatorProps } = props;\n const context = useNavigationMenuContext(INDICATOR_NAME, props.__scopeNavigationMenu);\n const isVisible = Boolean(context.value);\n\n return context.indicatorTrack\n ? ReactDOM.createPortal(\n \n \n ,\n context.indicatorTrack\n )\n : null;\n});\n\nNavigationMenuIndicator.displayName = INDICATOR_NAME;\n\ntype NavigationMenuIndicatorImplElement = React.ComponentRef;\ninterface NavigationMenuIndicatorImplProps extends PrimitiveDivProps {}\n\nconst NavigationMenuIndicatorImpl = React.forwardRef<\n NavigationMenuIndicatorImplElement,\n NavigationMenuIndicatorImplProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeNavigationMenu, ...indicatorProps } = props;\n const context = useNavigationMenuContext(INDICATOR_NAME, __scopeNavigationMenu);\n const getItems = useCollection(__scopeNavigationMenu);\n const [activeTrigger, setActiveTrigger] = React.useState(\n null\n );\n const [position, setPosition] = React.useState<{ size: number; offset: number } | null>(null);\n const isHorizontal = context.orientation === 'horizontal';\n const isVisible = Boolean(context.value);\n\n React.useEffect(() => {\n const items = getItems();\n const triggerNode = items.find((item) => item.value === context.value)?.ref.current;\n if (triggerNode) setActiveTrigger(triggerNode);\n }, [getItems, context.value]);\n\n /**\n * Update position when the indicator or parent track size changes\n */\n const handlePositionChange = () => {\n if (activeTrigger) {\n setPosition({\n size: isHorizontal ? activeTrigger.offsetWidth : activeTrigger.offsetHeight,\n offset: isHorizontal ? activeTrigger.offsetLeft : activeTrigger.offsetTop,\n });\n }\n };\n useResizeObserver(activeTrigger, handlePositionChange);\n useResizeObserver(context.indicatorTrack, handlePositionChange);\n\n // We need to wait for the indicator position to be available before rendering to\n // snap immediately into position rather than transitioning from initial\n return position ? (\n \n ) : null;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'NavigationMenuContent';\n\ntype NavigationMenuContentElement = NavigationMenuContentImplElement;\ninterface NavigationMenuContentProps\n extends Omit {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuContent = React.forwardRef<\n NavigationMenuContentElement,\n NavigationMenuContentProps\n>((props: ScopedProps, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useNavigationMenuContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const itemContext = useNavigationMenuItemContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const composedRefs = useComposedRefs(itemContext.contentRef, forwardedRef);\n const open = itemContext.value === context.value;\n\n const commonProps = {\n value: itemContext.value,\n triggerRef: itemContext.triggerRef,\n focusProxyRef: itemContext.focusProxyRef,\n wasEscapeCloseRef: itemContext.wasEscapeCloseRef,\n onContentFocusOutside: itemContext.onContentFocusOutside,\n onRootContentClose: itemContext.onRootContentClose,\n ...contentProps,\n };\n\n return !context.viewport ? (\n \n \n \n ) : (\n \n );\n});\n\nNavigationMenuContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ViewportContentMounterElement = NavigationMenuContentImplElement;\ninterface ViewportContentMounterProps extends NavigationMenuContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst ViewportContentMounter = React.forwardRef<\n ViewportContentMounterElement,\n ViewportContentMounterProps\n>((props: ScopedProps, forwardedRef) => {\n const context = useNavigationMenuContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const { onViewportContentChange, onViewportContentRemove } = context;\n\n useLayoutEffect(() => {\n onViewportContentChange(props.value, {\n ref: forwardedRef,\n ...props,\n });\n }, [props, forwardedRef, onViewportContentChange]);\n\n useLayoutEffect(() => {\n return () => onViewportContentRemove(props.value);\n }, [props.value, onViewportContentRemove]);\n\n // Content is proxied into the viewport\n return null;\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst ROOT_CONTENT_DISMISS = 'navigationMenu.rootContentDismiss';\n\ntype MotionAttribute = 'to-start' | 'to-end' | 'from-start' | 'from-end';\ntype NavigationMenuContentImplElement = React.ComponentRef;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef;\n\ninterface NavigationMenuContentImplPrivateProps {\n value: string;\n triggerRef: React.RefObject;\n focusProxyRef: React.RefObject;\n wasEscapeCloseRef: React.MutableRefObject;\n onContentFocusOutside(): void;\n onRootContentClose(): void;\n}\ninterface NavigationMenuContentImplProps\n extends Omit,\n NavigationMenuContentImplPrivateProps {}\n\nconst NavigationMenuContentImpl = React.forwardRef<\n NavigationMenuContentImplElement,\n NavigationMenuContentImplProps\n>((props: ScopedProps, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value,\n triggerRef,\n focusProxyRef,\n wasEscapeCloseRef,\n onRootContentClose,\n onContentFocusOutside,\n ...contentProps\n } = props;\n const context = useNavigationMenuContext(CONTENT_NAME, __scopeNavigationMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const getItems = useCollection(__scopeNavigationMenu);\n const prevMotionAttributeRef = React.useRef(null);\n\n const { onItemDismiss } = context;\n\n React.useEffect(() => {\n const content = ref.current;\n\n // Bubble dismiss to the root content node and focus its trigger\n if (context.isRootMenu && content) {\n const handleClose = () => {\n onItemDismiss();\n onRootContentClose();\n if (content.contains(document.activeElement)) triggerRef.current?.focus();\n };\n content.addEventListener(ROOT_CONTENT_DISMISS, handleClose);\n return () => content.removeEventListener(ROOT_CONTENT_DISMISS, handleClose);\n }\n }, [context.isRootMenu, props.value, triggerRef, onItemDismiss, onRootContentClose]);\n\n const motionAttribute = React.useMemo(() => {\n const items = getItems();\n const values = items.map((item) => item.value);\n if (context.dir === 'rtl') values.reverse();\n const index = values.indexOf(context.value);\n const prevIndex = values.indexOf(context.previousValue);\n const isSelected = value === context.value;\n const wasSelected = prevIndex === values.indexOf(value);\n\n // We only want to update selected and the last selected content\n // this avoids animations being interrupted outside of that range\n if (!isSelected && !wasSelected) return prevMotionAttributeRef.current;\n\n const attribute = (() => {\n // Don't provide a direction on the initial open\n if (index !== prevIndex) {\n // If we're moving to this item from another\n if (isSelected && prevIndex !== -1) return index > prevIndex ? 'from-end' : 'from-start';\n // If we're leaving this item for another\n if (wasSelected && index !== -1) return index > prevIndex ? 'to-start' : 'to-end';\n }\n // Otherwise we're entering from closed or leaving the list\n // entirely and should not animate in any direction\n return null;\n })();\n\n prevMotionAttributeRef.current = attribute;\n return attribute;\n }, [context.previousValue, context.value, context.dir, getItems, value]);\n\n return (\n \n {\n const rootContentDismissEvent = new Event(ROOT_CONTENT_DISMISS, {\n bubbles: true,\n cancelable: true,\n });\n ref.current?.dispatchEvent(rootContentDismissEvent);\n }}\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) => {\n onContentFocusOutside();\n const target = event.target as HTMLElement;\n // Only dismiss content when focus moves outside of the menu\n if (context.rootNavigationMenu?.contains(target)) event.preventDefault();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const target = event.target as HTMLElement;\n const isTrigger = getItems().some((item) => item.ref.current?.contains(target));\n const isRootViewport = context.isRootMenu && context.viewport?.contains(target);\n if (isTrigger || isRootViewport || !context.isRootMenu) event.preventDefault();\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const isMetaKey = event.altKey || event.ctrlKey || event.metaKey;\n const isTabKey = event.key === 'Tab' && !isMetaKey;\n if (isTabKey) {\n const candidates = getTabbableCandidates(event.currentTarget);\n const focusedElement = document.activeElement;\n const index = candidates.findIndex((candidate) => candidate === focusedElement);\n const isMovingBackwards = event.shiftKey;\n const nextCandidates = isMovingBackwards\n ? candidates.slice(0, index).reverse()\n : candidates.slice(index + 1, candidates.length);\n\n if (focusFirst(nextCandidates)) {\n // prevent browser tab keydown because we've handled focus\n event.preventDefault();\n } else {\n // If we can't focus that means we're at the edges\n // so focus the proxy and let browser handle\n // tab/shift+tab keypress on the proxy instead\n focusProxyRef.current?.focus();\n }\n }\n })}\n onEscapeKeyDown={composeEventHandlers(props.onEscapeKeyDown, (_event) => {\n // prevent the dropdown from reopening\n // after the escape key has been pressed\n wasEscapeCloseRef.current = true;\n })}\n />\n \n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuViewport\n * -----------------------------------------------------------------------------------------------*/\n\nconst VIEWPORT_NAME = 'NavigationMenuViewport';\n\ntype NavigationMenuViewportElement = NavigationMenuViewportImplElement;\ninterface NavigationMenuViewportProps\n extends Omit {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuViewport = React.forwardRef<\n NavigationMenuViewportElement,\n NavigationMenuViewportProps\n>((props: ScopedProps, forwardedRef) => {\n const { forceMount, ...viewportProps } = props;\n const context = useNavigationMenuContext(VIEWPORT_NAME, props.__scopeNavigationMenu);\n const open = Boolean(context.value);\n\n return (\n \n \n \n );\n});\n\nNavigationMenuViewport.displayName = VIEWPORT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype NavigationMenuViewportImplElement = React.ComponentRef;\ninterface NavigationMenuViewportImplProps extends PrimitiveDivProps {}\n\nconst NavigationMenuViewportImpl = React.forwardRef<\n NavigationMenuViewportImplElement,\n NavigationMenuViewportImplProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeNavigationMenu, children, ...viewportImplProps } = props;\n const context = useNavigationMenuContext(VIEWPORT_NAME, __scopeNavigationMenu);\n const composedRefs = useComposedRefs(forwardedRef, context.onViewportChange);\n const viewportContentContext = useViewportContentContext(\n CONTENT_NAME,\n props.__scopeNavigationMenu\n );\n const [size, setSize] = React.useState<{ width: number; height: number } | null>(null);\n const [content, setContent] = React.useState(null);\n const viewportWidth = size ? size?.width + 'px' : undefined;\n const viewportHeight = size ? size?.height + 'px' : undefined;\n const open = Boolean(context.value);\n // We persist the last active content value as the viewport may be animating out\n // and we want the content to remain mounted for the lifecycle of the viewport.\n const activeContentValue = open ? context.value : context.previousValue;\n\n /**\n * Update viewport size to match the active content node.\n * We prefer offset dimensions over `getBoundingClientRect` as the latter respects CSS transform.\n * For example, if content animates in from `scale(0.5)` the dimensions would be anything\n * from `0.5` to `1` of the intended size.\n */\n const handleSizeChange = () => {\n if (content) setSize({ width: content.offsetWidth, height: content.offsetHeight });\n };\n useResizeObserver(content, handleSizeChange);\n\n return (\n \n {Array.from(viewportContentContext.items).map(([value, { ref, forceMount, ...props }]) => {\n const isActive = activeContentValue === value;\n return (\n \n {\n // We only want to update the stored node when another is available\n // as we need to smoothly transition between them.\n if (isActive && node) setContent(node);\n })}\n />\n \n );\n })}\n \n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst FOCUS_GROUP_NAME = 'FocusGroup';\n\ntype FocusGroupElement = React.ComponentRef;\ninterface FocusGroupProps extends PrimitiveDivProps {}\n\nconst FocusGroup = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeNavigationMenu, ...groupProps } = props;\n const context = useNavigationMenuContext(FOCUS_GROUP_NAME, __scopeNavigationMenu);\n\n return (\n \n \n \n \n \n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_KEYS = ['ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown'];\nconst FOCUS_GROUP_ITEM_NAME = 'FocusGroupItem';\n\ntype FocusGroupItemElement = React.ComponentRef;\ninterface FocusGroupItemProps extends PrimitiveButtonProps {}\n\nconst FocusGroupItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeNavigationMenu, ...groupProps } = props;\n const getItems = useFocusGroupCollection(__scopeNavigationMenu);\n const context = useNavigationMenuContext(FOCUS_GROUP_ITEM_NAME, __scopeNavigationMenu);\n\n return (\n \n {\n const isFocusNavigationKey = ['Home', 'End', ...ARROW_KEYS].includes(event.key);\n if (isFocusNavigationKey) {\n let candidateNodes = getItems().map((item) => item.ref.current!);\n const prevItemKey = context.dir === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n const prevKeys = [prevItemKey, 'ArrowUp', 'End'];\n if (prevKeys.includes(event.key)) candidateNodes.reverse();\n if (ARROW_KEYS.includes(event.key)) {\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n /**\n * Imperative focus during keydown is risky so we prevent React's batching updates\n * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332\n */\n setTimeout(() => focusFirst(candidateNodes));\n\n // Prevent page scroll while navigating\n event.preventDefault();\n }\n })}\n />\n \n );\n }\n);\n\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */\nfunction getTabbableCandidates(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n\nfunction focusFirst(candidates: HTMLElement[]) {\n const previouslyFocusedElement = document.activeElement;\n return candidates.some((candidate) => {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === previouslyFocusedElement) return true;\n candidate.focus();\n return document.activeElement !== previouslyFocusedElement;\n });\n}\n\nfunction removeFromTabOrder(candidates: HTMLElement[]) {\n candidates.forEach((candidate) => {\n candidate.dataset.tabindex = candidate.getAttribute('tabindex') || '';\n candidate.setAttribute('tabindex', '-1');\n });\n return () => {\n candidates.forEach((candidate) => {\n const prevTabIndex = candidate.dataset.tabindex as string;\n candidate.setAttribute('tabindex', prevTabIndex);\n });\n };\n}\n\nfunction useResizeObserver(element: HTMLElement | null, onResize: () => void) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n /**\n * Resize Observer will throw an often benign error that says `ResizeObserver loop\n * completed with undelivered notifications`. This means that ResizeObserver was not\n * able to deliver all observations within a single animation frame, so we use\n * `requestAnimationFrame` to ensure we don't deliver unnecessary observations.\n * Further reading: https://github.com/WICG/resize-observer/issues/38\n */\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\n\nfunction getOpenState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nfunction makeTriggerId(baseId: string, value: string) {\n return `${baseId}-trigger-${value}`;\n}\n\nfunction makeContentId(baseId: string, value: string) {\n return `${baseId}-content-${value}`;\n}\n\nfunction whenMouse(handler: React.PointerEventHandler): React.PointerEventHandler {\n return (event) => (event.pointerType === 'mouse' ? handler(event) : undefined);\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = NavigationMenu;\nconst Sub = NavigationMenuSub;\nconst List = NavigationMenuList;\nconst Item = NavigationMenuItem;\nconst Trigger = NavigationMenuTrigger;\nconst Link = NavigationMenuLink;\nconst Indicator = NavigationMenuIndicator;\nconst Content = NavigationMenuContent;\nconst Viewport = NavigationMenuViewport;\n\nexport {\n createNavigationMenuScope,\n //\n NavigationMenu,\n NavigationMenuSub,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuContent,\n NavigationMenuViewport,\n //\n Root,\n Sub,\n List,\n Item,\n Trigger,\n Link,\n Indicator,\n Content,\n Viewport,\n};\nexport type {\n NavigationMenuProps,\n NavigationMenuSubProps,\n NavigationMenuListProps,\n NavigationMenuItemProps,\n NavigationMenuTriggerProps,\n NavigationMenuLinkProps,\n NavigationMenuIndicatorProps,\n NavigationMenuContentProps,\n NavigationMenuViewportProps,\n};\n","import * as React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Progress\n * -----------------------------------------------------------------------------------------------*/\n\nconst PROGRESS_NAME = 'Progress';\nconst DEFAULT_MAX = 100;\n\ntype ScopedProps

= P & { __scopeProgress?: Scope };\nconst [createProgressContext, createProgressScope] = createContextScope(PROGRESS_NAME);\n\ntype ProgressState = 'indeterminate' | 'complete' | 'loading';\ntype ProgressContextValue = { value: number | null; max: number };\nconst [ProgressProvider, useProgressContext] =\n createProgressContext(PROGRESS_NAME);\n\ntype ProgressElement = React.ComponentRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface ProgressProps extends PrimitiveDivProps {\n value?: number | null | undefined;\n max?: number;\n getValueLabel?(value: number, max: number): string;\n}\n\nconst Progress = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeProgress,\n value: valueProp = null,\n max: maxProp,\n getValueLabel = defaultGetValueLabel,\n ...progressProps\n } = props;\n\n if ((maxProp || maxProp === 0) && !isValidMaxNumber(maxProp)) {\n console.error(getInvalidMaxError(`${maxProp}`, 'Progress'));\n }\n\n const max = isValidMaxNumber(maxProp) ? maxProp : DEFAULT_MAX;\n\n if (valueProp !== null && !isValidValueNumber(valueProp, max)) {\n console.error(getInvalidValueError(`${valueProp}`, 'Progress'));\n }\n\n const value = isValidValueNumber(valueProp, max) ? valueProp : null;\n const valueLabel = isNumber(value) ? getValueLabel(value, max) : undefined;\n\n return (\n \n \n \n );\n }\n);\n\nProgress.displayName = PROGRESS_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ProgressIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'ProgressIndicator';\n\ntype ProgressIndicatorElement = React.ComponentRef;\ninterface ProgressIndicatorProps extends PrimitiveDivProps {}\n\nconst ProgressIndicator = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeProgress, ...indicatorProps } = props;\n const context = useProgressContext(INDICATOR_NAME, __scopeProgress);\n return (\n \n );\n }\n);\n\nProgressIndicator.displayName = INDICATOR_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nfunction defaultGetValueLabel(value: number, max: number) {\n return `${Math.round((value / max) * 100)}%`;\n}\n\nfunction getProgressState(value: number | undefined | null, maxValue: number): ProgressState {\n return value == null ? 'indeterminate' : value === maxValue ? 'complete' : 'loading';\n}\n\nfunction isNumber(value: any): value is number {\n return typeof value === 'number';\n}\n\nfunction isValidMaxNumber(max: any): max is number {\n // prettier-ignore\n return (\n isNumber(max) &&\n !isNaN(max) &&\n max > 0\n );\n}\n\nfunction isValidValueNumber(value: any, max: number): value is number {\n // prettier-ignore\n return (\n isNumber(value) &&\n !isNaN(value) &&\n value <= max &&\n value >= 0\n );\n}\n\n// Split this out for clearer readability of the error message.\nfunction getInvalidMaxError(propValue: string, componentName: string) {\n return `Invalid prop \\`max\\` of value \\`${propValue}\\` supplied to \\`${componentName}\\`. Only numbers greater than 0 are valid max values. Defaulting to \\`${DEFAULT_MAX}\\`.`;\n}\n\nfunction getInvalidValueError(propValue: string, componentName: string) {\n return `Invalid prop \\`value\\` of value \\`${propValue}\\` supplied to \\`${componentName}\\`. The \\`value\\` prop must be:\n - a positive number\n - less than the value passed to \\`max\\` (or ${DEFAULT_MAX} if no \\`max\\` prop is set)\n - \\`null\\` or \\`undefined\\` if the progress is indeterminate.\n\nDefaulting to \\`null\\`.`;\n}\n\nconst Root = Progress;\nconst Indicator = ProgressIndicator;\n\nexport {\n createProgressScope,\n //\n Progress,\n ProgressIndicator,\n //\n Root,\n Indicator,\n};\nexport type { ProgressProps, ProgressIndicatorProps };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useId } from '@radix-ui/react-id';\nimport { Label as LabelPrimitive } from '@radix-ui/react-label';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type { Scope } from '@radix-ui/react-context';\n\ntype ScopedProps

= P & { __scopeForm?: Scope };\nconst [createFormContext, createFormScope] = createContextScope('Form');\n\n/* -------------------------------------------------------------------------------------------------\n * Form\n * -----------------------------------------------------------------------------------------------*/\n\nconst FORM_NAME = 'Form';\n\ntype ValidityMap = { [fieldName: string]: ValidityState | undefined };\ntype CustomMatcherEntriesMap = { [fieldName: string]: CustomMatcherEntry[] };\ntype CustomErrorsMap = { [fieldName: string]: Record };\n\ntype ValidationContextValue = {\n getFieldValidity(fieldName: string): ValidityState | undefined;\n onFieldValidityChange(fieldName: string, validity: ValidityState): void;\n\n getFieldCustomMatcherEntries(fieldName: string): CustomMatcherEntry[];\n onFieldCustomMatcherEntryAdd(fieldName: string, matcherEntry: CustomMatcherEntry): void;\n onFieldCustomMatcherEntryRemove(fieldName: string, matcherEntryId: string): void;\n\n getFieldCustomErrors(fieldName: string): Record;\n onFieldCustomErrorsChange(fieldName: string, errors: Record): void;\n\n onFieldValiditionClear(fieldName: string): void;\n};\nconst [ValidationProvider, useValidationContext] =\n createFormContext(FORM_NAME);\n\ntype MessageIdsMap = { [fieldName: string]: Set };\n\ntype AriaDescriptionContextValue = {\n onFieldMessageIdAdd(fieldName: string, id: string): void;\n onFieldMessageIdRemove(fieldName: string, id: string): void;\n getFieldDescription(fieldName: string): string | undefined;\n};\nconst [AriaDescriptionProvider, useAriaDescriptionContext] =\n createFormContext(FORM_NAME);\n\ntype FormElement = React.ComponentRef;\ntype PrimitiveFormProps = React.ComponentPropsWithoutRef;\ninterface FormProps extends PrimitiveFormProps {\n onClearServerErrors?(): void;\n}\n\nconst Form = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeForm, onClearServerErrors = () => {}, ...rootProps } = props;\n const formRef = React.useRef(null);\n const composedFormRef = useComposedRefs(forwardedRef, formRef);\n\n // native validity per field\n const [validityMap, setValidityMap] = React.useState({});\n const getFieldValidity: ValidationContextValue['getFieldValidity'] = React.useCallback(\n (fieldName) => validityMap[fieldName],\n [validityMap]\n );\n const handleFieldValidityChange: ValidationContextValue['onFieldValidityChange'] =\n React.useCallback(\n (fieldName, validity) =>\n setValidityMap((prevValidityMap) => ({\n ...prevValidityMap,\n [fieldName]: { ...(prevValidityMap[fieldName] ?? {}), ...validity },\n })),\n []\n );\n const handleFieldValiditionClear: ValidationContextValue['onFieldValiditionClear'] =\n React.useCallback((fieldName) => {\n setValidityMap((prevValidityMap) => ({ ...prevValidityMap, [fieldName]: undefined }));\n setCustomErrorsMap((prevCustomErrorsMap) => ({ ...prevCustomErrorsMap, [fieldName]: {} }));\n }, []);\n\n // custom matcher entries per field\n const [customMatcherEntriesMap, setCustomMatcherEntriesMap] =\n React.useState({});\n const getFieldCustomMatcherEntries: ValidationContextValue['getFieldCustomMatcherEntries'] =\n React.useCallback(\n (fieldName) => customMatcherEntriesMap[fieldName] ?? [],\n [customMatcherEntriesMap]\n );\n const handleFieldCustomMatcherAdd: ValidationContextValue['onFieldCustomMatcherEntryAdd'] =\n React.useCallback((fieldName, matcherEntry) => {\n setCustomMatcherEntriesMap((prevCustomMatcherEntriesMap) => ({\n ...prevCustomMatcherEntriesMap,\n [fieldName]: [...(prevCustomMatcherEntriesMap[fieldName] ?? []), matcherEntry],\n }));\n }, []);\n const handleFieldCustomMatcherRemove: ValidationContextValue['onFieldCustomMatcherEntryRemove'] =\n React.useCallback((fieldName, matcherEntryId) => {\n setCustomMatcherEntriesMap((prevCustomMatcherEntriesMap) => ({\n ...prevCustomMatcherEntriesMap,\n [fieldName]: (prevCustomMatcherEntriesMap[fieldName] ?? []).filter(\n (matcherEntry) => matcherEntry.id !== matcherEntryId\n ),\n }));\n }, []);\n\n // custom errors per field\n const [customErrorsMap, setCustomErrorsMap] = React.useState({});\n const getFieldCustomErrors: ValidationContextValue['getFieldCustomErrors'] = React.useCallback(\n (fieldName) => customErrorsMap[fieldName] ?? {},\n [customErrorsMap]\n );\n const handleFieldCustomErrorsChange: ValidationContextValue['onFieldCustomErrorsChange'] =\n React.useCallback((fieldName, customErrors) => {\n setCustomErrorsMap((prevCustomErrorsMap) => ({\n ...prevCustomErrorsMap,\n [fieldName]: { ...(prevCustomErrorsMap[fieldName] ?? {}), ...customErrors },\n }));\n }, []);\n\n // messageIds per field\n const [messageIdsMap, setMessageIdsMap] = React.useState({});\n const handleFieldMessageIdAdd: AriaDescriptionContextValue['onFieldMessageIdAdd'] =\n React.useCallback((fieldName, id) => {\n setMessageIdsMap((prevMessageIdsMap) => {\n const fieldDescriptionIds = new Set(prevMessageIdsMap[fieldName]).add(id);\n return { ...prevMessageIdsMap, [fieldName]: fieldDescriptionIds };\n });\n }, []);\n const handleFieldMessageIdRemove: AriaDescriptionContextValue['onFieldMessageIdRemove'] =\n React.useCallback((fieldName, id) => {\n setMessageIdsMap((prevMessageIdsMap) => {\n const fieldDescriptionIds = new Set(prevMessageIdsMap[fieldName]);\n fieldDescriptionIds.delete(id);\n return { ...prevMessageIdsMap, [fieldName]: fieldDescriptionIds };\n });\n }, []);\n const getFieldDescription: AriaDescriptionContextValue['getFieldDescription'] =\n React.useCallback(\n (fieldName) => Array.from(messageIdsMap[fieldName] ?? []).join(' ') || undefined,\n [messageIdsMap]\n );\n\n return (\n \n \n {\n const firstInvalidControl = getFirstInvalidControl(event.currentTarget);\n if (firstInvalidControl === event.target) firstInvalidControl.focus();\n\n // prevent default browser UI for form validation\n event.preventDefault();\n })}\n // clear server errors when the form is re-submitted\n onSubmit={composeEventHandlers(props.onSubmit, onClearServerErrors, {\n checkForDefaultPrevented: false,\n })}\n // clear server errors when the form is reset\n onReset={composeEventHandlers(props.onReset, onClearServerErrors)}\n />\n \n \n );\n }\n);\n\nForm.displayName = FORM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * FormField\n * -----------------------------------------------------------------------------------------------*/\n\nconst FIELD_NAME = 'FormField';\n\ntype FormFieldContextValue = {\n id: string;\n name: string;\n serverInvalid: boolean;\n};\nconst [FormFieldProvider, useFormFieldContext] =\n createFormContext(FIELD_NAME);\n\ntype FormFieldElement = React.ComponentRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface FormFieldProps extends PrimitiveDivProps {\n name: string;\n serverInvalid?: boolean;\n}\n\nconst FormField = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeForm, name, serverInvalid = false, ...fieldProps } = props;\n const validationContext = useValidationContext(FIELD_NAME, __scopeForm);\n const validity = validationContext.getFieldValidity(name);\n const id = useId();\n\n return (\n \n \n \n );\n }\n);\n\nFormField.displayName = FIELD_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * FormLabel\n * -----------------------------------------------------------------------------------------------*/\n\nconst LABEL_NAME = 'FormLabel';\n\ntype FormLabelElement = React.ComponentRef;\ntype LabelProps = React.ComponentPropsWithoutRef;\ninterface FormLabelProps extends LabelProps {}\n\nconst FormLabel = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeForm, ...labelProps } = props;\n const validationContext = useValidationContext(LABEL_NAME, __scopeForm);\n const fieldContext = useFormFieldContext(LABEL_NAME, __scopeForm);\n const htmlFor = labelProps.htmlFor || fieldContext.id;\n const validity = validationContext.getFieldValidity(fieldContext.name);\n\n return (\n \n );\n }\n);\n\nFormLabel.displayName = LABEL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * FormControl\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTROL_NAME = 'FormControl';\n\ntype FormControlElement = React.ComponentRef;\ntype PrimitiveInputProps = React.ComponentPropsWithoutRef;\ninterface FormControlProps extends PrimitiveInputProps {}\n\nconst FormControl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeForm, ...controlProps } = props;\n\n const validationContext = useValidationContext(CONTROL_NAME, __scopeForm);\n const fieldContext = useFormFieldContext(CONTROL_NAME, __scopeForm);\n const ariaDescriptionContext = useAriaDescriptionContext(CONTROL_NAME, __scopeForm);\n\n const ref = React.useRef(null);\n const composedRef = useComposedRefs(forwardedRef, ref);\n const name = controlProps.name || fieldContext.name;\n const id = controlProps.id || fieldContext.id;\n const customMatcherEntries = validationContext.getFieldCustomMatcherEntries(name);\n\n const { onFieldValidityChange, onFieldCustomErrorsChange, onFieldValiditionClear } =\n validationContext;\n const updateControlValidity = React.useCallback(\n async (control: FormControlElement) => {\n //------------------------------------------------------------------------------------------\n // 1. first, if we have built-in errors we stop here\n\n if (hasBuiltInError(control.validity)) {\n const controlValidity = validityStateToObject(control.validity);\n onFieldValidityChange(name, controlValidity);\n return;\n }\n\n //------------------------------------------------------------------------------------------\n // 2. then gather the form data to give to custom matchers for cross-comparisons\n\n const formData = control.form ? new FormData(control.form) : new FormData();\n const matcherArgs: CustomMatcherArgs = [control.value, formData];\n\n //------------------------------------------------------------------------------------------\n // 3. split sync and async custom matcher entries\n\n const syncCustomMatcherEntries: Array = [];\n const ayncCustomMatcherEntries: Array = [];\n customMatcherEntries.forEach((customMatcherEntry) => {\n if (isAsyncCustomMatcherEntry(customMatcherEntry, matcherArgs)) {\n ayncCustomMatcherEntries.push(customMatcherEntry);\n } else if (isSyncCustomMatcherEntry(customMatcherEntry)) {\n syncCustomMatcherEntries.push(customMatcherEntry);\n }\n });\n\n //------------------------------------------------------------------------------------------\n // 4. run sync custom matchers and update control validity / internal validity + errors\n\n const syncCustomErrors = syncCustomMatcherEntries.map(({ id, match }) => {\n return [id, match(...matcherArgs)] as const;\n });\n const syncCustomErrorsById = Object.fromEntries(syncCustomErrors);\n const hasSyncCustomErrors = Object.values(syncCustomErrorsById).some(Boolean);\n const hasCustomError = hasSyncCustomErrors;\n control.setCustomValidity(hasCustomError ? DEFAULT_INVALID_MESSAGE : '');\n const controlValidity = validityStateToObject(control.validity);\n onFieldValidityChange(name, controlValidity);\n onFieldCustomErrorsChange(name, syncCustomErrorsById);\n\n //------------------------------------------------------------------------------------------\n // 5. run async custom matchers and update control validity / internal validity + errors\n\n if (!hasSyncCustomErrors && ayncCustomMatcherEntries.length > 0) {\n const promisedCustomErrors = ayncCustomMatcherEntries.map(({ id, match }) =>\n match(...matcherArgs).then((matches) => [id, matches] as const)\n );\n const asyncCustomErrors = await Promise.all(promisedCustomErrors);\n const asyncCustomErrorsById = Object.fromEntries(asyncCustomErrors);\n const hasAsyncCustomErrors = Object.values(asyncCustomErrorsById).some(Boolean);\n const hasCustomError = hasAsyncCustomErrors;\n control.setCustomValidity(hasCustomError ? DEFAULT_INVALID_MESSAGE : '');\n const controlValidity = validityStateToObject(control.validity);\n onFieldValidityChange(name, controlValidity);\n onFieldCustomErrorsChange(name, asyncCustomErrorsById);\n }\n },\n [customMatcherEntries, name, onFieldCustomErrorsChange, onFieldValidityChange]\n );\n\n React.useEffect(() => {\n const control = ref.current;\n if (control) {\n // We only want validate on change (native `change` event, not React's `onChange`). This is primarily\n // a UX decision, we don't want to validate on every keystroke and React's `onChange` is the `input` event.\n const handleChange = () => updateControlValidity(control);\n control.addEventListener('change', handleChange);\n return () => control.removeEventListener('change', handleChange);\n }\n }, [updateControlValidity]);\n\n const resetControlValidity = React.useCallback(() => {\n const control = ref.current;\n if (control) {\n control.setCustomValidity('');\n onFieldValiditionClear(name);\n }\n }, [name, onFieldValiditionClear]);\n\n // reset validity and errors when the form is reset\n React.useEffect(() => {\n const form = ref.current?.form;\n if (form) {\n form.addEventListener('reset', resetControlValidity);\n return () => form.removeEventListener('reset', resetControlValidity);\n }\n }, [resetControlValidity]);\n\n // focus first invalid control when fields are set as invalid by server\n React.useEffect(() => {\n const control = ref.current;\n const form = control?.closest('form');\n if (form && fieldContext.serverInvalid) {\n const firstInvalidControl = getFirstInvalidControl(form);\n if (firstInvalidControl === control) firstInvalidControl.focus();\n }\n }, [fieldContext.serverInvalid]);\n\n const validity = validationContext.getFieldValidity(name);\n\n return (\n {\n const control = event.currentTarget;\n updateControlValidity(control);\n })}\n onChange={composeEventHandlers(props.onChange, (_event) => {\n // reset validity when user changes value\n resetControlValidity();\n })}\n />\n );\n }\n);\n\nFormControl.displayName = CONTROL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * FormMessage\n * -----------------------------------------------------------------------------------------------*/\n\nconst _validityMatchers = [\n 'badInput',\n 'patternMismatch',\n 'rangeOverflow',\n 'rangeUnderflow',\n 'stepMismatch',\n 'tooLong',\n 'tooShort',\n 'typeMismatch',\n 'valid',\n 'valueMissing',\n] as const;\ntype ValidityMatcher = (typeof _validityMatchers)[number];\n\nconst DEFAULT_INVALID_MESSAGE = 'This value is not valid';\nconst DEFAULT_BUILT_IN_MESSAGES: Record = {\n badInput: DEFAULT_INVALID_MESSAGE,\n patternMismatch: 'This value does not match the required pattern',\n rangeOverflow: 'This value is too large',\n rangeUnderflow: 'This value is too small',\n stepMismatch: 'This value does not match the required step',\n tooLong: 'This value is too long',\n tooShort: 'This value is too short',\n typeMismatch: 'This value does not match the required type',\n valid: undefined,\n valueMissing: 'This value is missing',\n};\n\nconst MESSAGE_NAME = 'FormMessage';\n\ntype FormMessageElement = FormMessageImplElement;\ninterface FormMessageProps extends Omit {\n match?: ValidityMatcher | CustomMatcher;\n forceMatch?: boolean;\n name?: string;\n}\n\nconst FormMessage = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { match, name: nameProp, ...messageProps } = props;\n const fieldContext = useFormFieldContext(MESSAGE_NAME, props.__scopeForm);\n const name = nameProp ?? fieldContext.name;\n\n if (match === undefined) {\n return (\n \n {props.children || DEFAULT_INVALID_MESSAGE}\n \n );\n } else if (typeof match === 'function') {\n return ;\n } else {\n return ;\n }\n }\n);\n\nFormMessage.displayName = MESSAGE_NAME;\n\ntype FormBuiltInMessageElement = FormMessageImplElement;\ninterface FormBuiltInMessageProps extends FormMessageImplProps {\n match: ValidityMatcher;\n forceMatch?: boolean;\n name: string;\n}\n\nconst FormBuiltInMessage = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { match, forceMatch = false, name, children, ...messageProps } = props;\n const validationContext = useValidationContext(MESSAGE_NAME, messageProps.__scopeForm);\n const validity = validationContext.getFieldValidity(name);\n const matches = forceMatch || validity?.[match];\n\n if (matches) {\n return (\n \n {children ?? DEFAULT_BUILT_IN_MESSAGES[match]}\n \n );\n }\n\n return null;\n }\n);\n\ntype FormCustomMessageElement = React.ComponentRef;\ninterface FormCustomMessageProps extends React.ComponentPropsWithoutRef {\n match: CustomMatcher;\n forceMatch?: boolean;\n name: string;\n}\n\nconst FormCustomMessage = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { match, forceMatch = false, name, id: idProp, children, ...messageProps } = props;\n const validationContext = useValidationContext(MESSAGE_NAME, messageProps.__scopeForm);\n const ref = React.useRef(null);\n const composedRef = useComposedRefs(forwardedRef, ref);\n const _id = useId();\n const id = idProp ?? _id;\n\n const customMatcherEntry = React.useMemo(() => ({ id, match }), [id, match]);\n const { onFieldCustomMatcherEntryAdd, onFieldCustomMatcherEntryRemove } = validationContext;\n React.useEffect(() => {\n onFieldCustomMatcherEntryAdd(name, customMatcherEntry);\n return () => onFieldCustomMatcherEntryRemove(name, customMatcherEntry.id);\n }, [customMatcherEntry, name, onFieldCustomMatcherEntryAdd, onFieldCustomMatcherEntryRemove]);\n\n const validity = validationContext.getFieldValidity(name);\n const customErrors = validationContext.getFieldCustomErrors(name);\n const hasMatchingCustomError = customErrors[id];\n const matches =\n forceMatch || (validity && !hasBuiltInError(validity) && hasMatchingCustomError);\n\n if (matches) {\n return (\n \n {children ?? DEFAULT_INVALID_MESSAGE}\n \n );\n }\n\n return null;\n }\n);\n\ntype FormMessageImplElement = React.ComponentRef;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef;\ninterface FormMessageImplProps extends PrimitiveSpanProps {\n name: string;\n}\n\nconst FormMessageImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeForm, id: idProp, name, ...messageProps } = props;\n const ariaDescriptionContext = useAriaDescriptionContext(MESSAGE_NAME, __scopeForm);\n const _id = useId();\n const id = idProp ?? _id;\n\n const { onFieldMessageIdAdd, onFieldMessageIdRemove } = ariaDescriptionContext;\n React.useEffect(() => {\n onFieldMessageIdAdd(name, id);\n return () => onFieldMessageIdRemove(name, id);\n }, [name, id, onFieldMessageIdAdd, onFieldMessageIdRemove]);\n\n return ;\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * FormValidityState\n * -----------------------------------------------------------------------------------------------*/\n\nconst VALIDITY_STATE_NAME = 'FormValidityState';\n\ninterface FormValidityStateProps {\n children(validity: ValidityState | undefined): React.ReactNode;\n name?: string;\n}\n\nconst FormValidityState = (props: ScopedProps) => {\n const { __scopeForm, name: nameProp, children } = props;\n const validationContext = useValidationContext(VALIDITY_STATE_NAME, __scopeForm);\n const fieldContext = useFormFieldContext(VALIDITY_STATE_NAME, __scopeForm);\n const name = nameProp ?? fieldContext.name;\n const validity = validationContext.getFieldValidity(name);\n return <>{children(validity)};\n};\n\nFormValidityState.displayName = VALIDITY_STATE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * FormSubmit\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUBMIT_NAME = 'FormSubmit';\n\ntype FormSubmitElement = React.ComponentRef;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef;\ninterface FormSubmitProps extends PrimitiveButtonProps {}\n\nconst FormSubmit = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeForm, ...submitProps } = props;\n return ;\n }\n);\n\nFormSubmit.displayName = SUBMIT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ValidityStateKey = keyof ValidityState;\ntype SyncCustomMatcher = (value: string, formData: FormData) => boolean;\ntype AsyncCustomMatcher = (value: string, formData: FormData) => Promise;\ntype CustomMatcher = SyncCustomMatcher | AsyncCustomMatcher;\ntype CustomMatcherEntry = { id: string; match: CustomMatcher };\ntype SyncCustomMatcherEntry = { id: string; match: SyncCustomMatcher };\ntype AsyncCustomMatcherEntry = { id: string; match: AsyncCustomMatcher };\ntype CustomMatcherArgs = [string, FormData];\n\nfunction validityStateToObject(validity: ValidityState) {\n const object: any = {};\n for (const key in validity) {\n object[key] = validity[key as ValidityStateKey];\n }\n return object as Record;\n}\n\nfunction isHTMLElement(element: any): element is HTMLElement {\n return element instanceof HTMLElement;\n}\n\nfunction isFormControl(element: any): element is { validity: ValidityState } {\n return 'validity' in element;\n}\n\nfunction isInvalid(control: HTMLElement) {\n return (\n isFormControl(control) &&\n (control.validity.valid === false || control.getAttribute('aria-invalid') === 'true')\n );\n}\n\nfunction getFirstInvalidControl(form: HTMLFormElement): HTMLElement | undefined {\n const elements = form.elements;\n const [firstInvalidControl] = Array.from(elements).filter(isHTMLElement).filter(isInvalid);\n return firstInvalidControl;\n}\n\nfunction isAsyncCustomMatcherEntry(\n entry: CustomMatcherEntry,\n args: CustomMatcherArgs\n): entry is AsyncCustomMatcherEntry {\n return entry.match.constructor.name === 'AsyncFunction' || returnsPromise(entry.match, args);\n}\n\nfunction isSyncCustomMatcherEntry(entry: CustomMatcherEntry): entry is SyncCustomMatcherEntry {\n return entry.match.constructor.name === 'Function';\n}\n\nfunction returnsPromise(func: Function, args: Array) {\n return func(...args) instanceof Promise;\n}\n\nfunction hasBuiltInError(validity: ValidityState) {\n let error = false;\n for (const validityKey in validity) {\n const key = validityKey as ValidityStateKey;\n if (key !== 'valid' && key !== 'customError' && validity[key]) {\n error = true;\n break;\n }\n }\n return error;\n}\n\nfunction getValidAttribute(validity: ValidityState | undefined, serverInvalid: boolean) {\n if (validity?.valid === true && !serverInvalid) return true;\n return undefined;\n}\nfunction getInvalidAttribute(validity: ValidityState | undefined, serverInvalid: boolean) {\n if (validity?.valid === false || serverInvalid) return true;\n return undefined;\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Form;\nconst Field = FormField;\nconst Label = FormLabel;\nconst Control = FormControl;\nconst Message = FormMessage;\nconst ValidityState = FormValidityState;\nconst Submit = FormSubmit;\n\nexport {\n createFormScope,\n //\n Form,\n FormField,\n FormLabel,\n FormControl,\n FormMessage,\n FormValidityState,\n FormSubmit,\n //\n Root,\n Field,\n Label,\n Control,\n Message,\n ValidityState,\n Submit,\n};\n\nexport type {\n FormProps,\n FormFieldProps,\n FormLabelProps,\n FormControlProps,\n FormMessageProps,\n FormValidityStateProps,\n FormSubmitProps,\n};\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCard\n * -----------------------------------------------------------------------------------------------*/\n\nlet originalBodyUserSelect: string;\n\nconst HOVERCARD_NAME = 'HoverCard';\n\ntype ScopedProps

= P & { __scopeHoverCard?: Scope };\nconst [createHoverCardContext, createHoverCardScope] = createContextScope(HOVERCARD_NAME, [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\ntype HoverCardContextValue = {\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpen(): void;\n onClose(): void;\n onDismiss(): void;\n hasSelectionRef: React.MutableRefObject;\n isPointerDownOnContentRef: React.MutableRefObject;\n};\n\nconst [HoverCardProvider, useHoverCardContext] =\n createHoverCardContext(HOVERCARD_NAME);\n\ninterface HoverCardProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n openDelay?: number;\n closeDelay?: number;\n}\n\nconst HoverCard: React.FC = (props: ScopedProps) => {\n const {\n __scopeHoverCard,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n openDelay = 700,\n closeDelay = 300,\n } = props;\n const popperScope = usePopperScope(__scopeHoverCard);\n const openTimerRef = React.useRef(0);\n const closeTimerRef = React.useRef(0);\n const hasSelectionRef = React.useRef(false);\n const isPointerDownOnContentRef = React.useRef(false);\n\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: HOVERCARD_NAME,\n });\n\n const handleOpen = React.useCallback(() => {\n clearTimeout(closeTimerRef.current);\n openTimerRef.current = window.setTimeout(() => setOpen(true), openDelay);\n }, [openDelay, setOpen]);\n\n const handleClose = React.useCallback(() => {\n clearTimeout(openTimerRef.current);\n if (!hasSelectionRef.current && !isPointerDownOnContentRef.current) {\n closeTimerRef.current = window.setTimeout(() => setOpen(false), closeDelay);\n }\n }, [closeDelay, setOpen]);\n\n const handleDismiss = React.useCallback(() => setOpen(false), [setOpen]);\n\n // cleanup any queued state updates on unmount\n React.useEffect(() => {\n return () => {\n clearTimeout(openTimerRef.current);\n clearTimeout(closeTimerRef.current);\n };\n }, []);\n\n return (\n \n {children}\n \n );\n};\n\nHoverCard.displayName = HOVERCARD_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'HoverCardTrigger';\n\ntype HoverCardTriggerElement = React.ComponentRef;\ntype PrimitiveLinkProps = React.ComponentPropsWithoutRef;\ninterface HoverCardTriggerProps extends PrimitiveLinkProps {}\n\nconst HoverCardTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeHoverCard, ...triggerProps } = props;\n const context = useHoverCardContext(TRIGGER_NAME, __scopeHoverCard);\n const popperScope = usePopperScope(__scopeHoverCard);\n return (\n \n event.preventDefault())}\n />\n \n );\n }\n);\n\nHoverCardTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'HoverCardPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createHoverCardContext(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef;\ninterface HoverCardPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst HoverCardPortal: React.FC = (\n props: ScopedProps\n) => {\n const { __scopeHoverCard, forceMount, children, container } = props;\n const context = useHoverCardContext(PORTAL_NAME, __scopeHoverCard);\n return (\n \n \n \n {children}\n \n \n \n );\n};\n\nHoverCardPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'HoverCardContent';\n\ntype HoverCardContentElement = HoverCardContentImplElement;\ninterface HoverCardContentProps extends HoverCardContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst HoverCardContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeHoverCard);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useHoverCardContext(CONTENT_NAME, props.__scopeHoverCard);\n return (\n \n \n \n );\n }\n);\n\nHoverCardContent.displayName = CONTENT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype HoverCardContentImplElement = React.ComponentRef;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef;\ntype PopperContentProps = React.ComponentPropsWithoutRef;\ninterface HoverCardContentImplProps extends Omit {\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n onEscapeKeyDown?: DismissableLayerProps['onEscapeKeyDown'];\n /**\n * Event handler called when the a `pointerdown` event happens outside of the `HoverCard`.\n * Can be prevented.\n */\n onPointerDownOutside?: DismissableLayerProps['onPointerDownOutside'];\n /**\n * Event handler called when the focus moves outside of the `HoverCard`.\n * Can be prevented.\n */\n onFocusOutside?: DismissableLayerProps['onFocusOutside'];\n /**\n * Event handler called when an interaction happens outside the `HoverCard`.\n * Specifically, when a `pointerdown` event happens outside or focus moves outside of it.\n * Can be prevented.\n */\n onInteractOutside?: DismissableLayerProps['onInteractOutside'];\n}\n\nconst HoverCardContentImpl = React.forwardRef<\n HoverCardContentImplElement,\n HoverCardContentImplProps\n>((props: ScopedProps, forwardedRef) => {\n const {\n __scopeHoverCard,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = useHoverCardContext(CONTENT_NAME, __scopeHoverCard);\n const popperScope = usePopperScope(__scopeHoverCard);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [containSelection, setContainSelection] = React.useState(false);\n\n React.useEffect(() => {\n if (containSelection) {\n const body = document.body;\n\n // Safari requires prefix\n originalBodyUserSelect = body.style.userSelect || body.style.webkitUserSelect;\n\n body.style.userSelect = 'none';\n body.style.webkitUserSelect = 'none';\n return () => {\n body.style.userSelect = originalBodyUserSelect;\n body.style.webkitUserSelect = originalBodyUserSelect;\n };\n }\n }, [containSelection]);\n\n React.useEffect(() => {\n if (ref.current) {\n const handlePointerUp = () => {\n setContainSelection(false);\n context.isPointerDownOnContentRef.current = false;\n\n // Delay a frame to ensure we always access the latest selection\n setTimeout(() => {\n const hasSelection = document.getSelection()?.toString() !== '';\n if (hasSelection) context.hasSelectionRef.current = true;\n });\n };\n\n document.addEventListener('pointerup', handlePointerUp);\n return () => {\n document.removeEventListener('pointerup', handlePointerUp);\n context.hasSelectionRef.current = false;\n context.isPointerDownOnContentRef.current = false;\n };\n }\n }, [context.isPointerDownOnContentRef, context.hasSelectionRef]);\n\n React.useEffect(() => {\n if (ref.current) {\n const tabbables = getTabbableNodes(ref.current);\n tabbables.forEach((tabbable) => tabbable.setAttribute('tabindex', '-1'));\n }\n });\n\n return (\n {\n event.preventDefault();\n })}\n onDismiss={context.onDismiss}\n >\n {\n // Contain selection to current layer\n if (event.currentTarget.contains(event.target as HTMLElement)) {\n setContainSelection(true);\n }\n context.hasSelectionRef.current = false;\n context.isPointerDownOnContentRef.current = true;\n })}\n ref={composedRefs}\n style={{\n ...contentProps.style,\n userSelect: containSelection ? 'text' : undefined,\n // Safari requires prefix\n WebkitUserSelect: containSelection ? 'text' : undefined,\n // re-namespace exposed content custom properties\n ...{\n '--radix-hover-card-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-hover-card-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-hover-card-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-hover-card-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-hover-card-trigger-height': 'var(--radix-popper-anchor-height)',\n },\n }}\n />\n \n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'HoverCardArrow';\n\ntype HoverCardArrowElement = React.ComponentRef;\ntype PopperArrowProps = React.ComponentPropsWithoutRef;\ninterface HoverCardArrowProps extends PopperArrowProps {}\n\nconst HoverCardArrow = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeHoverCard, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeHoverCard);\n return ;\n }\n);\n\nHoverCardArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction excludeTouch(eventHandler: () => void) {\n return (event: React.PointerEvent) =>\n event.pointerType === 'touch' ? undefined : eventHandler();\n}\n\n/**\n * Returns a list of nodes that can be in the tab sequence.\n * @see: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n */\nfunction getTabbableNodes(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n return nodes;\n}\n\nconst Root = HoverCard;\nconst Trigger = HoverCardTrigger;\nconst Portal = HoverCardPortal;\nconst Content = HoverCardContent;\nconst Arrow = HoverCardArrow;\n\nexport {\n createHoverCardScope,\n //\n HoverCard,\n HoverCardTrigger,\n HoverCardPortal,\n HoverCardContent,\n HoverCardArrow,\n //\n Root,\n Trigger,\n Portal,\n Content,\n Arrow,\n};\nexport type {\n HoverCardProps,\n HoverCardTriggerProps,\n HoverCardPortalProps,\n HoverCardContentProps,\n HoverCardArrowProps,\n};\n","// src/use-is-hydrated.tsx\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\nfunction useIsHydrated() {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false\n );\n}\nfunction subscribe() {\n return () => {\n };\n}\nexport {\n useIsHydrated\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","import * as React from 'react';\nimport { createCollection } from '@radix-ui/react-collection';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useId } from '@radix-ui/react-id';\nimport * as MenuPrimitive from '@radix-ui/react-menu';\nimport { createMenuScope } from '@radix-ui/react-menu';\nimport * as RovingFocusGroup from '@radix-ui/react-roving-focus';\nimport { createRovingFocusGroupScope } from '@radix-ui/react-roving-focus';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\n\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\n/* -------------------------------------------------------------------------------------------------\n * Menubar\n * -----------------------------------------------------------------------------------------------*/\n\nconst MENUBAR_NAME = 'Menubar';\n\ntype ItemData = { value: string; disabled: boolean };\nconst [Collection, useCollection, createCollectionScope] = createCollection<\n MenubarTriggerElement,\n ItemData\n>(MENUBAR_NAME);\n\ntype ScopedProps

= P & { __scopeMenubar?: Scope };\nconst [createMenubarContext, createMenubarScope] = createContextScope(MENUBAR_NAME, [\n createCollectionScope,\n createRovingFocusGroupScope,\n]);\n\nconst useMenuScope = createMenuScope();\nconst useRovingFocusGroupScope = createRovingFocusGroupScope();\n\ntype MenubarContextValue = {\n value: string;\n dir: Direction;\n loop: boolean;\n onMenuOpen(value: string): void;\n onMenuClose(): void;\n onMenuToggle(value: string): void;\n};\n\nconst [MenubarContextProvider, useMenubarContext] =\n createMenubarContext(MENUBAR_NAME);\n\ntype MenubarElement = React.ComponentRef;\ntype RovingFocusGroupProps = React.ComponentPropsWithoutRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface MenubarProps extends PrimitiveDivProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n loop?: RovingFocusGroupProps['loop'];\n dir?: RovingFocusGroupProps['dir'];\n}\n\nconst Menubar = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeMenubar,\n value: valueProp,\n onValueChange,\n defaultValue,\n loop = true,\n dir,\n ...menubarProps\n } = props;\n const direction = useDirection(dir);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenubar);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? '',\n caller: MENUBAR_NAME,\n });\n\n // We need to manage tab stop id manually as `RovingFocusGroup` updates the stop\n // based on focus, and in some situations our triggers won't ever be given focus\n // (e.g. click to open and then outside to close)\n const [currentTabStopId, setCurrentTabStopId] = React.useState(null);\n\n return (\n {\n setValue(value);\n setCurrentTabStopId(value);\n },\n [setValue]\n )}\n onMenuClose={React.useCallback(() => setValue(''), [setValue])}\n onMenuToggle={React.useCallback(\n (value) => {\n setValue((prevValue) => (prevValue ? '' : value));\n // `openMenuOpen` and `onMenuToggle` are called exclusively so we\n // need to update the id in either case.\n setCurrentTabStopId(value);\n },\n [setValue]\n )}\n dir={direction}\n loop={loop}\n >\n \n \n \n \n \n \n \n \n );\n }\n);\n\nMenubar.displayName = MENUBAR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenubarMenu\n * -----------------------------------------------------------------------------------------------*/\n\nconst MENU_NAME = 'MenubarMenu';\n\ntype MenubarMenuContextValue = {\n value: string;\n triggerId: string;\n triggerRef: React.RefObject;\n contentId: string;\n wasKeyboardTriggerOpenRef: React.MutableRefObject;\n};\n\nconst [MenubarMenuProvider, useMenubarMenuContext] =\n createMenubarContext(MENU_NAME);\n\ninterface MenubarMenuProps {\n value?: string;\n children?: React.ReactNode;\n}\n\nconst MenubarMenu = (props: ScopedProps) => {\n const { __scopeMenubar, value: valueProp, ...menuProps } = props;\n const autoValue = useId();\n // We need to provide an initial deterministic value as `useId` will return\n // empty string on the first render and we don't want to match our internal \"closed\" value.\n const value = valueProp || autoValue || 'LEGACY_REACT_AUTO_VALUE';\n const context = useMenubarContext(MENU_NAME, __scopeMenubar);\n const menuScope = useMenuScope(__scopeMenubar);\n const triggerRef = React.useRef(null);\n const wasKeyboardTriggerOpenRef = React.useRef(false);\n const open = context.value === value;\n\n React.useEffect(() => {\n if (!open) wasKeyboardTriggerOpenRef.current = false;\n }, [open]);\n\n return (\n \n {\n // Menu only calls `onOpenChange` when dismissing so we\n // want to close our MenuBar based on the same events.\n if (!open) context.onMenuClose();\n }}\n modal={false}\n dir={context.dir}\n {...menuProps}\n />\n \n );\n};\n\nMenubarMenu.displayName = MENU_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenubarTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'MenubarTrigger';\n\ntype MenubarTriggerElement = React.ComponentRef;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef;\ninterface MenubarTriggerProps extends PrimitiveButtonProps {}\n\nconst MenubarTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenubar, disabled = false, ...triggerProps } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenubar);\n const menuScope = useMenuScope(__scopeMenubar);\n const context = useMenubarContext(TRIGGER_NAME, __scopeMenubar);\n const menuContext = useMenubarMenuContext(TRIGGER_NAME, __scopeMenubar);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, menuContext.triggerRef);\n const [isFocused, setIsFocused] = React.useState(false);\n const open = context.value === menuContext.value;\n\n return (\n \n \n \n {\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onMenuOpen(menuContext.value);\n // prevent trigger focusing when opening\n // this allows the content to be given focus without competition\n if (!open) event.preventDefault();\n }\n })}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, () => {\n const menubarOpen = Boolean(context.value);\n if (menubarOpen && !open) {\n context.onMenuOpen(menuContext.value);\n ref.current?.focus();\n }\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (disabled) return;\n if (['Enter', ' '].includes(event.key)) context.onMenuToggle(menuContext.value);\n if (event.key === 'ArrowDown') context.onMenuOpen(menuContext.value);\n // prevent keydown from scrolling window / first focused item to execute\n // that keydown (inadvertently closing the menu)\n if (['Enter', ' ', 'ArrowDown'].includes(event.key)) {\n menuContext.wasKeyboardTriggerOpenRef.current = true;\n event.preventDefault();\n }\n })}\n onFocus={composeEventHandlers(props.onFocus, () => setIsFocused(true))}\n onBlur={composeEventHandlers(props.onBlur, () => setIsFocused(false))}\n />\n \n \n \n );\n }\n);\n\nMenubarTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenubarPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'MenubarPortal';\n\ntype MenuPortalProps = React.ComponentPropsWithoutRef;\ninterface MenubarPortalProps extends MenuPortalProps {}\n\nconst MenubarPortal: React.FC = (props: ScopedProps) => {\n const { __scopeMenubar, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeMenubar);\n return ;\n};\n\nMenubarPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenubarContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'MenubarContent';\n\ntype MenubarContentElement = React.ComponentRef;\ntype MenuContentProps = React.ComponentPropsWithoutRef;\ninterface MenubarContentProps extends Omit {}\n\nconst MenubarContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenubar, align = 'start', ...contentProps } = props;\n const menuScope = useMenuScope(__scopeMenubar);\n const context = useMenubarContext(CONTENT_NAME, __scopeMenubar);\n const menuContext = useMenubarMenuContext(CONTENT_NAME, __scopeMenubar);\n const getItems = useCollection(__scopeMenubar);\n const hasInteractedOutsideRef = React.useRef(false);\n\n return (\n {\n const menubarOpen = Boolean(context.value);\n if (!menubarOpen && !hasInteractedOutsideRef.current) {\n menuContext.triggerRef.current?.focus();\n }\n\n hasInteractedOutsideRef.current = false;\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n })}\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) => {\n const target = event.target as HTMLElement;\n const isMenubarTrigger = getItems().some((item) => item.ref.current?.contains(target));\n if (isMenubarTrigger) event.preventDefault();\n })}\n onInteractOutside={composeEventHandlers(props.onInteractOutside, () => {\n hasInteractedOutsideRef.current = true;\n })}\n onEntryFocus={(event) => {\n if (!menuContext.wasKeyboardTriggerOpenRef.current) event.preventDefault();\n }}\n onKeyDown={composeEventHandlers(\n props.onKeyDown,\n (event) => {\n if (['ArrowRight', 'ArrowLeft'].includes(event.key)) {\n const target = event.target as HTMLElement;\n const targetIsSubTrigger = target.hasAttribute('data-radix-menubar-subtrigger');\n const isKeyDownInsideSubMenu =\n target.closest('[data-radix-menubar-content]') !== event.currentTarget;\n\n const prevMenuKey = context.dir === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n const isPrevKey = prevMenuKey === event.key;\n const isNextKey = !isPrevKey;\n\n // Prevent navigation when we're opening a submenu\n if (isNextKey && targetIsSubTrigger) return;\n // or we're inside a submenu and are moving backwards to close it\n if (isKeyDownInsideSubMenu && isPrevKey) return;\n\n const items = getItems().filter((item) => !item.disabled);\n let candidateValues = items.map((item) => item.value);\n if (isPrevKey) candidateValues.reverse();\n\n const currentIndex = candidateValues.indexOf(menuContext.value);\n\n candidateValues = context.loop\n ? wrapArray(candidateValues, currentIndex + 1)\n : candidateValues.slice(currentIndex + 1);\n\n const [nextValue] = candidateValues;\n if (nextValue) context.onMenuOpen(nextValue);\n }\n },\n { checkForDefaultPrevented: false }\n )}\n style={{\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n '--radix-menubar-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-menubar-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-menubar-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-menubar-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-menubar-trigger-height': 'var(--radix-popper-anchor-height)',\n },\n }}\n />\n );\n }\n);\n\nMenubarContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenubarGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst GROUP_NAME = 'MenubarGroup';\n\ntype MenubarGroupElement = React.ComponentRef;\ntype MenuGroupProps = React.ComponentPropsWithoutRef;\ninterface MenubarGroupProps extends MenuGroupProps {}\n\nconst MenubarGroup = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenubar, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeMenubar);\n return ;\n }\n);\n\nMenubarGroup.displayName = GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenubarLabel\n * -----------------------------------------------------------------------------------------------*/\n\nconst LABEL_NAME = 'MenubarLabel';\n\ntype MenubarLabelElement = React.ComponentRef;\ntype MenuLabelProps = React.ComponentPropsWithoutRef;\ninterface MenubarLabelProps extends MenuLabelProps {}\n\nconst MenubarLabel = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenubar, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeMenubar);\n return ;\n }\n);\n\nMenubarLabel.displayName = LABEL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenubarItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'MenubarItem';\n\ntype MenubarItemElement = React.ComponentRef;\ntype MenuItemProps = React.ComponentPropsWithoutRef;\ninterface MenubarItemProps extends MenuItemProps {}\n\nconst MenubarItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenubar, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeMenubar);\n return ;\n }\n);\n\nMenubarItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenubarCheckboxItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst CHECKBOX_ITEM_NAME = 'MenubarCheckboxItem';\n\ntype MenubarCheckboxItemElement = React.ComponentRef;\ntype MenuCheckboxItemProps = React.ComponentPropsWithoutRef;\ninterface MenubarCheckboxItemProps extends MenuCheckboxItemProps {}\n\nconst MenubarCheckboxItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenubar, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeMenubar);\n return ;\n }\n);\n\nMenubarCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenubarRadioGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_GROUP_NAME = 'MenubarRadioGroup';\n\ntype MenubarRadioGroupElement = React.ComponentRef;\ntype MenuRadioGroupProps = React.ComponentPropsWithoutRef;\ninterface MenubarRadioGroupProps extends MenuRadioGroupProps {}\n\nconst MenubarRadioGroup = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenubar, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeMenubar);\n return ;\n }\n);\n\nMenubarRadioGroup.displayName = RADIO_GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenubarRadioItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_ITEM_NAME = 'MenubarRadioItem';\n\ntype MenubarRadioItemElement = React.ComponentRef;\ntype MenuRadioItemProps = React.ComponentPropsWithoutRef;\ninterface MenubarRadioItemProps extends MenuRadioItemProps {}\n\nconst MenubarRadioItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenubar, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeMenubar);\n return ;\n }\n);\n\nMenubarRadioItem.displayName = RADIO_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenubarItemIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'MenubarItemIndicator';\n\ntype MenubarItemIndicatorElement = React.ComponentRef;\ntype MenuItemIndicatorProps = React.ComponentPropsWithoutRef;\ninterface MenubarItemIndicatorProps extends MenuItemIndicatorProps {}\n\nconst MenubarItemIndicator = React.forwardRef<\n MenubarItemIndicatorElement,\n MenubarItemIndicatorProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeMenubar, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeMenubar);\n return ;\n});\n\nMenubarItemIndicator.displayName = INDICATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenubarSeparator\n * -----------------------------------------------------------------------------------------------*/\n\nconst SEPARATOR_NAME = 'MenubarSeparator';\n\ntype MenubarSeparatorElement = React.ComponentRef;\ntype MenuSeparatorProps = React.ComponentPropsWithoutRef;\ninterface MenubarSeparatorProps extends MenuSeparatorProps {}\n\nconst MenubarSeparator = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenubar, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeMenubar);\n return ;\n }\n);\n\nMenubarSeparator.displayName = SEPARATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenubarArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'MenubarArrow';\n\ntype MenubarArrowElement = React.ComponentRef;\ntype MenuArrowProps = React.ComponentPropsWithoutRef;\ninterface MenubarArrowProps extends MenuArrowProps {}\n\nconst MenubarArrow = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenubar, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeMenubar);\n return ;\n }\n);\n\nMenubarArrow.displayName = ARROW_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenubarSub\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_NAME = 'MenubarSub';\n\ninterface MenubarSubProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n}\n\nconst MenubarSub: React.FC = (props: ScopedProps) => {\n const { __scopeMenubar, children, open: openProp, onOpenChange, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeMenubar);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: SUB_NAME,\n });\n\n return (\n \n {children}\n \n );\n};\n\nMenubarSub.displayName = SUB_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenubarSubTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_TRIGGER_NAME = 'MenubarSubTrigger';\n\ntype MenubarSubTriggerElement = React.ComponentRef;\ntype MenuSubTriggerProps = React.ComponentPropsWithoutRef;\ninterface MenubarSubTriggerProps extends MenuSubTriggerProps {}\n\nconst MenubarSubTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenubar, ...subTriggerProps } = props;\n const menuScope = useMenuScope(__scopeMenubar);\n return (\n \n );\n }\n);\n\nMenubarSubTrigger.displayName = SUB_TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenubarSubContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_CONTENT_NAME = 'MenubarSubContent';\n\ntype MenubarSubContentElement = React.ComponentRef;\ntype MenuSubContentProps = React.ComponentPropsWithoutRef;\ninterface MenubarSubContentProps extends MenuSubContentProps {}\n\nconst MenubarSubContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenubar, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeMenubar);\n\n return (\n \n );\n }\n);\n\nMenubarSubContent.displayName = SUB_CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\n/**\n * Wraps an array around itself at a given start index\n * Example: `wrapArray(['a', 'b', 'c', 'd'], 2) === ['c', 'd', 'a', 'b']`\n */\nfunction wrapArray(array: T[], startIndex: number) {\n return array.map((_, index) => array[(startIndex + index) % array.length]!);\n}\n\nconst Root = Menubar;\nconst Menu = MenubarMenu;\nconst Trigger = MenubarTrigger;\nconst Portal = MenubarPortal;\nconst Content = MenubarContent;\nconst Group = MenubarGroup;\nconst Label = MenubarLabel;\nconst Item = MenubarItem;\nconst CheckboxItem = MenubarCheckboxItem;\nconst RadioGroup = MenubarRadioGroup;\nconst RadioItem = MenubarRadioItem;\nconst ItemIndicator = MenubarItemIndicator;\nconst Separator = MenubarSeparator;\nconst Arrow = MenubarArrow;\nconst Sub = MenubarSub;\nconst SubTrigger = MenubarSubTrigger;\nconst SubContent = MenubarSubContent;\n\nexport {\n createMenubarScope,\n //\n Menubar,\n MenubarMenu,\n MenubarTrigger,\n MenubarPortal,\n MenubarContent,\n MenubarGroup,\n MenubarLabel,\n MenubarItem,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarItemIndicator,\n MenubarSeparator,\n MenubarArrow,\n MenubarSub,\n MenubarSubTrigger,\n MenubarSubContent,\n //\n Root,\n Menu,\n Trigger,\n Portal,\n Content,\n Group,\n Label,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n ItemIndicator,\n Separator,\n Arrow,\n Sub,\n SubTrigger,\n SubContent,\n};\nexport type {\n MenubarProps,\n MenubarMenuProps,\n MenubarTriggerProps,\n MenubarPortalProps,\n MenubarContentProps,\n MenubarGroupProps,\n MenubarLabelProps,\n MenubarItemProps,\n MenubarCheckboxItemProps,\n MenubarRadioGroupProps,\n MenubarRadioItemProps,\n MenubarItemIndicatorProps,\n MenubarSeparatorProps,\n MenubarArrowProps,\n MenubarSubProps,\n MenubarSubTriggerProps,\n MenubarSubContentProps,\n};\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { useId } from '@radix-ui/react-id';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { createSlot } from '@radix-ui/react-slot';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { hideOthers } from 'aria-hidden';\nimport { RemoveScroll } from 'react-remove-scroll';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Popover\n * -----------------------------------------------------------------------------------------------*/\n\nconst POPOVER_NAME = 'Popover';\n\ntype ScopedProps

= P & { __scopePopover?: Scope };\nconst [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\ntype PopoverContextValue = {\n triggerRef: React.RefObject;\n contentId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n hasCustomAnchor: boolean;\n onCustomAnchorAdd(): void;\n onCustomAnchorRemove(): void;\n modal: boolean;\n};\n\nconst [PopoverProvider, usePopoverContext] =\n createPopoverContext(POPOVER_NAME);\n\ninterface PopoverProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n modal?: boolean;\n}\n\nconst Popover: React.FC = (props: ScopedProps) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false,\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: POPOVER_NAME,\n });\n\n return (\n \n setOpen((prevOpen) => !prevOpen), [setOpen])}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={React.useCallback(() => setHasCustomAnchor(true), [])}\n onCustomAnchorRemove={React.useCallback(() => setHasCustomAnchor(false), [])}\n modal={modal}\n >\n {children}\n \n \n );\n};\n\nPopover.displayName = POPOVER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverAnchor\n * -----------------------------------------------------------------------------------------------*/\n\nconst ANCHOR_NAME = 'PopoverAnchor';\n\ntype PopoverAnchorElement = React.ComponentRef;\ntype PopperAnchorProps = React.ComponentPropsWithoutRef;\ninterface PopoverAnchorProps extends PopperAnchorProps {}\n\nconst PopoverAnchor = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n\n return ;\n }\n);\n\nPopoverAnchor.displayName = ANCHOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'PopoverTrigger';\n\ntype PopoverTriggerElement = React.ComponentRef;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef;\ninterface PopoverTriggerProps extends PrimitiveButtonProps {}\n\nconst PopoverTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n\n const trigger = (\n \n );\n\n return context.hasCustomAnchor ? (\n trigger\n ) : (\n \n {trigger}\n \n );\n }\n);\n\nPopoverTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'PopoverPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef;\ninterface PopoverPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst PopoverPortal: React.FC = (props: ScopedProps) => {\n const { __scopePopover, forceMount, children, container } = props;\n const context = usePopoverContext(PORTAL_NAME, __scopePopover);\n return (\n \n \n \n {children}\n \n \n \n );\n};\n\nPopoverPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'PopoverContent';\n\ninterface PopoverContentProps extends PopoverContentTypeProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst PopoverContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return (\n \n {context.modal ? (\n \n ) : (\n \n )}\n \n );\n }\n);\n\nPopoverContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Slot = createSlot('PopoverContent.RemoveScroll');\n\ntype PopoverContentTypeElement = PopoverContentImplElement;\ninterface PopoverContentTypeProps\n extends Omit {}\n\nconst PopoverContentModal = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n return (\n \n {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n )}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )}\n />\n \n );\n }\n);\n\nconst PopoverContentNonModal = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n\n return (\n {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === 'pointerdown') {\n hasPointerDownOutsideRef.current = true;\n }\n }\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n\n // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (event.detail.originalEvent.type === 'focusin' && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentImplElement = React.ComponentRef;\ntype FocusScopeProps = React.ComponentPropsWithoutRef;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef;\ntype PopperContentProps = React.ComponentPropsWithoutRef;\ninterface PopoverContentImplProps\n extends Omit,\n Omit {\n /**\n * Whether focus should be trapped within the `Popover`\n * (default: false)\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst PopoverContentImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n\n // Make sure the whole tree has focus guards as our `Popover` may be\n // the last element in the DOM (because of the `Portal`)\n useFocusGuards();\n\n return (\n \n context.onOpenChange(false)}\n >\n \n \n \n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'PopoverClose';\n\ntype PopoverCloseElement = React.ComponentRef;\ninterface PopoverCloseProps extends PrimitiveButtonProps {}\n\nconst PopoverClose = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return (\n context.onOpenChange(false))}\n />\n );\n }\n);\n\nPopoverClose.displayName = CLOSE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'PopoverArrow';\n\ntype PopoverArrowElement = React.ComponentRef;\ntype PopperArrowProps = React.ComponentPropsWithoutRef;\ninterface PopoverArrowProps extends PopperArrowProps {}\n\nconst PopoverArrow = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return ;\n }\n);\n\nPopoverArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst Root = Popover;\nconst Anchor = PopoverAnchor;\nconst Trigger = PopoverTrigger;\nconst Portal = PopoverPortal;\nconst Content = PopoverContent;\nconst Close = PopoverClose;\nconst Arrow = PopoverArrow;\n\nexport {\n createPopoverScope,\n //\n Popover,\n PopoverAnchor,\n PopoverTrigger,\n PopoverPortal,\n PopoverContent,\n PopoverClose,\n PopoverArrow,\n //\n Root,\n Anchor,\n Trigger,\n Portal,\n Content,\n Close,\n Arrow,\n};\nexport type {\n PopoverProps,\n PopoverAnchorProps,\n PopoverTriggerProps,\n PopoverPortalProps,\n PopoverContentProps,\n PopoverCloseProps,\n PopoverArrowProps,\n};\n","import React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { createCollection } from '@radix-ui/react-collection';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as CollapsiblePrimitive from '@radix-ui/react-collapsible';\nimport { createCollapsibleScope } from '@radix-ui/react-collapsible';\nimport { useId } from '@radix-ui/react-id';\n\nimport type { Scope } from '@radix-ui/react-context';\nimport { useDirection } from '@radix-ui/react-direction';\n\ntype Direction = 'ltr' | 'rtl';\n\n/* -------------------------------------------------------------------------------------------------\n * Accordion\n * -----------------------------------------------------------------------------------------------*/\n\nconst ACCORDION_NAME = 'Accordion';\nconst ACCORDION_KEYS = ['Home', 'End', 'ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight'];\n\nconst [Collection, useCollection, createCollectionScope] =\n createCollection(ACCORDION_NAME);\n\ntype ScopedProps

= P & { __scopeAccordion?: Scope };\nconst [createAccordionContext, createAccordionScope] = createContextScope(ACCORDION_NAME, [\n createCollectionScope,\n createCollapsibleScope,\n]);\nconst useCollapsibleScope = createCollapsibleScope();\n\ntype AccordionElement = AccordionImplMultipleElement | AccordionImplSingleElement;\ninterface AccordionSingleProps extends AccordionImplSingleProps {\n type: 'single';\n}\ninterface AccordionMultipleProps extends AccordionImplMultipleProps {\n type: 'multiple';\n}\n\nconst Accordion = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { type, ...accordionProps } = props;\n const singleProps = accordionProps as AccordionImplSingleProps;\n const multipleProps = accordionProps as AccordionImplMultipleProps;\n return (\n \n {type === 'multiple' ? (\n \n ) : (\n \n )}\n \n );\n }\n);\n\nAccordion.displayName = ACCORDION_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype AccordionValueContextValue = {\n value: string[];\n onItemOpen(value: string): void;\n onItemClose(value: string): void;\n};\n\nconst [AccordionValueProvider, useAccordionValueContext] =\n createAccordionContext(ACCORDION_NAME);\n\nconst [AccordionCollapsibleProvider, useAccordionCollapsibleContext] = createAccordionContext(\n ACCORDION_NAME,\n { collapsible: false }\n);\n\ntype AccordionImplSingleElement = AccordionImplElement;\ninterface AccordionImplSingleProps extends AccordionImplProps {\n /**\n * The controlled stateful value of the accordion item whose content is expanded.\n */\n value?: string;\n /**\n * The value of the item whose content is expanded when the accordion is initially rendered. Use\n * `defaultValue` if you do not need to control the state of an accordion.\n */\n defaultValue?: string;\n /**\n * The callback that fires when the state of the accordion changes.\n */\n onValueChange?(value: string): void;\n /**\n * Whether an accordion item can be collapsed after it has been opened.\n * @default false\n */\n collapsible?: boolean;\n}\n\nconst AccordionImplSingle = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {},\n collapsible = false,\n ...accordionSingleProps\n } = props;\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? '',\n onChange: onValueChange,\n caller: ACCORDION_NAME,\n });\n\n return (\n (value ? [value] : []), [value])}\n onItemOpen={setValue}\n onItemClose={React.useCallback(() => collapsible && setValue(''), [collapsible, setValue])}\n >\n \n \n \n \n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype AccordionImplMultipleElement = AccordionImplElement;\ninterface AccordionImplMultipleProps extends AccordionImplProps {\n /**\n * The controlled stateful value of the accordion items whose contents are expanded.\n */\n value?: string[];\n /**\n * The value of the items whose contents are expanded when the accordion is initially rendered. Use\n * `defaultValue` if you do not need to control the state of an accordion.\n */\n defaultValue?: string[];\n /**\n * The callback that fires when the state of the accordion changes.\n */\n onValueChange?(value: string[]): void;\n}\n\nconst AccordionImplMultiple = React.forwardRef<\n AccordionImplMultipleElement,\n AccordionImplMultipleProps\n>((props: ScopedProps, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {},\n ...accordionMultipleProps\n } = props;\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? [],\n onChange: onValueChange,\n caller: ACCORDION_NAME,\n });\n\n const handleItemOpen = React.useCallback(\n (itemValue: string) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n\n const handleItemClose = React.useCallback(\n (itemValue: string) =>\n setValue((prevValue = []) => prevValue.filter((value) => value !== itemValue)),\n [setValue]\n );\n\n return (\n \n \n \n \n \n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype AccordionImplContextValue = {\n disabled?: boolean;\n direction: AccordionImplProps['dir'];\n orientation: AccordionImplProps['orientation'];\n};\n\nconst [AccordionImplProvider, useAccordionContext] =\n createAccordionContext(ACCORDION_NAME);\n\ntype AccordionImplElement = React.ComponentRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface AccordionImplProps extends PrimitiveDivProps {\n /**\n * Whether or not an accordion is disabled from user interaction.\n *\n * @defaultValue false\n */\n disabled?: boolean;\n /**\n * The layout in which the Accordion operates.\n * @default vertical\n */\n orientation?: React.AriaAttributes['aria-orientation'];\n /**\n * The language read direction.\n */\n dir?: Direction;\n}\n\nconst AccordionImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAccordion, disabled, dir, orientation = 'vertical', ...accordionProps } = props;\n const accordionRef = React.useRef(null);\n const composedRefs = useComposedRefs(accordionRef, forwardedRef);\n const getItems = useCollection(__scopeAccordion);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === 'ltr';\n\n const handleKeyDown = composeEventHandlers(props.onKeyDown, (event) => {\n if (!ACCORDION_KEYS.includes(event.key)) return;\n const target = event.target as HTMLElement;\n const triggerCollection = getItems().filter((item) => !item.ref.current?.disabled);\n const triggerIndex = triggerCollection.findIndex((item) => item.ref.current === target);\n const triggerCount = triggerCollection.length;\n\n if (triggerIndex === -1) return;\n\n // Prevents page scroll while user is navigating\n event.preventDefault();\n\n let nextIndex = triggerIndex;\n const homeIndex = 0;\n const endIndex = triggerCount - 1;\n\n const moveNext = () => {\n nextIndex = triggerIndex + 1;\n if (nextIndex > endIndex) {\n nextIndex = homeIndex;\n }\n };\n\n const movePrev = () => {\n nextIndex = triggerIndex - 1;\n if (nextIndex < homeIndex) {\n nextIndex = endIndex;\n }\n };\n\n switch (event.key) {\n case 'Home':\n nextIndex = homeIndex;\n break;\n case 'End':\n nextIndex = endIndex;\n break;\n case 'ArrowRight':\n if (orientation === 'horizontal') {\n if (isDirectionLTR) {\n moveNext();\n } else {\n movePrev();\n }\n }\n break;\n case 'ArrowDown':\n if (orientation === 'vertical') {\n moveNext();\n }\n break;\n case 'ArrowLeft':\n if (orientation === 'horizontal') {\n if (isDirectionLTR) {\n movePrev();\n } else {\n moveNext();\n }\n }\n break;\n case 'ArrowUp':\n if (orientation === 'vertical') {\n movePrev();\n }\n break;\n }\n\n const clampedIndex = nextIndex % triggerCount;\n triggerCollection[clampedIndex]!.ref.current?.focus();\n });\n\n return (\n \n \n \n \n \n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * AccordionItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'AccordionItem';\n\ntype AccordionItemContextValue = { open?: boolean; disabled?: boolean; triggerId: string };\nconst [AccordionItemProvider, useAccordionItemContext] =\n createAccordionContext(ITEM_NAME);\n\ntype AccordionItemElement = React.ComponentRef;\ntype CollapsibleProps = React.ComponentPropsWithoutRef;\ninterface AccordionItemProps\n extends Omit {\n /**\n * Whether or not an accordion item is disabled from user interaction.\n *\n * @defaultValue false\n */\n disabled?: boolean;\n /**\n * A string value for the accordion item. All items within an accordion should use a unique value.\n */\n value: string;\n}\n\n/**\n * `AccordionItem` contains all of the parts of a collapsible section inside of an `Accordion`.\n */\nconst AccordionItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAccordion, value, ...accordionItemProps } = props;\n const accordionContext = useAccordionContext(ITEM_NAME, __scopeAccordion);\n const valueContext = useAccordionValueContext(ITEM_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n const triggerId = useId();\n const open = (value && valueContext.value.includes(value)) || false;\n const disabled = accordionContext.disabled || props.disabled;\n\n return (\n \n {\n if (open) {\n valueContext.onItemOpen(value);\n } else {\n valueContext.onItemClose(value);\n }\n }}\n />\n \n );\n }\n);\n\nAccordionItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AccordionHeader\n * -----------------------------------------------------------------------------------------------*/\n\nconst HEADER_NAME = 'AccordionHeader';\n\ntype AccordionHeaderElement = React.ComponentRef;\ntype PrimitiveHeading3Props = React.ComponentPropsWithoutRef;\ninterface AccordionHeaderProps extends PrimitiveHeading3Props {}\n\n/**\n * `AccordionHeader` contains the content for the parts of an `AccordionItem` that will be visible\n * whether or not its content is collapsed.\n */\nconst AccordionHeader = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAccordion, ...headerProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(HEADER_NAME, __scopeAccordion);\n return (\n \n );\n }\n);\n\nAccordionHeader.displayName = HEADER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AccordionTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'AccordionTrigger';\n\ntype AccordionTriggerElement = React.ComponentRef;\ntype CollapsibleTriggerProps = React.ComponentPropsWithoutRef;\ninterface AccordionTriggerProps extends CollapsibleTriggerProps {}\n\n/**\n * `AccordionTrigger` is the trigger that toggles the collapsed state of an `AccordionItem`. It\n * should always be nested inside of an `AccordionHeader`.\n */\nconst AccordionTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAccordion, ...triggerProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleContext = useAccordionCollapsibleContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return (\n \n \n \n );\n }\n);\n\nAccordionTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AccordionContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'AccordionContent';\n\ntype AccordionContentElement = React.ComponentRef;\ntype CollapsibleContentProps = React.ComponentPropsWithoutRef;\ninterface AccordionContentProps extends CollapsibleContentProps {}\n\n/**\n * `AccordionContent` contains the collapsible content for an `AccordionItem`.\n */\nconst AccordionContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeAccordion, ...contentProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(CONTENT_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return (\n \n );\n }\n);\n\nAccordionContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open?: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst Root = Accordion;\nconst Item = AccordionItem;\nconst Header = AccordionHeader;\nconst Trigger = AccordionTrigger;\nconst Content = AccordionContent;\n\nexport {\n createAccordionScope,\n //\n Accordion,\n AccordionItem,\n AccordionHeader,\n AccordionTrigger,\n AccordionContent,\n //\n Root,\n Item,\n Header,\n Trigger,\n Content,\n};\nexport type {\n AccordionSingleProps,\n AccordionMultipleProps,\n AccordionItemProps,\n AccordionHeaderProps,\n AccordionTriggerProps,\n AccordionContentProps,\n};\n"],"names":["INDICATOR_NAME","createContextScope","jsx","Root","Primitive","Item","useComposedRefs","composeEventHandlers","Trigger","Portal","Overlay","Content","Title","Description","window","id","value","node","duration","event","newValue","form","OneTimePasswordFieldHiddenInput","OneTimePasswordFieldInput","element","height","width","props","Arrow","Group","Label","CheckboxItem","RadioGroup","RadioItem","ItemIndicator","Separator","Sub","SubTrigger","SubContent","Anchor","open"],"sourceRoot":"","ignoreList":[6,8,22,23]} \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/214.f4c68eef357f3bfd.js b/opencut-ui/_next/static/chunks/214.f4c68eef357f3bfd.js new file mode 100644 index 0000000..058cf91 --- /dev/null +++ b/opencut-ui/_next/static/chunks/214.f4c68eef357f3bfd.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[214],{30214:(e,t,l)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s}});let u=l(78873),n=l(485),a=u._(l(30233)),o=l(84536);async function r(e){let{Component:t,ctx:l}=e;return{pageProps:await (0,o.loadGetInitialProps)(t,l)}}class s extends a.default.Component{render(){let{Component:e,pageProps:t}=this.props;return(0,n.jsx)(e,{...t})}}s.origGetInitialProps=r,s.getInitialProps=r,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}}]); +//# sourceMappingURL=214.f4c68eef357f3bfd.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/214.f4c68eef357f3bfd.js.map b/opencut-ui/_next/static/chunks/214.f4c68eef357f3bfd.js.map new file mode 100644 index 0000000..a8e7191 --- /dev/null +++ b/opencut-ui/_next/static/chunks/214.f4c68eef357f3bfd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/214.f4c68eef357f3bfd.js","mappings":"oNAiCqBA,qCAjCH,YAWkB,OAcpC,eAAeC,EAAmB,CAGrB,EAHqB,cAChCC,CAAS,KACTC,CAAG,CACQ,CAHqB,EAKhC,MAAO,CAAEC,UADS,MAAMC,CAAAA,EAAAA,EAAAA,mBAAAA,EAAoBH,EAAWC,EACpC,CACrB,CAEe,MAAMH,UAAsCM,EAAAA,OAAK,CAACJ,SAAS,CAOxEK,QAAS,CACP,GAAM,WAAEL,CAAS,WAAEE,CAAS,CAAE,CAAG,IAAI,CAACI,KAAK,CAE3C,MAAO,UAACN,EAAR,CAAmB,GAAGE,CAAS,EACjC,CACF,CAZqBJ,EAIZS,mBAAAA,CAAsBR,EAJVD,EAKZU,eAAAA,CAAkBT","sources":["webpack://_N_E/../../src/pages/_app.tsx"],"sourcesContent":["import React from 'react'\n\nimport type {\n AppContextType,\n AppInitialProps,\n AppPropsType,\n NextWebVitalsMetric,\n AppType,\n} from '../shared/lib/utils'\nimport type { Router } from '../client/router'\n\nimport { loadGetInitialProps } from '../shared/lib/utils'\n\nexport type { AppInitialProps, AppType }\n\nexport type { NextWebVitalsMetric }\n\nexport type AppContext = AppContextType\n\nexport type AppProps

= AppPropsType\n\n/**\n * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.\n * This allows for keeping state between navigation, custom error handling, injecting additional data.\n */\nasync function appGetInitialProps({\n Component,\n ctx,\n}: AppContext): Promise {\n const pageProps = await loadGetInitialProps(Component, ctx)\n return { pageProps }\n}\n\nexport default class App

extends React.Component<\n P & AppProps,\n S\n> {\n static origGetInitialProps = appGetInitialProps\n static getInitialProps = appGetInitialProps\n\n render() {\n const { Component, pageProps } = this.props as AppProps\n\n return \n }\n}\n"],"names":["App","appGetInitialProps","Component","ctx","pageProps","loadGetInitialProps","React","render","props","origGetInitialProps","getInitialProps"],"sourceRoot":"","ignoreList":[]} \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/239-a0ff42cf8f424f35.js b/opencut-ui/_next/static/chunks/239-a0ff42cf8f424f35.js new file mode 100644 index 0000000..86f7f73 --- /dev/null +++ b/opencut-ui/_next/static/chunks/239-a0ff42cf8f424f35.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[239],{7763:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"errorOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},16696:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"RouterContext",{enumerable:!0,get:function(){return n}});let n=r(4760)._(r(74188)).default.createContext(null)},24827:(e,t,r)=>{r.d(t,{F:()=>l});var n=r(54083);let o=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,i=n.$,l=(e,t)=>r=>{var n;if((null==t?void 0:t.variants)==null)return i(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:l,defaultVariants:u}=t,a=Object.keys(l).map(e=>{let t=null==r?void 0:r[e],n=null==u?void 0:u[e];if(null===t)return null;let i=o(t)||o(n);return l[e][i]}),s=r&&Object.entries(r).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return i(e,a,null==t||null==(n=t.compoundVariants)?void 0:n.reduce((e,t)=>{let{class:r,className:n,...o}=t;return Object.entries(o).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...u,...s}[t]):({...u,...s})[t]===r})?[...e,r,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}},27362:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Image",{enumerable:!0,get:function(){return _}});let n=r(4760),o=r(44253),i=r(28064),l=o._(r(74188)),u=n._(r(82749)),a=n._(r(52811)),s=r(78618),c=r(55047),f=r(48357);r(17499);let d=r(16696),p=n._(r(55594)),g=r(74889),m={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/opencut/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function h(e,t,r,n,o,i,l){let u=null==e?void 0:e.src;e&&e["data-loaded-src"]!==u&&(e["data-loaded-src"]=u,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&o(!0),null==r?void 0:r.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,o=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>o,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{o=!0,t.stopPropagation()}})}(null==n?void 0:n.current)&&n.current(e)}}))}function y(e){return l.use?{fetchPriority:e}:{fetchpriority:e}}let b=(0,l.forwardRef)((e,t)=>{let{src:r,srcSet:n,sizes:o,height:u,width:a,decoding:s,className:c,style:f,fetchPriority:d,placeholder:p,loading:m,unoptimized:b,fill:v,onLoadRef:_,onLoadingCompleteRef:j,setBlurComplete:P,setShowAltText:O,sizesInput:w,onLoad:E,onError:C,...S}=e,x=(0,l.useCallback)(e=>{e&&(C&&(e.src=e.src),e.complete&&h(e,p,_,j,P,b,w))},[r,p,_,j,P,C,b,w]),M=(0,g.useMergedRef)(t,x);return(0,i.jsx)("img",{...S,...y(d),loading:m,width:a,height:u,decoding:s,"data-nimg":v?"fill":"1",className:c,style:f,sizes:o,srcSet:n,src:r,ref:M,onLoad:e=>{h(e.currentTarget,p,_,j,P,b,w)},onError:e=>{O(!0),"empty"!==p&&P(!0),C&&C(e)}})});function v(e){let{isAppRouter:t,imgAttributes:r}=e,n={as:"image",imageSrcSet:r.srcSet,imageSizes:r.sizes,crossOrigin:r.crossOrigin,referrerPolicy:r.referrerPolicy,...y(r.fetchPriority)};return t&&u.default.preload?(u.default.preload(r.src,n),null):(0,i.jsx)(a.default,{children:(0,i.jsx)("link",{rel:"preload",href:r.srcSet?void 0:r.src,...n},"__nimg-"+r.src+r.srcSet+r.sizes)})}let _=(0,l.forwardRef)((e,t)=>{let r=(0,l.useContext)(d.RouterContext),n=(0,l.useContext)(f.ImageConfigContext),o=(0,l.useMemo)(()=>{var e;let t=m||n||c.imageConfigDefault,r=[...t.deviceSizes,...t.imageSizes].sort((e,t)=>e-t),o=t.deviceSizes.sort((e,t)=>e-t),i=null==(e=t.qualities)?void 0:e.sort((e,t)=>e-t);return{...t,allSizes:r,deviceSizes:o,qualities:i}},[n]),{onLoad:u,onLoadingComplete:a}=e,g=(0,l.useRef)(u);(0,l.useEffect)(()=>{g.current=u},[u]);let h=(0,l.useRef)(a);(0,l.useEffect)(()=>{h.current=a},[a]);let[y,_]=(0,l.useState)(!1),[j,P]=(0,l.useState)(!1),{props:O,meta:w}=(0,s.getImgProps)(e,{defaultLoader:p.default,imgConf:o,blurComplete:y,showAltText:j});return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(b,{...O,unoptimized:w.unoptimized,placeholder:w.placeholder,fill:w.fill,onLoadRef:g,onLoadingCompleteRef:h,setBlurComplete:_,setShowAltText:P,sizesInput:e.sizes,ref:t}),w.priority?(0,i.jsx)(v,{isAppRouter:!r,imgAttributes:O}):null]})});("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},30461:(e,t,r)=>{r.d(t,{default:()=>o.a});var n=r(56050),o=r.n(n)},31748:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return l}});let n=r(74188),o=n.useLayoutEffect,i=n.useEffect;function l(e){let{headManager:t,reduceComponentsToState:r}=e;function l(){if(t&&t.mountedInstances){let o=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(o,e))}}return o(()=>{var r;return null==t||null==(r=t.mountedInstances)||r.add(e.children),()=>{var r;null==t||null==(r=t.mountedInstances)||r.delete(e.children)}}),o(()=>(t&&(t._pendingUpdate=l),()=>{t&&(t._pendingUpdate=l)})),i(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},35021:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return h},useLinkStatus:function(){return b}});let n=r(44253),o=r(28064),i=n._(r(74188)),l=r(51492),u=r(81986),a=r(92765),s=r(74889),c=r(59786),f=r(63528);r(17499);let d=r(14709),p=r(70237),g=r(72817);function m(e){return"string"==typeof e?e:(0,l.formatUrl)(e)}function h(e){let t,r,n,[l,h]=(0,i.useOptimistic)(d.IDLE_LINK_STATUS),b=(0,i.useRef)(null),{href:v,as:_,children:j,prefetch:P=null,passHref:O,replace:w,shallow:E,scroll:C,onClick:S,onMouseEnter:x,onTouchStart:M,legacyBehavior:R=!1,onNavigate:A,ref:N,unstable_dynamicOnHover:I,...k}=e;t=j,R&&("string"==typeof t||"number"==typeof t)&&(t=(0,o.jsx)("a",{children:t}));let z=i.default.useContext(u.AppRouterContext),T=!1!==P,L=null===P||"auto"===P?a.PrefetchKind.AUTO:a.PrefetchKind.FULL,{href:U,as:D}=i.default.useMemo(()=>{let e=m(v);return{href:e,as:_?m(_):e}},[v,_]);R&&(r=i.default.Children.only(t));let F=R?r&&"object"==typeof r&&r.ref:N,B=i.default.useCallback(e=>(null!==z&&(b.current=(0,d.mountLinkInstance)(e,U,z,L,T,h)),()=>{b.current&&((0,d.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,d.unmountPrefetchableInstance)(e)}),[T,U,z,L,h]),W={ref:(0,s.useMergedRef)(B,F),onClick(e){R||"function"!=typeof S||S(e),R&&r.props&&"function"==typeof r.props.onClick&&r.props.onClick(e),z&&(e.defaultPrevented||function(e,t,r,n,o,l,u){let{nodeName:a}=e.currentTarget;if(!("A"===a.toUpperCase()&&function(e){let t=e.currentTarget.getAttribute("target");return t&&"_self"!==t||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e)||e.currentTarget.hasAttribute("download"))){if(!(0,p.isLocalURL)(t)){o&&(e.preventDefault(),location.replace(t));return}if(e.preventDefault(),u){let e=!1;if(u({preventDefault:()=>{e=!0}}),e)return}i.default.startTransition(()=>{(0,g.dispatchNavigateAction)(r||t,o?"replace":"push",null==l||l,n.current)})}}(e,U,D,b,w,C,A))},onMouseEnter(e){R||"function"!=typeof x||x(e),R&&r.props&&"function"==typeof r.props.onMouseEnter&&r.props.onMouseEnter(e),z&&T&&(0,d.onNavigationIntent)(e.currentTarget,!0===I)},onTouchStart:function(e){R||"function"!=typeof M||M(e),R&&r.props&&"function"==typeof r.props.onTouchStart&&r.props.onTouchStart(e),z&&T&&(0,d.onNavigationIntent)(e.currentTarget,!0===I)}};return(0,c.isAbsoluteUrl)(D)?W.href=D:R&&!O&&("a"!==r.type||"href"in r.props)||(W.href=(0,f.addBasePath)(D)),n=R?i.default.cloneElement(r,W):(0,o.jsx)("a",{...k,...W,children:t}),(0,o.jsx)(y.Provider,{value:l,children:n})}r(7763);let y=(0,i.createContext)(d.IDLE_LINK_STATUS),b=()=>(0,i.useContext)(y);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},48357:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ImageConfigContext",{enumerable:!0,get:function(){return i}});let n=r(4760)._(r(74188)),o=r(55047),i=n.default.createContext(o.imageConfigDefault)},51492:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{formatUrl:function(){return i},formatWithValidation:function(){return u},urlObjectKeys:function(){return l}});let n=r(44253)._(r(74284)),o=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:r}=e,i=e.protocol||"",l=e.pathname||"",u=e.hash||"",a=e.query||"",s=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?s=t+e.host:r&&(s=t+(~r.indexOf(":")?"["+r+"]":r),e.port&&(s+=":"+e.port)),a&&"object"==typeof a&&(a=String(n.urlQueryToSearchParams(a)));let c=e.search||a&&"?"+a||"";return i&&!i.endsWith(":")&&(i+=":"),e.slashes||(!i||o.test(i))&&!1!==s?(s="//"+(s||""),l&&"/"!==l[0]&&(l="/"+l)):s||(s=""),u&&"#"!==u[0]&&(u="#"+u),c&&"?"!==c[0]&&(c="?"+c),""+i+s+(l=l.replace(/[?#]/g,encodeURIComponent))+(c=c.replace("#","%23"))+u}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return i(e)}},52811:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return m},defaultHead:function(){return f}});let n=r(4760),o=r(44253),i=r(28064),l=o._(r(74188)),u=n._(r(31748)),a=r(57867),s=r(97051),c=r(98051);function f(e){void 0===e&&(e=!1);let t=[(0,i.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push((0,i.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}function d(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===l.default.Fragment?e.concat(l.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}r(17499);let p=["name","httpEquiv","charSet","itemProp"];function g(e,t){let{inAmpMode:r}=t;return e.reduce(d,[]).reverse().concat(f(r).reverse()).filter(function(){let e=new Set,t=new Set,r=new Set,n={};return o=>{let i=!0,l=!1;if(o.key&&"number"!=typeof o.key&&o.key.indexOf("$")>0){l=!0;let t=o.key.slice(o.key.indexOf("$")+1);e.has(t)?i=!1:e.add(t)}switch(o.type){case"title":case"base":t.has(o.type)?i=!1:t.add(o.type);break;case"meta":for(let e=0,t=p.length;e{let r=e.key||t;return l.default.cloneElement(e,{key:r})})}let m=function(e){let{children:t}=e,r=(0,l.useContext)(a.AmpStateContext),n=(0,l.useContext)(s.HeadManagerContext);return(0,i.jsx)(u.default,{reduceComponentsToState:g,headManager:n,inAmpMode:(0,c.isInAmpMode)(r),children:t})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},55047:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{VALID_LOADERS:function(){return r},imageConfigDefault:function(){return n}});let r=["default","imgix","cloudinary","akamai","custom"],n={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:60,formats:["image/webp"],dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:void 0,unoptimized:!1}},55594:(e,t)=>{function r(e){var t;let{config:r,src:n,width:o,quality:i}=e,l=i||(null==(t=r.qualities)?void 0:t.reduce((e,t)=>Math.abs(t-75){Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return a},getImageProps:function(){return u}});let n=r(4760),o=r(78618),i=r(27362),l=n._(r(55594));function u(e){let{props:t}=(0,o.getImgProps)(e,{defaultLoader:l.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/opencut/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let a=i.Image},57867:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"AmpStateContext",{enumerable:!0,get:function(){return n}});let n=r(4760)._(r(74188)).default.createContext({})},59786:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DecodeError:function(){return g},MiddlewareNotFoundError:function(){return b},MissingStaticPage:function(){return y},NormalizeError:function(){return m},PageNotFoundError:function(){return h},SP:function(){return d},ST:function(){return p},WEB_VITALS:function(){return r},execOnce:function(){return n},getDisplayName:function(){return a},getLocationOrigin:function(){return l},getURL:function(){return u},isAbsoluteUrl:function(){return i},isResSent:function(){return s},loadGetInitialProps:function(){return f},normalizeRepeatedSlashes:function(){return c},stringifyError:function(){return v}});let r=["CLS","FCP","FID","INP","LCP","TTFB"];function n(e){let t,r=!1;return function(){for(var n=arguments.length,o=Array(n),i=0;io.test(e);function l(){let{protocol:e,hostname:t,port:r}=window.location;return e+"//"+t+(r?":"+r:"")}function u(){let{href:e}=window.location,t=l();return e.substring(t.length)}function a(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function s(e){return e.finished||e.headersSent}function c(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?"?"+t.slice(1).join("?"):"")}async function f(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await f(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&s(r))return n;if(!n)throw Object.defineProperty(Error('"'+a(e)+'.getInitialProps()" should resolve to an object. But found "'+n+'" instead.'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let d="undefined"!=typeof performance,p=d&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class g extends Error{}class m extends Error{}class h extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+e}}class y extends Error{constructor(e,t){super(),this.message="Failed to load static file for page: "+e+" "+t}}class b extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function v(e){return JSON.stringify({message:e.message,stack:e.stack})}},70237:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isLocalURL",{enumerable:!0,get:function(){return i}});let n=r(59786),o=r(5523);function i(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},73267:(e,t)=>{function r(e){let{widthInt:t,heightInt:r,blurWidth:n,blurHeight:o,blurDataURL:i,objectFit:l}=e,u=n?40*n:t,a=o?40*o:r,s=u&&a?"viewBox='0 0 "+u+" "+a+"'":"";return"%3Csvg xmlns='http://www.w3.org/2000/svg' "+s+"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='"+(s?"none":"contain"===l?"xMidYMid":"cover"===l?"xMidYMid slice":"none")+"' style='filter: url(%23b);' href='"+i+"'/%3E%3C/svg%3E"}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getImageBlurSvg",{enumerable:!0,get:function(){return r}})},74284:(e,t)=>{function r(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function n(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function o(e){let t=new URLSearchParams;for(let[r,o]of Object.entries(e))if(Array.isArray(o))for(let e of o)t.append(r,n(e));else t.set(r,n(o));return t}function i(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=r(74188);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=i(e,n)),t&&(o.current=i(t,n))},[e,t])}function i(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},78618:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getImgProps",{enumerable:!0,get:function(){return a}}),r(17499);let n=r(73267),o=r(55047),i=["-moz-initial","fill","none","scale-down",void 0];function l(e){return void 0!==e.default}function u(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function a(e,t){var r,a;let s,c,f,{src:d,sizes:p,unoptimized:g=!1,priority:m=!1,loading:h,className:y,quality:b,width:v,height:_,fill:j=!1,style:P,overrideSrc:O,onLoad:w,onLoadingComplete:E,placeholder:C="empty",blurDataURL:S,fetchPriority:x,decoding:M="async",layout:R,objectFit:A,objectPosition:N,lazyBoundary:I,lazyRoot:k,...z}=e,{imgConf:T,showAltText:L,blurComplete:U,defaultLoader:D}=t,F=T||o.imageConfigDefault;if("allSizes"in F)s=F;else{let e=[...F.deviceSizes,...F.imageSizes].sort((e,t)=>e-t),t=F.deviceSizes.sort((e,t)=>e-t),n=null==(r=F.qualities)?void 0:r.sort((e,t)=>e-t);s={...F,allSizes:e,deviceSizes:t,qualities:n}}if(void 0===D)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let B=z.loader||D;delete z.loader,delete z.srcSet;let W="__next_img_default"in B;if(W){if("custom"===s.loader)throw Object.defineProperty(Error('Image with src "'+d+'" is missing "loader" prop.\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader'),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=B;B=t=>{let{config:r,...n}=t;return e(n)}}if(R){"fill"===R&&(j=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[R];e&&(P={...P,...e});let t={responsive:"100vw",fill:"100vw"}[R];t&&!p&&(p=t)}let q="",G=u(v),K=u(_);if((a=d)&&"object"==typeof a&&(l(a)||void 0!==a.src)){let e=l(d)?d.default:d;if(!e.src)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!e.height||!e.width)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(c=e.blurWidth,f=e.blurHeight,S=S||e.blurDataURL,q=e.src,!j)if(G||K){if(G&&!K){let t=G/e.width;K=Math.round(e.height*t)}else if(!G&&K){let t=K/e.height;G=Math.round(e.width*t)}}else G=e.width,K=e.height}let V=!m&&("lazy"===h||void 0===h);(!(d="string"==typeof d?d:q)||d.startsWith("data:")||d.startsWith("blob:"))&&(g=!0,V=!1),s.unoptimized&&(g=!0),W&&!s.dangerouslyAllowSVG&&d.split("?",1)[0].endsWith(".svg")&&(g=!0);let $=u(b),X=Object.assign(j?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:A,objectPosition:N}:{},L?{}:{color:"transparent"},P),H=U||"empty"===C?null:"blur"===C?'url("data:image/svg+xml;charset=utf-8,'+(0,n.getImageBlurSvg)({widthInt:G,heightInt:K,blurWidth:c,blurHeight:f,blurDataURL:S||"",objectFit:X.objectFit})+'")':'url("'+C+'")',J=i.includes(X.objectFit)?"fill"===X.objectFit?"100% 100%":"cover":X.objectFit,Q=H?{backgroundSize:J,backgroundPosition:X.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:H}:{},Z=function(e){let{config:t,src:r,unoptimized:n,width:o,quality:i,sizes:l,loader:u}=e;if(n)return{src:r,srcSet:void 0,sizes:void 0};let{widths:a,kind:s}=function(e,t,r){let{deviceSizes:n,allSizes:o}=e;if(r){let e=/(^|\s)(1?\d?\d)vw/g,t=[];for(let n;n=e.exec(r);)t.push(parseInt(n[2]));if(t.length){let e=.01*Math.min(...t);return{widths:o.filter(t=>t>=n[0]*e),kind:"w"}}return{widths:o,kind:"w"}}return"number"!=typeof t?{widths:n,kind:"w"}:{widths:[...new Set([t,2*t].map(e=>o.find(t=>t>=e)||o[o.length-1]))],kind:"x"}}(t,o,l),c=a.length-1;return{sizes:l||"w"!==s?l:"100vw",srcSet:a.map((e,n)=>u({config:t,src:r,quality:i,width:e})+" "+("w"===s?e:n+1)+s).join(", "),src:u({config:t,src:r,quality:i,width:a[c]})}}({config:s,src:d,unoptimized:g,width:G,quality:$,sizes:p,loader:B});return{props:{...z,loading:V?"lazy":h,fetchPriority:x,width:G,height:K,decoding:M,className:y,style:{...X,...Q},sizes:Z.sizes,srcSet:Z.srcSet,src:O||Z.src},meta:{unoptimized:g,priority:m,placeholder:C,fill:j}}}},88077:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(74188);let o=function(){for(var e=arguments.length,t=Array(e),r=0;r!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim()};var i={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let l=(0,n.forwardRef)((e,t)=>{let{color:r="currentColor",size:l=24,strokeWidth:u=2,absoluteStrokeWidth:a,className:s="",children:c,iconNode:f,...d}=e;return(0,n.createElement)("svg",{ref:t,...i,width:l,height:l,stroke:r,strokeWidth:a?24*Number(u)/Number(l):u,className:o("lucide",s),...d},[...f.map(e=>{let[t,r]=e;return(0,n.createElement)(t,r)}),...Array.isArray(c)?c:[c]])}),u=(e,t)=>{let r=(0,n.forwardRef)((r,i)=>{let{className:u,...a}=r;return(0,n.createElement)(l,{ref:i,iconNode:t,className:o("lucide-".concat(e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()),u),...a})});return r.displayName="".concat(e),r}},98051:(e,t)=>{function r(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isInAmpMode",{enumerable:!0,get:function(){return r}})}}]); +//# sourceMappingURL=239-a0ff42cf8f424f35.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/239-a0ff42cf8f424f35.js.map b/opencut-ui/_next/static/chunks/239-a0ff42cf8f424f35.js.map new file mode 100644 index 0000000..e998e6a --- /dev/null +++ b/opencut-ui/_next/static/chunks/239-a0ff42cf8f424f35.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/239-a0ff42cf8f424f35.js","mappings":"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","sources":["webpack://_N_E/../../../src/shared/lib/utils/error-once.ts","webpack://_N_E/../../../src/shared/lib/router-context.shared-runtime.ts","webpack://_N_E/../../node_modules/.bun/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs","webpack://_N_E/../../src/client/image-component.tsx","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/api/image.js","webpack://_N_E/../../../src/shared/lib/side-effect.tsx","webpack://_N_E/../../../src/client/app-dir/link.tsx","webpack://_N_E/../../../src/shared/lib/image-config-context.shared-runtime.ts","webpack://_N_E/../../../src/shared/lib/router/utils/format-url.ts","webpack://_N_E/../../../src/shared/lib/head.tsx","webpack://_N_E/../../../src/shared/lib/image-config.ts","webpack://_N_E/../../../src/shared/lib/image-loader.ts","webpack://_N_E/../../../src/shared/lib/image-external.tsx","webpack://_N_E/../../../src/shared/lib/amp-context.shared-runtime.ts","webpack://_N_E/../../../src/shared/lib/utils.ts","webpack://_N_E/../../../src/shared/lib/router/utils/is-local-url.ts","webpack://_N_E/../../../src/shared/lib/image-blur-svg.ts","webpack://_N_E/../../../src/shared/lib/router/utils/querystring.ts","webpack://_N_E/../../src/client/use-merged-ref.ts","webpack://_N_E/../../../src/shared/lib/get-img-props.ts","webpack://_N_E/../../../shared/src/utils.ts","webpack://_N_E/../../src/defaultAttributes.ts","webpack://_N_E/../../src/Icon.ts","webpack://_N_E/../../src/createLucideIcon.ts","webpack://_N_E/../../../src/shared/lib/amp-mode.ts"],"sourcesContent":["let errorOnce = (_: string) => {}\nif (process.env.NODE_ENV !== 'production') {\n const errors = new Set()\n errorOnce = (msg: string) => {\n if (!errors.has(msg)) {\n console.error(msg)\n }\n errors.add(msg)\n }\n}\n\nexport { errorOnce }\n","import React from 'react'\nimport type { NextRouter } from './router/router'\n\nexport const RouterContext = React.createContext(null)\n\nif (process.env.NODE_ENV !== 'production') {\n RouterContext.displayName = 'RouterContext'\n}\n","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","'use client'\n\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useContext,\n useMemo,\n useState,\n forwardRef,\n use,\n} from 'react'\nimport ReactDOM from 'react-dom'\nimport Head from '../shared/lib/head'\nimport { getImgProps } from '../shared/lib/get-img-props'\nimport type {\n ImageProps,\n ImgProps,\n OnLoad,\n OnLoadingComplete,\n PlaceholderValue,\n} from '../shared/lib/get-img-props'\nimport type {\n ImageConfigComplete,\n ImageLoaderProps,\n} from '../shared/lib/image-config'\nimport { imageConfigDefault } from '../shared/lib/image-config'\nimport { ImageConfigContext } from '../shared/lib/image-config-context.shared-runtime'\nimport { warnOnce } from '../shared/lib/utils/warn-once'\nimport { RouterContext } from '../shared/lib/router-context.shared-runtime'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\nimport { useMergedRef } from './use-merged-ref'\n\n// This is replaced by webpack define plugin\nconst configEnv = process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete\n\nif (typeof window === 'undefined') {\n ;(globalThis as any).__NEXT_IMAGE_IMPORTED = true\n}\n\nexport type { ImageLoaderProps }\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\ntype ImgElementWithDataProp = HTMLImageElement & {\n 'data-loaded-src': string | undefined\n}\n\ntype ImageElementProps = ImgProps & {\n unoptimized: boolean\n placeholder: PlaceholderValue\n onLoadRef: React.MutableRefObject\n onLoadingCompleteRef: React.MutableRefObject\n setBlurComplete: (b: boolean) => void\n setShowAltText: (b: boolean) => void\n sizesInput: string | undefined\n}\n\n// See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\nfunction handleLoading(\n img: ImgElementWithDataProp,\n placeholder: PlaceholderValue,\n onLoadRef: React.MutableRefObject,\n onLoadingCompleteRef: React.MutableRefObject,\n setBlurComplete: (b: boolean) => void,\n unoptimized: boolean,\n sizesInput: string | undefined\n) {\n const src = img?.src\n if (!img || img['data-loaded-src'] === src) {\n return\n }\n img['data-loaded-src'] = src\n const p = 'decode' in img ? img.decode() : Promise.resolve()\n p.catch(() => {}).then(() => {\n if (!img.parentElement || !img.isConnected) {\n // Exit early in case of race condition:\n // - onload() is called\n // - decode() is called but incomplete\n // - unmount is called\n // - decode() completes\n return\n }\n if (placeholder !== 'empty') {\n setBlurComplete(true)\n }\n if (onLoadRef?.current) {\n // Since we don't have the SyntheticEvent here,\n // we must create one with the same shape.\n // See https://reactjs.org/docs/events.html\n const event = new Event('load')\n Object.defineProperty(event, 'target', { writable: false, value: img })\n let prevented = false\n let stopped = false\n onLoadRef.current({\n ...event,\n nativeEvent: event,\n currentTarget: img,\n target: img,\n isDefaultPrevented: () => prevented,\n isPropagationStopped: () => stopped,\n persist: () => {},\n preventDefault: () => {\n prevented = true\n event.preventDefault()\n },\n stopPropagation: () => {\n stopped = true\n event.stopPropagation()\n },\n })\n }\n if (onLoadingCompleteRef?.current) {\n onLoadingCompleteRef.current(img)\n }\n if (process.env.NODE_ENV !== 'production') {\n const origSrc = new URL(src, 'http://n').searchParams.get('url') || src\n if (img.getAttribute('data-nimg') === 'fill') {\n if (!unoptimized && (!sizesInput || sizesInput === '100vw')) {\n let widthViewportRatio =\n img.getBoundingClientRect().width / window.innerWidth\n if (widthViewportRatio < 0.6) {\n if (sizesInput === '100vw') {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" prop and \"sizes\" prop of \"100vw\", but image is not rendered at full viewport width. Please adjust \"sizes\" to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n } else {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" but is missing \"sizes\" prop. Please add it to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`\n )\n }\n }\n }\n if (img.parentElement) {\n const { position } = window.getComputedStyle(img.parentElement)\n const valid = ['absolute', 'fixed', 'relative']\n if (!valid.includes(position)) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and parent element with invalid \"position\". Provided \"${position}\" should be one of ${valid\n .map(String)\n .join(',')}.`\n )\n }\n }\n if (img.height === 0) {\n warnOnce(\n `Image with src \"${origSrc}\" has \"fill\" and a height value of 0. This is likely because the parent element of the image has not been styled to have a set height.`\n )\n }\n }\n\n const heightModified =\n img.height.toString() !== img.getAttribute('height')\n const widthModified = img.width.toString() !== img.getAttribute('width')\n if (\n (heightModified && !widthModified) ||\n (!heightModified && widthModified)\n ) {\n warnOnce(\n `Image with src \"${origSrc}\" has either width or height modified, but not the other. If you use CSS to change the size of your image, also include the styles 'width: \"auto\"' or 'height: \"auto\"' to maintain the aspect ratio.`\n )\n }\n }\n })\n}\n\nfunction getDynamicProps(\n fetchPriority?: string\n): Record {\n if (Boolean(use)) {\n // In React 19.0.0 or newer, we must use camelCase\n // prop to avoid \"Warning: Invalid DOM property\".\n // See https://github.com/facebook/react/pull/25927\n return { fetchPriority }\n }\n // In React 18.2.0 or older, we must use lowercase prop\n // to avoid \"Warning: Invalid DOM property\".\n return { fetchpriority: fetchPriority }\n}\n\nconst ImageElement = forwardRef(\n (\n {\n src,\n srcSet,\n sizes,\n height,\n width,\n decoding,\n className,\n style,\n fetchPriority,\n placeholder,\n loading,\n unoptimized,\n fill,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n setShowAltText,\n sizesInput,\n onLoad,\n onError,\n ...rest\n },\n forwardedRef\n ) => {\n const ownRef = useCallback(\n (img: ImgElementWithDataProp | null) => {\n if (!img) {\n return\n }\n if (onError) {\n // If the image has an error before react hydrates, then the error is lost.\n // The workaround is to wait until the image is mounted which is after hydration,\n // then we set the src again to trigger the error handler (if there was an error).\n // eslint-disable-next-line no-self-assign\n img.src = img.src\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!src) {\n console.error(`Image is missing required \"src\" property:`, img)\n }\n if (img.getAttribute('alt') === null) {\n console.error(\n `Image is missing required \"alt\" property. Please add Alternative Text to describe the image for screen readers and search engines.`\n )\n }\n }\n if (img.complete) {\n handleLoading(\n img,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }\n },\n [\n src,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n onError,\n unoptimized,\n sizesInput,\n ]\n )\n\n const ref = useMergedRef(forwardedRef, ownRef)\n\n return (\n {\n const img = event.currentTarget as ImgElementWithDataProp\n handleLoading(\n img,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n unoptimized,\n sizesInput\n )\n }}\n onError={(event) => {\n // if the real image fails to load, this will ensure \"alt\" is visible\n setShowAltText(true)\n if (placeholder !== 'empty') {\n // If the real image fails to load, this will still remove the placeholder.\n setBlurComplete(true)\n }\n if (onError) {\n onError(event)\n }\n }}\n />\n )\n }\n)\n\nfunction ImagePreload({\n isAppRouter,\n imgAttributes,\n}: {\n isAppRouter: boolean\n imgAttributes: ImgProps\n}) {\n const opts: ReactDOM.PreloadOptions = {\n as: 'image',\n imageSrcSet: imgAttributes.srcSet,\n imageSizes: imgAttributes.sizes,\n crossOrigin: imgAttributes.crossOrigin,\n referrerPolicy: imgAttributes.referrerPolicy,\n ...getDynamicProps(imgAttributes.fetchPriority),\n }\n\n if (isAppRouter && ReactDOM.preload) {\n ReactDOM.preload(imgAttributes.src, opts)\n return null\n }\n\n return (\n \n \n \n )\n}\n\n/**\n * The `Image` component is used to optimize images.\n *\n * Read more: [Next.js docs: `Image`](https://nextjs.org/docs/app/api-reference/components/image)\n */\nexport const Image = forwardRef(\n (props, forwardedRef) => {\n const pagesRouter = useContext(RouterContext)\n // We're in the app directory if there is no pages router.\n const isAppRouter = !pagesRouter\n\n const configContext = useContext(ImageConfigContext)\n const config = useMemo(() => {\n const c = configEnv || configContext || imageConfigDefault\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n return { ...c, allSizes, deviceSizes, qualities }\n }, [configContext])\n\n const { onLoad, onLoadingComplete } = props\n const onLoadRef = useRef(onLoad)\n\n useEffect(() => {\n onLoadRef.current = onLoad\n }, [onLoad])\n\n const onLoadingCompleteRef = useRef(onLoadingComplete)\n\n useEffect(() => {\n onLoadingCompleteRef.current = onLoadingComplete\n }, [onLoadingComplete])\n\n const [blurComplete, setBlurComplete] = useState(false)\n const [showAltText, setShowAltText] = useState(false)\n\n const { props: imgAttributes, meta: imgMeta } = getImgProps(props, {\n defaultLoader,\n imgConf: config,\n blurComplete,\n showAltText,\n })\n\n return (\n <>\n {\n \n }\n {imgMeta.priority ? (\n \n ) : null}\n \n )\n }\n)\n","export { default } from '../shared/lib/image-external';\nexport * from '../shared/lib/image-external';\n\n//# sourceMappingURL=image.js.map","import type React from 'react'\nimport { Children, useEffect, useLayoutEffect, type JSX } from 'react'\n\ntype State = JSX.Element[] | undefined\n\nexport type SideEffectProps = {\n reduceComponentsToState: (\n components: Array>,\n props: T\n ) => State\n handleStateChange?: (state: State) => void\n headManager: any\n inAmpMode?: boolean\n children: React.ReactNode\n}\n\nconst isServer = typeof window === 'undefined'\nconst useClientOnlyLayoutEffect = isServer ? () => {} : useLayoutEffect\nconst useClientOnlyEffect = isServer ? () => {} : useEffect\n\nexport default function SideEffect(props: SideEffectProps) {\n const { headManager, reduceComponentsToState } = props\n\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = Children.toArray(\n Array.from(headManager.mountedInstances as Set).filter(\n Boolean\n )\n ) as React.ReactElement[]\n headManager.updateHead(reduceComponentsToState(headElements, props))\n }\n }\n\n if (isServer) {\n headManager?.mountedInstances?.add(props.children)\n emitChange()\n }\n\n useClientOnlyLayoutEffect(() => {\n headManager?.mountedInstances?.add(props.children)\n return () => {\n headManager?.mountedInstances?.delete(props.children)\n }\n })\n\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect(() => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n return () => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n }\n })\n\n useClientOnlyEffect(() => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n return () => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n }\n })\n\n return null\n}\n","'use client'\n\nimport React, { createContext, useContext, useOptimistic, useRef } from 'react'\nimport type { UrlObject } from 'url'\nimport { formatUrl } from '../../shared/lib/router/utils/format-url'\nimport { AppRouterContext } from '../../shared/lib/app-router-context.shared-runtime'\nimport { PrefetchKind } from '../components/router-reducer/router-reducer-types'\nimport { useMergedRef } from '../use-merged-ref'\nimport { isAbsoluteUrl } from '../../shared/lib/utils'\nimport { addBasePath } from '../add-base-path'\nimport { warnOnce } from '../../shared/lib/utils/warn-once'\nimport type { PENDING_LINK_STATUS } from '../components/links'\nimport {\n IDLE_LINK_STATUS,\n mountLinkInstance,\n onNavigationIntent,\n unmountLinkForCurrentNavigation,\n unmountPrefetchableInstance,\n type LinkInstance,\n} from '../components/links'\nimport { isLocalURL } from '../../shared/lib/router/utils/is-local-url'\nimport { dispatchNavigateAction } from '../components/app-router-instance'\nimport { errorOnce } from '../../shared/lib/utils/error-once'\n\ntype Url = string | UrlObject\ntype RequiredKeys = {\n [K in keyof T]-?: {} extends Pick ? never : K\n}[keyof T]\ntype OptionalKeys = {\n [K in keyof T]-?: {} extends Pick ? K : never\n}[keyof T]\n\ntype OnNavigateEventHandler = (event: { preventDefault: () => void }) => void\n\ntype InternalLinkProps = {\n /**\n * **Required**. The path or URL to navigate to. It can also be an object (similar to `URL`).\n *\n * @example\n * ```tsx\n * // Navigate to /dashboard:\n * Dashboard\n *\n * // Navigate to /about?name=test:\n * \n * About\n * \n * ```\n *\n * @remarks\n * - For external URLs, use a fully qualified URL such as `https://...`.\n * - In the App Router, dynamic routes must not include bracketed segments in `href`.\n */\n href: Url\n\n /**\n * @deprecated v10.0.0: `href` props pointing to a dynamic route are\n * automatically resolved and no longer require the `as` prop.\n */\n as?: Url\n\n /**\n * Replace the current `history` state instead of adding a new URL into the stack.\n *\n * @defaultValue `false`\n *\n * @example\n * ```tsx\n * \n * About (replaces the history state)\n * \n * ```\n */\n replace?: boolean\n\n /**\n * Whether to override the default scroll behavior. If `true`, Next.js attempts to maintain\n * the scroll position if the newly navigated page is still visible. If not, it scrolls to the top.\n *\n * If `false`, Next.js will not modify the scroll behavior at all.\n *\n * @defaultValue `true`\n *\n * @example\n * ```tsx\n * \n * No auto scroll\n * \n * ```\n */\n scroll?: boolean\n\n /**\n * Update the path of the current page without rerunning data fetching methods\n * like `getStaticProps`, `getServerSideProps`, or `getInitialProps`.\n *\n * @remarks\n * `shallow` only applies to the Pages Router. For the App Router, see the\n * [following documentation](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#using-the-native-history-api).\n *\n * @defaultValue `false`\n *\n * @example\n * ```tsx\n * \n * Shallow navigation\n * \n * ```\n */\n shallow?: boolean\n\n /**\n * Forces `Link` to pass its `href` to the child component. Useful if the child is a custom\n * component that wraps an `` tag, or if you're using certain styling libraries.\n *\n * @defaultValue `false`\n *\n * @example\n * ```tsx\n * \n * Dashboard\n * \n * ```\n */\n passHref?: boolean\n\n /**\n * Prefetch the page in the background.\n * Any `` that is in the viewport (initially or through scroll) will be prefetched.\n * Prefetch can be disabled by passing `prefetch={false}`.\n *\n * @remarks\n * Prefetching is only enabled in production.\n *\n * - In the **App Router**:\n * - `\"auto\"`, `null`, `undefined` (default): Prefetch behavior depends on static vs dynamic routes:\n * - Static routes: fully prefetched\n * - Dynamic routes: partial prefetch to the nearest segment with a `loading.js`\n * - `true`: Always prefetch the full route and data.\n * - `false`: Disable prefetching on both viewport and hover.\n * - In the **Pages Router**:\n * - `true` (default): Prefetches the route and data in the background on viewport or hover.\n * - `false`: Prefetch only on hover, not on viewport.\n *\n * @defaultValue `true` (Pages Router) or `null` (App Router)\n *\n * @example\n * ```tsx\n * \n * Dashboard\n * \n * ```\n */\n prefetch?: boolean | 'auto' | null\n\n /**\n * (unstable) Switch to a dynamic prefetch on hover. Effectively the same as\n * updating the prefetch prop to `true` in a mouse event.\n */\n unstable_dynamicOnHover?: boolean\n\n /**\n * The active locale is automatically prepended in the Pages Router. `locale` allows for providing\n * a different locale, or can be set to `false` to opt out of automatic locale behavior.\n *\n * @remarks\n * Note: locale only applies in the Pages Router and is ignored in the App Router.\n *\n * @example\n * ```tsx\n * // Use the 'fr' locale:\n * \n * About (French)\n * \n *\n * // Disable locale prefix:\n * \n * About (no locale prefix)\n * \n * ```\n */\n locale?: string | false\n\n /**\n * Enable legacy link behavior, requiring an `` tag to wrap the child content\n * if the child is a string or number.\n *\n * @deprecated This will be removed in v16\n * @defaultValue `false`\n * @see https://github.com/vercel/next.js/commit/489e65ed98544e69b0afd7e0cfc3f9f6c2b803b7\n */\n legacyBehavior?: boolean\n\n /**\n * Optional event handler for when the mouse pointer is moved onto the ``.\n */\n onMouseEnter?: React.MouseEventHandler\n\n /**\n * Optional event handler for when the `` is touched.\n */\n onTouchStart?: React.TouchEventHandler\n\n /**\n * Optional event handler for when the `` is clicked.\n */\n onClick?: React.MouseEventHandler\n\n /**\n * Optional event handler for when the `` is navigated.\n */\n onNavigate?: OnNavigateEventHandler\n}\n\n// TODO-APP: Include the full set of Anchor props\n// adding this to the publicly exported type currently breaks existing apps\n\n// `RouteInferType` is a stub here to avoid breaking `typedRoutes` when the type\n// isn't generated yet. It will be replaced when the webpack plugin runs.\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport type LinkProps = InternalLinkProps\ntype LinkPropsRequired = RequiredKeys\ntype LinkPropsOptional = OptionalKeys>\n\nfunction isModifiedEvent(event: React.MouseEvent): boolean {\n const eventTarget = event.currentTarget as HTMLAnchorElement | SVGAElement\n const target = eventTarget.getAttribute('target')\n return (\n (target && target !== '_self') ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.altKey || // triggers resource download\n (event.nativeEvent && event.nativeEvent.which === 2)\n )\n}\n\nfunction linkClicked(\n e: React.MouseEvent,\n href: string,\n as: string,\n linkInstanceRef: React.RefObject,\n replace?: boolean,\n scroll?: boolean,\n onNavigate?: OnNavigateEventHandler\n): void {\n const { nodeName } = e.currentTarget\n\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === 'A'\n\n if (\n (isAnchorNodeName && isModifiedEvent(e)) ||\n e.currentTarget.hasAttribute('download')\n ) {\n // ignore click for browser’s default behavior\n return\n }\n\n if (!isLocalURL(href)) {\n if (replace) {\n // browser default behavior does not replace the history state\n // so we need to do it manually\n e.preventDefault()\n location.replace(href)\n }\n\n // ignore click for browser’s default behavior\n return\n }\n\n e.preventDefault()\n\n if (onNavigate) {\n let isDefaultPrevented = false\n\n onNavigate({\n preventDefault: () => {\n isDefaultPrevented = true\n },\n })\n\n if (isDefaultPrevented) {\n return\n }\n }\n\n React.startTransition(() => {\n dispatchNavigateAction(\n as || href,\n replace ? 'replace' : 'push',\n scroll ?? true,\n linkInstanceRef.current\n )\n })\n}\n\nfunction formatStringOrUrl(urlObjOrString: UrlObject | string): string {\n if (typeof urlObjOrString === 'string') {\n return urlObjOrString\n }\n\n return formatUrl(urlObjOrString)\n}\n\n/**\n * A React component that extends the HTML `` element to provide\n * [prefetching](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#2-prefetching)\n * and client-side navigation. This is the primary way to navigate between routes in Next.js.\n *\n * @remarks\n * - Prefetching is only enabled in production.\n *\n * @see https://nextjs.org/docs/app/api-reference/components/link\n */\nexport default function LinkComponent(\n props: LinkProps & {\n children: React.ReactNode\n ref: React.Ref\n }\n) {\n const [linkStatus, setOptimisticLinkStatus] = useOptimistic(IDLE_LINK_STATUS)\n\n let children: React.ReactNode\n\n const linkInstanceRef = useRef(null)\n\n const {\n href: hrefProp,\n as: asProp,\n children: childrenProp,\n prefetch: prefetchProp = null,\n passHref,\n replace,\n shallow,\n scroll,\n onClick,\n onMouseEnter: onMouseEnterProp,\n onTouchStart: onTouchStartProp,\n legacyBehavior = false,\n onNavigate,\n ref: forwardedRef,\n unstable_dynamicOnHover,\n ...restProps\n } = props\n\n children = childrenProp\n\n if (\n legacyBehavior &&\n (typeof children === 'string' || typeof children === 'number')\n ) {\n children = {children}\n }\n\n const router = React.useContext(AppRouterContext)\n\n const prefetchEnabled = prefetchProp !== false\n /**\n * The possible states for prefetch are:\n * - null: this is the default \"auto\" mode, where we will prefetch partially if the link is in the viewport\n * - true: we will prefetch if the link is visible and prefetch the full page, not just partially\n * - false: we will not prefetch if in the viewport at all\n * - 'unstable_dynamicOnHover': this starts in \"auto\" mode, but switches to \"full\" when the link is hovered\n */\n const appPrefetchKind =\n prefetchProp === null || prefetchProp === 'auto'\n ? PrefetchKind.AUTO\n : PrefetchKind.FULL\n\n if (process.env.NODE_ENV !== 'production') {\n function createPropError(args: {\n key: string\n expected: string\n actual: string\n }) {\n return new Error(\n `Failed prop type: The prop \\`${args.key}\\` expects a ${args.expected} in \\`\\`, but got \\`${args.actual}\\` instead.` +\n (typeof window !== 'undefined'\n ? \"\\nOpen your browser's console to view the Component stack trace.\"\n : '')\n )\n }\n\n // TypeScript trick for type-guarding:\n const requiredPropsGuard: Record = {\n href: true,\n } as const\n const requiredProps: LinkPropsRequired[] = Object.keys(\n requiredPropsGuard\n ) as LinkPropsRequired[]\n requiredProps.forEach((key: LinkPropsRequired) => {\n if (key === 'href') {\n if (\n props[key] == null ||\n (typeof props[key] !== 'string' && typeof props[key] !== 'object')\n ) {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: props[key] === null ? 'null' : typeof props[key],\n })\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _: never = key\n }\n })\n\n // TypeScript trick for type-guarding:\n const optionalPropsGuard: Record = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n unstable_dynamicOnHover: true,\n onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: true,\n onNavigate: true,\n } as const\n const optionalProps: LinkPropsOptional[] = Object.keys(\n optionalPropsGuard\n ) as LinkPropsOptional[]\n optionalProps.forEach((key: LinkPropsOptional) => {\n const valType = typeof props[key]\n\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: valType,\n })\n }\n } else if (\n key === 'onClick' ||\n key === 'onMouseEnter' ||\n key === 'onTouchStart' ||\n key === 'onNavigate'\n ) {\n if (props[key] && valType !== 'function') {\n throw createPropError({\n key,\n expected: '`function`',\n actual: valType,\n })\n }\n } else if (\n key === 'replace' ||\n key === 'scroll' ||\n key === 'shallow' ||\n key === 'passHref' ||\n key === 'legacyBehavior' ||\n key === 'unstable_dynamicOnHover'\n ) {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key,\n expected: '`boolean`',\n actual: valType,\n })\n }\n } else if (key === 'prefetch') {\n if (\n props[key] != null &&\n valType !== 'boolean' &&\n props[key] !== 'auto'\n ) {\n throw createPropError({\n key,\n expected: '`boolean | \"auto\"`',\n actual: valType,\n })\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _: never = key\n }\n })\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (props.locale) {\n warnOnce(\n 'The `locale` prop is not supported in `next/link` while using the `app` router. Read more about app router internalization: https://nextjs.org/docs/app/building-your-application/routing/internationalization'\n )\n }\n if (!asProp) {\n let href: string | undefined\n if (typeof hrefProp === 'string') {\n href = hrefProp\n } else if (\n typeof hrefProp === 'object' &&\n typeof hrefProp.pathname === 'string'\n ) {\n href = hrefProp.pathname\n }\n\n if (href) {\n const hasDynamicSegment = href\n .split('/')\n .some((segment) => segment.startsWith('[') && segment.endsWith(']'))\n\n if (hasDynamicSegment) {\n throw new Error(\n `Dynamic href \\`${href}\\` found in while using the \\`/app\\` router, this is not supported. Read more: https://nextjs.org/docs/messages/app-dir-dynamic-href`\n )\n }\n }\n }\n }\n\n const { href, as } = React.useMemo(() => {\n const resolvedHref = formatStringOrUrl(hrefProp)\n return {\n href: resolvedHref,\n as: asProp ? formatStringOrUrl(asProp) : resolvedHref,\n }\n }, [hrefProp, asProp])\n\n // This will return the first child, if multiple are provided it will throw an error\n let child: any\n if (legacyBehavior) {\n if (process.env.NODE_ENV === 'development') {\n if (onClick) {\n console.warn(\n `\"onClick\" was passed to with \\`href\\` of \\`${hrefProp}\\` but \"legacyBehavior\" was set. The legacy behavior requires onClick be set on the child of next/link`\n )\n }\n if (onMouseEnterProp) {\n console.warn(\n `\"onMouseEnter\" was passed to with \\`href\\` of \\`${hrefProp}\\` but \"legacyBehavior\" was set. The legacy behavior requires onMouseEnter be set on the child of next/link`\n )\n }\n try {\n child = React.Children.only(children)\n } catch (err) {\n if (!children) {\n throw new Error(\n `No children were passed to with \\`href\\` of \\`${hrefProp}\\` but one child is required https://nextjs.org/docs/messages/link-no-children`\n )\n }\n throw new Error(\n `Multiple children were passed to with \\`href\\` of \\`${hrefProp}\\` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children` +\n (typeof window !== 'undefined'\n ? \" \\nOpen your browser's console to view the Component stack trace.\"\n : '')\n )\n }\n } else {\n child = React.Children.only(children)\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if ((children as any)?.type === 'a') {\n throw new Error(\n 'Invalid with child. Please remove or use .\\nLearn more: https://nextjs.org/docs/messages/invalid-new-link-with-extra-anchor'\n )\n }\n }\n }\n\n const childRef: any = legacyBehavior\n ? child && typeof child === 'object' && child.ref\n : forwardedRef\n\n // Use a callback ref to attach an IntersectionObserver to the anchor tag on\n // mount. In the future we will also use this to keep track of all the\n // currently mounted instances, e.g. so we can re-prefetch them after\n // a revalidation or refresh.\n const observeLinkVisibilityOnMount = React.useCallback(\n (element: HTMLAnchorElement | SVGAElement) => {\n if (router !== null) {\n linkInstanceRef.current = mountLinkInstance(\n element,\n href,\n router,\n appPrefetchKind,\n prefetchEnabled,\n setOptimisticLinkStatus\n )\n }\n\n return () => {\n if (linkInstanceRef.current) {\n unmountLinkForCurrentNavigation(linkInstanceRef.current)\n linkInstanceRef.current = null\n }\n unmountPrefetchableInstance(element)\n }\n },\n [prefetchEnabled, href, router, appPrefetchKind, setOptimisticLinkStatus]\n )\n\n const mergedRef = useMergedRef(observeLinkVisibilityOnMount, childRef)\n\n const childProps: {\n onTouchStart?: React.TouchEventHandler\n onMouseEnter: React.MouseEventHandler\n onClick: React.MouseEventHandler\n href?: string\n ref?: any\n } = {\n ref: mergedRef,\n onClick(e) {\n if (process.env.NODE_ENV !== 'production') {\n if (!e) {\n throw new Error(\n `Component rendered inside next/link has to pass click event to \"onClick\" prop.`\n )\n }\n }\n\n if (!legacyBehavior && typeof onClick === 'function') {\n onClick(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onClick === 'function'\n ) {\n child.props.onClick(e)\n }\n\n if (!router) {\n return\n }\n\n if (e.defaultPrevented) {\n return\n }\n\n linkClicked(e, href, as, linkInstanceRef, replace, scroll, onNavigate)\n },\n onMouseEnter(e) {\n if (!legacyBehavior && typeof onMouseEnterProp === 'function') {\n onMouseEnterProp(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onMouseEnter === 'function'\n ) {\n child.props.onMouseEnter(e)\n }\n\n if (!router) {\n return\n }\n\n if (!prefetchEnabled || process.env.NODE_ENV === 'development') {\n return\n }\n\n const upgradeToDynamicPrefetch = unstable_dynamicOnHover === true\n onNavigationIntent(\n e.currentTarget as HTMLAnchorElement | SVGAElement,\n upgradeToDynamicPrefetch\n )\n },\n onTouchStart: process.env.__NEXT_LINK_NO_TOUCH_START\n ? undefined\n : function onTouchStart(e) {\n if (!legacyBehavior && typeof onTouchStartProp === 'function') {\n onTouchStartProp(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onTouchStart === 'function'\n ) {\n child.props.onTouchStart(e)\n }\n\n if (!router) {\n return\n }\n\n if (!prefetchEnabled) {\n return\n }\n\n const upgradeToDynamicPrefetch = unstable_dynamicOnHover === true\n onNavigationIntent(\n e.currentTarget as HTMLAnchorElement | SVGAElement,\n upgradeToDynamicPrefetch\n )\n },\n }\n\n // If child is an tag and doesn't have a href attribute, or if the 'passHref' property is\n // defined, we specify the current 'href', so that repetition is not needed by the user.\n // If the url is absolute, we can bypass the logic to prepend the basePath.\n if (isAbsoluteUrl(as)) {\n childProps.href = as\n } else if (\n !legacyBehavior ||\n passHref ||\n (child.type === 'a' && !('href' in child.props))\n ) {\n childProps.href = addBasePath(as)\n }\n\n let link: React.ReactNode\n\n if (legacyBehavior) {\n if (process.env.NODE_ENV === 'development') {\n errorOnce(\n '`legacyBehavior` is deprecated and will be removed in a future ' +\n 'release. A codemod is available to upgrade your components:\\n\\n' +\n 'npx @next/codemod@latest new-link .\\n\\n' +\n 'Learn more: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#remove-a-tags-from-link-components'\n )\n }\n link = React.cloneElement(child, childProps)\n } else {\n link = (\n \n {children}\n \n )\n }\n\n return (\n \n {link}\n \n )\n}\n\nconst LinkStatusContext = createContext<\n typeof PENDING_LINK_STATUS | typeof IDLE_LINK_STATUS\n>(IDLE_LINK_STATUS)\n\nexport const useLinkStatus = () => {\n return useContext(LinkStatusContext)\n}\n","import React from 'react'\nimport type { ImageConfigComplete } from './image-config'\nimport { imageConfigDefault } from './image-config'\n\nexport const ImageConfigContext =\n React.createContext(imageConfigDefault)\n\nif (process.env.NODE_ENV !== 'production') {\n ImageConfigContext.displayName = 'ImageConfigContext'\n}\n","// Format function modified from nodejs\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport type { UrlObject } from 'url'\nimport type { ParsedUrlQuery } from 'querystring'\nimport * as querystring from './querystring'\n\nconst slashedProtocols = /https?|ftp|gopher|file/\n\nexport function formatUrl(urlObj: UrlObject) {\n let { auth, hostname } = urlObj\n let protocol = urlObj.protocol || ''\n let pathname = urlObj.pathname || ''\n let hash = urlObj.hash || ''\n let query = urlObj.query || ''\n let host: string | false = false\n\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : ''\n\n if (urlObj.host) {\n host = auth + urlObj.host\n } else if (hostname) {\n host = auth + (~hostname.indexOf(':') ? `[${hostname}]` : hostname)\n if (urlObj.port) {\n host += ':' + urlObj.port\n }\n }\n\n if (query && typeof query === 'object') {\n query = String(querystring.urlQueryToSearchParams(query as ParsedUrlQuery))\n }\n\n let search = urlObj.search || (query && `?${query}`) || ''\n\n if (protocol && !protocol.endsWith(':')) protocol += ':'\n\n if (\n urlObj.slashes ||\n ((!protocol || slashedProtocols.test(protocol)) && host !== false)\n ) {\n host = '//' + (host || '')\n if (pathname && pathname[0] !== '/') pathname = '/' + pathname\n } else if (!host) {\n host = ''\n }\n\n if (hash && hash[0] !== '#') hash = '#' + hash\n if (search && search[0] !== '?') search = '?' + search\n\n pathname = pathname.replace(/[?#]/g, encodeURIComponent)\n search = search.replace('#', '%23')\n\n return `${protocol}${host}${pathname}${search}${hash}`\n}\n\nexport const urlObjectKeys = [\n 'auth',\n 'hash',\n 'host',\n 'hostname',\n 'href',\n 'path',\n 'pathname',\n 'port',\n 'protocol',\n 'query',\n 'search',\n 'slashes',\n]\n\nexport function formatWithValidation(url: UrlObject): string {\n if (process.env.NODE_ENV === 'development') {\n if (url !== null && typeof url === 'object') {\n Object.keys(url).forEach((key) => {\n if (!urlObjectKeys.includes(key)) {\n console.warn(\n `Unknown key passed via urlObject into url.format: ${key}`\n )\n }\n })\n }\n }\n\n return formatUrl(url)\n}\n","'use client'\n\nimport React, { useContext, type JSX } from 'react'\nimport Effect from './side-effect'\nimport { AmpStateContext } from './amp-context.shared-runtime'\nimport { HeadManagerContext } from './head-manager-context.shared-runtime'\nimport { isInAmpMode } from './amp-mode'\nimport { warnOnce } from './utils/warn-once'\n\ntype WithInAmpMode = {\n inAmpMode?: boolean\n}\n\nexport function defaultHead(inAmpMode = false): JSX.Element[] {\n const head = []\n if (!inAmpMode) {\n head.push(\n \n )\n }\n return head\n}\n\nfunction onlyReactElement(\n list: Array>,\n child: React.ReactElement | number | string\n): Array> {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list\n }\n // Adds support for React.Fragment\n if (child.type === React.Fragment) {\n return list.concat(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n React.Children.toArray(child.props.children).reduce(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n (\n fragmentList: Array>,\n fragmentChild: React.ReactElement | number | string\n ): Array> => {\n if (\n typeof fragmentChild === 'string' ||\n typeof fragmentChild === 'number'\n ) {\n return fragmentList\n }\n return fragmentList.concat(fragmentChild)\n },\n []\n )\n )\n }\n return list.concat(child)\n}\n\nconst METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp']\n\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like \n Also adds support for deduplicated `key` properties\n*/\nfunction unique() {\n const keys = new Set()\n const tags = new Set()\n const metaTypes = new Set()\n const metaCategories: { [metatype: string]: Set<string> } = {}\n\n return (h: React.ReactElement<any>) => {\n let isUnique = true\n let hasKey = false\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true\n const key = h.key.slice(h.key.indexOf('$') + 1)\n if (keys.has(key)) {\n isUnique = false\n } else {\n keys.add(key)\n }\n }\n\n // eslint-disable-next-line default-case\n switch (h.type) {\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false\n } else {\n tags.add(h.type)\n }\n break\n case 'meta':\n for (let i = 0, len = METATYPES.length; i < len; i++) {\n const metatype = METATYPES[i]\n if (!h.props.hasOwnProperty(metatype)) continue\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false\n } else {\n metaTypes.add(metatype)\n }\n } else {\n const category = h.props[metatype]\n const categories = metaCategories[metatype] || new Set()\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false\n } else {\n categories.add(category)\n metaCategories[metatype] = categories\n }\n }\n }\n break\n }\n\n return isUnique\n }\n}\n\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */\nfunction reduceComponents<T extends {} & WithInAmpMode>(\n headChildrenElements: Array<React.ReactElement<any>>,\n props: T\n) {\n const { inAmpMode } = props\n return headChildrenElements\n .reduce(onlyReactElement, [])\n .reverse()\n .concat(defaultHead(inAmpMode).reverse())\n .filter(unique())\n .reverse()\n .map((c: React.ReactElement<any>, i: number) => {\n const key = c.key || i\n if (process.env.NODE_ENV === 'development') {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src']\n ? `<script> tag with src=\"${c.props['src']}\"`\n : `inline <script>`\n warnOnce(\n `Do not add <script> tags using next/head (see ${srcMessage}). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component`\n )\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n warnOnce(\n `Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"${c.props['href']}\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component`\n )\n }\n }\n return React.cloneElement(c, { key })\n })\n}\n\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */\nfunction Head({ children }: { children: React.ReactNode }) {\n const ampState = useContext(AmpStateContext)\n const headManager = useContext(HeadManagerContext)\n return (\n <Effect\n reduceComponentsToState={reduceComponents}\n headManager={headManager}\n inAmpMode={isInAmpMode(ampState)}\n >\n {children}\n </Effect>\n )\n}\n\nexport default Head\n","export const VALID_LOADERS = [\n 'default',\n 'imgix',\n 'cloudinary',\n 'akamai',\n 'custom',\n] as const\n\nexport type LoaderValue = (typeof VALID_LOADERS)[number]\n\nexport type ImageLoaderProps = {\n src: string\n width: number\n quality?: number\n}\n\nexport type ImageLoaderPropsWithConfig = ImageLoaderProps & {\n config: Readonly<ImageConfig>\n}\n\nexport type LocalPattern = {\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\nexport type RemotePattern = {\n /**\n * Must be `http` or `https`.\n */\n protocol?: 'http' | 'https'\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single subdomain.\n * Double `**` matches any number of subdomains.\n */\n hostname: string\n\n /**\n * Can be literal port such as `8080` or empty string\n * meaning no port.\n */\n port?: string\n\n /**\n * Can be literal or wildcard.\n * Single `*` matches a single path segment.\n * Double `**` matches any number of path segments.\n */\n pathname?: string\n\n /**\n * Can be literal query string such as `?v=1` or\n * empty string meaning no query string.\n */\n search?: string\n}\n\ntype ImageFormat = 'image/avif' | 'image/webp'\n\n/**\n * Image configurations\n *\n * @see [Image configuration options](https://nextjs.org/docs/api-reference/next/image#configuration-options)\n */\nexport type ImageConfigComplete = {\n /** @see [Device sizes documentation](https://nextjs.org/docs/api-reference/next/image#device-sizes) */\n deviceSizes: number[]\n\n /** @see [Image sizing documentation](https://nextjs.org/docs/app/building-your-application/optimizing/images#image-sizing) */\n imageSizes: number[]\n\n /** @see [Image loaders configuration](https://nextjs.org/docs/api-reference/next/legacy/image#loader) */\n loader: LoaderValue\n\n /** @see [Image loader configuration](https://nextjs.org/docs/api-reference/next/legacy/image#loader-configuration) */\n path: string\n\n /** @see [Image loader configuration](https://nextjs.org/docs/api-reference/next/image#loader-configuration) */\n loaderFile: string\n\n /**\n * @deprecated Use `remotePatterns` instead.\n */\n domains: string[]\n\n /** @see [Disable static image import configuration](https://nextjs.org/docs/api-reference/next/image#disable-static-imports) */\n disableStaticImages: boolean\n\n /** @see [Cache behavior](https://nextjs.org/docs/api-reference/next/image#caching-behavior) */\n minimumCacheTTL: number\n\n /** @see [Acceptable formats](https://nextjs.org/docs/api-reference/next/image#acceptable-formats) */\n formats: ImageFormat[]\n\n /** @see [Dangerously Allow SVG](https://nextjs.org/docs/api-reference/next/image#dangerously-allow-svg) */\n dangerouslyAllowSVG: boolean\n\n /** @see [Content Security Policy](https://nextjs.org/docs/api-reference/next/image#contentsecuritypolicy) */\n contentSecurityPolicy: string\n\n /** @see [Content Disposition Type](https://nextjs.org/docs/api-reference/next/image#contentdispositiontype) */\n contentDispositionType: 'inline' | 'attachment'\n\n /** @see [Remote Patterns](https://nextjs.org/docs/api-reference/next/image#remotepatterns) */\n remotePatterns: Array<URL | RemotePattern>\n\n /** @see [Local Patterns](https://nextjs.org/docs/api-reference/next/image#localPatterns) */\n localPatterns: LocalPattern[] | undefined\n\n /** @see [Qualities](https://nextjs.org/docs/api-reference/next/image#qualities) */\n qualities: number[] | undefined\n\n /** @see [Unoptimized](https://nextjs.org/docs/api-reference/next/image#unoptimized) */\n unoptimized: boolean\n}\n\nexport type ImageConfig = Partial<ImageConfigComplete>\n\nexport const imageConfigDefault: ImageConfigComplete = {\n deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],\n imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],\n path: '/_next/image',\n loader: 'default',\n loaderFile: '',\n domains: [],\n disableStaticImages: false,\n minimumCacheTTL: 60,\n formats: ['image/webp'],\n dangerouslyAllowSVG: false,\n contentSecurityPolicy: `script-src 'none'; frame-src 'none'; sandbox;`,\n contentDispositionType: 'attachment',\n localPatterns: undefined, // default: allow all local images\n remotePatterns: [], // default: allow no remote images\n qualities: undefined, // default: allow all qualities\n unoptimized: false,\n}\n","import type { ImageLoaderPropsWithConfig } from './image-config'\n\nconst DEFAULT_Q = 75\n\nfunction defaultLoader({\n config,\n src,\n width,\n quality,\n}: ImageLoaderPropsWithConfig): string {\n if (process.env.NODE_ENV !== 'production') {\n const missingValues = []\n\n // these should always be provided but make sure they are\n if (!src) missingValues.push('src')\n if (!width) missingValues.push('width')\n\n if (missingValues.length > 0) {\n throw new Error(\n `Next Image Optimization requires ${missingValues.join(\n ', '\n )} to be provided. Make sure you pass them as props to the \\`next/image\\` component. Received: ${JSON.stringify(\n { src, width, quality }\n )}`\n )\n }\n\n if (src.startsWith('//')) {\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)`\n )\n }\n\n if (src.startsWith('/') && config.localPatterns) {\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasLocalMatch } =\n require('./match-local-pattern') as typeof import('./match-local-pattern')\n if (!hasLocalMatch(config.localPatterns, src)) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\` does not match \\`images.localPatterns\\` configured in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`\n )\n }\n }\n }\n\n if (!src.startsWith('/') && (config.domains || config.remotePatterns)) {\n let parsedSrc: URL\n try {\n parsedSrc = new URL(src)\n } catch (err) {\n console.error(err)\n throw new Error(\n `Failed to parse src \"${src}\" on \\`next/image\\`, if using relative image it must start with a leading slash \"/\" or be an absolute URL (http:// or https://)`\n )\n }\n\n if (\n process.env.NODE_ENV !== 'test' &&\n // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== 'edge'\n ) {\n // We use dynamic require because this should only error in development\n const { hasRemoteMatch } =\n require('./match-remote-pattern') as typeof import('./match-remote-pattern')\n if (\n !hasRemoteMatch(config.domains!, config.remotePatterns!, parsedSrc)\n ) {\n throw new Error(\n `Invalid src prop (${src}) on \\`next/image\\`, hostname \"${parsedSrc.hostname}\" is not configured under images in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host`\n )\n }\n }\n }\n\n if (quality && config.qualities && !config.qualities.includes(quality)) {\n throw new Error(\n `Invalid quality prop (${quality}) on \\`next/image\\` does not match \\`images.qualities\\` configured in your \\`next.config.js\\`\\n` +\n `See more info: https://nextjs.org/docs/messages/next-image-unconfigured-qualities`\n )\n }\n }\n\n const q =\n quality ||\n config.qualities?.reduce((prev, cur) =>\n Math.abs(cur - DEFAULT_Q) < Math.abs(prev - DEFAULT_Q) ? cur : prev\n ) ||\n DEFAULT_Q\n\n return `${config.path}?url=${encodeURIComponent(src)}&w=${width}&q=${q}${\n src.startsWith('/_next/static/media/') && process.env.NEXT_DEPLOYMENT_ID\n ? `&dpl=${process.env.NEXT_DEPLOYMENT_ID}`\n : ''\n }`\n}\n\n// We use this to determine if the import is the default loader\n// or a custom loader defined by the user in next.config.js\ndefaultLoader.__next_img_default = true\n\nexport default defaultLoader\n","import type { ImageConfigComplete, ImageLoaderProps } from './image-config'\nimport type { ImageProps, ImageLoader, StaticImageData } from './get-img-props'\n\nimport { getImgProps } from './get-img-props'\nimport { Image } from '../../client/image-component'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\n\n/**\n * For more advanced use cases, you can call `getImageProps()`\n * to get the props that would be passed to the underlying `<img>` element,\n * and instead pass to them to another component, style, canvas, etc.\n *\n * Read more: [Next.js docs: `getImageProps`](https://nextjs.org/docs/app/api-reference/components/image#getimageprops)\n */\nexport function getImageProps(imgProps: ImageProps) {\n const { props } = getImgProps(imgProps, {\n defaultLoader,\n // This is replaced by webpack define plugin\n imgConf: process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete,\n })\n // Normally we don't care about undefined props because we pass to JSX,\n // but this exported function could be used by the end user for anything\n // so we delete undefined props to clean it up a little.\n for (const [key, value] of Object.entries(props)) {\n if (value === undefined) {\n delete props[key as keyof typeof props]\n }\n }\n return { props }\n}\n\nexport default Image\n\nexport type { ImageProps, ImageLoaderProps, ImageLoader, StaticImageData }\n","import React from 'react'\n\nexport const AmpStateContext: React.Context<any> = React.createContext({})\n\nif (process.env.NODE_ENV !== 'production') {\n AmpStateContext.displayName = 'AmpStateContext'\n}\n","import type { HtmlProps } from './html-context.shared-runtime'\nimport type { ComponentType, JSX } from 'react'\nimport type { DomainLocale } from '../../server/config'\nimport type { Env } from '@next/env'\nimport type { IncomingMessage, ServerResponse } from 'http'\nimport type { NextRouter } from './router/router'\nimport type { ParsedUrlQuery } from 'querystring'\nimport type { PreviewData } from '../../types'\nimport type { COMPILER_NAMES } from './constants'\nimport type fs from 'fs'\n\nexport type NextComponentType<\n Context extends BaseContext = NextPageContext,\n InitialProps = {},\n Props = {},\n> = ComponentType<Props> & {\n /**\n * Used for initial page load data population. Data returned from `getInitialProps` is serialized when server rendered.\n * Make sure to return plain `Object` without using `Date`, `Map`, `Set`.\n * @param context Context of `page`\n */\n getInitialProps?(context: Context): InitialProps | Promise<InitialProps>\n}\n\nexport type DocumentType = NextComponentType<\n DocumentContext,\n DocumentInitialProps,\n DocumentProps\n>\n\nexport type AppType<P = {}> = NextComponentType<\n AppContextType,\n P,\n AppPropsType<any, P>\n>\n\nexport type AppTreeType = ComponentType<\n AppInitialProps & { [name: string]: any }\n>\n\n/**\n * Web vitals provided to _app.reportWebVitals by Core Web Vitals plugin developed by Google Chrome team.\n * https://nextjs.org/blog/next-9-4#integrated-web-vitals-reporting\n */\nexport const WEB_VITALS = ['CLS', 'FCP', 'FID', 'INP', 'LCP', 'TTFB'] as const\nexport type NextWebVitalsMetric = {\n id: string\n startTime: number\n value: number\n attribution?: { [key: string]: unknown }\n} & (\n | {\n label: 'web-vital'\n name: (typeof WEB_VITALS)[number]\n }\n | {\n label: 'custom'\n name:\n | 'Next.js-hydration'\n | 'Next.js-route-change-to-render'\n | 'Next.js-render'\n }\n)\n\nexport type Enhancer<C> = (Component: C) => C\n\nexport type ComponentsEnhancer =\n | {\n enhanceApp?: Enhancer<AppType>\n enhanceComponent?: Enhancer<NextComponentType>\n }\n | Enhancer<NextComponentType>\n\nexport type RenderPageResult = {\n html: string\n head?: Array<JSX.Element | null>\n}\n\nexport type RenderPage = (\n options?: ComponentsEnhancer\n) => DocumentInitialProps | Promise<DocumentInitialProps>\n\nexport type BaseContext = {\n res?: ServerResponse\n [k: string]: any\n}\n\nexport type NEXT_DATA = {\n props: Record<string, any>\n page: string\n query: ParsedUrlQuery\n buildId: string\n assetPrefix?: string\n runtimeConfig?: { [key: string]: any }\n nextExport?: boolean\n autoExport?: boolean\n isFallback?: boolean\n isExperimentalCompile?: boolean\n dynamicIds?: (string | number)[]\n err?: Error & {\n statusCode?: number\n source?: typeof COMPILER_NAMES.server | typeof COMPILER_NAMES.edgeServer\n }\n gsp?: boolean\n gssp?: boolean\n customServer?: boolean\n gip?: boolean\n appGip?: boolean\n locale?: string\n locales?: readonly string[]\n defaultLocale?: string\n domainLocales?: readonly DomainLocale[]\n scriptLoader?: any[]\n isPreview?: boolean\n notFoundSrcPage?: string\n}\n\n/**\n * `Next` context\n */\nexport interface NextPageContext {\n /**\n * Error object if encountered during rendering\n */\n err?: (Error & { statusCode?: number }) | null\n /**\n * `HTTP` request object.\n */\n req?: IncomingMessage\n /**\n * `HTTP` response object.\n */\n res?: ServerResponse\n /**\n * Path section of `URL`.\n */\n pathname: string\n /**\n * Query string section of `URL` parsed as an object.\n */\n query: ParsedUrlQuery\n /**\n * `String` of the actual path including query.\n */\n asPath?: string\n /**\n * The currently active locale\n */\n locale?: string\n /**\n * All configured locales\n */\n locales?: readonly string[]\n /**\n * The configured default locale\n */\n defaultLocale?: string\n /**\n * `Component` the tree of the App to use if needing to render separately\n */\n AppTree: AppTreeType\n}\n\nexport type AppContextType<Router extends NextRouter = NextRouter> = {\n Component: NextComponentType<NextPageContext>\n AppTree: AppTreeType\n ctx: NextPageContext\n router: Router\n}\n\nexport type AppInitialProps<PageProps = any> = {\n pageProps: PageProps\n}\n\nexport type AppPropsType<\n Router extends NextRouter = NextRouter,\n PageProps = {},\n> = AppInitialProps<PageProps> & {\n Component: NextComponentType<NextPageContext, any, any>\n router: Router\n __N_SSG?: boolean\n __N_SSP?: boolean\n}\n\nexport type DocumentContext = NextPageContext & {\n renderPage: RenderPage\n defaultGetInitialProps(\n ctx: DocumentContext,\n options?: { nonce?: string }\n ): Promise<DocumentInitialProps>\n}\n\nexport type DocumentInitialProps = RenderPageResult & {\n styles?: React.ReactElement[] | Iterable<React.ReactNode> | JSX.Element\n}\n\nexport type DocumentProps = DocumentInitialProps & HtmlProps\n\n/**\n * Next `API` route request\n */\nexport interface NextApiRequest extends IncomingMessage {\n /**\n * Object of `query` values from url\n */\n query: Partial<{\n [key: string]: string | string[]\n }>\n /**\n * Object of `cookies` from header\n */\n cookies: Partial<{\n [key: string]: string\n }>\n\n body: any\n\n env: Env\n\n draftMode?: boolean\n\n preview?: boolean\n /**\n * Preview data set on the request, if any\n * */\n previewData?: PreviewData\n}\n\n/**\n * Send body of response\n */\ntype Send<T> = (body: T) => void\n\n/**\n * Next `API` route response\n */\nexport type NextApiResponse<Data = any> = ServerResponse & {\n /**\n * Send data `any` data in response\n */\n send: Send<Data>\n /**\n * Send data `json` data in response\n */\n json: Send<Data>\n status: (statusCode: number) => NextApiResponse<Data>\n redirect(url: string): NextApiResponse<Data>\n redirect(status: number, url: string): NextApiResponse<Data>\n\n /**\n * Set draft mode\n */\n setDraftMode: (options: { enable: boolean }) => NextApiResponse<Data>\n\n /**\n * Set preview data for Next.js' prerender mode\n */\n setPreviewData: (\n data: object | string,\n options?: {\n /**\n * Specifies the number (in seconds) for the preview session to last for.\n * The given number will be converted to an integer by rounding down.\n * By default, no maximum age is set and the preview session finishes\n * when the client shuts down (browser is closed).\n */\n maxAge?: number\n /**\n * Specifies the path for the preview session to work under. By default,\n * the path is considered the \"default path\", i.e., any pages under \"/\".\n */\n path?: string\n }\n ) => NextApiResponse<Data>\n\n /**\n * Clear preview data for Next.js' prerender mode\n */\n clearPreviewData: (options?: { path?: string }) => NextApiResponse<Data>\n\n /**\n * Revalidate a specific page and regenerate it using On-Demand Incremental\n * Static Regeneration.\n * The path should be an actual path, not a rewritten path. E.g. for\n * \"/blog/[slug]\" this should be \"/blog/post-1\".\n * @link https://nextjs.org/docs/app/building-your-application/data-fetching/incremental-static-regeneration#on-demand-revalidation-with-revalidatepath\n */\n revalidate: (\n urlPath: string,\n opts?: {\n unstable_onlyGenerated?: boolean\n }\n ) => Promise<void>\n}\n\n/**\n * Next `API` route handler\n */\nexport type NextApiHandler<T = any> = (\n req: NextApiRequest,\n res: NextApiResponse<T>\n) => unknown | Promise<unknown>\n\n/**\n * Utils\n */\nexport function execOnce<T extends (...args: any[]) => ReturnType<T>>(\n fn: T\n): T {\n let used = false\n let result: ReturnType<T>\n\n return ((...args: any[]) => {\n if (!used) {\n used = true\n result = fn(...args)\n }\n return result\n }) as T\n}\n\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/\nexport const isAbsoluteUrl = (url: string) => ABSOLUTE_URL_REGEX.test(url)\n\nexport function getLocationOrigin() {\n const { protocol, hostname, port } = window.location\n return `${protocol}//${hostname}${port ? ':' + port : ''}`\n}\n\nexport function getURL() {\n const { href } = window.location\n const origin = getLocationOrigin()\n return href.substring(origin.length)\n}\n\nexport function getDisplayName<P>(Component: ComponentType<P>) {\n return typeof Component === 'string'\n ? Component\n : Component.displayName || Component.name || 'Unknown'\n}\n\nexport function isResSent(res: ServerResponse) {\n return res.finished || res.headersSent\n}\n\nexport function normalizeRepeatedSlashes(url: string) {\n const urlParts = url.split('?')\n const urlNoQuery = urlParts[0]\n\n return (\n urlNoQuery\n // first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, '/')\n .replace(/\\/\\/+/g, '/') +\n (urlParts[1] ? `?${urlParts.slice(1).join('?')}` : '')\n )\n}\n\nexport async function loadGetInitialProps<\n C extends BaseContext,\n IP = {},\n P = {},\n>(App: NextComponentType<C, IP, P>, ctx: C): Promise<IP> {\n if (process.env.NODE_ENV !== 'production') {\n if (App.prototype?.getInitialProps) {\n const message = `\"${getDisplayName(\n App\n )}.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.`\n throw new Error(message)\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || (ctx.ctx && ctx.ctx.res)\n\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx),\n }\n }\n return {} as IP\n }\n\n const props = await App.getInitialProps(ctx)\n\n if (res && isResSent(res)) {\n return props\n }\n\n if (!props) {\n const message = `\"${getDisplayName(\n App\n )}.getInitialProps()\" should resolve to an object. But found \"${props}\" instead.`\n throw new Error(message)\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\n `${getDisplayName(\n App\n )} returned an empty object from \\`getInitialProps\\`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps`\n )\n }\n }\n\n return props\n}\n\nexport const SP = typeof performance !== 'undefined'\nexport const ST =\n SP &&\n (['mark', 'measure', 'getEntriesByName'] as const).every(\n (method) => typeof performance[method] === 'function'\n )\n\nexport class DecodeError extends Error {}\nexport class NormalizeError extends Error {}\nexport class PageNotFoundError extends Error {\n code: string\n\n constructor(page: string) {\n super()\n this.code = 'ENOENT'\n this.name = 'PageNotFoundError'\n this.message = `Cannot find module for page: ${page}`\n }\n}\n\nexport class MissingStaticPage extends Error {\n constructor(page: string, message: string) {\n super()\n this.message = `Failed to load static file for page: ${page} ${message}`\n }\n}\n\nexport class MiddlewareNotFoundError extends Error {\n code: string\n constructor() {\n super()\n this.code = 'ENOENT'\n this.message = `Cannot find the middleware module`\n }\n}\n\nexport interface CacheFs {\n existsSync: typeof fs.existsSync\n readFile: typeof fs.promises.readFile\n readFileSync: typeof fs.readFileSync\n writeFile(f: string, d: any): Promise<void>\n mkdir(dir: string): Promise<void | string>\n stat(f: string): Promise<{ mtime: Date }>\n}\n\nexport function stringifyError(error: Error) {\n return JSON.stringify({ message: error.message, stack: error.stack })\n}\n","import { isAbsoluteUrl, getLocationOrigin } from '../../utils'\nimport { hasBasePath } from '../../../../client/has-base-path'\n\n/**\n * Detects whether a given url is routable by the Next.js router (browser only).\n */\nexport function isLocalURL(url: string): boolean {\n // prevent a hydration mismatch on href for url with anchor refs\n if (!isAbsoluteUrl(url)) return true\n try {\n // absolute urls can be local if they are on the same origin\n const locationOrigin = getLocationOrigin()\n const resolved = new URL(url, locationOrigin)\n return resolved.origin === locationOrigin && hasBasePath(resolved.pathname)\n } catch (_) {\n return false\n }\n}\n","/**\n * A shared function, used on both client and server, to generate a SVG blur placeholder.\n */\nexport function getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL,\n objectFit,\n}: {\n widthInt?: number\n heightInt?: number\n blurWidth?: number\n blurHeight?: number\n blurDataURL: string\n objectFit?: string\n}): string {\n const std = 20\n const svgWidth = blurWidth ? blurWidth * 40 : widthInt\n const svgHeight = blurHeight ? blurHeight * 40 : heightInt\n\n const viewBox =\n svgWidth && svgHeight ? `viewBox='0 0 ${svgWidth} ${svgHeight}'` : ''\n const preserveAspectRatio = viewBox\n ? 'none'\n : objectFit === 'contain'\n ? 'xMidYMid'\n : objectFit === 'cover'\n ? 'xMidYMid slice'\n : 'none'\n\n return `%3Csvg xmlns='http://www.w3.org/2000/svg' ${viewBox}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${preserveAspectRatio}' style='filter: url(%23b);' href='${blurDataURL}'/%3E%3C/svg%3E`\n}\n","import type { ParsedUrlQuery } from 'querystring'\n\nexport function searchParamsToUrlQuery(\n searchParams: URLSearchParams\n): ParsedUrlQuery {\n const query: ParsedUrlQuery = {}\n for (const [key, value] of searchParams.entries()) {\n const existing = query[key]\n if (typeof existing === 'undefined') {\n query[key] = value\n } else if (Array.isArray(existing)) {\n existing.push(value)\n } else {\n query[key] = [existing, value]\n }\n }\n return query\n}\n\nfunction stringifyUrlQueryParam(param: unknown): string {\n if (typeof param === 'string') {\n return param\n }\n\n if (\n (typeof param === 'number' && !isNaN(param)) ||\n typeof param === 'boolean'\n ) {\n return String(param)\n } else {\n return ''\n }\n}\n\nexport function urlQueryToSearchParams(query: ParsedUrlQuery): URLSearchParams {\n const searchParams = new URLSearchParams()\n for (const [key, value] of Object.entries(query)) {\n if (Array.isArray(value)) {\n for (const item of value) {\n searchParams.append(key, stringifyUrlQueryParam(item))\n }\n } else {\n searchParams.set(key, stringifyUrlQueryParam(value))\n }\n }\n return searchParams\n}\n\nexport function assign(\n target: URLSearchParams,\n ...searchParamsList: URLSearchParams[]\n): URLSearchParams {\n for (const searchParams of searchParamsList) {\n for (const key of searchParams.keys()) {\n target.delete(key)\n }\n\n for (const [key, value] of searchParams.entries()) {\n target.append(key, value)\n }\n }\n\n return target\n}\n","import { useCallback, useRef, type Ref } from 'react'\n\n// This is a compatibility hook to support React 18 and 19 refs.\n// In 19, a cleanup function from refs may be returned.\n// In 18, returning a cleanup function creates a warning.\n// Since we take userspace refs, we don't know ahead of time if a cleanup function will be returned.\n// This implements cleanup functions with the old behavior in 18.\n// We know refs are always called alternating with `null` and then `T`.\n// So a call with `null` means we need to call the previous cleanup functions.\nexport function useMergedRef<TElement>(\n refA: Ref<TElement>,\n refB: Ref<TElement>\n): Ref<TElement> {\n const cleanupA = useRef<(() => void) | null>(null)\n const cleanupB = useRef<(() => void) | null>(null)\n\n // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.\n // (this happens often if the user doesn't pass a ref to Link/Form/Image)\n // But this can cause us to leak a cleanup-ref into user code (e.g. via `<Link legacyBehavior>`),\n // and the user might pass that ref into ref-merging library that doesn't support cleanup refs\n // (because it hasn't been updated for React 19)\n // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.\n // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.\n return useCallback(\n (current: TElement | null): void => {\n if (current === null) {\n const cleanupFnA = cleanupA.current\n if (cleanupFnA) {\n cleanupA.current = null\n cleanupFnA()\n }\n const cleanupFnB = cleanupB.current\n if (cleanupFnB) {\n cleanupB.current = null\n cleanupFnB()\n }\n } else {\n if (refA) {\n cleanupA.current = applyRef(refA, current)\n }\n if (refB) {\n cleanupB.current = applyRef(refB, current)\n }\n }\n },\n [refA, refB]\n )\n}\n\nfunction applyRef<TElement>(\n refA: NonNullable<Ref<TElement>>,\n current: TElement\n) {\n if (typeof refA === 'function') {\n const cleanup = refA(current)\n if (typeof cleanup === 'function') {\n return cleanup\n } else {\n return () => refA(null)\n }\n } else {\n refA.current = current\n return () => {\n refA.current = null\n }\n }\n}\n","import { warnOnce } from './utils/warn-once'\nimport { getImageBlurSvg } from './image-blur-svg'\nimport { imageConfigDefault } from './image-config'\nimport type {\n ImageConfigComplete,\n ImageLoaderProps,\n ImageLoaderPropsWithConfig,\n} from './image-config'\n\nimport type { CSSProperties, JSX } from 'react'\n\nexport interface StaticImageData {\n src: string\n height: number\n width: number\n blurDataURL?: string\n blurWidth?: number\n blurHeight?: number\n}\n\nexport interface StaticRequire {\n default: StaticImageData\n}\n\nexport type StaticImport = StaticRequire | StaticImageData\n\nexport type ImageProps = Omit<\n JSX.IntrinsicElements['img'],\n 'src' | 'srcSet' | 'ref' | 'alt' | 'width' | 'height' | 'loading'\n> & {\n src: string | StaticImport\n alt: string\n width?: number | `${number}`\n height?: number | `${number}`\n fill?: boolean\n loader?: ImageLoader\n quality?: number | `${number}`\n priority?: boolean\n loading?: LoadingValue\n placeholder?: PlaceholderValue\n blurDataURL?: string\n unoptimized?: boolean\n overrideSrc?: string\n /**\n * @deprecated Use `onLoad` instead.\n * @see https://nextjs.org/docs/app/api-reference/components/image#onload\n */\n onLoadingComplete?: OnLoadingComplete\n /**\n * @deprecated Use `fill` prop instead of `layout=\"fill\"` or change import to `next/legacy/image`.\n * @see https://nextjs.org/docs/api-reference/next/legacy/image\n */\n layout?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectFit?: string\n /**\n * @deprecated Use `style` prop instead.\n */\n objectPosition?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyBoundary?: string\n /**\n * @deprecated This prop does not do anything.\n */\n lazyRoot?: string\n}\n\nexport type ImgProps = Omit<ImageProps, 'src' | 'loader'> & {\n loading: LoadingValue\n width: number | undefined\n height: number | undefined\n style: NonNullable<JSX.IntrinsicElements['img']['style']>\n sizes: string | undefined\n srcSet: string | undefined\n src: string\n}\n\nconst VALID_LOADING_VALUES = ['lazy', 'eager', undefined] as const\n\n// Object-fit values that are not valid background-size values\nconst INVALID_BACKGROUND_SIZE_VALUES = [\n '-moz-initial',\n 'fill',\n 'none',\n 'scale-down',\n undefined,\n]\ntype LoadingValue = (typeof VALID_LOADING_VALUES)[number]\ntype ImageConfig = ImageConfigComplete & {\n allSizes: number[]\n output?: 'standalone' | 'export'\n}\n\nexport type ImageLoader = (p: ImageLoaderProps) => string\n\n// Do not export - this is an internal type only\n// because `next.config.js` is only meant for the\n// built-in loaders, not for a custom loader() prop.\ntype ImageLoaderWithConfig = (p: ImageLoaderPropsWithConfig) => string\n\nexport type PlaceholderValue = 'blur' | 'empty' | `data:image/${string}`\nexport type OnLoad = React.ReactEventHandler<HTMLImageElement> | undefined\nexport type OnLoadingComplete = (img: HTMLImageElement) => void\n\nexport type PlaceholderStyle = Partial<\n Pick<\n CSSProperties,\n | 'backgroundSize'\n | 'backgroundPosition'\n | 'backgroundRepeat'\n | 'backgroundImage'\n >\n>\n\nfunction isStaticRequire(\n src: StaticRequire | StaticImageData\n): src is StaticRequire {\n return (src as StaticRequire).default !== undefined\n}\n\nfunction isStaticImageData(\n src: StaticRequire | StaticImageData\n): src is StaticImageData {\n return (src as StaticImageData).src !== undefined\n}\n\nfunction isStaticImport(src: string | StaticImport): src is StaticImport {\n return (\n !!src &&\n typeof src === 'object' &&\n (isStaticRequire(src as StaticImport) ||\n isStaticImageData(src as StaticImport))\n )\n}\n\nconst allImgs = new Map<\n string,\n { src: string; priority: boolean; placeholder: PlaceholderValue }\n>()\nlet perfObserver: PerformanceObserver | undefined\n\nfunction getInt(x: unknown): number | undefined {\n if (typeof x === 'undefined') {\n return x\n }\n if (typeof x === 'number') {\n return Number.isFinite(x) ? x : NaN\n }\n if (typeof x === 'string' && /^[0-9]+$/.test(x)) {\n return parseInt(x, 10)\n }\n return NaN\n}\n\nfunction getWidths(\n { deviceSizes, allSizes }: ImageConfig,\n width: number | undefined,\n sizes: string | undefined\n): { widths: number[]; kind: 'w' | 'x' } {\n if (sizes) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g\n const percentSizes = []\n for (let match; (match = viewportWidthRe.exec(sizes)); match) {\n percentSizes.push(parseInt(match[2]))\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01\n return {\n widths: allSizes.filter((s) => s >= deviceSizes[0] * smallestRatio),\n kind: 'w',\n }\n }\n return { widths: allSizes, kind: 'w' }\n }\n if (typeof width !== 'number') {\n return { widths: deviceSizes, kind: 'w' }\n }\n\n const widths = [\n ...new Set(\n // > This means that most OLED screens that say they are 3x resolution,\n // > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [width, width * 2 /*, width * 3*/].map(\n (w) => allSizes.find((p) => p >= w) || allSizes[allSizes.length - 1]\n )\n ),\n ]\n return { widths, kind: 'x' }\n}\n\ntype GenImgAttrsData = {\n config: ImageConfig\n src: string\n unoptimized: boolean\n loader: ImageLoaderWithConfig\n width?: number\n quality?: number\n sizes?: string\n}\n\ntype GenImgAttrsResult = {\n src: string\n srcSet: string | undefined\n sizes: string | undefined\n}\n\nfunction generateImgAttrs({\n config,\n src,\n unoptimized,\n width,\n quality,\n sizes,\n loader,\n}: GenImgAttrsData): GenImgAttrsResult {\n if (unoptimized) {\n return { src, srcSet: undefined, sizes: undefined }\n }\n\n const { widths, kind } = getWidths(config, width, sizes)\n const last = widths.length - 1\n\n return {\n sizes: !sizes && kind === 'w' ? '100vw' : sizes,\n srcSet: widths\n .map(\n (w, i) =>\n `${loader({ config, src, quality, width: w })} ${\n kind === 'w' ? w : i + 1\n }${kind}`\n )\n .join(', '),\n\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({ config, src, quality, width: widths[last] }),\n }\n}\n\n/**\n * A shared function, used on both client and server, to generate the props for <img>.\n */\nexport function getImgProps(\n {\n src,\n sizes,\n unoptimized = false,\n priority = false,\n loading,\n className,\n quality,\n width,\n height,\n fill = false,\n style,\n overrideSrc,\n onLoad,\n onLoadingComplete,\n placeholder = 'empty',\n blurDataURL,\n fetchPriority,\n decoding = 'async',\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n ...rest\n }: ImageProps,\n _state: {\n defaultLoader: ImageLoaderWithConfig\n imgConf: ImageConfigComplete\n showAltText?: boolean\n blurComplete?: boolean\n }\n): {\n props: ImgProps\n meta: {\n unoptimized: boolean\n priority: boolean\n placeholder: NonNullable<ImageProps['placeholder']>\n fill: boolean\n }\n} {\n const { imgConf, showAltText, blurComplete, defaultLoader } = _state\n let config: ImageConfig\n let c = imgConf || imageConfigDefault\n if ('allSizes' in c) {\n config = c as ImageConfig\n } else {\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b)\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b)\n const qualities = c.qualities?.sort((a, b) => a - b)\n config = { ...c, allSizes, deviceSizes, qualities }\n }\n\n if (typeof defaultLoader === 'undefined') {\n throw new Error(\n 'images.loaderFile detected but the file is missing default export.\\nRead more: https://nextjs.org/docs/messages/invalid-images-config'\n )\n }\n let loader: ImageLoaderWithConfig = rest.loader || defaultLoader\n\n // Remove property so it's not spread on <img> element\n delete rest.loader\n delete (rest as any).srcSet\n\n // This special value indicates that the user\n // didn't define a \"loader\" prop or \"loader\" config.\n const isDefaultLoader = '__next_img_default' in loader\n\n if (isDefaultLoader) {\n if (config.loader === 'custom') {\n throw new Error(\n `Image with src \"${src}\" is missing \"loader\" prop.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader`\n )\n }\n } else {\n // The user defined a \"loader\" prop or config.\n // Since the config object is internal only, we\n // must not pass it to the user-defined \"loader\".\n const customImageLoader = loader as ImageLoader\n loader = (obj) => {\n const { config: _, ...opts } = obj\n return customImageLoader(opts)\n }\n }\n\n if (layout) {\n if (layout === 'fill') {\n fill = true\n }\n const layoutToStyle: Record<string, Record<string, string> | undefined> = {\n intrinsic: { maxWidth: '100%', height: 'auto' },\n responsive: { width: '100%', height: 'auto' },\n }\n const layoutToSizes: Record<string, string | undefined> = {\n responsive: '100vw',\n fill: '100vw',\n }\n const layoutStyle = layoutToStyle[layout]\n if (layoutStyle) {\n style = { ...style, ...layoutStyle }\n }\n const layoutSizes = layoutToSizes[layout]\n if (layoutSizes && !sizes) {\n sizes = layoutSizes\n }\n }\n\n let staticSrc = ''\n let widthInt = getInt(width)\n let heightInt = getInt(height)\n let blurWidth: number | undefined\n let blurHeight: number | undefined\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src\n\n if (!staticImageData.src) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(\n staticImageData\n )}`\n )\n }\n\n blurWidth = staticImageData.blurWidth\n blurHeight = staticImageData.blurHeight\n blurDataURL = blurDataURL || staticImageData.blurDataURL\n staticSrc = staticImageData.src\n\n if (!fill) {\n if (!widthInt && !heightInt) {\n widthInt = staticImageData.width\n heightInt = staticImageData.height\n } else if (widthInt && !heightInt) {\n const ratio = widthInt / staticImageData.width\n heightInt = Math.round(staticImageData.height * ratio)\n } else if (!widthInt && heightInt) {\n const ratio = heightInt / staticImageData.height\n widthInt = Math.round(staticImageData.width * ratio)\n }\n }\n }\n src = typeof src === 'string' ? src : staticSrc\n\n let isLazy =\n !priority && (loading === 'lazy' || typeof loading === 'undefined')\n if (!src || src.startsWith('data:') || src.startsWith('blob:')) {\n // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true\n isLazy = false\n }\n if (config.unoptimized) {\n unoptimized = true\n }\n if (\n isDefaultLoader &&\n !config.dangerouslyAllowSVG &&\n src.split('?', 1)[0].endsWith('.svg')\n ) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n unoptimized = true\n }\n\n const qualityInt = getInt(quality)\n\n if (process.env.NODE_ENV !== 'production') {\n if (config.output === 'export' && isDefaultLoader && !unoptimized) {\n throw new Error(\n `Image Optimization using the default loader is not compatible with \\`{ output: 'export' }\\`.\n Possible solutions:\n - Remove \\`{ output: 'export' }\\` and run \"next start\" to run server mode including the Image Optimization API.\n - Configure \\`{ images: { unoptimized: true } }\\` in \\`next.config.js\\` to disable the Image Optimization API.\n Read more: https://nextjs.org/docs/messages/export-image-api`\n )\n }\n if (!src) {\n // React doesn't show the stack trace and there's\n // no `src` to help identify which image, so we\n // instead console.error(ref) during mount.\n unoptimized = true\n } else {\n if (fill) {\n if (width) {\n throw new Error(\n `Image with src \"${src}\" has both \"width\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (height) {\n throw new Error(\n `Image with src \"${src}\" has both \"height\" and \"fill\" properties. Only one should be used.`\n )\n }\n if (style?.position && style.position !== 'absolute') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.position\" properties. Images with \"fill\" always use position absolute - it cannot be modified.`\n )\n }\n if (style?.width && style.width !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.width\" properties. Images with \"fill\" always use width 100% - it cannot be modified.`\n )\n }\n if (style?.height && style.height !== '100%') {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.height\" properties. Images with \"fill\" always use height 100% - it cannot be modified.`\n )\n }\n } else {\n if (typeof widthInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"width\" property.`\n )\n } else if (isNaN(widthInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"width\" property. Expected a numeric value in pixels but received \"${width}\".`\n )\n }\n if (typeof heightInt === 'undefined') {\n throw new Error(\n `Image with src \"${src}\" is missing required \"height\" property.`\n )\n } else if (isNaN(heightInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"height\" property. Expected a numeric value in pixels but received \"${height}\".`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/^[\\x00-\\x20]/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot start with a space or control character. Use src.trimStart() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n // eslint-disable-next-line no-control-regex\n if (/[\\x00-\\x20]$/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot end with a space or control character. Use src.trimEnd() to remove it or encodeURIComponent(src) to keep it.`\n )\n }\n }\n }\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"loading\" property. Provided \"${loading}\" should be one of ${VALID_LOADING_VALUES.map(\n String\n ).join(',')}.`\n )\n }\n if (priority && loading === 'lazy') {\n throw new Error(\n `Image with src \"${src}\" has both \"priority\" and \"loading='lazy'\" properties. Only one should be used.`\n )\n }\n if (\n placeholder !== 'empty' &&\n placeholder !== 'blur' &&\n !placeholder.startsWith('data:image/')\n ) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"placeholder\" property \"${placeholder}\".`\n )\n }\n if (placeholder !== 'empty') {\n if (widthInt && heightInt && widthInt * heightInt < 1600) {\n warnOnce(\n `Image with src \"${src}\" is smaller than 40x40. Consider removing the \"placeholder\" property to improve performance.`\n )\n }\n }\n if (placeholder === 'blur' && !blurDataURL) {\n const VALID_BLUR_EXT = ['jpeg', 'png', 'webp', 'avif'] // should match next-image-loader\n\n throw new Error(\n `Image with src \"${src}\" has \"placeholder='blur'\" property but is missing the \"blurDataURL\" property.\n Possible solutions:\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\n - Change the \"src\" property to a static import with one of the supported file types: ${VALID_BLUR_EXT.join(\n ','\n )} (animated images not supported)\n - Remove the \"placeholder\" property, effectively no blur effect\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url`\n )\n }\n if ('ref' in rest) {\n warnOnce(\n `Image with src \"${src}\" is using unsupported \"ref\" property. Consider using the \"onLoad\" property instead.`\n )\n }\n\n if (!unoptimized && !isDefaultLoader) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75,\n })\n let url: URL | undefined\n try {\n url = new URL(urlStr)\n } catch (err) {}\n if (urlStr === src || (url && url.pathname === src && !url.search)) {\n warnOnce(\n `Image with src \"${src}\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width`\n )\n }\n }\n\n if (onLoadingComplete) {\n warnOnce(\n `Image with src \"${src}\" is using deprecated \"onLoadingComplete\" property. Please use the \"onLoad\" property instead.`\n )\n }\n\n for (const [legacyKey, legacyValue] of Object.entries({\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot,\n })) {\n if (legacyValue) {\n warnOnce(\n `Image with src \"${src}\" has legacy prop \"${legacyKey}\". Did you forget to run the codemod?` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-upgrade-to-13`\n )\n }\n }\n\n if (\n typeof window !== 'undefined' &&\n !perfObserver &&\n window.PerformanceObserver\n ) {\n perfObserver = new PerformanceObserver((entryList) => {\n for (const entry of entryList.getEntries()) {\n // @ts-ignore - missing \"LargestContentfulPaint\" class with \"element\" prop\n const imgSrc = entry?.element?.src || ''\n const lcpImage = allImgs.get(imgSrc)\n if (\n lcpImage &&\n !lcpImage.priority &&\n lcpImage.placeholder === 'empty' &&\n !lcpImage.src.startsWith('data:') &&\n !lcpImage.src.startsWith('blob:')\n ) {\n // https://web.dev/lcp/#measure-lcp-in-javascript\n warnOnce(\n `Image with src \"${lcpImage.src}\" was detected as the Largest Contentful Paint (LCP). Please add the \"priority\" property if this image is above the fold.` +\n `\\nRead more: https://nextjs.org/docs/api-reference/next/image#priority`\n )\n }\n }\n })\n try {\n perfObserver.observe({\n type: 'largest-contentful-paint',\n buffered: true,\n })\n } catch (err) {\n // Log error but don't crash the app\n console.error(err)\n }\n }\n }\n const imgStyle = Object.assign(\n fill\n ? {\n position: 'absolute',\n height: '100%',\n width: '100%',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n objectFit,\n objectPosition,\n }\n : {},\n showAltText ? {} : { color: 'transparent' },\n style\n )\n\n const backgroundImage =\n !blurComplete && placeholder !== 'empty'\n ? placeholder === 'blur'\n ? `url(\"data:image/svg+xml;charset=utf-8,${getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL: blurDataURL || '', // assume not undefined\n objectFit: imgStyle.objectFit,\n })}\")`\n : `url(\"${placeholder}\")` // assume `data:image/`\n : null\n\n const backgroundSize = !INVALID_BACKGROUND_SIZE_VALUES.includes(\n imgStyle.objectFit\n )\n ? imgStyle.objectFit\n : imgStyle.objectFit === 'fill'\n ? '100% 100%' // the background-size equivalent of `fill`\n : 'cover'\n\n let placeholderStyle: PlaceholderStyle = backgroundImage\n ? {\n backgroundSize,\n backgroundPosition: imgStyle.objectPosition || '50% 50%',\n backgroundRepeat: 'no-repeat',\n backgroundImage,\n }\n : {}\n\n if (process.env.NODE_ENV === 'development') {\n if (\n placeholderStyle.backgroundImage &&\n placeholder === 'blur' &&\n blurDataURL?.startsWith('/')\n ) {\n // During `next dev`, we don't want to generate blur placeholders with webpack\n // because it can delay starting the dev server. Instead, `next-image-loader.js`\n // will inline a special url to lazily generate the blur placeholder at request time.\n placeholderStyle.backgroundImage = `url(\"${blurDataURL}\")`\n }\n }\n\n const imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader,\n })\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined') {\n let fullUrl: URL\n try {\n fullUrl = new URL(imgAttributes.src)\n } catch (e) {\n fullUrl = new URL(imgAttributes.src, window.location.href)\n }\n allImgs.set(fullUrl.href, { src, priority, placeholder })\n }\n }\n\n const props: ImgProps = {\n ...rest,\n loading: isLazy ? 'lazy' : loading,\n fetchPriority,\n width: widthInt,\n height: heightInt,\n decoding,\n className,\n style: { ...imgStyle, ...placeholderStyle },\n sizes: imgAttributes.sizes,\n srcSet: imgAttributes.srcSet,\n src: overrideSrc || imgAttributes.src,\n }\n const meta = { unoptimized, priority, placeholder, fill }\n return { props, meta }\n}\n","import { CamelToPascal } from './utility-types';\n\n/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n\n/**\n * Converts string to camel case\n *\n * @param {string} string\n * @returns {string} A camelized string\n */\nexport const toCamelCase = <T extends string>(string: T) =>\n string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = <T extends string>(string: T): CamelToPascal<T> => {\n const camelCase = toCamelCase(string);\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal<T>;\n};\n\n/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return (\n Boolean(className) &&\n (className as string).trim() !== '' &&\n array.indexOf(className) === index\n );\n })\n .join(' ')\n .trim();\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","import { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses } from '@lucide/shared';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef<SVGSVGElement, IconComponentProps>(\n (\n {\n color = 'currentColor',\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = '',\n children,\n iconNode,\n ...rest\n },\n ref,\n ) => {\n return createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,\n className: mergeClasses('lucide', className),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n );\n },\n);\n\nexport default Icon;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef<SVGSVGElement, LucideProps>(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props,\n }),\n );\n\n Component.displayName = `${iconName}`;\n\n return Component;\n};\n\nexport default createLucideIcon;\n","export function isInAmpMode({\n ampFirst = false,\n hybrid = false,\n hasQuery = false,\n} = {}): boolean {\n return ampFirst || (hybrid && hasQuery)\n}\n"],"names":["errorOnce","_","RouterContext","React","createContext","Image","configEnv","process","handleLoading","img","placeholder","onLoadRef","onLoadingCompleteRef","setBlurComplete","unoptimized","sizesInput","src","p","decode","Promise","resolve","catch","then","parentElement","current","event","Event","Object","defineProperty","writable","value","prevented","stopped","nativeEvent","currentTarget","target","isDefaultPrevented","isPropagationStopped","persist","preventDefault","stopPropagation","getDynamicProps","fetchPriority","use","Boolean","fetchpriority","ImageElement","forwardRef","forwardedRef","srcSet","sizes","height","width","decoding","className","style","loading","fill","setShowAltText","onLoad","onError","rest","ownRef","useCallback","complete","ref","useMergedRef","data-nimg","ImagePreload","isAppRouter","imgAttributes","opts","as","imageSrcSet","imageSizes","crossOrigin","referrerPolicy","ReactDOM","preload","Head","link","rel","href","undefined","props","pagesRouter","useContext","configContext","ImageConfigContext","config","useMemo","c","imageConfigDefault","allSizes","deviceSizes","sort","a","b","qualities","onLoadingComplete","useRef","useEffect","blurComplete","useState","showAltText","meta","imgMeta","getImgProps","defaultLoader","imgConf","priority","SideEffect","useClientOnlyLayoutEffect","useLayoutEffect","useClientOnlyEffect","isServer","headManager","reduceComponentsToState","emitChange","mountedInstances","headElements","Children","toArray","Array","from","filter","updateHead","add","children","delete","_pendingUpdate","LinkComponent","useLinkStatus","formatStringOrUrl","urlObjOrString","formatUrl","child","linkStatus","setOptimisticLinkStatus","useOptimistic","IDLE_LINK_STATUS","linkInstanceRef","hrefProp","asProp","childrenProp","prefetch","prefetchProp","passHref","replace","shallow","scroll","onClick","onMouseEnter","onMouseEnterProp","onTouchStart","onTouchStartProp","legacyBehavior","onNavigate","unstable_dynamicOnHover","restProps","router","AppRouterContext","prefetchEnabled","appPrefetchKind","PrefetchKind","AUTO","FULL","resolvedHref","only","childRef","observeLinkVisibilityOnMount","mountLinkInstance","element","unmountLinkForCurrentNavigation","unmountPrefetchableInstance","childProps","e","defaultPrevented","linkClicked","nodeName","toUpperCase","isModifiedEvent","getAttribute","metaKey","ctrlKey","shiftKey","altKey","which","hasAttribute","isLocalURL","location","startTransition","dispatchNavigateAction","onNavigationIntent","env","NODE_ENV","upgradeToDynamicPrefetch","isAbsoluteUrl","type","addBasePath","cloneElement","LinkStatusContext","Provider","formatWithValidation","urlObjectKeys","slashedProtocols","urlObj","auth","hostname","protocol","pathname","hash","query","host","encodeURIComponent","indexOf","port","String","querystring","urlQueryToSearchParams","search","endsWith","slashes","test","url","defaultHead","inAmpMode","head","charSet","push","name","content","onlyReactElement","list","Fragment","concat","reduce","fragmentList","fragmentChild","METATYPES","reduceComponents","headChildrenElements","reverse","unique","keys","Set","tags","metaTypes","metaCategories","isUnique","hasKey","h","key","slice","has","i","len","length","metatype","hasOwnProperty","category","categories","map","ampState","AmpStateContext","HeadManagerContext","Effect","isInAmpMode","VALID_LOADERS","path","loader","loaderFile","domains","disableStaticImages","minimumCacheTTL","formats","dangerouslyAllowSVG","contentSecurityPolicy","contentDispositionType","localPatterns","remotePatterns","quality","q","prev","cur","Math","abs","DEFAULT_Q","startsWith","__next_img_default","getImageProps","imgProps","entries","DecodeError","MiddlewareNotFoundError","MissingStaticPage","NormalizeError","PageNotFoundError","SP","ST","WEB_VITALS","execOnce","getDisplayName","getLocationOrigin","getURL","isResSent","loadGetInitialProps","normalizeRepeatedSlashes","stringifyError","fn","result","used","args","ABSOLUTE_URL_REGEX","window","origin","substring","Component","displayName","res","finished","headersSent","urlParts","split","join","App","ctx","getInitialProps","performance","every","method","Error","constructor","page","code","message","error","JSON","stringify","stack","locationOrigin","resolved","URL","hasBasePath","getImageBlurSvg","widthInt","heightInt","blurWidth","blurHeight","blurDataURL","objectFit","svgWidth","svgHeight","viewBox","std","preserveAspectRatio","searchParamsToUrlQuery","searchParams","existing","isArray","stringifyUrlQueryParam","param","isNaN","URLSearchParams","item","append","set","assign","searchParamsList","refA","refB","cleanupA","cleanupB","cleanupFnA","cleanupFnB","applyRef","cleanup","INVALID_BACKGROUND_SIZE_VALUES","isStaticRequire","default","getInt","x","Number","isFinite","NaN","parseInt","_state","overrideSrc","layout","objectPosition","lazyBoundary","lazyRoot","isDefaultLoader","customImageLoader","obj","layoutStyle","intrinsic","maxWidth","responsive","layoutSizes","staticSrc","isStaticImageData","staticImageData","ratio","round","isLazy","qualityInt","imgStyle","position","left","top","right","bottom","color","backgroundImage","includes","placeholderStyle","backgroundSize","backgroundPosition","backgroundRepeat","generateImgAttrs","widths","kind","getWidths","viewportWidthRe","percentSizes","match","exec","smallestRatio","min","s","find","w","last","ampFirst","hybrid","hasQuery"],"sourceRoot":"","ignoreList":[2,4]} \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/260-f7d05fbb5c55e877.js b/opencut-ui/_next/static/chunks/260-f7d05fbb5c55e877.js new file mode 100644 index 0000000..44e7c0f --- /dev/null +++ b/opencut-ui/_next/static/chunks/260-f7d05fbb5c55e877.js @@ -0,0 +1,74 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[260],{2245:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Pipette",[["path",{d:"m2 22 1-1h3l9-9",key:"1sre89"}],["path",{d:"M3 21v-3l9-9",key:"hpe2y6"}],["path",{d:"m15 6 3.4-3.4a2.1 2.1 0 1 1 3 3L18 9l.4.4a2.1 2.1 0 1 1-3 3l-3.8-3.8a2.1 2.1 0 1 1 3-3l.4.4Z",key:"196du1"}]])},9061:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Mic",[["path",{d:"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z",key:"131961"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}]])},11566:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Heart",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}]])},11940:(e,t,n)=>{"use strict";let r;n.d(t,{TW:()=>ex,YZ:()=>ey,Zk:()=>f});var i,l=n(74188);let o=(0,l.createContext)(null);o.displayName="PanelGroupContext";let a={group:"data-panel-group",groupDirection:"data-panel-group-direction",groupId:"data-panel-group-id",panel:"data-panel",panelCollapsible:"data-panel-collapsible",panelId:"data-panel-id",panelSize:"data-panel-size",resizeHandle:"data-resize-handle",resizeHandleActive:"data-resize-handle-active",resizeHandleEnabled:"data-panel-resize-handle-enabled",resizeHandleId:"data-panel-resize-handle-id",resizeHandleState:"data-resize-handle-state"},s=l.useLayoutEffect,u=(i||(i=n.t(l,2)))["useId".toString()],c="function"==typeof u?u:()=>null,d=0;function h(e=null){let t=c(),n=(0,l.useRef)(e||t||null);return null===n.current&&(n.current=""+d++),null!=e?e:n.current}function p({children:e,className:t="",collapsedSize:n,collapsible:r,defaultSize:i,forwardedRef:u,id:c,maxSize:d,minSize:p,onCollapse:f,onExpand:m,onResize:g,order:y,style:v,tagName:k="div",...x}){let b=(0,l.useContext)(o);if(null===b)throw Error("Panel components must be rendered within a PanelGroup container");let{collapsePanel:w,expandPanel:S,getPanelSize:E,getPanelStyle:C,groupId:A,isPanelCollapsed:M,reevaluatePanelConstraints:P,registerPanel:T,resizePanel:D,unregisterPanel:L}=b,I=h(c),z=(0,l.useRef)({callbacks:{onCollapse:f,onExpand:m,onResize:g},constraints:{collapsedSize:n,collapsible:r,defaultSize:i,maxSize:d,minSize:p},id:I,idIsFromProps:void 0!==c,order:y});(0,l.useRef)({didLogMissingDefaultSizeWarning:!1}),s(()=>{let{callbacks:e,constraints:t}=z.current,l={...t};z.current.id=I,z.current.idIsFromProps=void 0!==c,z.current.order=y,e.onCollapse=f,e.onExpand=m,e.onResize=g,t.collapsedSize=n,t.collapsible=r,t.defaultSize=i,t.maxSize=d,t.minSize=p,(l.collapsedSize!==t.collapsedSize||l.collapsible!==t.collapsible||l.maxSize!==t.maxSize||l.minSize!==t.minSize)&&P(z.current,l)}),s(()=>{let e=z.current;return T(e),()=>{L(e)}},[y,I,T,L]),(0,l.useImperativeHandle)(u,()=>({collapse:()=>{w(z.current)},expand:e=>{S(z.current,e)},getId:()=>I,getSize:()=>E(z.current),isCollapsed:()=>M(z.current),isExpanded:()=>!M(z.current),resize:e=>{D(z.current,e)}}),[w,S,E,M,I,D]);let R=C(z.current,i);return(0,l.createElement)(k,{...x,children:e,className:t,id:I,style:{...R,...v},[a.groupId]:A,[a.panel]:"",[a.panelCollapsible]:r||void 0,[a.panelId]:I,[a.panelSize]:parseFloat(""+R.flexGrow).toFixed(1)})}let f=(0,l.forwardRef)((e,t)=>(0,l.createElement)(p,{...e,forwardedRef:t}));p.displayName="Panel",f.displayName="forwardRef(Panel)";let m=null,g=-1,y=null;function v(e,t){var n,i,l;let o=function(e,t){if(t){let e=(t&P)!=0,n=(t&T)!=0,r=(t&D)!=0,i=(t&L)!=0;if(e)if(r)return"se-resize";else if(i)return"ne-resize";else return"e-resize";if(n)if(r)return"sw-resize";else if(i)return"nw-resize";else return"w-resize";if(r)return"s-resize";else if(i)return"n-resize"}switch(e){case"horizontal":return"ew-resize";case"intersection":return"move";case"vertical":return"ns-resize"}}(e,t);m!==o&&(m=o,null===y&&(y=document.createElement("style"),r&&y.setAttribute("nonce",r),document.head.appendChild(y)),g>=0&&(null==(l=y.sheet)||l.removeRule(g)),g=null!=(n=null==(i=y.sheet)?void 0:i.insertRule(`*{cursor: ${o} !important;}`))?n:-1)}function k(e){return"keydown"===e.type}function x(e){return e.type.startsWith("pointer")}function b(e){return e.type.startsWith("mouse")}function w(e){if(x(e)){if(e.isPrimary)return{x:e.clientX,y:e.clientY}}else if(b(e))return{x:e.clientX,y:e.clientY};return{x:1/0,y:1/0}}let S=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function E(e){let t=e.length;for(;t--;){let n=e[t];if(X(n,"Missing node"),function(e){let t=getComputedStyle(e);return!!("fixed"===t.position||"auto"!==t.zIndex&&("static"!==t.position||function(e){var t;let n=getComputedStyle(null!=(t=M(e))?t:e).display;return"flex"===n||"inline-flex"===n}(e))||1>+t.opacity||"transform"in t&&"none"!==t.transform||"webkitTransform"in t&&"none"!==t.webkitTransform||"mixBlendMode"in t&&"normal"!==t.mixBlendMode||"filter"in t&&"none"!==t.filter||"webkitFilter"in t&&"none"!==t.webkitFilter||"isolation"in t&&"isolate"===t.isolation||S.test(t.willChange))||"touch"===t.webkitOverflowScrolling}(n))return n}return null}function C(e){return e&&Number(getComputedStyle(e).zIndex)||0}function A(e){let t=[];for(;e;)t.push(e),e=M(e);return t}function M(e){let{parentNode:t}=e;return t&&t instanceof ShadowRoot?t.host:t}let P=1,T=2,D=4,L=8,I="coarse"===function(){if("function"==typeof matchMedia)return matchMedia("(pointer:coarse)").matches?"coarse":"fine"}(),z=[],R=!1,O=new Map,N=new Map,F=new Set;function _(e){let{target:t}=e,{x:n,y:r}=w(e);R=!0,U({target:t,x:n,y:r}),V(),z.length>0&&($("down",e),e.preventDefault(),B(t)||e.stopImmediatePropagation())}function j(e){let{x:t,y:n}=w(e);if(R&&0===e.buttons&&(R=!1,$("up",e)),!R){let{target:r}=e;U({target:r,x:t,y:n})}$("move",e),W(),z.length>0&&e.preventDefault()}function H(e){let{target:t}=e,{x:n,y:r}=w(e);N.clear(),R=!1,z.length>0&&(e.preventDefault(),B(t)||e.stopImmediatePropagation()),$("up",e),U({target:t,x:n,y:r}),W(),V()}function B(e){let t=e;for(;t;){if(t.hasAttribute(a.resizeHandle))return!0;t=t.parentElement}return!1}function U({target:e,x:t,y:n}){z.splice(0);let r=null;(e instanceof HTMLElement||e instanceof SVGElement)&&(r=e),F.forEach(e=>{let{element:i,hitAreaMargins:l}=e,o=i.getBoundingClientRect(),{bottom:a,left:s,right:u,top:c}=o,d=I?l.coarse:l.fine;if(t>=s-d&&t<=u+d&&n>=c-d&&n<=a+d){if(null!==r&&document.contains(r)&&i!==r&&!i.contains(r)&&!r.contains(i)&&function(e,t){let n;if(e===t)throw Error("Cannot compare node with itself");let r={a:A(e),b:A(t)};for(;r.a.at(-1)===r.b.at(-1);)e=r.a.pop(),t=r.b.pop(),n=e;X(n,"Stacking order can only be calculated for elements with a common ancestor");let i={a:C(E(r.a)),b:C(E(r.b))};if(i.a===i.b){let e=n.childNodes,t={a:r.a.at(-1),b:r.b.at(-1)},i=e.length;for(;i--;){let n=e[i];if(n===t.a)return 1;if(n===t.b)return -1}}return Math.sign(i.a-i.b)}(r,i)>0){let e=r,t=!1;for(;e;){var h;if(e.contains(i))break;if(h=e.getBoundingClientRect(),h.x<o.x+o.width&&h.x+h.width>o.x&&h.y<o.y+o.height&&h.y+h.height>o.y){t=!0;break}e=e.parentElement}if(t)return}z.push(e)}})}function W(){let e=!1,t=!1;z.forEach(n=>{let{direction:r}=n;"horizontal"===r?e=!0:t=!0});let n=0;N.forEach(e=>{n|=e}),e&&t?v("intersection",n):e?v("horizontal",n):t?v("vertical",n):null!==y&&(document.head.removeChild(y),m=null,y=null,g=-1)}let q=new AbortController;function V(){q.abort();let e={capture:!0,signal:(q=new AbortController).signal};F.size&&(R?(z.length>0&&O.forEach((t,n)=>{let{body:r}=n;t>0&&(r.addEventListener("contextmenu",H,e),r.addEventListener("pointerleave",j,e),r.addEventListener("pointermove",j,e))}),window.addEventListener("pointerup",H,e),window.addEventListener("pointercancel",H,e)):O.forEach((t,n)=>{let{body:r}=n;t>0&&(r.addEventListener("pointerdown",_,e),r.addEventListener("pointermove",j,e))}))}function $(e,t){F.forEach(n=>{let{setResizeHandlerState:r}=n;r(e,z.includes(n),t)})}function X(e,t){if(!e)throw console.error(t),Error(t)}function G(e,t,n=10){return e.toFixed(n)===t.toFixed(n)?0:e>t?1:-1}function K(e,t,n=10){return 0===G(e,t,n)}function Y(e,t,n){return 0===G(e,t,n)}function Z({panelConstraints:e,panelIndex:t,size:n}){let r=e[t];X(null!=r,`Panel constraints not found for index ${t}`);let{collapsedSize:i=0,collapsible:l,maxSize:o=100,minSize:a=0}=r;return 0>G(n,a)&&(n=l&&0>G(n,(i+a)/2)?i:a),n=parseFloat((n=Math.min(o,n)).toFixed(10))}function J({delta:e,initialLayout:t,panelConstraints:n,pivotIndices:r,prevLayout:i,trigger:l}){if(Y(e,0))return t;let o=[...t],[a,s]=r;X(null!=a,"Invalid first pivot index"),X(null!=s,"Invalid second pivot index");let u=0;if("keyboard"===l){{let r=e<0?s:a,i=n[r];X(i,`Panel constraints not found for index ${r}`);let{collapsedSize:l=0,collapsible:o,minSize:u=0}=i;if(o){let n=t[r];if(X(null!=n,`Previous layout not found for panel index ${r}`),Y(n,l)){let t=u-n;G(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let r=e<0?a:s,i=n[r];X(i,`No panel constraints found for index ${r}`);let{collapsedSize:l=0,collapsible:o,minSize:u=0}=i;if(o){let n=t[r];if(X(null!=n,`Previous layout not found for panel index ${r}`),Y(n,u)){let t=n-l;G(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}}{let r=e<0?1:-1,i=e<0?s:a,l=0;for(;;){let e=t[i];if(X(null!=e,`Previous layout not found for panel index ${i}`),l+=Z({panelConstraints:n,panelIndex:i,size:100})-e,(i+=r)<0||i>=n.length)break}let o=Math.min(Math.abs(e),Math.abs(l));e=e<0?0-o:o}{let r=e<0?a:s;for(;r>=0&&r<n.length;){let i=Math.abs(e)-Math.abs(u),l=t[r];X(null!=l,`Previous layout not found for panel index ${r}`);let a=Z({panelConstraints:n,panelIndex:r,size:l-i});if(!Y(l,a)&&(u+=l-a,o[r]=a,u.toPrecision(3).localeCompare(Math.abs(e).toPrecision(3),void 0,{numeric:!0})>=0))break;e<0?r--:r++}}if(function(e,t,n){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Y(e[n],t[n],void 0))return!1;return!0}(i,o))return i;{let r=e<0?s:a,i=t[r];X(null!=i,`Previous layout not found for panel index ${r}`);let l=i+u,c=Z({panelConstraints:n,panelIndex:r,size:l});if(o[r]=c,!Y(c,l)){let t=l-c,r=e<0?s:a;for(;r>=0&&r<n.length;){let i=o[r];X(null!=i,`Previous layout not found for panel index ${r}`);let l=Z({panelConstraints:n,panelIndex:r,size:i+t});if(Y(i,l)||(t-=l-i,o[r]=l),Y(t,0))break;e>0?r--:r++}}}return Y(o.reduce((e,t)=>t+e,0),100)?o:i}function Q(e,t=document){return Array.from(t.querySelectorAll(`[${a.resizeHandleId}][data-panel-group-id="${e}"]`))}function ee(e,t,n=document){let r=Q(e,n).findIndex(e=>e.getAttribute(a.resizeHandleId)===t);return null!=r?r:null}function et(e,t,n){let r=ee(e,t,n);return null!=r?[r,r+1]:[-1,-1]}function en(e,t=document){var n;if(t instanceof HTMLElement&&(null==t||null==(n=t.dataset)?void 0:n.panelGroupId)==e)return t;let r=t.querySelector(`[data-panel-group][data-panel-group-id="${e}"]`);return r||null}function er(e,t=document){let n=t.querySelector(`[${a.resizeHandleId}="${e}"]`);return n||null}function ei(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function el(e,t){let{x:n,y:r}=w(t);return"horizontal"===e?n:r}function eo(e,t,n){t.forEach((t,r)=>{let i=e[r];X(i,`Panel data not found for index ${r}`);let{callbacks:l,constraints:o,id:a}=i,{collapsedSize:s=0,collapsible:u}=o,c=n[a];if(null==c||t!==c){n[a]=t;let{onCollapse:e,onExpand:r,onResize:i}=l;i&&i(t,c),u&&(e||r)&&(r&&(null==c||K(c,s))&&!K(t,s)&&r(),e&&(null==c||!K(c,s))&&K(t,s)&&e())}})}function ea(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0}function es(e){try{if("undefined"!=typeof localStorage)e.getItem=e=>localStorage.getItem(e),e.setItem=(e,t)=>{localStorage.setItem(e,t)};else throw Error("localStorage not supported in this environment")}catch(t){console.error(t),e.getItem=()=>null,e.setItem=()=>{}}}function eu(e){return`react-resizable-panels:${e}`}function ec(e){return e.map(e=>{let{constraints:t,id:n,idIsFromProps:r,order:i}=e;return r?n:i?`${i}:${JSON.stringify(t)}`:JSON.stringify(t)}).sort((e,t)=>e.localeCompare(t)).join(",")}function ed(e,t){try{let n=eu(e),r=t.getItem(n);if(r){let e=JSON.parse(r);if("object"==typeof e&&null!=e)return e}}catch(e){}return null}function eh(e,t,n,r,i){var l;let o=eu(e),a=ec(t),s=null!=(l=ed(e,i))?l:{};s[a]={expandToSizes:Object.fromEntries(n.entries()),layout:r};try{i.setItem(o,JSON.stringify(s))}catch(e){console.error(e)}}function ep({layout:e,panelConstraints:t}){let n=[...e],r=n.reduce((e,t)=>e+t,0);if(n.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${n.map(e=>`${e}%`).join(", ")}`);if(!Y(r,100)&&n.length>0)for(let e=0;e<t.length;e++){let t=n[e];X(null!=t,`No layout data found for index ${e}`);let i=100/r*t;n[e]=i}let i=0;for(let e=0;e<t.length;e++){let r=n[e];X(null!=r,`No layout data found for index ${e}`);let l=Z({panelConstraints:t,panelIndex:e,size:r});r!=l&&(i+=r-l,n[e]=l)}if(!Y(i,0))for(let e=0;e<t.length;e++){let r=n[e];X(null!=r,`No layout data found for index ${e}`);let l=Z({panelConstraints:t,panelIndex:e,size:r+i});if(r!==l&&(i-=l-r,n[e]=l,Y(i,0)))break}return n}let ef={getItem:e=>(es(ef),ef.getItem(e)),setItem:(e,t)=>{es(ef),ef.setItem(e,t)}},em={};function eg({autoSaveId:e=null,children:t,className:n="",direction:r,forwardedRef:i,id:u=null,onLayout:c=null,keyboardResizeBy:d=null,storage:p=ef,style:f,tagName:m="div",...g}){let y=h(u),v=(0,l.useRef)(null),[w,S]=(0,l.useState)(null),[E,C]=(0,l.useState)([]),A=function(){let[e,t]=(0,l.useState)(0);return(0,l.useCallback)(()=>t(e=>e+1),[])}(),M=(0,l.useRef)({}),I=(0,l.useRef)(new Map),z=(0,l.useRef)(0),R=(0,l.useRef)({autoSaveId:e,direction:r,dragState:w,id:y,keyboardResizeBy:d,onLayout:c,storage:p}),O=(0,l.useRef)({layout:E,panelDataArray:[],panelDataArrayChanged:!1});(0,l.useRef)({didLogIdAndOrderWarning:!1,didLogPanelConstraintsWarning:!1,prevPanelIds:[]}),(0,l.useImperativeHandle)(i,()=>({getId:()=>R.current.id,getLayout:()=>{let{layout:e}=O.current;return e},setLayout:e=>{let{onLayout:t}=R.current,{layout:n,panelDataArray:r}=O.current,i=ep({layout:e,panelConstraints:r.map(e=>e.constraints)});ei(n,i)||(C(i),O.current.layout=i,t&&t(i),eo(r,i,M.current))}}),[]),s(()=>{R.current.autoSaveId=e,R.current.direction=r,R.current.dragState=w,R.current.id=y,R.current.onLayout=c,R.current.storage=p}),function({committedValuesRef:e,eagerValuesRef:t,groupId:n,layout:r,panelDataArray:i,panelGroupElement:o,setLayout:u}){(0,l.useRef)({didWarnAboutMissingResizeHandle:!1}),s(()=>{if(!o)return;let e=Q(n,o);for(let t=0;t<i.length-1;t++){let{valueMax:n,valueMin:l,valueNow:o}=function({layout:e,panelsArray:t,pivotIndices:n}){let r=0,i=100,l=0,o=0,a=n[0];return X(null!=a,"No pivot index found"),t.forEach((e,t)=>{let{constraints:n}=e,{maxSize:s=100,minSize:u=0}=n;t===a?(r=u,i=s):(l+=u,o+=s)}),{valueMax:Math.min(i,100-l),valueMin:Math.max(r,100-o),valueNow:e[a]}}({layout:r,panelsArray:i,pivotIndices:[t,t+1]}),a=e[t];if(null==a);else{let e=i[t];X(e,`No panel data found for index "${t}"`),a.setAttribute("aria-controls",e.id),a.setAttribute("aria-valuemax",""+Math.round(n)),a.setAttribute("aria-valuemin",""+Math.round(l)),a.setAttribute("aria-valuenow",null!=o?""+Math.round(o):"")}}return()=>{e.forEach((e,t)=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-valuemax"),e.removeAttribute("aria-valuemin"),e.removeAttribute("aria-valuenow")})}},[n,r,i,o]),(0,l.useEffect)(()=>{if(!o)return;let e=t.current;X(e,"Eager values not found");let{panelDataArray:i}=e;X(null!=en(n,o),`No group found for id "${n}"`);let l=Q(n,o);X(l,`No resize handles found for group id "${n}"`);let s=l.map(e=>{let t=e.getAttribute(a.resizeHandleId);X(t,"Resize handle element has no handle id attribute");let[l,s]=function(e,t,n,r=document){var i,l,o,a;let s=er(t,r),u=Q(e,r),c=s?u.indexOf(s):-1;return[null!=(i=null==(l=n[c])?void 0:l.id)?i:null,null!=(o=null==(a=n[c+1])?void 0:a.id)?o:null]}(n,t,i,o);if(null==l||null==s)return()=>{};let c=e=>{if(!e.defaultPrevented&&"Enter"===e.key){e.preventDefault();let a=i.findIndex(e=>e.id===l);if(a>=0){let e=i[a];X(e,`No panel data found for index ${a}`);let l=r[a],{collapsedSize:s=0,collapsible:c,minSize:d=0}=e.constraints;if(null!=l&&c){let e=J({delta:Y(l,s)?d-s:s-l,initialLayout:r,panelConstraints:i.map(e=>e.constraints),pivotIndices:et(n,t,o),prevLayout:r,trigger:"keyboard"});r!==e&&u(e)}}}};return e.addEventListener("keydown",c),()=>{e.removeEventListener("keydown",c)}});return()=>{s.forEach(e=>e())}},[o,e,t,n,r,i,u])}({committedValuesRef:R,eagerValuesRef:O,groupId:y,layout:E,panelDataArray:O.current.panelDataArray,setLayout:C,panelGroupElement:v.current}),(0,l.useEffect)(()=>{let{panelDataArray:t}=O.current;if(e){if(0===E.length||E.length!==t.length)return;let n=em[e];null==n&&(n=function(e,t=10){let n=null;return(...r)=>{null!==n&&clearTimeout(n),n=setTimeout(()=>{e(...r)},t)}}(eh,100),em[e]=n),n(e,[...t],new Map(I.current),E,p)}},[e,E,p]),(0,l.useEffect)(()=>{});let F=(0,l.useCallback)(e=>{let{onLayout:t}=R.current,{layout:n,panelDataArray:r}=O.current;if(e.constraints.collapsible){let i=r.map(e=>e.constraints),{collapsedSize:l=0,panelSize:o,pivotIndices:a}=ek(r,e,n);if(X(null!=o,`Panel size not found for panel "${e.id}"`),!K(o,l)){I.current.set(e.id,o);let s=J({delta:ev(r,e)===r.length-1?o-l:l-o,initialLayout:n,panelConstraints:i,pivotIndices:a,prevLayout:n,trigger:"imperative-api"});ea(n,s)||(C(s),O.current.layout=s,t&&t(s),eo(r,s,M.current))}}},[]),_=(0,l.useCallback)((e,t)=>{let{onLayout:n}=R.current,{layout:r,panelDataArray:i}=O.current;if(e.constraints.collapsible){let l=i.map(e=>e.constraints),{collapsedSize:o=0,panelSize:a=0,minSize:s=0,pivotIndices:u}=ek(i,e,r),c=null!=t?t:s;if(K(a,o)){let t=I.current.get(e.id),o=null!=t&&t>=c?t:c,s=J({delta:ev(i,e)===i.length-1?a-o:o-a,initialLayout:r,panelConstraints:l,pivotIndices:u,prevLayout:r,trigger:"imperative-api"});ea(r,s)||(C(s),O.current.layout=s,n&&n(s),eo(i,s,M.current))}}},[]),j=(0,l.useCallback)(e=>{let{layout:t,panelDataArray:n}=O.current,{panelSize:r}=ek(n,e,t);return X(null!=r,`Panel size not found for panel "${e.id}"`),r},[]),H=(0,l.useCallback)((e,t)=>{let{panelDataArray:n}=O.current,r=ev(n,e);return function({defaultSize:e,dragState:t,layout:n,panelData:r,panelIndex:i,precision:l=3}){let o=n[i];return{flexBasis:0,flexGrow:null==o?void 0!=e?e.toPrecision(l):"1":1===r.length?"1":o.toPrecision(l),flexShrink:1,overflow:"hidden",pointerEvents:null!==t?"none":void 0}}({defaultSize:t,dragState:w,layout:E,panelData:n,panelIndex:r})},[w,E]),B=(0,l.useCallback)(e=>{let{layout:t,panelDataArray:n}=O.current,{collapsedSize:r=0,collapsible:i,panelSize:l}=ek(n,e,t);return X(null!=l,`Panel size not found for panel "${e.id}"`),!0===i&&K(l,r)},[]),U=(0,l.useCallback)(e=>{let{layout:t,panelDataArray:n}=O.current,{collapsedSize:r=0,collapsible:i,panelSize:l}=ek(n,e,t);return X(null!=l,`Panel size not found for panel "${e.id}"`),!i||G(l,r)>0},[]),W=(0,l.useCallback)(e=>{let{panelDataArray:t}=O.current;t.push(e),t.sort((e,t)=>{let n=e.order,r=t.order;return null==n&&null==r?0:null==n?-1:null==r?1:n-r}),O.current.panelDataArrayChanged=!0,A()},[A]);s(()=>{if(O.current.panelDataArrayChanged){O.current.panelDataArrayChanged=!1;let{autoSaveId:i,onLayout:l,storage:o}=R.current,{layout:a,panelDataArray:s}=O.current,u=null;if(i){var e,t,n,r;let l=(e=i,t=s,null!=(r=(null!=(n=ed(e,o))?n:{})[ec(t)])?r:null);l&&(I.current=new Map(Object.entries(l.expandToSizes)),u=l.layout)}null==u&&(u=function({panelDataArray:e}){let t=Array(e.length),n=e.map(e=>e.constraints),r=0,i=100;for(let l=0;l<e.length;l++){let e=n[l];X(e,`Panel constraints not found for index ${l}`);let{defaultSize:o}=e;null!=o&&(r++,t[l]=o,i-=o)}for(let l=0;l<e.length;l++){let o=n[l];X(o,`Panel constraints not found for index ${l}`);let{defaultSize:a}=o;if(null!=a)continue;let s=i/(e.length-r);r++,t[l]=s,i-=s}return t}({panelDataArray:s}));let c=ep({layout:u,panelConstraints:s.map(e=>e.constraints)});ei(a,c)||(C(c),O.current.layout=c,l&&l(c),eo(s,c,M.current))}}),s(()=>{let e=O.current;return()=>{e.layout=[]}},[]);let q=(0,l.useCallback)(e=>{let t=!1,n=v.current;return n&&"rtl"===window.getComputedStyle(n,null).getPropertyValue("direction")&&(t=!0),function(n){var r,i;n.preventDefault();let l=v.current;if(!l)return()=>null;let{direction:o,dragState:s,id:u,keyboardResizeBy:c,onLayout:d}=R.current,{layout:h,panelDataArray:p}=O.current,{initialLayout:f}=null!=s?s:{},m=et(u,e,l),g=function(e,t,n,r,i,l){if(!k(e))return null==r?0:function(e,t,n,r,i){let l="horizontal"===n,o=er(t,i);X(o,`No resize handle element found for id "${t}"`);let s=o.getAttribute(a.groupId);X(s,"Resize handle element has no group id attribute");let{initialCursorPosition:u}=r,c=el(n,e),d=en(s,i);X(d,`No group element found for id "${s}"`);let h=d.getBoundingClientRect();return(c-u)/(l?h.width:h.height)*100}(e,t,n,r,l);{let t="horizontal"===n,r=0;r=e.shiftKey?100:null!=i?i:10;let l=0;switch(e.key){case"ArrowDown":l=t?0:r;break;case"ArrowLeft":l=t?-r:0;break;case"ArrowRight":l=t?r:0;break;case"ArrowUp":l=t?0:-r;break;case"End":l=100;break;case"Home":l=-100}return l}}(n,e,o,s,c,l),y="horizontal"===o;y&&t&&(g=-g);let w=J({delta:g,initialLayout:null!=f?f:h,panelConstraints:p.map(e=>e.constraints),pivotIndices:m,prevLayout:h,trigger:k(n)?"keyboard":"mouse-or-touch"}),S=!ea(h,w);(x(n)||b(n))&&z.current!=g&&((z.current=g,S||0===g)?N.set(e,0):y?(r=g<0?P:T,N.set(e,r)):(i=g<0?D:L,N.set(e,i))),S&&(C(w),O.current.layout=w,d&&d(w),eo(p,w,M.current))}},[]),V=(0,l.useCallback)((e,t)=>{let{onLayout:n}=R.current,{layout:r,panelDataArray:i}=O.current,l=i.map(e=>e.constraints),{panelSize:o,pivotIndices:a}=ek(i,e,r);X(null!=o,`Panel size not found for panel "${e.id}"`);let s=J({delta:ev(i,e)===i.length-1?o-t:t-o,initialLayout:r,panelConstraints:l,pivotIndices:a,prevLayout:r,trigger:"imperative-api"});ea(r,s)||(C(s),O.current.layout=s,n&&n(s),eo(i,s,M.current))},[]),$=(0,l.useCallback)((e,t)=>{let{layout:n,panelDataArray:r}=O.current,{collapsedSize:i=0,collapsible:l}=t,{collapsedSize:o=0,collapsible:a,maxSize:s=100,minSize:u=0}=e.constraints,{panelSize:c}=ek(r,e,n);null!=c&&(l&&a&&K(c,i)?K(i,o)||V(e,o):c<u?V(e,u):c>s&&V(e,s))},[V]),Z=(0,l.useCallback)((e,t)=>{let{direction:n}=R.current,{layout:r}=O.current;if(!v.current)return;let i=er(e,v.current);X(i,`Drag handle element not found for id "${e}"`);let l=el(n,t);S({dragHandleId:e,dragHandleRect:i.getBoundingClientRect(),initialCursorPosition:l,initialLayout:r})},[]),ee=(0,l.useCallback)(()=>{S(null)},[]),es=(0,l.useCallback)(e=>{let{panelDataArray:t}=O.current,n=ev(t,e);n>=0&&(t.splice(n,1),delete M.current[e.id],O.current.panelDataArrayChanged=!0,A())},[A]),eu=(0,l.useMemo)(()=>({collapsePanel:F,direction:r,dragState:w,expandPanel:_,getPanelSize:j,getPanelStyle:H,groupId:y,isPanelCollapsed:B,isPanelExpanded:U,reevaluatePanelConstraints:$,registerPanel:W,registerResizeHandle:q,resizePanel:V,startDragging:Z,stopDragging:ee,unregisterPanel:es,panelGroupElement:v.current}),[F,w,r,_,j,H,y,B,U,$,W,q,V,Z,ee,es]);return(0,l.createElement)(o.Provider,{value:eu},(0,l.createElement)(m,{...g,children:t,className:n,id:u,ref:v,style:{display:"flex",flexDirection:"horizontal"===r?"row":"column",height:"100%",overflow:"hidden",width:"100%",...f},[a.group]:"",[a.groupDirection]:r,[a.groupId]:y}))}let ey=(0,l.forwardRef)((e,t)=>(0,l.createElement)(eg,{...e,forwardedRef:t}));function ev(e,t){return e.findIndex(e=>e===t||e.id===t.id)}function ek(e,t,n){let r=ev(e,t),i=r===e.length-1,l=n[r];return{...t.constraints,panelSize:l,pivotIndices:i?[r-1,r]:[r,r+1]}}function ex({children:e=null,className:t="",disabled:n=!1,hitAreaMargins:r,id:i,onBlur:u,onClick:c,onDragging:d,onFocus:p,onPointerDown:f,onPointerUp:m,style:g={},tabIndex:y=0,tagName:v="div",...k}){var x,b;let w=(0,l.useRef)(null),S=(0,l.useRef)({onClick:c,onDragging:d,onPointerDown:f,onPointerUp:m});(0,l.useEffect)(()=>{S.current.onClick=c,S.current.onDragging=d,S.current.onPointerDown=f,S.current.onPointerUp=m});let E=(0,l.useContext)(o);if(null===E)throw Error("PanelResizeHandle components must be rendered within a PanelGroup container");let{direction:C,groupId:A,registerResizeHandle:M,startDragging:P,stopDragging:T,panelGroupElement:D}=E,L=h(i),[I,R]=(0,l.useState)("inactive"),[_,j]=(0,l.useState)(!1),[H,B]=(0,l.useState)(null),U=(0,l.useRef)({state:I});s(()=>{U.current.state=I}),(0,l.useEffect)(()=>{if(n)B(null);else{let e=M(L);B(()=>e)}},[n,L,M]);let q=null!=(x=null==r?void 0:r.coarse)?x:15,$=null!=(b=null==r?void 0:r.fine)?b:5;return(0,l.useEffect)(()=>{if(n||null==H)return;let e=w.current;X(e,"Element ref not attached");let t=!1;return function(e,t,n,r,i){var l;let{ownerDocument:o}=t,a={direction:n,element:t,hitAreaMargins:r,setResizeHandlerState:i},s=null!=(l=O.get(o))?l:0;return O.set(o,s+1),F.add(a),V(),function(){var t;N.delete(e),F.delete(a);let n=null!=(t=O.get(o))?t:1;if(O.set(o,n-1),V(),1===n&&O.delete(o),z.includes(a)){let e=z.indexOf(a);e>=0&&z.splice(e,1),W(),i("up",!0,null)}}}(L,e,C,{coarse:q,fine:$},(e,n,r)=>{if(!n)return void R("inactive");switch(e){case"down":{R("drag"),t=!1,X(r,'Expected event to be defined for "down" action'),P(L,r);let{onDragging:e,onPointerDown:n}=S.current;null==e||e(!0),null==n||n();break}case"move":{let{state:e}=U.current;t=!0,"drag"!==e&&R("hover"),X(r,'Expected event to be defined for "move" action'),H(r);break}case"up":{R("hover"),T();let{onClick:e,onDragging:n,onPointerUp:r}=S.current;null==n||n(!1),null==r||r(),t||null==e||e()}}})},[q,C,n,$,M,L,H,P,T]),!function({disabled:e,handleId:t,resizeHandler:n,panelGroupElement:r}){(0,l.useEffect)(()=>{if(e||null==n||null==r)return;let i=er(t,r);if(null==i)return;let l=e=>{if(!e.defaultPrevented)switch(e.key){case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"End":case"Home":e.preventDefault(),n(e);break;case"F6":{e.preventDefault();let n=i.getAttribute(a.groupId);X(n,`No group element found for id "${n}"`);let l=Q(n,r),o=ee(n,t,r);X(null!==o,`No resize element found for id "${t}"`);let s=e.shiftKey?o>0?o-1:l.length-1:o+1<l.length?o+1:0;l[s].focus()}}};return i.addEventListener("keydown",l),()=>{i.removeEventListener("keydown",l)}},[r,e,t,n])}({disabled:n,handleId:L,resizeHandler:H,panelGroupElement:D}),(0,l.createElement)(v,{...k,children:e,className:t,id:i,onBlur:()=>{j(!1),null==u||u()},onFocus:()=>{j(!0),null==p||p()},ref:w,role:"separator",style:{touchAction:"none",userSelect:"none",...g},tabIndex:y,[a.groupDirection]:C,[a.groupId]:A,[a.resizeHandle]:"",[a.resizeHandleActive]:"drag"===I?"pointer":_?"keyboard":void 0,[a.resizeHandleEnabled]:!n,[a.resizeHandleId]:L,[a.resizeHandleState]:I})}eg.displayName="PanelGroup",ey.displayName="forwardRef(PanelGroup)",ex.displayName="PanelResizeHandle"},13746:e=>{e.exports={style:{fontFamily:"'Inter', 'Inter Fallback'",fontStyle:"normal"},className:"__className_ef9af1"}},15482:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Bookmark",[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z",key:"1fy3hk"}]])},15760:e=>{"use strict";var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,l=function(e){return"function"==typeof Array.isArray?Array.isArray(e):"[object Array]"===n.call(e)},o=function(e){if(!e||"[object Object]"!==n.call(e))return!1;var r,i=t.call(e,"constructor"),l=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!i&&!l)return!1;for(r in e);return void 0===r||t.call(e,r)},a=function(e,t){r&&"__proto__"===t.name?r(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},s=function(e,n){if("__proto__"===n){if(!t.call(e,n))return;else if(i)return i(e,n).value}return e[n]};e.exports=function e(){var t,n,r,i,u,c,d=arguments[0],h=1,p=arguments.length,f=!1;for("boolean"==typeof d&&(f=d,d=arguments[1]||{},h=2),(null==d||"object"!=typeof d&&"function"!=typeof d)&&(d={});h<p;++h)if(t=arguments[h],null!=t)for(n in t)r=s(d,n),d!==(i=s(t,n))&&(f&&i&&(o(i)||(u=l(i)))?(u?(u=!1,c=r&&l(r)?r:[]):c=r&&o(r)?r:{},a(d,{name:n,newValue:e(f,c,i)})):void 0!==i&&a(d,{name:n,newValue:i}));return d}},16219:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},16224:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},19600:(e,t,n)=>{"use strict";var r,i;n.d(t,{m:()=>s}),function(e){e.LOAD="LOAD",e.EXEC="EXEC",e.FFPROBE="FFPROBE",e.WRITE_FILE="WRITE_FILE",e.READ_FILE="READ_FILE",e.DELETE_FILE="DELETE_FILE",e.RENAME="RENAME",e.CREATE_DIR="CREATE_DIR",e.LIST_DIR="LIST_DIR",e.DELETE_DIR="DELETE_DIR",e.ERROR="ERROR",e.DOWNLOAD="DOWNLOAD",e.PROGRESS="PROGRESS",e.LOG="LOG",e.MOUNT="MOUNT",e.UNMOUNT="UNMOUNT"}(r||(r={}));let l=(()=>{let e=0;return()=>e++})();Error("unknown message type");let o=Error("ffmpeg is not loaded, call `await ffmpeg.load()` first"),a=Error("called FFmpeg.terminate()");Error("failed to import ffmpeg-core.js");class s{#e=null;#t={};#n={};#r=[];#i=[];loaded=!1;#l=()=>{this.#e&&(this.#e.onmessage=({data:{id:e,type:t,data:n}})=>{switch(t){case r.LOAD:this.loaded=!0,this.#t[e](n);break;case r.MOUNT:case r.UNMOUNT:case r.EXEC:case r.FFPROBE:case r.WRITE_FILE:case r.READ_FILE:case r.DELETE_FILE:case r.RENAME:case r.CREATE_DIR:case r.LIST_DIR:case r.DELETE_DIR:this.#t[e](n);break;case r.LOG:this.#r.forEach(e=>e(n));break;case r.PROGRESS:this.#i.forEach(e=>e(n));break;case r.ERROR:this.#n[e](n)}delete this.#t[e],delete this.#n[e]})};#o=({type:e,data:t},n=[],r)=>this.#e?new Promise((i,o)=>{let a=l();this.#e&&this.#e.postMessage({id:a,type:e,data:t},n),this.#t[a]=i,this.#n[a]=o,r?.addEventListener("abort",()=>{o(new DOMException(`Message # ${a} was aborted`,"AbortError"))},{once:!0})}):Promise.reject(o);on(e,t){"log"===e?this.#r.push(t):"progress"===e&&this.#i.push(t)}off(e,t){"log"===e?this.#r=this.#r.filter(e=>e!==t):"progress"===e&&(this.#i=this.#i.filter(e=>e!==t))}load=({classWorkerURL:e,...t}={},{signal:i}={})=>(this.#e||(this.#e=e?new Worker(new URL(e,"file:///I:/OpenCut/node_modules/.bun/@ffmpeg+ffmpeg@0.12.15/node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js"),{type:"module"}):new Worker(n.tu(new URL(n.p+n.u(818),n.b)),{type:void 0}),this.#l()),this.#o({type:r.LOAD,data:t},void 0,i));exec=(e,t=-1,{signal:n}={})=>this.#o({type:r.EXEC,data:{args:e,timeout:t}},void 0,n);ffprobe=(e,t=-1,{signal:n}={})=>this.#o({type:r.FFPROBE,data:{args:e,timeout:t}},void 0,n);terminate=()=>{for(let e of Object.keys(this.#n))this.#n[e](a),delete this.#n[e],delete this.#t[e];this.#e&&(this.#e.terminate(),this.#e=null,this.loaded=!1)};writeFile=(e,t,{signal:n}={})=>{let i=[];return t instanceof Uint8Array&&i.push(t.buffer),this.#o({type:r.WRITE_FILE,data:{path:e,data:t}},i,n)};mount=(e,t,n)=>this.#o({type:r.MOUNT,data:{fsType:e,options:t,mountPoint:n}},[]);unmount=e=>this.#o({type:r.UNMOUNT,data:{mountPoint:e}},[]);readFile=(e,t="binary",{signal:n}={})=>this.#o({type:r.READ_FILE,data:{path:e,encoding:t}},void 0,n);deleteFile=(e,{signal:t}={})=>this.#o({type:r.DELETE_FILE,data:{path:e}},void 0,t);rename=(e,t,{signal:n}={})=>this.#o({type:r.RENAME,data:{oldPath:e,newPath:t}},void 0,n);createDir=(e,{signal:t}={})=>this.#o({type:r.CREATE_DIR,data:{path:e}},void 0,t);listDir=(e,{signal:t}={})=>this.#o({type:r.LIST_DIR,data:{path:e}},void 0,t);deleteDir=(e,{signal:t}={})=>this.#o({type:r.DELETE_DIR,data:{path:e}},void 0,t)}!function(e){e.MEMFS="MEMFS",e.NODEFS="NODEFS",e.NODERAWFS="NODERAWFS",e.IDBFS="IDBFS",e.WORKERFS="WORKERFS",e.PROXYFS="PROXYFS"}(i||(i={}))},19884:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("ZoomOut",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]])},19947:e=>{e.exports={style:{fontFamily:"'Roboto', 'Roboto Fallback'",fontStyle:"normal"},className:"__className_765053"}},20159:(e,t,n)=>{"use strict";n.d(t,{Zr:()=>i});let r=e=>t=>{try{let n=e(t);if(n instanceof Promise)return n;return{then:e=>r(e)(n),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>r(t)(e)}}},i=(e,t)=>(n,i,l)=>{let o,a={storage:function(e,t){let n;try{n=e()}catch(e){return}return{getItem:e=>{var t;let r=e=>null===e?null:JSON.parse(e,void 0),i=null!=(t=n.getItem(e))?t:null;return i instanceof Promise?i.then(r):r(i)},setItem:(e,t)=>n.setItem(e,JSON.stringify(t,void 0)),removeItem:e=>n.removeItem(e)}}(()=>localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},s=!1,u=new Set,c=new Set,d=a.storage;if(!d)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`),n(...e)},i,l);let h=()=>{let e=a.partialize({...i()});return d.setItem(a.name,{state:e,version:a.version})},p=l.setState;l.setState=(e,t)=>{p(e,t),h()};let f=e((...e)=>{n(...e),h()},i,l);l.getInitialState=()=>f;let m=()=>{var e,t;if(!d)return;s=!1,u.forEach(e=>{var t;return e(null!=(t=i())?t:f)});let l=(null==(t=a.onRehydrateStorage)?void 0:t.call(a,null!=(e=i())?e:f))||void 0;return r(d.getItem.bind(d))(a.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===a.version)return[!1,e.state];else{if(a.migrate){let t=a.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(e=>{var t;let[r,l]=e;if(n(o=a.merge(l,null!=(t=i())?t:f),!0),r)return h()}).then(()=>{null==l||l(o,void 0),o=i(),s=!0,c.forEach(e=>e(o))}).catch(e=>{null==l||l(void 0,e)})};return l.persist={setOptions:e=>{a={...a,...e},e.storage&&(d=e.storage)},clearStorage:()=>{null==d||d.removeItem(a.name)},getOptions:()=>a,rehydrate:()=>m(),hasHydrated:()=>s,onHydrate:e=>(u.add(e),()=>{u.delete(e)}),onFinishHydration:e=>(c.add(e),()=>{c.delete(e)})},a.skipHydration||m(),o||f}},20288:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Magnet",[["path",{d:"m6 15-4-4 6.75-6.77a7.79 7.79 0 0 1 11 11L13 22l-4-4 6.39-6.36a2.14 2.14 0 0 0-3-3L6 15",key:"1i3lhw"}],["path",{d:"m5 8 4 4",key:"j6kj7e"}],["path",{d:"m12 15 4 4",key:"lnac28"}]])},23392:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Trash",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}]])},24565:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("SquareSlash",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["line",{x1:"9",x2:"15",y1:"15",y2:"9",key:"1dfufj"}]])},26530:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]])},26542:(e,t,n)=>{"use strict";n.d(t,{b:()=>a});var r=n(74188),i=n(98765),l=n(28064),o=r.forwardRef((e,t)=>{let{ratio:n=1,style:r,...o}=e;return(0,l.jsx)("div",{style:{position:"relative",width:"100%",paddingBottom:`${100/n}%`},"data-radix-aspect-ratio-wrapper":"",children:(0,l.jsx)(i.sG.div,{...o,ref:t,style:{...r,position:"absolute",top:0,right:0,bottom:0,left:0}})})});o.displayName="AspectRatio";var a=o},26796:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("ArrowLeftToLine",[["path",{d:"M3 19V5",key:"rwsyhb"}],["path",{d:"m13 6-6 6 6 6",key:"1yhaz7"}],["path",{d:"M7 12h14",key:"uoisry"}]])},26880:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},26951:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]])},27940:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]])},30651:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Keyboard",[["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M7 16h10",key:"wp8him"}],["path",{d:"M8 12h.01",key:"czm47f"}],["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}]])},32243:e=>{var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,n=/\n/g,r=/^\s*/,i=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,l=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,a=/^[;\s]*/,s=/^\s+|\s+$/g;function u(e){return e?e.replace(s,""):""}e.exports=function(e,s){if("string"!=typeof e)throw TypeError("First argument must be a string");if(!e)return[];s=s||{};var c=1,d=1;function h(e){var t=e.match(n);t&&(c+=t.length);var r=e.lastIndexOf("\n");d=~r?e.length-r:d+e.length}function p(){var e={line:c,column:d};return function(t){return t.position=new f(e),y(r),t}}function f(e){this.start=e,this.end={line:c,column:d},this.source=s.source}f.prototype.content=e;var m=[];function g(t){var n=Error(s.source+":"+c+":"+d+": "+t);if(n.reason=t,n.filename=s.source,n.line=c,n.column=d,n.source=e,s.silent)m.push(n);else throw n}function y(t){var n=t.exec(e);if(n){var r=n[0];return h(r),e=e.slice(r.length),n}}function v(e){var t;for(e=e||[];t=k();)!1!==t&&e.push(t);return e}function k(){var t=p();if("/"==e.charAt(0)&&"*"==e.charAt(1)){for(var n=2;""!=e.charAt(n)&&("*"!=e.charAt(n)||"/"!=e.charAt(n+1));)++n;if(n+=2,""===e.charAt(n-1))return g("End of comment missing");var r=e.slice(2,n-2);return d+=2,h(r),e=e.slice(n),d+=2,t({type:"comment",comment:r})}}y(r);var x,b=[];for(v(b);x=function(){var e=p(),n=y(i);if(n){if(k(),!y(l))return g("property missing ':'");var r=y(o),s=e({type:"declaration",property:u(n[0].replace(t,"")),value:r?u(r[0].replace(t,"")):""});return y(a),s}}();)!1!==x&&(b.push(x),v(b));return b}},34802:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Expand",[["path",{d:"m21 21-6-6m6 6v-4.8m0 4.8h-4.8",key:"1c15vz"}],["path",{d:"M3 16.2V21m0 0h4.8M3 21l6-6",key:"1fsnz2"}],["path",{d:"M21 7.8V3m0 0h-4.8M21 3l-6 6",key:"hawz9i"}],["path",{d:"M3 7.8V3m0 0h4.8M3 3l6 6",key:"u9ee12"}]])},35316:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=null;if(!e||"string"!=typeof e)return n;var r=(0,i.default)(e),l="function"==typeof t;return r.forEach(function(e){if("declaration"===e.type){var r=e.property,i=e.value;l?t(r,i,e):i&&((n=n||{})[r]=i)}}),n};var i=r(n(32243))},37770:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},37975:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("ListFilter",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M7 12h10",key:"b7w52i"}],["path",{d:"M10 18h4",key:"1ulq68"}]])},38333:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]])},40124:(e,t,n)=>{"use strict";n.d(t,{oz:()=>nP});var r={};n.r(r),n.d(r,{boolean:()=>g,booleanish:()=>y,commaOrSpaceSeparated:()=>w,commaSeparated:()=>b,number:()=>k,overloadedBoolean:()=>v,spaceSeparated:()=>x});var i={};n.r(i),n.d(i,{attentionMarkers:()=>tM,contentInitial:()=>tb,disable:()=>tP,document:()=>tx,flow:()=>tS,flowInitial:()=>tw,insideSpan:()=>tA,string:()=>tE,text:()=>tC});let l=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,o=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,a={};function s(e,t){return((t||a).jsx?o:l).test(e)}let u=/[ \t\n\f\r]/g;function c(e){return""===e.replace(u,"")}class d{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}}function h(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new d(n,r,t)}function p(e){return e.toLowerCase()}d.prototype.normal={},d.prototype.property={},d.prototype.space=void 0;class f{constructor(e,t){this.attribute=t,this.property=e}}f.prototype.attribute="",f.prototype.booleanish=!1,f.prototype.boolean=!1,f.prototype.commaOrSpaceSeparated=!1,f.prototype.commaSeparated=!1,f.prototype.defined=!1,f.prototype.mustUseProperty=!1,f.prototype.number=!1,f.prototype.overloadedBoolean=!1,f.prototype.property="",f.prototype.spaceSeparated=!1,f.prototype.space=void 0;let m=0,g=S(),y=S(),v=S(),k=S(),x=S(),b=S(),w=S();function S(){return 2**++m}let E=Object.keys(r);class C extends f{constructor(e,t,n,i){let l=-1;if(super(e,t),function(e,t,n){n&&(e[t]=n)}(this,"space",i),"number"==typeof n)for(;++l<E.length;){let e=E[l];!function(e,t,n){n&&(e[t]=n)}(this,E[l],(n&r[e])===r[e])}}}function A(e){let t={},n={};for(let[r,i]of Object.entries(e.properties)){let l=new C(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(l.mustUseProperty=!0),t[r]=l,n[p(r)]=r,n[p(l.attribute)]=r}return new d(t,n,e.space)}C.prototype.defined=!0;let M=A({properties:{ariaActiveDescendant:null,ariaAtomic:y,ariaAutoComplete:null,ariaBusy:y,ariaChecked:y,ariaColCount:k,ariaColIndex:k,ariaColSpan:k,ariaControls:x,ariaCurrent:null,ariaDescribedBy:x,ariaDetails:null,ariaDisabled:y,ariaDropEffect:x,ariaErrorMessage:null,ariaExpanded:y,ariaFlowTo:x,ariaGrabbed:y,ariaHasPopup:null,ariaHidden:y,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:x,ariaLevel:k,ariaLive:null,ariaModal:y,ariaMultiLine:y,ariaMultiSelectable:y,ariaOrientation:null,ariaOwns:x,ariaPlaceholder:null,ariaPosInSet:k,ariaPressed:y,ariaReadOnly:y,ariaRelevant:null,ariaRequired:y,ariaRoleDescription:x,ariaRowCount:k,ariaRowIndex:k,ariaRowSpan:k,ariaSelected:y,ariaSetSize:k,ariaSort:null,ariaValueMax:k,ariaValueMin:k,ariaValueNow:k,ariaValueText:null,role:null},transform:(e,t)=>"role"===t?t:"aria-"+t.slice(4).toLowerCase()});function P(e,t){return t in e?e[t]:t}function T(e,t){return P(e,t.toLowerCase())}let D=A({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:b,acceptCharset:x,accessKey:x,action:null,allow:null,allowFullScreen:g,allowPaymentRequest:g,allowUserMedia:g,alt:null,as:null,async:g,autoCapitalize:null,autoComplete:x,autoFocus:g,autoPlay:g,blocking:x,capture:null,charSet:null,checked:g,cite:null,className:x,cols:k,colSpan:null,content:null,contentEditable:y,controls:g,controlsList:x,coords:k|b,crossOrigin:null,data:null,dateTime:null,decoding:null,default:g,defer:g,dir:null,dirName:null,disabled:g,download:v,draggable:y,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:g,formTarget:null,headers:x,height:k,hidden:v,high:k,href:null,hrefLang:null,htmlFor:x,httpEquiv:x,id:null,imageSizes:null,imageSrcSet:null,inert:g,inputMode:null,integrity:null,is:null,isMap:g,itemId:null,itemProp:x,itemRef:x,itemScope:g,itemType:x,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:g,low:k,manifest:null,max:null,maxLength:k,media:null,method:null,min:null,minLength:k,multiple:g,muted:g,name:null,nonce:null,noModule:g,noValidate:g,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:g,optimum:k,pattern:null,ping:x,placeholder:null,playsInline:g,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:g,referrerPolicy:null,rel:x,required:g,reversed:g,rows:k,rowSpan:k,sandbox:x,scope:null,scoped:g,seamless:g,selected:g,shadowRootClonable:g,shadowRootDelegatesFocus:g,shadowRootMode:null,shape:null,size:k,sizes:null,slot:null,span:k,spellCheck:y,src:null,srcDoc:null,srcLang:null,srcSet:null,start:k,step:null,style:null,tabIndex:k,target:null,title:null,translate:null,type:null,typeMustMatch:g,useMap:null,value:y,width:k,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:x,axis:null,background:null,bgColor:null,border:k,borderColor:null,bottomMargin:k,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:g,declare:g,event:null,face:null,frame:null,frameBorder:null,hSpace:k,leftMargin:k,link:null,longDesc:null,lowSrc:null,marginHeight:k,marginWidth:k,noResize:g,noHref:g,noShade:g,noWrap:g,object:null,profile:null,prompt:null,rev:null,rightMargin:k,rules:null,scheme:null,scrolling:y,standby:null,summary:null,text:null,topMargin:k,valueType:null,version:null,vAlign:null,vLink:null,vSpace:k,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:g,disableRemotePlayback:g,prefix:null,property:null,results:k,security:null,unselectable:null},space:"html",transform:T}),L=A({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:w,accentHeight:k,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:k,amplitude:k,arabicForm:null,ascent:k,attributeName:null,attributeType:null,azimuth:k,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:k,by:null,calcMode:null,capHeight:k,className:x,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:k,diffuseConstant:k,direction:null,display:null,dur:null,divisor:k,dominantBaseline:null,download:g,dx:null,dy:null,edgeMode:null,editable:null,elevation:k,enableBackground:null,end:null,event:null,exponent:k,externalResourcesRequired:null,fill:null,fillOpacity:k,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:b,g2:b,glyphName:b,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:k,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:k,horizOriginX:k,horizOriginY:k,id:null,ideographic:k,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:k,k:k,k1:k,k2:k,k3:k,k4:k,kernelMatrix:w,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:k,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:k,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:k,overlineThickness:k,paintOrder:null,panose1:null,path:null,pathLength:k,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:x,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:k,pointsAtY:k,pointsAtZ:k,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:w,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:w,rev:w,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:w,requiredFeatures:w,requiredFonts:w,requiredFormats:w,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:k,specularExponent:k,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:k,strikethroughThickness:k,string:null,stroke:null,strokeDashArray:w,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:k,strokeOpacity:k,strokeWidth:null,style:null,surfaceScale:k,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:w,tabIndex:k,tableValues:null,target:null,targetX:k,targetY:k,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:w,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:k,underlineThickness:k,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:k,values:null,vAlphabetic:k,vMathematical:k,vectorEffect:null,vHanging:k,vIdeographic:k,version:null,vertAdvY:k,vertOriginX:k,vertOriginY:k,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:k,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:P}),I=A({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform:(e,t)=>"xlink:"+t.slice(5).toLowerCase()}),z=A({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:T}),R=A({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform:(e,t)=>"xml:"+t.slice(3).toLowerCase()}),O=h([M,D,I,z,R],"html"),N=h([M,L,I,z,R],"svg"),F=/[A-Z]/g,_=/-[a-z]/g,j=/^data[-\w.:]+$/i;function H(e){return"-"+e.toLowerCase()}function B(e){return e.charAt(1).toUpperCase()}let U={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"};var W=n(71854);let q=$("end"),V=$("start");function $(e){return function(t){let n=t&&t.position&&t.position[e]||{};if("number"==typeof n.line&&n.line>0&&"number"==typeof n.column&&n.column>0)return{line:n.line,column:n.column,offset:"number"==typeof n.offset&&n.offset>-1?n.offset:void 0}}}function X(e){return e&&"object"==typeof e?"position"in e||"type"in e?K(e.position):"start"in e||"end"in e?K(e):"line"in e||"column"in e?G(e):"":""}function G(e){return Y(e&&e.line)+":"+Y(e&&e.column)}function K(e){return G(e&&e.start)+"-"+G(e&&e.end)}function Y(e){return e&&"number"==typeof e?e:1}class Z extends Error{constructor(e,t,n){super(),"string"==typeof t&&(n=t,t=void 0);let r="",i={},l=!1;if(t&&(i="line"in t&&"column"in t||"start"in t&&"end"in t?{place:t}:"type"in t?{ancestors:[t],place:t.position}:{...t}),"string"==typeof e?r=e:!i.cause&&e&&(l=!0,r=e.message,i.cause=e),!i.ruleId&&!i.source&&"string"==typeof n){let e=n.indexOf(":");-1===e?i.ruleId=n:(i.source=n.slice(0,e),i.ruleId=n.slice(e+1))}if(!i.place&&i.ancestors&&i.ancestors){let e=i.ancestors[i.ancestors.length-1];e&&(i.place=e.position)}let o=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=o?o.column:void 0,this.fatal=void 0,this.file="",this.message=r,this.line=o?o.line:void 0,this.name=X(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=l&&i.cause&&"string"==typeof i.cause.stack?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Z.prototype.file="",Z.prototype.name="",Z.prototype.reason="",Z.prototype.message="",Z.prototype.stack="",Z.prototype.column=void 0,Z.prototype.line=void 0,Z.prototype.ancestors=void 0,Z.prototype.cause=void 0,Z.prototype.fatal=void 0,Z.prototype.place=void 0,Z.prototype.ruleId=void 0,Z.prototype.source=void 0;let J={}.hasOwnProperty,Q=new Map,ee=/[A-Z]/g,et=new Set(["table","tbody","thead","tfoot","tr"]),en=new Set(["td","th"]),er="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function ei(e,t,n){return"element"===t.type?function(e,t,n){let r=e.schema;"svg"===t.tagName.toLowerCase()&&"html"===r.space&&(e.schema=N),e.ancestors.push(t);let i=es(e,t.tagName,!1),l=function(e,t){let n,r,i={};for(r in t.properties)if("children"!==r&&J.call(t.properties,r)){let l=function(e,t,n){let r=function(e,t){let n=p(t),r=t,i=f;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&"data"===n.slice(0,4)&&j.test(t)){if("-"===t.charAt(4)){let e=t.slice(5).replace(_,B);r="data"+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!_.test(e)){let n=e.replace(F,H);"-"!==n.charAt(0)&&(n="-"+n),t="data"+n}}i=C}return new i(r,t)}(e.schema,t);if(!(null==n||"number"==typeof n&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?function(e,t){let n={};return(""===e[e.length-1]?[...e,""]:e).join((n.padRight?" ":"")+","+(!1===n.padLeft?"":" ")).trim()}(n):n.join(" ").trim()),"style"===r.property){let t="object"==typeof n?n:function(e,t){try{return W(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};let t=new Z("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:n,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw t.file=e.filePath||void 0,t.url=er+"#cannot-parse-style-attribute",t}}(e,String(n));return"css"===e.stylePropertyNameCase&&(t=function(e){let t,n={};for(t in e)J.call(e,t)&&(n[function(e){let t=e.replace(ee,ec);return"ms-"===t.slice(0,3)&&(t="-"+t),t}(t)]=e[t]);return n}(t)),["style",t]}return["react"===e.elementAttributeNameCase&&r.space?U[r.property]||r.property:r.attribute,n]}}(e,r,t.properties[r]);if(l){let[r,o]=l;e.tableCellAlignToStyle&&"align"===r&&"string"==typeof o&&en.has(t.tagName)?n=o:i[r]=o}}return n&&((i.style||(i.style={}))["css"===e.stylePropertyNameCase?"text-align":"textAlign"]=n),i}(e,t),o=ea(e,t);return et.has(t.tagName)&&(o=o.filter(function(e){return"string"!=typeof e||!("object"==typeof e?"text"===e.type&&c(e.value):c(e))})),el(e,l,i,t),eo(l,o),e.ancestors.pop(),e.schema=r,e.create(t,i,l,n)}(e,t,n):"mdxFlowExpression"===t.type||"mdxTextExpression"===t.type?function(e,t){if(t.data&&t.data.estree&&e.evaluater){let n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}eu(e,t.position)}(e,t):"mdxJsxFlowElement"===t.type||"mdxJsxTextElement"===t.type?function(e,t,n){let r=e.schema;"svg"===t.name&&"html"===r.space&&(e.schema=N),e.ancestors.push(t);let i=null===t.name?e.Fragment:es(e,t.name,!0),l=function(e,t){let n={};for(let r of t.attributes)if("mdxJsxExpressionAttribute"===r.type)if(r.data&&r.data.estree&&e.evaluater){let t=r.data.estree.body[0];t.type;let i=t.expression;i.type;let l=i.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else eu(e,t.position);else{let i,l=r.name;if(r.value&&"object"==typeof r.value)if(r.value.data&&r.value.data.estree&&e.evaluater){let t=r.value.data.estree.body[0];t.type,i=e.evaluater.evaluateExpression(t.expression)}else eu(e,t.position);else i=null===r.value||r.value;n[l]=i}return n}(e,t),o=ea(e,t);return el(e,l,i,t),eo(l,o),e.ancestors.pop(),e.schema=r,e.create(t,i,l,n)}(e,t,n):"mdxjsEsm"===t.type?function(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);eu(e,t.position)}(e,t):"root"===t.type?function(e,t,n){let r={};return eo(r,ea(e,t)),e.create(t,e.Fragment,r,n)}(e,t,n):"text"===t.type?t.value:void 0}function el(e,t,n,r){"string"!=typeof n&&n!==e.Fragment&&e.passNode&&(t.node=r)}function eo(e,t){if(t.length>0){let n=t.length>1?t:t[0];n&&(e.children=n)}}function ea(e,t){let n=[],r=-1,i=e.passKeys?new Map:Q;for(;++r<t.children.length;){let l,o=t.children[r];if(e.passKeys){let e="element"===o.type?o.tagName:"mdxJsxFlowElement"===o.type||"mdxJsxTextElement"===o.type?o.name:void 0;if(e){let t=i.get(e)||0;l=e+"-"+t,i.set(e,t+1)}}let a=ei(e,o,l);void 0!==a&&n.push(a)}return n}function es(e,t,n){let r;if(n)if(t.includes(".")){let e,n=t.split("."),i=-1;for(;++i<n.length;){let t=s(n[i])?{type:"Identifier",name:n[i]}:{type:"Literal",value:n[i]};e=e?{type:"MemberExpression",object:e,property:t,computed:!!(i&&"Literal"===t.type),optional:!1}:t}r=e}else r=s(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};else r={type:"Literal",value:t};if("Literal"===r.type){let t=r.value;return J.call(e.components,t)?e.components[t]:t}if(e.evaluater)return e.evaluater.evaluateExpression(r);eu(e)}function eu(e,t){let n=new Z("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw n.file=e.filePath||void 0,n.url=er+"#cannot-handle-mdx-estrees-without-createevaluater",n}function ec(e){return"-"+e.toLowerCase()}let ed={action:["form"],cite:["blockquote","del","ins","q"],data:["object"],formAction:["button","input"],href:["a","area","base","link"],icon:["menuitem"],itemId:null,manifest:["html"],ping:["a","area"],poster:["video"],src:["audio","embed","iframe","img","input","script","source","track","video"]};var eh=n(28064);n(74188);let ep={};function ef(e,t,n){var r;if((r=e)&&"object"==typeof r){if("value"in e)return"html"!==e.type||n?e.value:"";if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return em(e.children,t,n)}return Array.isArray(e)?em(e,t,n):""}function em(e,t,n){let r=[],i=-1;for(;++i<e.length;)r[i]=ef(e[i],t,n);return r.join("")}function eg(e,t,n,r){let i,l=e.length,o=0;if(t=t<0?-t>l?0:l+t:t>l?l:t,n=n>0?n:0,r.length<1e4)(i=Array.from(r)).unshift(t,n),e.splice(...i);else for(n&&e.splice(t,n);o<r.length;)(i=r.slice(o,o+1e4)).unshift(t,0),e.splice(...i),o+=1e4,t+=1e4}function ey(e,t){return e.length>0?(eg(e,e.length,0,t),e):t}class ev{constructor(e){this.left=e?[...e]:[],this.right=[]}get(e){if(e<0||e>=this.left.length+this.right.length)throw RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return e<this.left.length?this.left[e]:this.right[this.right.length-e+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(e,t){let n=null==t?1/0:t;return n<this.left.length?this.left.slice(e,n):e>this.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){this.setCursor(Math.trunc(e));let r=this.right.splice(this.right.length-(t||0),1/0);return n&&ek(this.left,n),r.reverse()}pop(){return this.setCursor(1/0),this.left.pop()}push(e){this.setCursor(1/0),this.left.push(e)}pushMany(e){this.setCursor(1/0),ek(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),ek(this.right,e.reverse())}setCursor(e){if(e!==this.left.length&&(!(e>this.left.length)||0!==this.right.length)&&(!(e<0)||0!==this.left.length))if(e<this.left.length){let t=this.left.splice(e,1/0);ek(this.right,t.reverse())}else{let t=this.right.splice(this.left.length+this.right.length-e,1/0);ek(this.left,t.reverse())}}}function ek(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function ex(e){let t,n,r,i,l,o,a,s={},u=-1,c=new ev(e);for(;++u<c.length;){for(;u in s;)u=s[u];if(t=c.get(u),u&&"chunkFlow"===t[1].type&&"listItemPrefix"===c.get(u-1)[1].type&&((r=0)<(o=t[1]._tokenizer.events).length&&"lineEndingBlank"===o[r][1].type&&(r+=2),r<o.length&&"content"===o[r][1].type))for(;++r<o.length&&"content"!==o[r][1].type;)"chunkText"===o[r][1].type&&(o[r][1]._isInFirstContentOfListItem=!0,r++);if("enter"===t[0])t[1].contentType&&(Object.assign(s,function(e,t){let n,r,i=e.get(t)[1],l=e.get(t)[2],o=t-1,a=[],s=i._tokenizer;!s&&(s=l.parser[i.contentType](i.start),i._contentTypeTextTrailing&&(s._contentTypeTextTrailing=!0));let u=s.events,c=[],d={},h=-1,p=i,f=0,m=0,g=[0];for(;p;){for(;e.get(++o)[1]!==p;);a.push(o),!p._tokenizer&&(n=l.sliceStream(p),p.next||n.push(null),r&&s.defineSkip(p.start),p._isInFirstContentOfListItem&&(s._gfmTasklistFirstContentOfListItem=!0),s.write(n),p._isInFirstContentOfListItem&&(s._gfmTasklistFirstContentOfListItem=void 0)),r=p,p=p.next}for(p=i;++h<u.length;)"exit"===u[h][0]&&"enter"===u[h-1][0]&&u[h][1].type===u[h-1][1].type&&u[h][1].start.line!==u[h][1].end.line&&(m=h+1,g.push(m),p._tokenizer=void 0,p.previous=void 0,p=p.next);for(s.events=[],p?(p._tokenizer=void 0,p.previous=void 0):g.pop(),h=g.length;h--;){let t=u.slice(g[h],g[h+1]),n=a.pop();c.push([n,n+t.length-1]),e.splice(n,2,t)}for(c.reverse(),h=-1;++h<c.length;)d[f+c[h][0]]=f+c[h][1],f+=c[h][1]-c[h][0]-1;return d}(c,u)),u=s[u],a=!0);else if(t[1]._container){for(r=u,n=void 0;r--;)if("lineEnding"===(i=c.get(r))[1].type||"lineEndingBlank"===i[1].type)"enter"===i[0]&&(n&&(c.get(n)[1].type="lineEndingBlank"),i[1].type="lineEnding",n=r);else if("linePrefix"===i[1].type||"listItemIndent"===i[1].type);else break;n&&(t[1].end={...c.get(n)[1].start},(l=c.slice(n,u)).unshift(t),c.splice(n,u-n+1,l))}}return eg(e,0,1/0,c.slice(0)),!a}let eb={}.hasOwnProperty,ew=eR(/[A-Za-z]/),eS=eR(/[\dA-Za-z]/),eE=eR(/[#-'*+\--9=?A-Z^-~]/);function eC(e){return null!==e&&(e<32||127===e)}let eA=eR(/\d/),eM=eR(/[\dA-Fa-f]/),eP=eR(/[!-/:-@[-`{-~]/);function eT(e){return null!==e&&e<-2}function eD(e){return null!==e&&(e<0||32===e)}function eL(e){return -2===e||-1===e||32===e}let eI=eR(/\p{P}|\p{S}/u),ez=eR(/\s/);function eR(e){return function(t){return null!==t&&t>-1&&e.test(String.fromCharCode(t))}}function eO(e,t,n,r){let i=r?r-1:1/0,l=0;return function(r){return eL(r)?(e.enter(n),function r(o){return eL(o)&&l++<i?(e.consume(o),r):(e.exit(n),t(o))}(r)):t(r)}}let eN={tokenize:function(e){let t,n=e.attempt(this.parser.constructs.contentInitial,function(t){return null===t?void e.consume(t):(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),eO(e,n,"linePrefix"))},function(n){return e.enter("paragraph"),function n(r){let i=e.enter("chunkText",{contentType:"text",previous:t});return t&&(t.next=i),t=i,function t(r){if(null===r){e.exit("chunkText"),e.exit("paragraph"),e.consume(r);return}return eT(r)?(e.consume(r),e.exit("chunkText"),n):(e.consume(r),t)}(r)}(n)});return n}},eF={tokenize:function(e){let t,n,r,i=this,l=[],o=0;return a;function a(t){if(o<l.length){let n=l[o];return i.containerState=n[1],e.attempt(n[0].continuation,s,u)(t)}return u(t)}function s(e){if(o++,i.containerState._closeFlow){let n;i.containerState._closeFlow=void 0,t&&y();let r=i.events.length,l=r;for(;l--;)if("exit"===i.events[l][0]&&"chunkFlow"===i.events[l][1].type){n=i.events[l][1].end;break}g(o);let a=r;for(;a<i.events.length;)i.events[a][1].end={...n},a++;return eg(i.events,l+1,0,i.events.slice(r)),i.events.length=a,u(e)}return a(e)}function u(n){if(o===l.length){if(!t)return h(n);if(t.currentConstruct&&t.currentConstruct.concrete)return f(n);i.interrupt=!!(t.currentConstruct&&!t._gfmTableDynamicInterruptHack)}return i.containerState={},e.check(e_,c,d)(n)}function c(e){return t&&y(),g(o),h(e)}function d(e){return i.parser.lazy[i.now().line]=o!==l.length,r=i.now().offset,f(e)}function h(t){return i.containerState={},e.attempt(e_,p,f)(t)}function p(e){return o++,l.push([i.currentConstruct,i.containerState]),h(e)}function f(r){if(null===r){t&&y(),g(0),e.consume(r);return}return t=t||i.parser.flow(i.now()),e.enter("chunkFlow",{_tokenizer:t,contentType:"flow",previous:n}),function t(n){if(null===n){m(e.exit("chunkFlow"),!0),g(0),e.consume(n);return}return eT(n)?(e.consume(n),m(e.exit("chunkFlow")),o=0,i.interrupt=void 0,a):(e.consume(n),t)}(r)}function m(e,l){let a=i.sliceStream(e);if(l&&a.push(null),e.previous=n,n&&(n.next=e),n=e,t.defineSkip(e.start),t.write(a),i.parser.lazy[e.start.line]){let e,n,l=t.events.length;for(;l--;)if(t.events[l][1].start.offset<r&&(!t.events[l][1].end||t.events[l][1].end.offset>r))return;let a=i.events.length,s=a;for(;s--;)if("exit"===i.events[s][0]&&"chunkFlow"===i.events[s][1].type){if(e){n=i.events[s][1].end;break}e=!0}for(g(o),l=a;l<i.events.length;)i.events[l][1].end={...n},l++;eg(i.events,s+1,0,i.events.slice(a)),i.events.length=l}}function g(t){let n=l.length;for(;n-- >t;){let t=l[n];i.containerState=t[1],t[0].exit.call(i,e)}l.length=t}function y(){t.write([null]),n=void 0,t=void 0,i.containerState._closeFlow=void 0}}},e_={tokenize:function(e,t,n){return eO(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}},ej={partial:!0,tokenize:function(e,t,n){return function(t){return eL(t)?eO(e,r,"linePrefix")(t):r(t)};function r(e){return null===e||eT(e)?t(e):n(e)}}},eH={resolve:function(e){return ex(e),e},tokenize:function(e,t){let n;return function(t){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),r(t)};function r(t){return null===t?i(t):eT(t)?e.check(eB,l,i)(t):(e.consume(t),r)}function i(n){return e.exit("chunkContent"),e.exit("content"),t(n)}function l(t){return e.consume(t),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,r}}},eB={partial:!0,tokenize:function(e,t,n){let r=this;return function(t){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),eO(e,i,"linePrefix")};function i(i){if(null===i||eT(i))return n(i);let l=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&l&&"linePrefix"===l[1].type&&l[2].sliceSerialize(l[1],!0).length>=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}},eU={tokenize:function(e){let t=this,n=e.attempt(ej,function(r){return null===r?void e.consume(r):(e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n)},e.attempt(this.parser.constructs.flowInitial,r,eO(e,e.attempt(this.parser.constructs.flow,r,e.attempt(eH,r)),"linePrefix")));return n;function r(r){return null===r?void e.consume(r):(e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),t.currentConstruct=void 0,n)}}},eW={resolveAll:eX()},eq=e$("string"),eV=e$("text");function e$(e){return{resolveAll:eX("text"===e?eG:void 0),tokenize:function(t){let n=this,r=this.parser.constructs[e],i=t.attempt(r,l,o);return l;function l(e){return s(e)?i(e):o(e)}function o(e){return null===e?void t.consume(e):(t.enter("data"),t.consume(e),a)}function a(e){return s(e)?(t.exit("data"),i(e)):(t.consume(e),a)}function s(e){if(null===e)return!0;let t=r[e],i=-1;if(t)for(;++i<t.length;){let e=t[i];if(!e.previous||e.previous.call(n,n.previous))return!0}return!1}}}}function eX(e){return function(t,n){let r,i=-1;for(;++i<=t.length;)void 0===r?t[i]&&"data"===t[i][1].type&&(r=i,i++):t[i]&&"data"===t[i][1].type||(i!==r+2&&(t[r][1].end=t[i-1][1].end,t.splice(r+2,i-r-2),i=r+2),r=void 0);return e?e(t,n):t}}function eG(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||"lineEnding"===e[n][1].type)&&"data"===e[n-1][1].type){let r,i=e[n-1][1],l=t.sliceStream(i),o=l.length,a=-1,s=0;for(;o--;){let e=l[o];if("string"==typeof e){for(a=e.length;32===e.charCodeAt(a-1);)s++,a--;if(a)break;a=-1}else if(-2===e)r=!0,s++;else if(-1===e);else{o++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(s=0),s){let l={type:n===e.length||r||s<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:o?a:i.start._bufferIndex+a,_index:i.start._index+o,line:i.end.line,column:i.end.column-s,offset:i.end.offset-s},end:{...i.end}};i.end={...l.start},i.start.offset===i.end.offset?Object.assign(i,l):(e.splice(n,0,["enter",l,t],["exit",l,t]),n+=2)}n++}return e}let eK={name:"thematicBreak",tokenize:function(e,t,n){let r,i=0;return function(l){var o;return e.enter("thematicBreak"),r=o=l,function l(o){return o===r?(e.enter("thematicBreakSequence"),function t(n){return n===r?(e.consume(n),i++,t):(e.exit("thematicBreakSequence"),eL(n)?eO(e,l,"whitespace")(n):l(n))}(o)):i>=3&&(null===o||eT(o))?(e.exit("thematicBreak"),t(o)):n(o)}(o)}}},eY={continuation:{tokenize:function(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(ej,function(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,eO(e,t,"listItemIndent",r.containerState.size+1)(n)},function(n){return r.containerState.furtherBlankLines||!eL(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,i(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(eJ,t,i)(n))});function i(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,eO(e,e.attempt(eY,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(i)}}},exit:function(e){e.exit(this.containerState.type)},name:"list",tokenize:function(e,t,n){let r=this,i=r.events[r.events.length-1],l=i&&"linePrefix"===i[1].type?i[2].sliceSerialize(i[1],!0).length:0,o=0;return function(t){let i=r.containerState.type||(42===t||43===t||45===t?"listUnordered":"listOrdered");if("listUnordered"===i?!r.containerState.marker||t===r.containerState.marker:eA(t)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),"listUnordered"===i)return e.enter("listItemPrefix"),42===t||45===t?e.check(eK,n,a)(t):a(t);if(!r.interrupt||49===t)return e.enter("listItemPrefix"),e.enter("listItemValue"),function t(i){return eA(i)&&++o<10?(e.consume(i),t):(!r.interrupt||o<2)&&(r.containerState.marker?i===r.containerState.marker:41===i||46===i)?(e.exit("listItemValue"),a(i)):n(i)}(t)}return n(t)};function a(t){return e.enter("listItemMarker"),e.consume(t),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||t,e.check(ej,r.interrupt?n:s,e.attempt(eZ,c,u))}function s(e){return r.containerState.initialBlankLine=!0,l++,c(e)}function u(t){return eL(t)?(e.enter("listItemPrefixWhitespace"),e.consume(t),e.exit("listItemPrefixWhitespace"),c):n(t)}function c(n){return r.containerState.size=l+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(n)}}},eZ={partial:!0,tokenize:function(e,t,n){let r=this;return eO(e,function(e){let i=r.events[r.events.length-1];return!eL(e)&&i&&"listItemPrefixWhitespace"===i[1].type?t(e):n(e)},"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5)}},eJ={partial:!0,tokenize:function(e,t,n){let r=this;return eO(e,function(e){let i=r.events[r.events.length-1];return i&&"listItemIndent"===i[1].type&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)},"listItemIndent",r.containerState.size+1)}},eQ={continuation:{tokenize:function(e,t,n){let r=this;return function(t){return eL(t)?eO(e,i,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):i(t)};function i(r){return e.attempt(eQ,t,n)(r)}}},exit:function(e){e.exit("blockQuote")},name:"blockQuote",tokenize:function(e,t,n){let r=this;return function(t){if(62===t){let n=r.containerState;return n.open||(e.enter("blockQuote",{_container:!0}),n.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(t),e.exit("blockQuoteMarker"),i}return n(t)};function i(n){return eL(n)?(e.enter("blockQuotePrefixWhitespace"),e.consume(n),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(n))}}};function e1(e,t,n,r,i,l,o,a,s){let u=s||1/0,c=0;return function(t){return 60===t?(e.enter(r),e.enter(i),e.enter(l),e.consume(t),e.exit(l),d):null===t||32===t||41===t||eC(t)?n(t):(e.enter(r),e.enter(o),e.enter(a),e.enter("chunkString",{contentType:"string"}),f(t))};function d(n){return 62===n?(e.enter(l),e.consume(n),e.exit(l),e.exit(i),e.exit(r),t):(e.enter(a),e.enter("chunkString",{contentType:"string"}),h(n))}function h(t){return 62===t?(e.exit("chunkString"),e.exit(a),d(t)):null===t||60===t||eT(t)?n(t):(e.consume(t),92===t?p:h)}function p(t){return 60===t||62===t||92===t?(e.consume(t),h):h(t)}function f(i){return!c&&(null===i||41===i||eD(i))?(e.exit("chunkString"),e.exit(a),e.exit(o),e.exit(r),t(i)):c<u&&40===i?(e.consume(i),c++,f):41===i?(e.consume(i),c--,f):null===i||32===i||40===i||eC(i)?n(i):(e.consume(i),92===i?m:f)}function m(t){return 40===t||41===t||92===t?(e.consume(t),f):f(t)}}function e0(e,t,n,r,i,l){let o,a=this,s=0;return function(t){return e.enter(r),e.enter(i),e.consume(t),e.exit(i),e.enter(l),u};function u(d){return s>999||null===d||91===d||93===d&&!o||94===d&&!s&&"_hiddenFootnoteSupport"in a.parser.constructs?n(d):93===d?(e.exit(l),e.enter(i),e.consume(d),e.exit(i),e.exit(r),t):eT(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),u):(e.enter("chunkString",{contentType:"string"}),c(d))}function c(t){return null===t||91===t||93===t||eT(t)||s++>999?(e.exit("chunkString"),u(t)):(e.consume(t),o||(o=!eL(t)),92===t?d:c)}function d(t){return 91===t||92===t||93===t?(e.consume(t),s++,c):c(t)}}function e2(e,t,n,r,i,l){let o;return function(t){return 34===t||39===t||40===t?(e.enter(r),e.enter(i),e.consume(t),e.exit(i),o=40===t?41:t,a):n(t)};function a(n){return n===o?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(l),s(n))}function s(t){return t===o?(e.exit(l),a(o)):null===t?n(t):eT(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),eO(e,s,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),u(t))}function u(t){return t===o||null===t||eT(t)?(e.exit("chunkString"),s(t)):(e.consume(t),92===t?c:u)}function c(t){return t===o||92===t?(e.consume(t),u):u(t)}}function e4(e,t){let n;return function r(i){return eT(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):eL(i)?eO(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}function e3(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}let e7={partial:!0,tokenize:function(e,t,n){return function(t){return eD(t)?e4(e,r)(t):n(t)};function r(t){return e2(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t)}function i(t){return eL(t)?eO(e,l,"whitespace")(t):l(t)}function l(e){return null===e||eT(e)?t(e):n(e)}}},e8={name:"codeIndented",tokenize:function(e,t,n){let r=this;return function(t){return e.enter("codeIndented"),eO(e,i,"linePrefix",5)(t)};function i(t){let i=r.events[r.events.length-1];return i&&"linePrefix"===i[1].type&&i[2].sliceSerialize(i[1],!0).length>=4?function t(n){return null===n?l(n):eT(n)?e.attempt(e5,t,l)(n):(e.enter("codeFlowValue"),function n(r){return null===r||eT(r)?(e.exit("codeFlowValue"),t(r)):(e.consume(r),n)}(n))}(t):n(t)}function l(n){return e.exit("codeIndented"),t(n)}}},e5={partial:!0,tokenize:function(e,t,n){let r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):eT(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i):eO(e,l,"linePrefix",5)(t)}function l(e){let l=r.events[r.events.length-1];return l&&"linePrefix"===l[1].type&&l[2].sliceSerialize(l[1],!0).length>=4?t(e):eT(e)?i(e):n(e)}}},e6={name:"setextUnderline",resolveTo:function(e,t){let n,r,i,l=e.length;for(;l--;)if("enter"===e[l][0]){if("content"===e[l][1].type){n=l;break}"paragraph"===e[l][1].type&&(r=l)}else"content"===e[l][1].type&&e.splice(l,1),i||"definition"!==e[l][1].type||(i=l);let o={type:"setextHeading",start:{...e[n][1].start},end:{...e[e.length-1][1].end}};return e[r][1].type="setextHeadingText",i?(e.splice(r,0,["enter",o,t]),e.splice(i+1,0,["exit",e[n][1],t]),e[n][1].end={...e[i][1].end}):e[n][1]=o,e.push(["exit",o,t]),e},tokenize:function(e,t,n){let r,i=this;return function(t){var o;let a,s=i.events.length;for(;s--;)if("lineEnding"!==i.events[s][1].type&&"linePrefix"!==i.events[s][1].type&&"content"!==i.events[s][1].type){a="paragraph"===i.events[s][1].type;break}return!i.parser.lazy[i.now().line]&&(i.interrupt||a)?(e.enter("setextHeadingLine"),r=t,o=t,e.enter("setextHeadingLineSequence"),function t(n){return n===r?(e.consume(n),t):(e.exit("setextHeadingLineSequence"),eL(n)?eO(e,l,"lineSuffix")(n):l(n))}(o)):n(t)};function l(r){return null===r||eT(r)?(e.exit("setextHeadingLine"),t(r)):n(r)}}},e9=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],te=["pre","script","style","textarea"],tt={partial:!0,tokenize:function(e,t,n){return function(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),e.attempt(ej,t,n)}}},tn={partial:!0,tokenize:function(e,t,n){let r=this;return function(t){return eT(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i):n(t)};function i(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}},tr={partial:!0,tokenize:function(e,t,n){let r=this;return function(t){return null===t?n(t):(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i)};function i(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}},ti={concrete:!0,name:"codeFenced",tokenize:function(e,t,n){let r,i=this,l={partial:!0,tokenize:function(e,t,n){let l=0;return function(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),o};function o(t){return e.enter("codeFencedFence"),eL(t)?eO(e,s,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):s(t)}function s(t){return t===r?(e.enter("codeFencedFenceSequence"),function t(i){return i===r?(l++,e.consume(i),t):l>=a?(e.exit("codeFencedFenceSequence"),eL(i)?eO(e,u,"whitespace")(i):u(i)):n(i)}(t)):n(t)}function u(r){return null===r||eT(r)?(e.exit("codeFencedFence"),t(r)):n(r)}}},o=0,a=0;return function(t){var l=t;let u=i.events[i.events.length-1];return o=u&&"linePrefix"===u[1].type?u[2].sliceSerialize(u[1],!0).length:0,r=l,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),function t(i){return i===r?(a++,e.consume(i),t):a<3?n(i):(e.exit("codeFencedFenceSequence"),eL(i)?eO(e,s,"whitespace")(i):s(i))}(l)};function s(l){return null===l||eT(l)?(e.exit("codeFencedFence"),i.interrupt?t(l):e.check(tr,c,f)(l)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),function t(i){return null===i||eT(i)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),s(i)):eL(i)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),eO(e,u,"whitespace")(i)):96===i&&i===r?n(i):(e.consume(i),t)}(l))}function u(t){return null===t||eT(t)?s(t):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),function t(i){return null===i||eT(i)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),s(i)):96===i&&i===r?n(i):(e.consume(i),t)}(t))}function c(t){return e.attempt(l,f,d)(t)}function d(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),h}function h(t){return o>0&&eL(t)?eO(e,p,"linePrefix",o+1)(t):p(t)}function p(t){return null===t||eT(t)?e.check(tr,c,f)(t):(e.enter("codeFlowValue"),function t(n){return null===n||eT(n)?(e.exit("codeFlowValue"),p(n)):(e.consume(n),t)}(t))}function f(n){return e.exit("codeFenced"),t(n)}}},tl=document.createElement("i");function to(e){let t="&"+e+";";tl.innerHTML=t;let n=tl.textContent;return(59!==n.charCodeAt(n.length-1)||"semi"===e)&&n!==t&&n}let ta={name:"characterReference",tokenize:function(e,t,n){let r,i,l=this,o=0;return function(t){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(t),e.exit("characterReferenceMarker"),a};function a(t){return 35===t?(e.enter("characterReferenceMarkerNumeric"),e.consume(t),e.exit("characterReferenceMarkerNumeric"),s):(e.enter("characterReferenceValue"),r=31,i=eS,u(t))}function s(t){return 88===t||120===t?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(t),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),r=6,i=eM,u):(e.enter("characterReferenceValue"),r=7,i=eA,u(t))}function u(a){if(59===a&&o){let r=e.exit("characterReferenceValue");return i!==eS||to(l.sliceSerialize(r))?(e.enter("characterReferenceMarker"),e.consume(a),e.exit("characterReferenceMarker"),e.exit("characterReference"),t):n(a)}return i(a)&&o++<r?(e.consume(a),u):n(a)}}},ts={name:"characterEscape",tokenize:function(e,t,n){return function(t){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(t),e.exit("escapeMarker"),r};function r(r){return eP(r)?(e.enter("characterEscapeValue"),e.consume(r),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(r)}}},tu={name:"lineEnding",tokenize:function(e,t){return function(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),eO(e,t,"linePrefix")}}};function tc(e,t,n){let r=[],i=-1;for(;++i<e.length;){let l=e[i].resolveAll;l&&!r.includes(l)&&(t=l(t,n),r.push(l))}return t}let td={name:"labelEnd",resolveAll:function(e){let t=-1,n=[];for(;++t<e.length;){let r=e[t][1];if(n.push(e[t]),"labelImage"===r.type||"labelLink"===r.type||"labelEnd"===r.type){let e="labelImage"===r.type?4:2;r.type="data",t+=e}}return e.length!==n.length&&eg(e,0,e.length,n),e},resolveTo:function(e,t){let n,r,i,l,o=e.length,a=0;for(;o--;)if(n=e[o][1],r){if("link"===n.type||"labelLink"===n.type&&n._inactive)break;"enter"===e[o][0]&&"labelLink"===n.type&&(n._inactive=!0)}else if(i){if("enter"===e[o][0]&&("labelImage"===n.type||"labelLink"===n.type)&&!n._balanced&&(r=o,"labelLink"!==n.type)){a=2;break}}else"labelEnd"===n.type&&(i=o);let s={type:"labelLink"===e[r][1].type?"link":"image",start:{...e[r][1].start},end:{...e[e.length-1][1].end}},u={type:"label",start:{...e[r][1].start},end:{...e[i][1].end}},c={type:"labelText",start:{...e[r+a+2][1].end},end:{...e[i-2][1].start}};return l=ey(l=[["enter",s,t],["enter",u,t]],e.slice(r+1,r+a+3)),l=ey(l,[["enter",c,t]]),l=ey(l,tc(t.parser.constructs.insideSpan.null,e.slice(r+a+4,i-3),t)),l=ey(l,[["exit",c,t],e[i-2],e[i-1],["exit",u,t]]),l=ey(l,e.slice(i+1)),l=ey(l,[["exit",s,t]]),eg(e,r,e.length,l),e},tokenize:function(e,t,n){let r,i,l=this,o=l.events.length;for(;o--;)if(("labelImage"===l.events[o][1].type||"labelLink"===l.events[o][1].type)&&!l.events[o][1]._balanced){r=l.events[o][1];break}return function(t){return r?r._inactive?c(t):(i=l.parser.defined.includes(e3(l.sliceSerialize({start:r.end,end:l.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelEnd"),a):n(t)};function a(t){return 40===t?e.attempt(th,u,i?u:c)(t):91===t?e.attempt(tp,u,i?s:c)(t):i?u(t):c(t)}function s(t){return e.attempt(tf,u,c)(t)}function u(e){return t(e)}function c(e){return r._balanced=!0,n(e)}}},th={tokenize:function(e,t,n){return function(t){return e.enter("resource"),e.enter("resourceMarker"),e.consume(t),e.exit("resourceMarker"),r};function r(t){return eD(t)?e4(e,i)(t):i(t)}function i(t){return 41===t?u(t):e1(e,l,o,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(t)}function l(t){return eD(t)?e4(e,a)(t):u(t)}function o(e){return n(e)}function a(t){return 34===t||39===t||40===t?e2(e,s,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(t):u(t)}function s(t){return eD(t)?e4(e,u)(t):u(t)}function u(r){return 41===r?(e.enter("resourceMarker"),e.consume(r),e.exit("resourceMarker"),e.exit("resource"),t):n(r)}}},tp={tokenize:function(e,t,n){let r=this;return function(t){return e0.call(r,e,i,l,"reference","referenceMarker","referenceString")(t)};function i(e){return r.parser.defined.includes(e3(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(e):n(e)}function l(e){return n(e)}}},tf={tokenize:function(e,t,n){return function(t){return e.enter("reference"),e.enter("referenceMarker"),e.consume(t),e.exit("referenceMarker"),r};function r(r){return 93===r?(e.enter("referenceMarker"),e.consume(r),e.exit("referenceMarker"),e.exit("reference"),t):n(r)}}},tm={name:"labelStartImage",resolveAll:td.resolveAll,tokenize:function(e,t,n){let r=this;return function(t){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(t),e.exit("labelImageMarker"),i};function i(t){return 91===t?(e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelImage"),l):n(t)}function l(e){return 94===e&&"_hiddenFootnoteSupport"in r.parser.constructs?n(e):t(e)}}};function tg(e){return null===e||eD(e)||ez(e)?1:eI(e)?2:void 0}let ty={name:"attention",resolveAll:function(e,t){let n,r,i,l,o,a,s,u,c=-1;for(;++c<e.length;)if("enter"===e[c][0]&&"attentionSequence"===e[c][1].type&&e[c][1]._close){for(n=c;n--;)if("exit"===e[n][0]&&"attentionSequence"===e[n][1].type&&e[n][1]._open&&t.sliceSerialize(e[n][1]).charCodeAt(0)===t.sliceSerialize(e[c][1]).charCodeAt(0)){if((e[n][1]._close||e[c][1]._open)&&(e[c][1].end.offset-e[c][1].start.offset)%3&&!((e[n][1].end.offset-e[n][1].start.offset+e[c][1].end.offset-e[c][1].start.offset)%3))continue;a=e[n][1].end.offset-e[n][1].start.offset>1&&e[c][1].end.offset-e[c][1].start.offset>1?2:1;let d={...e[n][1].end},h={...e[c][1].start};tv(d,-a),tv(h,a),l={type:a>1?"strongSequence":"emphasisSequence",start:d,end:{...e[n][1].end}},o={type:a>1?"strongSequence":"emphasisSequence",start:{...e[c][1].start},end:h},i={type:a>1?"strongText":"emphasisText",start:{...e[n][1].end},end:{...e[c][1].start}},r={type:a>1?"strong":"emphasis",start:{...l.start},end:{...o.end}},e[n][1].end={...l.start},e[c][1].start={...o.end},s=[],e[n][1].end.offset-e[n][1].start.offset&&(s=ey(s,[["enter",e[n][1],t],["exit",e[n][1],t]])),s=ey(s,[["enter",r,t],["enter",l,t],["exit",l,t],["enter",i,t]]),s=ey(s,tc(t.parser.constructs.insideSpan.null,e.slice(n+1,c),t)),s=ey(s,[["exit",i,t],["enter",o,t],["exit",o,t],["exit",r,t]]),e[c][1].end.offset-e[c][1].start.offset?(u=2,s=ey(s,[["enter",e[c][1],t],["exit",e[c][1],t]])):u=0,eg(e,n-1,c-n+3,s),c=n+s.length-u-2;break}}for(c=-1;++c<e.length;)"attentionSequence"===e[c][1].type&&(e[c][1].type="data");return e},tokenize:function(e,t){let n,r=this.parser.constructs.attentionMarkers.null,i=this.previous,l=tg(i);return function(o){return n=o,e.enter("attentionSequence"),function o(a){if(a===n)return e.consume(a),o;let s=e.exit("attentionSequence"),u=tg(a),c=!u||2===u&&l||r.includes(a),d=!l||2===l&&u||r.includes(i);return s._open=!!(42===n?c:c&&(l||!d)),s._close=!!(42===n?d:d&&(u||!c)),t(a)}(o)}}};function tv(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}let tk={name:"labelStartLink",resolveAll:td.resolveAll,tokenize:function(e,t,n){let r=this;return function(t){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelLink"),i};function i(e){return 94===e&&"_hiddenFootnoteSupport"in r.parser.constructs?n(e):t(e)}}},tx={42:eY,43:eY,45:eY,48:eY,49:eY,50:eY,51:eY,52:eY,53:eY,54:eY,55:eY,56:eY,57:eY,62:eQ},tb={91:{name:"definition",tokenize:function(e,t,n){let r,i=this;return function(t){var r;return e.enter("definition"),r=t,e0.call(i,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(r)};function l(t){return(r=e3(i.sliceSerialize(i.events[i.events.length-1][1]).slice(1,-1)),58===t)?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),o):n(t)}function o(t){return eD(t)?e4(e,a)(t):a(t)}function a(t){return e1(e,s,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(t)}function s(t){return e.attempt(e7,u,u)(t)}function u(t){return eL(t)?eO(e,c,"whitespace")(t):c(t)}function c(l){return null===l||eT(l)?(e.exit("definition"),i.parser.defined.push(r),t(l)):n(l)}}}},tw={[-2]:e8,[-1]:e8,32:e8},tS={35:{name:"headingAtx",resolve:function(e,t){let n,r,i=e.length-2,l=3;return"whitespace"===e[3][1].type&&(l+=2),i-2>l&&"whitespace"===e[i][1].type&&(i-=2),"atxHeadingSequence"===e[i][1].type&&(l===i-1||i-4>l&&"whitespace"===e[i-2][1].type)&&(i-=l+1===i?2:4),i>l&&(n={type:"atxHeadingText",start:e[l][1].start,end:e[i][1].end},r={type:"chunkText",start:e[l][1].start,end:e[i][1].end,contentType:"text"},eg(e,l,i-l+1,[["enter",n,t],["enter",r,t],["exit",r,t],["exit",n,t]])),e},tokenize:function(e,t,n){let r=0;return function(i){var l;return e.enter("atxHeading"),l=i,e.enter("atxHeadingSequence"),function i(l){return 35===l&&r++<6?(e.consume(l),i):null===l||eD(l)?(e.exit("atxHeadingSequence"),function n(r){return 35===r?(e.enter("atxHeadingSequence"),function t(r){return 35===r?(e.consume(r),t):(e.exit("atxHeadingSequence"),n(r))}(r)):null===r||eT(r)?(e.exit("atxHeading"),t(r)):eL(r)?eO(e,n,"whitespace")(r):(e.enter("atxHeadingText"),function t(r){return null===r||35===r||eD(r)?(e.exit("atxHeadingText"),n(r)):(e.consume(r),t)}(r))}(l)):n(l)}(l)}}},42:eK,45:[e6,eK],60:{concrete:!0,name:"htmlFlow",resolveTo:function(e){let t=e.length;for(;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););return t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e},tokenize:function(e,t,n){let r,i,l,o,a,s=this;return function(t){var n;return n=t,e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(n),u};function u(o){return 33===o?(e.consume(o),c):47===o?(e.consume(o),i=!0,p):63===o?(e.consume(o),r=3,s.interrupt?t:I):ew(o)?(e.consume(o),l=String.fromCharCode(o),f):n(o)}function c(i){return 45===i?(e.consume(i),r=2,d):91===i?(e.consume(i),r=5,o=0,h):ew(i)?(e.consume(i),r=4,s.interrupt?t:I):n(i)}function d(r){return 45===r?(e.consume(r),s.interrupt?t:I):n(r)}function h(r){let i="CDATA[";return r===i.charCodeAt(o++)?(e.consume(r),o===i.length)?s.interrupt?t:E:h:n(r)}function p(t){return ew(t)?(e.consume(t),l=String.fromCharCode(t),f):n(t)}function f(o){if(null===o||47===o||62===o||eD(o)){let a=47===o,u=l.toLowerCase();return!a&&!i&&te.includes(u)?(r=1,s.interrupt?t(o):E(o)):e9.includes(l.toLowerCase())?(r=6,a)?(e.consume(o),m):s.interrupt?t(o):E(o):(r=7,s.interrupt&&!s.parser.lazy[s.now().line]?n(o):i?function t(n){return eL(n)?(e.consume(n),t):w(n)}(o):g(o))}return 45===o||eS(o)?(e.consume(o),l+=String.fromCharCode(o),f):n(o)}function m(r){return 62===r?(e.consume(r),s.interrupt?t:E):n(r)}function g(t){return 47===t?(e.consume(t),w):58===t||95===t||ew(t)?(e.consume(t),y):eL(t)?(e.consume(t),g):w(t)}function y(t){return 45===t||46===t||58===t||95===t||eS(t)?(e.consume(t),y):v(t)}function v(t){return 61===t?(e.consume(t),k):eL(t)?(e.consume(t),v):g(t)}function k(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),a=t,x):eL(t)?(e.consume(t),k):function t(n){return null===n||34===n||39===n||47===n||60===n||61===n||62===n||96===n||eD(n)?v(n):(e.consume(n),t)}(t)}function x(t){return t===a?(e.consume(t),a=null,b):null===t||eT(t)?n(t):(e.consume(t),x)}function b(e){return 47===e||62===e||eL(e)?g(e):n(e)}function w(t){return 62===t?(e.consume(t),S):n(t)}function S(t){return null===t||eT(t)?E(t):eL(t)?(e.consume(t),S):n(t)}function E(t){return 45===t&&2===r?(e.consume(t),P):60===t&&1===r?(e.consume(t),T):62===t&&4===r?(e.consume(t),z):63===t&&3===r?(e.consume(t),I):93===t&&5===r?(e.consume(t),L):eT(t)&&(6===r||7===r)?(e.exit("htmlFlowData"),e.check(tt,R,C)(t)):null===t||eT(t)?(e.exit("htmlFlowData"),C(t)):(e.consume(t),E)}function C(t){return e.check(tn,A,R)(t)}function A(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),M}function M(t){return null===t||eT(t)?C(t):(e.enter("htmlFlowData"),E(t))}function P(t){return 45===t?(e.consume(t),I):E(t)}function T(t){return 47===t?(e.consume(t),l="",D):E(t)}function D(t){if(62===t){let n=l.toLowerCase();return te.includes(n)?(e.consume(t),z):E(t)}return ew(t)&&l.length<8?(e.consume(t),l+=String.fromCharCode(t),D):E(t)}function L(t){return 93===t?(e.consume(t),I):E(t)}function I(t){return 62===t?(e.consume(t),z):45===t&&2===r?(e.consume(t),I):E(t)}function z(t){return null===t||eT(t)?(e.exit("htmlFlowData"),R(t)):(e.consume(t),z)}function R(n){return e.exit("htmlFlow"),t(n)}}},61:e6,95:eK,96:ti,126:ti},tE={38:ta,92:ts},tC={[-5]:tu,[-4]:tu,[-3]:tu,33:tm,38:ta,42:ty,60:[{name:"autolink",tokenize:function(e,t,n){let r=0;return function(t){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(t),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),i};function i(t){return ew(t)?(e.consume(t),l):64===t?n(t):a(t)}function l(t){return 43===t||45===t||46===t||eS(t)?(r=1,function t(n){return 58===n?(e.consume(n),r=0,o):(43===n||45===n||46===n||eS(n))&&r++<32?(e.consume(n),t):(r=0,a(n))}(t)):a(t)}function o(r){return 62===r?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(r),e.exit("autolinkMarker"),e.exit("autolink"),t):null===r||32===r||60===r||eC(r)?n(r):(e.consume(r),o)}function a(t){return 64===t?(e.consume(t),s):eE(t)?(e.consume(t),a):n(t)}function s(i){return eS(i)?function i(l){return 46===l?(e.consume(l),r=0,s):62===l?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(l),e.exit("autolinkMarker"),e.exit("autolink"),t):function t(l){if((45===l||eS(l))&&r++<63){let n=45===l?t:i;return e.consume(l),n}return n(l)}(l)}(i):n(i)}}},{name:"htmlText",tokenize:function(e,t,n){let r,i,l,o=this;return function(t){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(t),a};function a(t){return 33===t?(e.consume(t),s):47===t?(e.consume(t),x):63===t?(e.consume(t),v):ew(t)?(e.consume(t),w):n(t)}function s(t){return 45===t?(e.consume(t),u):91===t?(e.consume(t),i=0,p):ew(t)?(e.consume(t),y):n(t)}function u(t){return 45===t?(e.consume(t),h):n(t)}function c(t){return null===t?n(t):45===t?(e.consume(t),d):eT(t)?(l=c,D(t)):(e.consume(t),c)}function d(t){return 45===t?(e.consume(t),h):c(t)}function h(e){return 62===e?T(e):45===e?d(e):c(e)}function p(t){let r="CDATA[";return t===r.charCodeAt(i++)?(e.consume(t),i===r.length?f:p):n(t)}function f(t){return null===t?n(t):93===t?(e.consume(t),m):eT(t)?(l=f,D(t)):(e.consume(t),f)}function m(t){return 93===t?(e.consume(t),g):f(t)}function g(t){return 62===t?T(t):93===t?(e.consume(t),g):f(t)}function y(t){return null===t||62===t?T(t):eT(t)?(l=y,D(t)):(e.consume(t),y)}function v(t){return null===t?n(t):63===t?(e.consume(t),k):eT(t)?(l=v,D(t)):(e.consume(t),v)}function k(e){return 62===e?T(e):v(e)}function x(t){return ew(t)?(e.consume(t),b):n(t)}function b(t){return 45===t||eS(t)?(e.consume(t),b):function t(n){return eT(n)?(l=t,D(n)):eL(n)?(e.consume(n),t):T(n)}(t)}function w(t){return 45===t||eS(t)?(e.consume(t),w):47===t||62===t||eD(t)?S(t):n(t)}function S(t){return 47===t?(e.consume(t),T):58===t||95===t||ew(t)?(e.consume(t),E):eT(t)?(l=S,D(t)):eL(t)?(e.consume(t),S):T(t)}function E(t){return 45===t||46===t||58===t||95===t||eS(t)?(e.consume(t),E):function t(n){return 61===n?(e.consume(n),C):eT(n)?(l=t,D(n)):eL(n)?(e.consume(n),t):S(n)}(t)}function C(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),r=t,A):eT(t)?(l=C,D(t)):eL(t)?(e.consume(t),C):(e.consume(t),M)}function A(t){return t===r?(e.consume(t),r=void 0,P):null===t?n(t):eT(t)?(l=A,D(t)):(e.consume(t),A)}function M(t){return null===t||34===t||39===t||60===t||61===t||96===t?n(t):47===t||62===t||eD(t)?S(t):(e.consume(t),M)}function P(e){return 47===e||62===e||eD(e)?S(e):n(e)}function T(r){return 62===r?(e.consume(r),e.exit("htmlTextData"),e.exit("htmlText"),t):n(r)}function D(t){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),L}function L(t){return eL(t)?eO(e,I,"linePrefix",o.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):I(t)}function I(t){return e.enter("htmlTextData"),l(t)}}}],91:tk,92:[{name:"hardBreakEscape",tokenize:function(e,t,n){return function(t){return e.enter("hardBreakEscape"),e.consume(t),r};function r(r){return eT(r)?(e.exit("hardBreakEscape"),t(r)):n(r)}}},ts],93:td,95:ty,96:{name:"codeText",previous:function(e){return 96!==e||"characterEscape"===this.events[this.events.length-1][1].type},resolve:function(e){let t,n,r=e.length-4,i=3;if(("lineEnding"===e[3][1].type||"space"===e[i][1].type)&&("lineEnding"===e[r][1].type||"space"===e[r][1].type)){for(t=i;++t<r;)if("codeTextData"===e[t][1].type){e[i][1].type="codeTextPadding",e[r][1].type="codeTextPadding",i+=2,r-=2;break}}for(t=i-1,r++;++t<=r;)void 0===n?t!==r&&"lineEnding"!==e[t][1].type&&(n=t):(t===r||"lineEnding"===e[t][1].type)&&(e[n][1].type="codeTextData",t!==n+2&&(e[n][1].end=e[t-1][1].end,e.splice(n+2,t-n-2),r-=t-n-2,t=n+2),n=void 0);return e},tokenize:function(e,t,n){let r,i,l=0;return function(t){return e.enter("codeText"),e.enter("codeTextSequence"),function t(n){return 96===n?(e.consume(n),l++,t):(e.exit("codeTextSequence"),o(n))}(t)};function o(s){return null===s?n(s):32===s?(e.enter("space"),e.consume(s),e.exit("space"),o):96===s?(i=e.enter("codeTextSequence"),r=0,function n(o){return 96===o?(e.consume(o),r++,n):r===l?(e.exit("codeTextSequence"),e.exit("codeText"),t(o)):(i.type="codeTextData",a(o))}(s)):eT(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),o):(e.enter("codeTextData"),a(s))}function a(t){return null===t||32===t||96===t||eT(t)?(e.exit("codeTextData"),o(t)):(e.consume(t),a)}}}},tA={null:[ty,eW]},tM={null:[42,95]},tP={null:[]},tT=/[\0\t\n\r]/g;function tD(e,t){let n=Number.parseInt(e,t);return n<9||11===n||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(65535&n)==65535||(65535&n)==65534||n>1114111?"�":String.fromCodePoint(n)}let tL=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function tI(e,t,n){if(t)return t;if(35===n.charCodeAt(0)){let e=n.charCodeAt(1),t=120===e||88===e;return tD(n.slice(t?2:1),t?16:10)}return to(n)||e}let tz={}.hasOwnProperty;function tR(e){return{line:e.line,column:e.column,offset:e.offset}}function tO(e,t){if(e)throw Error("Cannot close `"+e.type+"` ("+X({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+X({start:t.start,end:t.end})+") is open");throw Error("Cannot close document, a token (`"+t.type+"`, "+X({start:t.start,end:t.end})+") is still open")}function tN(e){let t=this;t.parser=function(n){var r,l;let o,a,s,u;return"string"!=typeof(r={...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]})&&(l=r,r=void 0),(function(e){let t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:r(y),autolinkProtocol:u,autolinkEmail:u,atxHeading:r(f),blockQuote:r(function(){return{type:"blockquote",children:[]}}),characterEscape:u,characterReference:u,codeFenced:r(p),codeFencedFenceInfo:i,codeFencedFenceMeta:i,codeIndented:r(p,i),codeText:r(function(){return{type:"inlineCode",value:""}},i),codeTextData:u,data:u,codeFlowValue:u,definition:r(function(){return{type:"definition",identifier:"",label:null,title:null,url:""}}),definitionDestinationString:i,definitionLabelString:i,definitionTitleString:i,emphasis:r(function(){return{type:"emphasis",children:[]}}),hardBreakEscape:r(m),hardBreakTrailing:r(m),htmlFlow:r(g,i),htmlFlowData:u,htmlText:r(g,i),htmlTextData:u,image:r(function(){return{type:"image",title:null,url:"",alt:null}}),label:i,link:r(y),listItem:r(function(e){return{type:"listItem",spread:e._spread,checked:null,children:[]}}),listItemValue:function(e){this.data.expectingFirstListItemValue&&(this.stack[this.stack.length-2].start=Number.parseInt(this.sliceSerialize(e),10),this.data.expectingFirstListItemValue=void 0)},listOrdered:r(v,function(){this.data.expectingFirstListItemValue=!0}),listUnordered:r(v),paragraph:r(function(){return{type:"paragraph",children:[]}}),reference:function(){this.data.referenceType="collapsed"},referenceString:i,resourceDestinationString:i,resourceTitleString:i,setextHeading:r(f),strong:r(function(){return{type:"strong",children:[]}}),thematicBreak:r(function(){return{type:"thematicBreak"}})},exit:{atxHeading:o(),atxHeadingSequence:function(e){let t=this.stack[this.stack.length-1];t.depth||(t.depth=this.sliceSerialize(e).length)},autolink:o(),autolinkEmail:function(e){c.call(this,e),this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(e)},autolinkProtocol:function(e){c.call(this,e),this.stack[this.stack.length-1].url=this.sliceSerialize(e)},blockQuote:o(),characterEscapeValue:c,characterReferenceMarkerHexadecimal:h,characterReferenceMarkerNumeric:h,characterReferenceValue:function(e){let t,n=this.sliceSerialize(e),r=this.data.characterReferenceType;r?(t=tD(n,"characterReferenceMarkerNumeric"===r?10:16),this.data.characterReferenceType=void 0):t=to(n);let i=this.stack[this.stack.length-1];i.value+=t},characterReference:function(e){this.stack.pop().position.end=tR(e.end)},codeFenced:o(function(){let e=this.resume();this.stack[this.stack.length-1].value=e.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}),codeFencedFence:function(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)},codeFencedFenceInfo:function(){let e=this.resume();this.stack[this.stack.length-1].lang=e},codeFencedFenceMeta:function(){let e=this.resume();this.stack[this.stack.length-1].meta=e},codeFlowValue:c,codeIndented:o(function(){let e=this.resume();this.stack[this.stack.length-1].value=e.replace(/(\r?\n|\r)$/g,"")}),codeText:o(function(){let e=this.resume();this.stack[this.stack.length-1].value=e}),codeTextData:c,data:c,definition:o(),definitionDestinationString:function(){let e=this.resume();this.stack[this.stack.length-1].url=e},definitionLabelString:function(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=e3(this.sliceSerialize(e)).toLowerCase()},definitionTitleString:function(){let e=this.resume();this.stack[this.stack.length-1].title=e},emphasis:o(),hardBreakEscape:o(d),hardBreakTrailing:o(d),htmlFlow:o(function(){let e=this.resume();this.stack[this.stack.length-1].value=e}),htmlFlowData:c,htmlText:o(function(){let e=this.resume();this.stack[this.stack.length-1].value=e}),htmlTextData:c,image:o(function(){let e=this.stack[this.stack.length-1];if(this.data.inReference){let t=this.data.referenceType||"shortcut";e.type+="Reference",e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}),label:function(){let e=this.stack[this.stack.length-1],t=this.resume(),n=this.stack[this.stack.length-1];this.data.inReference=!0,"link"===n.type?n.children=e.children:n.alt=t},labelText:function(e){let t=this.sliceSerialize(e),n=this.stack[this.stack.length-2];n.label=t.replace(tL,tI),n.identifier=e3(t).toLowerCase()},lineEnding:function(e){let n=this.stack[this.stack.length-1];if(this.data.atHardBreak){n.children[n.children.length-1].position.end=tR(e.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(n.type)&&(u.call(this,e),c.call(this,e))},link:o(function(){let e=this.stack[this.stack.length-1];if(this.data.inReference){let t=this.data.referenceType||"shortcut";e.type+="Reference",e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}),listItem:o(),listOrdered:o(),listUnordered:o(),paragraph:o(),referenceString:function(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=e3(this.sliceSerialize(e)).toLowerCase(),this.data.referenceType="full"},resourceDestinationString:function(){let e=this.resume();this.stack[this.stack.length-1].url=e},resourceTitleString:function(){let e=this.resume();this.stack[this.stack.length-1].title=e},resource:function(){this.data.inReference=void 0},setextHeading:o(function(){this.data.setextHeadingSlurpLineEnding=void 0}),setextHeadingLineSequence:function(e){this.stack[this.stack.length-1].depth=61===this.sliceSerialize(e).codePointAt(0)?1:2},setextHeadingText:function(){this.data.setextHeadingSlurpLineEnding=!0},strong:o(),thematicBreak:o()}};!function e(t,n){let r=-1;for(;++r<n.length;){let i=n[r];Array.isArray(i)?e(t,i):function(e,t){let n;for(n in t)if(tz.call(t,n))switch(n){case"canContainEols":{let r=t[n];r&&e[n].push(...r);break}case"transforms":{let r=t[n];r&&e[n].push(...r);break}case"enter":case"exit":{let r=t[n];r&&Object.assign(e[n],r)}}}(t,i)}}(t,(e||{}).mdastExtensions||[]);let n={};return function(e){let r={type:"root",children:[]},o={stack:[r],tokenStack:[],config:t,enter:l,exit:a,buffer:i,resume:s,data:n},u=[],c=-1;for(;++c<e.length;)("listOrdered"===e[c][1].type||"listUnordered"===e[c][1].type)&&("enter"===e[c][0]?u.push(c):c=function(e,t,n){let r,i,l,o,a=t-1,s=-1,u=!1;for(;++a<=n;){let t=e[a];switch(t[1].type){case"listUnordered":case"listOrdered":case"blockQuote":"enter"===t[0]?s++:s--,o=void 0;break;case"lineEndingBlank":"enter"===t[0]&&(!r||o||s||l||(l=a),o=void 0);break;case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:o=void 0}if(!s&&"enter"===t[0]&&"listItemPrefix"===t[1].type||-1===s&&"exit"===t[0]&&("listUnordered"===t[1].type||"listOrdered"===t[1].type)){if(r){let o=a;for(i=void 0;o--;){let t=e[o];if("lineEnding"===t[1].type||"lineEndingBlank"===t[1].type){if("exit"===t[0])continue;i&&(e[i][1].type="lineEndingBlank",u=!0),t[1].type="lineEnding",i=o}else if("linePrefix"===t[1].type||"blockQuotePrefix"===t[1].type||"blockQuotePrefixWhitespace"===t[1].type||"blockQuoteMarker"===t[1].type||"listItemIndent"===t[1].type);else break}l&&(!i||l<i)&&(r._spread=!0),r.end=Object.assign({},i?e[i][1].start:t[1].end),e.splice(i||a,0,["exit",r,t[2]]),a++,n++}if("listItemPrefix"===t[1].type){let i={type:"listItem",_spread:!1,start:Object.assign({},t[1].start),end:void 0};r=i,e.splice(a,0,["enter",i,t[2]]),a++,n++,l=void 0,o=!0}}}return e[t][1]._spread=u,n}(e,u.pop(),c));for(c=-1;++c<e.length;){let n=t[e[c][0]];tz.call(n,e[c][1].type)&&n[e[c][1].type].call(Object.assign({sliceSerialize:e[c][2].sliceSerialize},o),e[c][1])}if(o.tokenStack.length>0){let e=o.tokenStack[o.tokenStack.length-1];(e[1]||tO).call(o,void 0,e[0])}for(r.position={start:tR(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:tR(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},c=-1;++c<t.transforms.length;)r=t.transforms[c](r)||r;return r};function r(e,t){return function(n){l.call(this,e(n),n),t&&t.call(this,n)}}function i(){this.stack.push({type:"fragment",children:[]})}function l(e,t,n){this.stack[this.stack.length-1].children.push(e),this.stack.push(e),this.tokenStack.push([t,n||void 0]),e.position={start:tR(t.start),end:void 0}}function o(e){return function(t){e&&e.call(this,t),a.call(this,t)}}function a(e,t){let n=this.stack.pop(),r=this.tokenStack.pop();if(r)r[0].type!==e.type&&(t?t.call(this,e,r[0]):(r[1]||tO).call(this,e,r[0]));else throw Error("Cannot close `"+e.type+"` ("+X({start:e.start,end:e.end})+"): it’s not open");n.position.end=tR(e.end)}function s(){return ef(this.stack.pop(),"boolean"!=typeof ep.includeImageAlt||ep.includeImageAlt,"boolean"!=typeof ep.includeHtml||ep.includeHtml)}function u(e){let t=this.stack[this.stack.length-1].children,n=t[t.length-1];n&&"text"===n.type||((n={type:"text",value:""}).position={start:tR(e.start),end:void 0},t.push(n)),this.stack.push(n)}function c(e){let t=this.stack.pop();t.value+=this.sliceSerialize(e),t.position.end=tR(e.end)}function d(){this.data.atHardBreak=!0}function h(e){this.data.characterReferenceType=e.type}function p(){return{type:"code",lang:null,meta:null,value:""}}function f(){return{type:"heading",depth:0,children:[]}}function m(){return{type:"break"}}function g(){return{type:"html",value:""}}function y(){return{type:"link",title:null,url:"",children:[]}}function v(e){return{type:"list",ordered:"listOrdered"===e.type,start:null,spread:e._spread,children:[]}}})(l)(function(e){for(;!ex(e););return e}((function(e){let t={constructs:function(e){let t={},n=-1;for(;++n<e.length;)!function(e,t){let n;for(n in t){let r,i=(eb.call(e,n)?e[n]:void 0)||(e[n]={}),l=t[n];if(l)for(r in l){eb.call(i,r)||(i[r]=[]);let e=l[r];!function(e,t){let n=-1,r=[];for(;++n<t.length;)("after"===t[n].add?e:r).push(t[n]);eg(e,0,0,r)}(i[r],Array.isArray(e)?e:e?[e]:[])}}}(t,e[n]);return t}([i,...(e||{}).extensions||[]]),content:n(eN),defined:[],document:n(eF),flow:n(eU),lazy:{},string:n(eq),text:n(eV)};return t;function n(e){return function(n){return function(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0},i={},l=[],o=[],a=[],s={attempt:f(function(e,t){m(e,t.from)}),check:f(p),consume:function(e){eT(e)?(r.line++,r.column=1,r.offset+=-3===e?2:1,g()):-1!==e&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++)),u.previous=e},enter:function(e,t){let n=t||{};return n.type=e,n.start=h(),u.events.push(["enter",n,u]),a.push(n),n},exit:function(e){let t=a.pop();return t.end=h(),u.events.push(["exit",t,u]),t},interrupt:f(p,{interrupt:!0})},u={code:null,containerState:{},defineSkip:function(e){i[e.line]=e.column,g()},events:[],now:h,parser:e,previous:null,sliceSerialize:function(e,t){return function(e,t){let n,r=-1,i=[];for(;++r<e.length;){let l,o=e[r];if("string"==typeof o)l=o;else switch(o){case -5:l="\r";break;case -4:l="\n";break;case -3:l="\r\n";break;case -2:l=t?" ":" ";break;case -1:if(!t&&n)continue;l=" ";break;default:l=String.fromCharCode(o)}n=-2===o,i.push(l)}return i.join("")}(d(e),t)},sliceStream:d,write:function(e){return(o=ey(o,e),function(){let e;for(;r._index<o.length;){let n=o[r._index];if("string"==typeof n)for(e=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===e&&r._bufferIndex<n.length;){var t;t=n.charCodeAt(r._bufferIndex),c=c(t)}else c=c(n)}}(),null!==o[o.length-1])?[]:(m(t,0),u.events=tc(l,u.events,u),u.events)}},c=t.tokenize.call(u,s);return t.resolveAll&&l.push(t),u;function d(e){return function(e,t){let n,r=t.start._index,i=t.start._bufferIndex,l=t.end._index,o=t.end._bufferIndex;if(r===l)n=[e[r].slice(i,o)];else{if(n=e.slice(r,l),i>-1){let e=n[0];"string"==typeof e?n[0]=e.slice(i):n.shift()}o>0&&n.push(e[l].slice(0,o))}return n}(o,e)}function h(){let{_bufferIndex:e,_index:t,line:n,column:i,offset:l}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:l}}function p(e,t){t.restore()}function f(e,t){return function(n,i,l){var o;let c,d,p,f;return Array.isArray(n)?m(n):"tokenize"in n?m([n]):(o=n,function(e){let t=null!==e&&o[e],n=null!==e&&o.null;return m([...Array.isArray(t)?t:t?[t]:[],...Array.isArray(n)?n:n?[n]:[]])(e)});function m(e){return(c=e,d=0,0===e.length)?l:y(e[d])}function y(e){return function(n){return(f=function(){let e=h(),t=u.previous,n=u.currentConstruct,i=u.events.length,l=Array.from(a);return{from:i,restore:function(){r=e,u.previous=t,u.currentConstruct=n,u.events.length=i,a=l,g()}}}(),p=e,e.partial||(u.currentConstruct=e),e.name&&u.parser.constructs.disable.null.includes(e.name))?k(n):e.tokenize.call(t?Object.assign(Object.create(u),t):u,s,v,k)(n)}}function v(t){return e(p,f),i}function k(e){return(f.restore(),++d<c.length)?y(c[d]):l}}}function m(e,t){e.resolveAll&&!l.includes(e)&&l.push(e),e.resolve&&eg(u.events,t,u.events.length-t,e.resolve(u.events.slice(t),u)),e.resolveTo&&(u.events=e.resolveTo(u.events,u))}function g(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}(t,e,n)}}})(l).document().write((a=1,s="",u=!0,function(e,t,n){let r,i,l,c,d,h=[];for(e=s+("string"==typeof e?e.toString():new TextDecoder(t||void 0).decode(e)),l=0,s="",u&&(65279===e.charCodeAt(0)&&l++,u=void 0);l<e.length;){if(tT.lastIndex=l,c=(r=tT.exec(e))&&void 0!==r.index?r.index:e.length,d=e.charCodeAt(c),!r){s=e.slice(l);break}if(10===d&&l===c&&o)h.push(-3),o=void 0;else switch(o&&(h.push(-5),o=void 0),l<c&&(h.push(e.slice(l,c)),a+=c-l),d){case 0:h.push(65533),a++;break;case 9:for(i=4*Math.ceil(a/4),h.push(-2);a++<i;)h.push(-1);break;case 10:h.push(-4),a=1;break;default:o=!0,a=1}l=c+1}return n&&(o&&h.push(-5),s&&h.push(s),h.push(null)),h})(n,r,!0))))}}let tF="object"==typeof self?self:globalThis,t_=e=>((e,t)=>{let n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);let[l,o]=t[i];switch(l){case 0:case -1:return n(o,i);case 1:{let e=n([],i);for(let t of o)e.push(r(t));return e}case 2:{let e=n({},i);for(let[t,n]of o)e[r(t)]=r(n);return e}case 3:return n(new Date(o),i);case 4:{let{source:e,flags:t}=o;return n(new RegExp(e,t),i)}case 5:{let e=n(new Map,i);for(let[t,n]of o)e.set(r(t),r(n));return e}case 6:{let e=n(new Set,i);for(let t of o)e.add(r(t));return e}case 7:{let{name:e,message:t}=o;return n(new tF[e](t),i)}case 8:return n(BigInt(o),i);case"BigInt":return n(Object(BigInt(o)),i);case"ArrayBuffer":return n(new Uint8Array(o).buffer,o);case"DataView":{let{buffer:e}=new Uint8Array(o);return n(new DataView(e),o)}}return n(new tF[l](o),i)};return r})(new Map,e)(0),{toString:tj}={},{keys:tH}=Object,tB=e=>{let t=typeof e;if("object"!==t||!e)return[0,t];let n=tj.call(e).slice(8,-1);switch(n){case"Array":return[1,""];case"Object":return[2,""];case"Date":return[3,""];case"RegExp":return[4,""];case"Map":return[5,""];case"Set":return[6,""];case"DataView":return[1,n]}return n.includes("Array")?[1,n]:n.includes("Error")?[7,n]:[2,n]},tU=([e,t])=>0===e&&("function"===t||"symbol"===t),tW=(e,{json:t,lossy:n}={})=>{let r=[];return((e,t,n,r)=>{let i=(e,t)=>{let i=r.push(e)-1;return n.set(t,i),i},l=r=>{if(n.has(r))return n.get(r);let[o,a]=tB(r);switch(o){case 0:{let t=r;switch(a){case"bigint":o=8,t=r.toString();break;case"function":case"symbol":if(e)throw TypeError("unable to serialize "+a);t=null;break;case"undefined":return i([-1],r)}return i([o,t],r)}case 1:{if(a){let e=r;return"DataView"===a?e=new Uint8Array(r.buffer):"ArrayBuffer"===a&&(e=new Uint8Array(r)),i([a,[...e]],r)}let e=[],t=i([o,e],r);for(let t of r)e.push(l(t));return t}case 2:{if(a)switch(a){case"BigInt":return i([a,r.toString()],r);case"Boolean":case"Number":case"String":return i([a,r.valueOf()],r)}if(t&&"toJSON"in r)return l(r.toJSON());let n=[],s=i([o,n],r);for(let t of tH(r))(e||!tU(tB(r[t])))&&n.push([l(t),l(r[t])]);return s}case 3:return i([o,r.toISOString()],r);case 4:{let{source:e,flags:t}=r;return i([o,{source:e,flags:t}],r)}case 5:{let t=[],n=i([o,t],r);for(let[n,i]of r)(e||!(tU(tB(n))||tU(tB(i))))&&t.push([l(n),l(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!tU(tB(n)))&&t.push(l(n));return n}}let{message:s}=r;return i([o,{name:a,message:s}],r)};return l})(!(t||n),!!t,new Map,r)(e),r},tq="function"==typeof structuredClone?(e,t)=>t&&("json"in t||"lossy"in t)?t_(tW(e,t)):structuredClone(e):(e,t)=>t_(tW(e,t));function tV(e){let t=[],n=-1,r=0,i=0;for(;++n<e.length;){let l=e.charCodeAt(n),o="";if(37===l&&eS(e.charCodeAt(n+1))&&eS(e.charCodeAt(n+2)))i=2;else if(l<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(l))||(o=String.fromCharCode(l));else if(l>55295&&l<57344){let t=e.charCodeAt(n+1);l<56320&&t>56319&&t<57344?(o=String.fromCharCode(l,t),i=1):o="�"}else o=String.fromCharCode(l);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,o=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function t$(e,t){let n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function tX(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}let tG=function(e){var t,n;if(null==e)return tY;if("function"==typeof e)return tK(e);if("object"==typeof e){return Array.isArray(e)?function(e){let t=[],n=-1;for(;++n<e.length;)t[n]=tG(e[n]);return tK(function(...e){let n=-1;for(;++n<t.length;)if(t[n].apply(this,e))return!0;return!1})}(e):(t=e,tK(function(e){let n;for(n in t)if(e[n]!==t[n])return!1;return!0}))}if("string"==typeof e){return n=e,tK(function(e){return e&&e.type===n})}throw Error("Expected function, string, or object as test")};function tK(e){return function(t,n,r){return!!(function(e){return null!==e&&"object"==typeof e&&"type"in e}(t)&&e.call(this,t,"number"==typeof n?n:void 0,r||void 0))}}function tY(){return!0}let tZ=[];function tJ(e,t,n,r){let i,l,o,a;"function"==typeof t&&"function"!=typeof n?(l=void 0,o=t,i=n):(l=t,o=n,i=r);var s=l,u=function(e,t){let n=t[t.length-1],r=n?n.children.indexOf(e):void 0;return o(e,r,n)},c=i;"function"==typeof s&&"function"!=typeof u?(c=u,u=s):a=s;let d=tG(a),h=c?-1:1;(function e(t,n,r){let i=t&&"object"==typeof t?t:{};if("string"==typeof i.type){let e="string"==typeof i.tagName?i.tagName:"string"==typeof i.name?i.name:void 0;Object.defineProperty(l,"name",{value:"node ("+t.type+(e?"<"+e+">":"")+")"})}return l;function l(){var i;let l,o,a,p=tZ;if((!s||d(t,n,r[r.length-1]||void 0))&&!1===(p=Array.isArray(i=u(t,r))?i:"number"==typeof i?[!0,i]:null==i?tZ:[i])[0])return p;if("children"in t&&t.children&&t.children&&"skip"!==p[0])for(o=(c?t.children.length:-1)+h,a=r.concat(t);o>-1&&o<t.children.length;){if(!1===(l=e(t.children[o],o,a)())[0])return l;o="number"==typeof l[1]?l[1]:o+h}return p}})(e,void 0,[])()}function tQ(e,t){let n=t.referenceType,r="]";if("collapsed"===n?r+="[]":"full"===n&&(r+="["+(t.label||t.identifier)+"]"),"imageReference"===t.type)return[{type:"text",value:"!["+t.alt+r}];let i=e.all(t),l=i[0];l&&"text"===l.type?l.value="["+l.value:i.unshift({type:"text",value:"["});let o=i[i.length-1];return o&&"text"===o.type?o.value+=r:i.push({type:"text",value:r}),i}function t1(e){let t=e.spread;return null==t?e.children.length>1:t}function t0(e,t,n){let r=0,i=e.length;if(t){let t=e.codePointAt(r);for(;9===t||32===t;)r++,t=e.codePointAt(r)}if(n){let t=e.codePointAt(i-1);for(;9===t||32===t;)i--,t=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}let t2={blockquote:function(e,t){let n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)},break:function(e,t){let n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:"\n"}]},code:function(e,t){let n=t.value?t.value+"\n":"",r={};t.lang&&(r.className=["language-"+t.lang]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i={type:"element",tagName:"pre",properties:{},children:[i=e.applyData(t,i)]},e.patch(t,i),i},delete:function(e,t){let n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},emphasis:function(e,t){let n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},footnoteReference:function(e,t){let n,r="string"==typeof e.options.clobberPrefix?e.options.clobberPrefix:"user-content-",i=String(t.identifier).toUpperCase(),l=tV(i.toLowerCase()),o=e.footnoteOrder.indexOf(i),a=e.footnoteCounts.get(i);void 0===a?(a=0,e.footnoteOrder.push(i),n=e.footnoteOrder.length):n=o+1,a+=1,e.footnoteCounts.set(i,a);let s={type:"element",tagName:"a",properties:{href:"#"+r+"fn-"+l,id:r+"fnref-"+l+(a>1?"-"+a:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(n)}]};e.patch(t,s);let u={type:"element",tagName:"sup",properties:{},children:[s]};return e.patch(t,u),e.applyData(t,u)},heading:function(e,t){let n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},html:function(e,t){if(e.options.allowDangerousHtml){let n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}},imageReference:function(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return tQ(e,t);let i={src:tV(r.url||""),alt:t.alt};null!==r.title&&void 0!==r.title&&(i.title=r.title);let l={type:"element",tagName:"img",properties:i,children:[]};return e.patch(t,l),e.applyData(t,l)},image:function(e,t){let n={src:tV(t.url)};null!==t.alt&&void 0!==t.alt&&(n.alt=t.alt),null!==t.title&&void 0!==t.title&&(n.title=t.title);let r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)},inlineCode:function(e,t){let n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);let r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)},linkReference:function(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return tQ(e,t);let i={href:tV(r.url||"")};null!==r.title&&void 0!==r.title&&(i.title=r.title);let l={type:"element",tagName:"a",properties:i,children:e.all(t)};return e.patch(t,l),e.applyData(t,l)},link:function(e,t){let n={href:tV(t.url)};null!==t.title&&void 0!==t.title&&(n.title=t.title);let r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)},listItem:function(e,t,n){let r=e.all(t),i=n?function(e){let t=!1;if("list"===e.type){t=e.spread||!1;let n=e.children,r=-1;for(;!t&&++r<n.length;)t=t1(n[r])}return t}(n):t1(t),l={},o=[];if("boolean"==typeof t.checked){let e,n=r[0];n&&"element"===n.type&&"p"===n.tagName?e=n:(e={type:"element",tagName:"p",properties:{},children:[]},r.unshift(e)),e.children.length>0&&e.children.unshift({type:"text",value:" "}),e.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),l.className=["task-list-item"]}let a=-1;for(;++a<r.length;){let e=r[a];(i||0!==a||"element"!==e.type||"p"!==e.tagName)&&o.push({type:"text",value:"\n"}),"element"!==e.type||"p"!==e.tagName||i?o.push(e):o.push(...e.children)}let s=r[r.length-1];s&&(i||"element"!==s.type||"p"!==s.tagName)&&o.push({type:"text",value:"\n"});let u={type:"element",tagName:"li",properties:l,children:o};return e.patch(t,u),e.applyData(t,u)},list:function(e,t){let n={},r=e.all(t),i=-1;for("number"==typeof t.start&&1!==t.start&&(n.start=t.start);++i<r.length;){let e=r[i];if("element"===e.type&&"li"===e.tagName&&e.properties&&Array.isArray(e.properties.className)&&e.properties.className.includes("task-list-item")){n.className=["contains-task-list"];break}}let l={type:"element",tagName:t.ordered?"ol":"ul",properties:n,children:e.wrap(r,!0)};return e.patch(t,l),e.applyData(t,l)},paragraph:function(e,t){let n={type:"element",tagName:"p",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},root:function(e,t){let n={type:"root",children:e.wrap(e.all(t))};return e.patch(t,n),e.applyData(t,n)},strong:function(e,t){let n={type:"element",tagName:"strong",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},table:function(e,t){let n=e.all(t),r=n.shift(),i=[];if(r){let n={type:"element",tagName:"thead",properties:{},children:e.wrap([r],!0)};e.patch(t.children[0],n),i.push(n)}if(n.length>0){let r={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=V(t.children[1]),o=q(t.children[t.children.length-1]);l&&o&&(r.position={start:l,end:o}),i.push(r)}let l={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(t,l),e.applyData(t,l)},tableCell:function(e,t){let n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},tableRow:function(e,t,n){let r=n?n.children:void 0,i=0===(r?r.indexOf(t):1)?"th":"td",l=n&&"table"===n.type?n.align:void 0,o=l?l.length:t.children.length,a=-1,s=[];for(;++a<o;){let n=t.children[a],r={},o=l?l[a]:void 0;o&&(r.align=o);let u={type:"element",tagName:i,properties:r,children:[]};n&&(u.children=e.all(n),e.patch(n,u),u=e.applyData(n,u)),s.push(u)}let u={type:"element",tagName:"tr",properties:{},children:e.wrap(s,!0)};return e.patch(t,u),e.applyData(t,u)},text:function(e,t){let n={type:"text",value:function(e){let t=String(e),n=/\r?\n|\r/g,r=n.exec(t),i=0,l=[];for(;r;)l.push(t0(t.slice(i,r.index),i>0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return l.push(t0(t.slice(i),i>0,!1)),l.join("")}(String(t.value))};return e.patch(t,n),e.applyData(t,n)},thematicBreak:function(e,t){let n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)},toml:t4,yaml:t4,definition:t4,footnoteDefinition:t4};function t4(){}let t3={}.hasOwnProperty,t7={};function t8(e,t){e.position&&(t.position=function(e){let t=V(e),n=q(e);if(t&&n)return{start:t,end:n}}(e))}function t5(e,t){let n=t;if(e&&e.data){let t=e.data.hName,r=e.data.hChildren,i=e.data.hProperties;"string"==typeof t&&("element"===n.type?n.tagName=t:n={type:"element",tagName:t,properties:{},children:"children"in n?n.children:[n]}),"element"===n.type&&i&&Object.assign(n.properties,tq(i)),"children"in n&&n.children&&null!=r&&(n.children=r)}return n}function t6(e,t){let n=[],r=-1;for(t&&n.push({type:"text",value:"\n"});++r<e.length;)r&&n.push({type:"text",value:"\n"}),n.push(e[r]);return t&&e.length>0&&n.push({type:"text",value:"\n"}),n}function t9(e){let t=0,n=e.charCodeAt(t);for(;9===n||32===n;)t++,n=e.charCodeAt(t);return e.slice(t)}function ne(e,t){let n=function(e,t){let n=t||t7,r=new Map,i=new Map,l={all:function(e){let t=[];if("children"in e){let n=e.children,r=-1;for(;++r<n.length;){let i=l.one(n[r],e);if(i){if(r&&"break"===n[r-1].type&&(Array.isArray(i)||"text"!==i.type||(i.value=t9(i.value)),!Array.isArray(i)&&"element"===i.type)){let e=i.children[0];e&&"text"===e.type&&(e.value=t9(e.value))}Array.isArray(i)?t.push(...i):t.push(i)}}}return t},applyData:t5,definitionById:r,footnoteById:i,footnoteCounts:new Map,footnoteOrder:[],handlers:{...t2,...n.handlers},one:function(e,t){let n=e.type,r=l.handlers[n];if(t3.call(l.handlers,n)&&r)return r(l,e,t);if(l.options.passThrough&&l.options.passThrough.includes(n)){if("children"in e){let{children:t,...n}=e,r=tq(n);return r.children=l.all(e),r}return tq(e)}return(l.options.unknownHandler||function(e,t){let n=t.data||{},r="value"in t&&!(t3.call(n,"hProperties")||t3.call(n,"hChildren"))?{type:"text",value:t.value}:{type:"element",tagName:"div",properties:{},children:e.all(t)};return e.patch(t,r),e.applyData(t,r)})(l,e,t)},options:n,patch:t8,wrap:t6};return tJ(e,function(e){if("definition"===e.type||"footnoteDefinition"===e.type){let t="definition"===e.type?r:i,n=String(e.identifier).toUpperCase();t.has(n)||t.set(n,e)}}),l}(e,t),r=n.one(e,void 0),i=function(e){let t="string"==typeof e.options.clobberPrefix?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||t$,r=e.options.footnoteBackLabel||tX,i=e.options.footnoteLabel||"Footnotes",l=e.options.footnoteLabelTagName||"h2",o=e.options.footnoteLabelProperties||{className:["sr-only"]},a=[],s=-1;for(;++s<e.footnoteOrder.length;){let i=e.footnoteById.get(e.footnoteOrder[s]);if(!i)continue;let l=e.all(i),o=String(i.identifier).toUpperCase(),u=tV(o.toLowerCase()),c=0,d=[],h=e.footnoteCounts.get(o);for(;void 0!==h&&++c<=h;){d.length>0&&d.push({type:"text",value:" "});let e="string"==typeof n?n:n(s,c);"string"==typeof e&&(e={type:"text",value:e}),d.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+u+(c>1?"-"+c:""),dataFootnoteBackref:"",ariaLabel:"string"==typeof r?r:r(s,c),className:["data-footnote-backref"]},children:Array.isArray(e)?e:[e]})}let p=l[l.length-1];if(p&&"element"===p.type&&"p"===p.tagName){let e=p.children[p.children.length-1];e&&"text"===e.type?e.value+=" ":p.children.push({type:"text",value:" "}),p.children.push(...d)}else l.push(...d);let f={type:"element",tagName:"li",properties:{id:t+"fn-"+u},children:e.wrap(l,!0)};e.patch(i,f),a.push(f)}if(0!==a.length)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:l,properties:{...tq(o),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:"\n"},{type:"element",tagName:"ol",properties:{},children:e.wrap(a,!0)},{type:"text",value:"\n"}]}}(n),l=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&l.children.push({type:"text",value:"\n"},i),l}function nt(e,t){return e&&"run"in e?async function(n,r){let i=ne(n,{file:r,...t});await e.run(i,r)}:function(n,r){return ne(n,{file:r,...e||t})}}function nn(e){if(e)throw e}var nr=n(15760);function ni(e){if("object"!=typeof e||null===e)return!1;let t=Object.getPrototypeOf(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}let nl={basename:function(e,t){let n;if(void 0!==t&&"string"!=typeof t)throw TypeError('"ext" argument must be a string');no(e);let r=0,i=-1,l=e.length;if(void 0===t||0===t.length||t.length>e.length){for(;l--;)if(47===e.codePointAt(l)){if(n){r=l+1;break}}else i<0&&(n=!0,i=l+1);return i<0?"":e.slice(r,i)}if(t===e)return"";let o=-1,a=t.length-1;for(;l--;)if(47===e.codePointAt(l)){if(n){r=l+1;break}}else o<0&&(n=!0,o=l+1),a>-1&&(e.codePointAt(l)===t.codePointAt(a--)?a<0&&(i=l):(a=-1,i=o));return r===i?i=o:i<0&&(i=e.length),e.slice(r,i)},dirname:function(e){let t;if(no(e),0===e.length)return".";let n=-1,r=e.length;for(;--r;)if(47===e.codePointAt(r)){if(t){n=r;break}}else t||(t=!0);return n<0?47===e.codePointAt(0)?"/":".":1===n&&47===e.codePointAt(0)?"//":e.slice(0,n)},extname:function(e){let t;no(e);let n=e.length,r=-1,i=0,l=-1,o=0;for(;n--;){let a=e.codePointAt(n);if(47===a){if(t){i=n+1;break}continue}r<0&&(t=!0,r=n+1),46===a?l<0?l=n:1!==o&&(o=1):l>-1&&(o=-1)}return l<0||r<0||0===o||1===o&&l===r-1&&l===i+1?"":e.slice(l,r)},join:function(...e){let t,n=-1;for(;++n<e.length;)no(e[n]),e[n]&&(t=void 0===t?e[n]:t+"/"+e[n]);return void 0===t?".":function(e){no(e);let t=47===e.codePointAt(0),n=function(e,t){let n,r,i="",l=0,o=-1,a=0,s=-1;for(;++s<=e.length;){if(s<e.length)n=e.codePointAt(s);else if(47===n)break;else n=47;if(47===n){if(o===s-1||1===a);else if(o!==s-1&&2===a){if(i.length<2||2!==l||46!==i.codePointAt(i.length-1)||46!==i.codePointAt(i.length-2)){if(i.length>2){if((r=i.lastIndexOf("/"))!==i.length-1){r<0?(i="",l=0):l=(i=i.slice(0,r)).length-1-i.lastIndexOf("/"),o=s,a=0;continue}}else if(i.length>0){i="",l=0,o=s,a=0;continue}}t&&(i=i.length>0?i+"/..":"..",l=2)}else i.length>0?i+="/"+e.slice(o+1,s):i=e.slice(o+1,s),l=s-o-1;o=s,a=0}else 46===n&&a>-1?a++:a=-1}return i}(e,!t);return 0!==n.length||t||(n="."),n.length>0&&47===e.codePointAt(e.length-1)&&(n+="/"),t?"/"+n:n}(t)},sep:"/"};function no(e){if("string"!=typeof e)throw TypeError("Path must be a string. Received "+JSON.stringify(e))}let na={cwd:function(){return"/"}};function ns(e){return!!(null!==e&&"object"==typeof e&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&void 0===e.auth)}let nu=["history","path","basename","stem","extname","dirname"];class nc{constructor(e){let t,n;t=e?ns(e)?{path:e}:"string"==typeof e||function(e){return!!(e&&"object"==typeof e&&"byteLength"in e&&"byteOffset"in e)}(e)?{value:e}:e:{},this.cwd="cwd"in t?"":na.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let r=-1;for(;++r<nu.length;){let e=nu[r];e in t&&void 0!==t[e]&&null!==t[e]&&(this[e]="history"===e?[...t[e]]:t[e])}for(n in t)nu.includes(n)||(this[n]=t[n])}get basename(){return"string"==typeof this.path?nl.basename(this.path):void 0}set basename(e){nh(e,"basename"),nd(e,"basename"),this.path=nl.join(this.dirname||"",e)}get dirname(){return"string"==typeof this.path?nl.dirname(this.path):void 0}set dirname(e){np(this.basename,"dirname"),this.path=nl.join(e||"",this.basename)}get extname(){return"string"==typeof this.path?nl.extname(this.path):void 0}set extname(e){if(nd(e,"extname"),np(this.dirname,"extname"),e){if(46!==e.codePointAt(0))throw Error("`extname` must start with `.`");if(e.includes(".",1))throw Error("`extname` cannot contain multiple dots")}this.path=nl.join(this.dirname,this.stem+(e||""))}get path(){return this.history[this.history.length-1]}set path(e){ns(e)&&(e=function(e){if("string"==typeof e)e=new URL(e);else if(!ns(e)){let t=TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if("file:"!==e.protocol){let e=TypeError("The URL must be of scheme file");throw e.code="ERR_INVALID_URL_SCHEME",e}return function(e){if(""!==e.hostname){let e=TypeError('File URL host must be "localhost" or empty on darwin');throw e.code="ERR_INVALID_FILE_URL_HOST",e}let t=e.pathname,n=-1;for(;++n<t.length;)if(37===t.codePointAt(n)&&50===t.codePointAt(n+1)){let e=t.codePointAt(n+2);if(70===e||102===e){let e=TypeError("File URL path must not include encoded / characters");throw e.code="ERR_INVALID_FILE_URL_PATH",e}}return decodeURIComponent(t)}(e)}(e)),nh(e,"path"),this.path!==e&&this.history.push(e)}get stem(){return"string"==typeof this.path?nl.basename(this.path,this.extname):void 0}set stem(e){nh(e,"stem"),nd(e,"stem"),this.path=nl.join(this.dirname||"",e+(this.extname||""))}fail(e,t,n){let r=this.message(e,t,n);throw r.fatal=!0,r}info(e,t,n){let r=this.message(e,t,n);return r.fatal=void 0,r}message(e,t,n){let r=new Z(e,t,n);return this.path&&(r.name=this.path+":"+r.name,r.file=this.path),r.fatal=!1,this.messages.push(r),r}toString(e){return void 0===this.value?"":"string"==typeof this.value?this.value:new TextDecoder(e||void 0).decode(this.value)}}function nd(e,t){if(e&&e.includes(nl.sep))throw Error("`"+t+"` cannot be a path: did not expect `"+nl.sep+"`")}function nh(e,t){if(!e)throw Error("`"+t+"` cannot be empty")}function np(e,t){if(!e)throw Error("Setting `"+t+"` requires `path` to be set too")}let nf=function(e){let t=this.constructor.prototype,n=t[e],r=function(){return n.apply(r,arguments)};return Object.setPrototypeOf(r,t),r},nm={}.hasOwnProperty;class ng extends nf{constructor(){super("copy"),this.Compiler=void 0,this.Parser=void 0,this.attachers=[],this.compiler=void 0,this.freezeIndex=-1,this.frozen=void 0,this.namespace={},this.parser=void 0,this.transformers=function(){let e=[],t={run:function(...t){let n=-1,r=t.pop();if("function"!=typeof r)throw TypeError("Expected function as last argument, not "+r);!function i(l,...o){let a=e[++n],s=-1;if(l)return void r(l);for(;++s<t.length;)(null===o[s]||void 0===o[s])&&(o[s]=t[s]);t=o,a?(function(e,t){let n;return function(...t){let l,o=e.length>t.length;o&&t.push(r);try{l=e.apply(this,t)}catch(e){if(o&&n)throw e;return r(e)}o||(l&&l.then&&"function"==typeof l.then?l.then(i,r):l instanceof Error?r(l):i(l))};function r(e,...i){n||(n=!0,t(e,...i))}function i(e){r(null,e)}})(a,i)(...o):r(null,...o)}(null,...t)},use:function(n){if("function"!=typeof n)throw TypeError("Expected `middelware` to be a function, not "+n);return e.push(n),t}};return t}()}copy(){let e=new ng,t=-1;for(;++t<this.attachers.length;){let n=this.attachers[t];e.use(...n)}return e.data(nr(!0,{},this.namespace)),e}data(e,t){return"string"==typeof e?2==arguments.length?(nx("data",this.frozen),this.namespace[e]=t,this):nm.call(this.namespace,e)&&this.namespace[e]||void 0:e?(nx("data",this.frozen),this.namespace=e,this):this.namespace}freeze(){if(this.frozen)return this;for(;++this.freezeIndex<this.attachers.length;){let[e,...t]=this.attachers[this.freezeIndex];if(!1===t[0])continue;!0===t[0]&&(t[0]=void 0);let n=e.call(this,...t);"function"==typeof n&&this.transformers.use(n)}return this.frozen=!0,this.freezeIndex=1/0,this}parse(e){this.freeze();let t=nS(e),n=this.parser||this.Parser;return nv("parse",n),n(String(t),t)}process(e,t){let n=this;return this.freeze(),nv("process",this.parser||this.Parser),nk("process",this.compiler||this.Compiler),t?r(void 0,t):new Promise(r);function r(r,i){let l=nS(e),o=n.parse(l);function a(e,n){e||!n?i(e):r?r(n):t(void 0,n)}n.run(o,l,function(e,t,r){var i,l;if(e||!t||!r)return a(e);let o=n.stringify(t,r);"string"==typeof(i=o)||(l=i)&&"object"==typeof l&&"byteLength"in l&&"byteOffset"in l?r.value=o:r.result=o,a(e,r)})}}processSync(e){let t,n=!1;return this.freeze(),nv("processSync",this.parser||this.Parser),nk("processSync",this.compiler||this.Compiler),this.process(e,function(e,r){n=!0,nn(e),t=r}),nw("processSync","process",n),t}run(e,t,n){nb(e),this.freeze();let r=this.transformers;return n||"function"!=typeof t||(n=t,t=void 0),n?i(void 0,n):new Promise(i);function i(i,l){let o=nS(t);r.run(e,o,function(t,r,o){let a=r||e;t?l(t):i?i(a):n(void 0,a,o)})}}runSync(e,t){let n,r=!1;return this.run(e,t,function(e,t){nn(e),n=t,r=!0}),nw("runSync","run",r),n}stringify(e,t){this.freeze();let n=nS(t),r=this.compiler||this.Compiler;return nk("stringify",r),nb(e),r(e,n)}use(e,...t){let n=this.attachers,r=this.namespace;if(nx("use",this.frozen),null==e);else if("function"==typeof e)o(e,t);else if("object"==typeof e)Array.isArray(e)?l(e):i(e);else throw TypeError("Expected usable value, not `"+e+"`");return this;function i(e){if(!("plugins"in e)&&!("settings"in e))throw Error("Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither");l(e.plugins),e.settings&&(r.settings=nr(!0,r.settings,e.settings))}function l(e){let t=-1;if(null==e);else if(Array.isArray(e))for(;++t<e.length;){var n=e[t];if("function"==typeof n)o(n,[]);else if("object"==typeof n)if(Array.isArray(n)){let[e,...t]=n;o(e,t)}else i(n);else throw TypeError("Expected usable value, not `"+n+"`")}else throw TypeError("Expected a list of plugins, not `"+e+"`")}function o(e,t){let r=-1,i=-1;for(;++r<n.length;)if(n[r][0]===e){i=r;break}if(-1===i)n.push([e,...t]);else if(t.length>0){let[r,...l]=t,o=n[i][1];ni(o)&&ni(r)&&(r=nr(!0,o,r)),n[i]=[e,r,...l]}}}}let ny=new ng().freeze();function nv(e,t){if("function"!=typeof t)throw TypeError("Cannot `"+e+"` without `parser`")}function nk(e,t){if("function"!=typeof t)throw TypeError("Cannot `"+e+"` without `compiler`")}function nx(e,t){if(t)throw Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function nb(e){if(!ni(e)||"string"!=typeof e.type)throw TypeError("Expected node, got `"+e+"`")}function nw(e,t,n){if(!n)throw Error("`"+e+"` finished async. Use `"+t+"` instead")}function nS(e){var t;return(t=e)&&"object"==typeof t&&"message"in t&&"messages"in t?e:new nc(e)}let nE=[],nC={allowDangerousHtml:!0},nA=/^(https?|ircs?|mailto|xmpp)$/i,nM=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function nP(e){let t=function(e){let t=e.rehypePlugins||nE,n=e.remarkPlugins||nE,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...nC}:nC;return ny().use(tN).use(n).use(nt,r).use(t)}(e),n=function(e){let t=e.children||"",n=new nc;return"string"==typeof t&&(n.value=t),n}(e);return function(e,t){let n=t.allowedElements,r=t.allowElement,i=t.components,l=t.disallowedElements,o=t.skipHtml,a=t.unwrapDisallowed,s=t.urlTransform||nT;for(let e of nM)Object.hasOwn(t,e.from)&&(e.from,e.to&&e.to,e.id);return tJ(e,function(e,t,i){if("raw"===e.type&&i&&"number"==typeof t)return o?i.children.splice(t,1):i.children[t]={type:"text",value:e.value},t;if("element"===e.type){let t;for(t in ed)if(Object.hasOwn(ed,t)&&Object.hasOwn(e.properties,t)){let n=e.properties[t],r=ed[t];(null===r||r.includes(e.tagName))&&(e.properties[t]=s(String(n||""),t,e))}}if("element"===e.type){let o=n?!n.includes(e.tagName):!!l&&l.includes(e.tagName);if(!o&&r&&"number"==typeof t&&(o=!r(e,t,i)),o&&i&&"number"==typeof t)return a&&e.children?i.children.splice(t,1,...e.children):i.children.splice(t,1),t}}),function(e,t){var n,r,i,l;let o;if(!t||void 0===t.Fragment)throw TypeError("Expected `Fragment` in options");let a=t.filePath||void 0;if(t.development){if("function"!=typeof t.jsxDEV)throw TypeError("Expected `jsxDEV` in options when `development: true`");n=a,r=t.jsxDEV,o=function(e,t,i,l){let o=Array.isArray(i.children),a=V(e);return r(t,i,l,o,{columnNumber:a?a.column-1:void 0,fileName:n,lineNumber:a?a.line:void 0},void 0)}}else{if("function"!=typeof t.jsx)throw TypeError("Expected `jsx` in production options");if("function"!=typeof t.jsxs)throw TypeError("Expected `jsxs` in production options");i=t.jsx,l=t.jsxs,o=function(e,t,n,r){let o=Array.isArray(n.children)?l:i;return r?o(t,n,r):o(t,n)}}let s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:o,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:a,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:!1!==t.passKeys,passNode:t.passNode||!1,schema:"svg"===t.space?N:O,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:!1!==t.tableCellAlignToStyle},u=ei(s,e,void 0);return u&&"string"!=typeof u?u:s.create(e,s.Fragment,{children:u||void 0},void 0)}(e,{Fragment:eh.Fragment,components:i,ignoreInvalidStyle:!0,jsx:eh.jsx,jsxs:eh.jsxs,passKeys:!0,passNode:!0})}(t.runSync(t.parse(n),n),e)}function nT(e){let t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),i=e.indexOf("/");return -1===t||-1!==i&&t>i||-1!==n&&t>n||-1!==r&&t>r||nA.test(e.slice(0,t))?e:""}},40149:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Captions",[["rect",{width:"18",height:"14",x:"3",y:"5",rx:"2",ry:"2",key:"12ruh7"}],["path",{d:"M7 15h4M15 15h2M7 11h2M13 11h4",key:"1ueiar"}]])},41662:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]])},43589:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Video",[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]])},43811:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("ZoomIn",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]])},44585:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]])},45186:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},45440:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Pause",[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]])},47888:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]])},53093:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Music",[["path",{d:"M9 18V5l12-2v13",key:"1jmyc2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["circle",{cx:"18",cy:"16",r:"3",key:"1hluhg"}]])},53322:e=>{e.exports={style:{fontFamily:"'Comic Neue', 'Comic Neue Fallback'",fontStyle:"normal"},className:"__className_5f610d"}},56139:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("SquareSplitHorizontal",[["path",{d:"M8 19H5c-1 0-2-1-2-2V7c0-1 1-2 2-2h3",key:"lubmu8"}],["path",{d:"M16 5h3c1 0 2 1 2 2v10c0 1-1 2-2 2h-3",key:"1ag34g"}],["line",{x1:"12",x2:"12",y1:"4",y2:"20",key:"1tx1rr"}]])},57107:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Grid2x2",[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M3 12h18",key:"1i2n21"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]])},57118:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]])},58090:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},59674:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]])},59726:(e,t,n)=>{"use strict";var r=n(44578);n.o(r,"useParams")&&n.d(t,{useParams:function(){return r.useParams}}),n.o(r,"useRouter")&&n.d(t,{useRouter:function(){return r.useRouter}}),n.o(r,"useSearchParams")&&n.d(t,{useSearchParams:function(){return r.useSearchParams}})},60331:(e,t,n)=>{"use strict";n.d(t,{D:()=>c,ThemeProvider:()=>d});var r=n(74188),i=(e,t,n,r,i,l,o,a)=>{let s=document.documentElement,u=["light","dark"];function c(t){var n;(Array.isArray(e)?e:[e]).forEach(e=>{let n="class"===e,r=n&&l?i.map(e=>l[e]||e):i;n?(s.classList.remove(...r),s.classList.add(l&&l[t]?l[t]:t)):s.setAttribute(e,t)}),n=t,a&&u.includes(n)&&(s.style.colorScheme=n)}if(r)c(r);else try{let e=localStorage.getItem(t)||n,r=o&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;c(r)}catch(e){}},l=["light","dark"],o="(prefers-color-scheme: dark)",a="undefined"==typeof window,s=r.createContext(void 0),u={setTheme:e=>{},themes:[]},c=()=>{var e;return null!=(e=r.useContext(s))?e:u},d=e=>r.useContext(s)?r.createElement(r.Fragment,null,e.children):r.createElement(p,{...e}),h=["light","dark"],p=e=>{let{forcedTheme:t,disableTransitionOnChange:n=!1,enableSystem:i=!0,enableColorScheme:a=!0,storageKey:u="theme",themes:c=h,defaultTheme:d=i?"system":"light",attribute:p="data-theme",value:v,children:k,nonce:x,scriptProps:b}=e,[w,S]=r.useState(()=>m(u,d)),[E,C]=r.useState(()=>"system"===w?y():w),A=v?Object.values(v):c,M=r.useCallback(e=>{let t=e;if(!t)return;"system"===e&&i&&(t=y());let r=v?v[t]:t,o=n?g(x):null,s=document.documentElement,u=e=>{"class"===e?(s.classList.remove(...A),r&&s.classList.add(r)):e.startsWith("data-")&&(r?s.setAttribute(e,r):s.removeAttribute(e))};if(Array.isArray(p)?p.forEach(u):u(p),a){let e=l.includes(d)?d:null,n=l.includes(t)?t:e;s.style.colorScheme=n}null==o||o()},[x]),P=r.useCallback(e=>{let t="function"==typeof e?e(w):e;S(t);try{localStorage.setItem(u,t)}catch(e){}},[w]),T=r.useCallback(e=>{C(y(e)),"system"===w&&i&&!t&&M("system")},[w,t]);r.useEffect(()=>{let e=window.matchMedia(o);return e.addListener(T),T(e),()=>e.removeListener(T)},[T]),r.useEffect(()=>{let e=e=>{e.key===u&&(e.newValue?S(e.newValue):P(d))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[P]),r.useEffect(()=>{M(null!=t?t:w)},[t,w]);let D=r.useMemo(()=>({theme:w,setTheme:P,forcedTheme:t,resolvedTheme:"system"===w?E:w,themes:i?[...c,"system"]:c,systemTheme:i?E:void 0}),[w,P,t,E,i,c]);return r.createElement(s.Provider,{value:D},r.createElement(f,{forcedTheme:t,storageKey:u,attribute:p,enableSystem:i,enableColorScheme:a,defaultTheme:d,value:v,themes:c,nonce:x,scriptProps:b}),k)},f=r.memo(e=>{let{forcedTheme:t,storageKey:n,attribute:l,enableSystem:o,enableColorScheme:a,defaultTheme:s,value:u,themes:c,nonce:d,scriptProps:h}=e,p=JSON.stringify([l,n,s,t,c,u,o,a]).slice(1,-1);return r.createElement("script",{...h,suppressHydrationWarning:!0,nonce:"undefined"==typeof window?d:"",dangerouslySetInnerHTML:{__html:"(".concat(i.toString(),")(").concat(p,")")}})}),m=(e,t)=>{let n;if(!a){try{n=localStorage.getItem(e)||void 0}catch(e){}return n||t}},g=e=>{let t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(t),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(t)},1)}},y=e=>(e||(e=window.matchMedia(o)),e.matches?"dark":"light")},61275:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]])},61913:(e,t,n)=>{"use strict";n.d(t,{k5:()=>c});var r=n(74188),i={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},l=r.createContext&&r.createContext(i),o=["attr","size","title"];function a(){return(a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach(function(t){var r,i,l;r=e,i=t,l=n[t],(i=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(i))in r?Object.defineProperty(r,i,{value:l,enumerable:!0,configurable:!0,writable:!0}):r[i]=l}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function c(e){return t=>r.createElement(d,a({attr:u({},e.attr)},t),function e(t){return t&&t.map((t,n)=>r.createElement(t.tag,u({key:n},t.attr),e(t.child)))}(e.child))}function d(e){var t=t=>{var n,{attr:i,size:l,title:s}=e,c=function(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)n=l[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}(e,o),d=l||t.size||"1em";return t.className&&(n=t.className),e.className&&(n=(n?n+" ":"")+e.className),r.createElement("svg",a({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},t.attr,i,c,{className:n,style:u(u({color:e.color||t.color},t.style),e.style),height:d,width:d,xmlns:"http://www.w3.org/2000/svg"}),s&&r.createElement("title",null,s),e.children)};return void 0!==l?r.createElement(l.Consumer,null,e=>t(e)):t(i)}},62243:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("SkipBack",[["polygon",{points:"19 20 9 12 19 4 19 20",key:"o2sva"}],["line",{x1:"5",x2:"5",y1:"19",y2:"5",key:"1ocqjk"}]])},64889:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("VolumeX",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["line",{x1:"22",x2:"16",y1:"9",y2:"15",key:"1ewh16"}],["line",{x1:"16",x2:"22",y1:"9",y2:"15",key:"5ykzw1"}]])},65763:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("ArrowRightToLine",[["path",{d:"M17 12H3",key:"8awo09"}],["path",{d:"m11 18 6-6-6-6",key:"8c2y43"}],["path",{d:"M21 5v14",key:"nzette"}]])},65803:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},68321:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]])},71854:function(e,t,n){"use strict";var r=(this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(n(35316)),i=n(93582);function l(e,t){var n={};return e&&"string"==typeof e&&(0,r.default)(e,function(e,r){e&&r&&(n[(0,i.camelCase)(e,t)]=r)}),n}l.default=l,e.exports=l},73539:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]])},76085:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("SkipForward",[["polygon",{points:"5 4 15 12 5 20 5 4",key:"16p6eg"}],["line",{x1:"19",x2:"19",y1:"5",y2:"19",key:"futhcm"}]])},78456:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("ArrowLeftRight",[["path",{d:"M8 3 4 7l4 4",key:"9rb6wj"}],["path",{d:"M4 7h16",key:"6tx8e3"}],["path",{d:"m16 21 4-4-4-4",key:"siv7j2"}],["path",{d:"M20 17H4",key:"h6l3hr"}]])},79649:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Sticker",[["path",{d:"M15.5 3H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2V8.5L15.5 3Z",key:"1wis1t"}],["path",{d:"M14 3v4a2 2 0 0 0 2 2h4",key:"36rjfy"}],["path",{d:"M8 13h.01",key:"1sbv64"}],["path",{d:"M16 13h.01",key:"wip0gl"}],["path",{d:"M10 16s.8 1 2 1c1.3 0 2-1 2-1",key:"1vvgv3"}]])},79899:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},80647:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("SquarePen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]])},80965:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("ArrowDown01",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["rect",{x:"15",y:"4",width:"4",height:"6",ry:"2",key:"1bwicg"}],["path",{d:"M17 20v-6h-2",key:"1qp1so"}],["path",{d:"M15 20h4",key:"1j968p"}]])},81450:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Type",[["polyline",{points:"4 7 4 4 20 4 20 7",key:"1nosan"}],["line",{x1:"9",x2:"15",y1:"20",y2:"20",key:"swin9y"}],["line",{x1:"12",x2:"12",y1:"4",y2:"20",key:"1tx1rr"}]])},82189:e=>{e.exports={style:{fontFamily:"'Open Sans', 'Open Sans Fallback'",fontStyle:"normal"},className:"__className_2d07b8"}},82549:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Scissors",[["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M8.12 8.12 12 12",key:"1alkpv"}],["path",{d:"M20 4 8.12 15.88",key:"xgtan2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M14.8 14.8 20 20",key:"ptml3r"}]])},83091:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("CloudUpload",[["path",{d:"M12 13v8",key:"1l5pq0"}],["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"m8 17 4-4 4 4",key:"1quai1"}]])},84945:(e,t,n)=>{"use strict";n.d(t,{KA:()=>o});let r=Error("failed to get response body reader"),i=Error("failed to complete download"),l=async(e,t)=>{let n,l=await fetch(e);try{let o=parseInt(l.headers.get("Content-Length")||"-1"),a=l.body?.getReader();if(!a)throw r;let s=[],u=0;for(;;){let{done:n,value:r}=await a.read(),l=r?r.length:0;if(n){if(-1!=o&&o!==u)throw i;t&&t({url:e,total:o,received:u,delta:l,done:n});break}s.push(r),u+=l,t&&t({url:e,total:o,received:u,delta:l,done:n})}let c=new Uint8Array(u),d=0;for(let e of s)c.set(e,d),d+=e.length;n=c.buffer}catch(r){console.log("failed to send download progress event: ",r),n=await l.arrayBuffer(),t&&t({url:e,total:n.byteLength,received:n.byteLength,delta:0,done:!0})}return n},o=async(e,t,n=!1,r)=>{let i=new Blob([n?await l(e,r):await (await fetch(e)).arrayBuffer()],{type:t});return URL.createObjectURL(i)}},85531:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Volume2",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]])},85794:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},87134:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Snowflake",[["line",{x1:"2",x2:"22",y1:"12",y2:"12",key:"1dnqot"}],["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"m20 16-4-4 4-4",key:"rquw4f"}],["path",{d:"m4 8 4 4-4 4",key:"12s3z9"}],["path",{d:"m16 4-4 4-4-4",key:"1tumq1"}],["path",{d:"m8 20 4-4 4 4",key:"9p200w"}]])},87537:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("MicOff",[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["path",{d:"M18.89 13.23A7.12 7.12 0 0 0 19 12v-2",key:"80xlxr"}],["path",{d:"M5 10v2a7 7 0 0 0 12 5",key:"p2k8kg"}],["path",{d:"M15 9.34V5a3 3 0 0 0-5.68-1.33",key:"1gzdoj"}],["path",{d:"M9 9v3a3 3 0 0 0 5.12 2.12",key:"r2i35w"}],["line",{x1:"12",x2:"12",y1:"19",y2:"22",key:"x3vr5v"}]])},90320:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},90617:(e,t,n)=>{"use strict";function r(e,t,n,r){return new(n||(n=Promise))(function(i,l){function o(e){try{s(r.next(e))}catch(e){l(e)}}function a(e){try{s(r.throw(e))}catch(e){l(e)}}function s(e){var t;e.done?i(e.value):((t=e.value)instanceof n?t:new n(function(e){e(t)})).then(o,a)}s((r=r.apply(e,t||[])).next())})}n.d(t,{A:()=>f}),"function"==typeof SuppressedError&&SuppressedError;class i{constructor(){this.listeners={}}on(e,t,n){if(this.listeners[e]||(this.listeners[e]=new Set),this.listeners[e].add(t),null==n?void 0:n.once){let n=()=>{this.un(e,n),this.un(e,t)};return this.on(e,n),n}return()=>this.un(e,t)}un(e,t){var n;null==(n=this.listeners[e])||n.delete(t)}once(e,t){return this.on(e,t,{once:!0})}unAll(){this.listeners={}}emit(e,...t){this.listeners[e]&&this.listeners[e].forEach(e=>e(...t))}}let l={decode:function(e,t){return r(this,void 0,void 0,function*(){let n=new AudioContext({sampleRate:t});return n.decodeAudioData(e).finally(()=>n.close())})},createBuffer:function(e,t){return"number"==typeof e[0]&&(e=[e]),function(e){let t=e[0];if(t.some(e=>e>1||e<-1)){let n=t.length,r=0;for(let e=0;e<n;e++){let n=Math.abs(t[e]);n>r&&(r=n)}for(let t of e)for(let e=0;e<n;e++)t[e]/=r}}(e),{duration:t,length:e[0].length,sampleRate:e[0].length/t,numberOfChannels:e.length,getChannelData:t=>null==e?void 0:e[t],copyFromChannel:AudioBuffer.prototype.copyFromChannel,copyToChannel:AudioBuffer.prototype.copyToChannel}}};function o(e,t,n){let r=function e(t,n){let r=n.xmlns?document.createElementNS(n.xmlns,t):document.createElement(t);for(let[t,i]of Object.entries(n))if("children"===t&&i)for(let[t,n]of Object.entries(i))n instanceof Node?r.appendChild(n):"string"==typeof n?r.appendChild(document.createTextNode(n)):r.appendChild(e(t,n));else"style"===t?Object.assign(r.style,i):"textContent"===t?r.textContent=i:r.setAttribute(t,i.toString());return r}(e,t||{});return null==n||n.appendChild(r),r}var a=Object.freeze({__proto__:null,createElement:o,default:o});let s={fetchBlob:function(e,t,n){return r(this,void 0,void 0,function*(){let i=yield fetch(e,n);if(i.status>=400)throw Error(`Failed to fetch ${e}: ${i.status} (${i.statusText})`);return function(e,t){r(this,void 0,void 0,function*(){if(!e.body||!e.headers)return;let n=e.body.getReader(),i=Number(e.headers.get("Content-Length"))||0,l=0,o=e=>r(this,void 0,void 0,function*(){t(Math.round((l+=(null==e?void 0:e.length)||0)/i*100))}),a=()=>r(this,void 0,void 0,function*(){let e;try{e=yield n.read()}catch(e){return}e.done||(o(e.value),yield a())});a()})}(i.clone(),t),i.blob()})}};class u extends i{constructor(e){super(),this.isExternalMedia=!1,e.media?(this.media=e.media,this.isExternalMedia=!0):this.media=document.createElement("audio"),e.mediaControls&&(this.media.controls=!0),e.autoplay&&(this.media.autoplay=!0),null!=e.playbackRate&&this.onMediaEvent("canplay",()=>{null!=e.playbackRate&&(this.media.playbackRate=e.playbackRate)},{once:!0})}onMediaEvent(e,t,n){return this.media.addEventListener(e,t,n),()=>this.media.removeEventListener(e,t,n)}getSrc(){return this.media.currentSrc||this.media.src||""}revokeSrc(){let e=this.getSrc();e.startsWith("blob:")&&URL.revokeObjectURL(e)}canPlayType(e){return""!==this.media.canPlayType(e)}setSrc(e,t){let n=this.getSrc();if(e&&n===e)return;this.revokeSrc();let r=t instanceof Blob&&(this.canPlayType(t.type)||!e)?URL.createObjectURL(t):e;if(n&&this.media.removeAttribute("src"),r||e)try{this.media.src=r}catch(t){this.media.src=e}}destroy(){this.isExternalMedia||(this.media.pause(),this.media.remove(),this.revokeSrc(),this.media.removeAttribute("src"),this.media.load())}setMediaElement(e){this.media=e}play(){return r(this,void 0,void 0,function*(){return this.media.play()})}pause(){this.media.pause()}isPlaying(){return!this.media.paused&&!this.media.ended}setTime(e){this.media.currentTime=Math.max(0,Math.min(e,this.getDuration()))}getDuration(){return this.media.duration}getCurrentTime(){return this.media.currentTime}getVolume(){return this.media.volume}setVolume(e){this.media.volume=e}getMuted(){return this.media.muted}setMuted(e){this.media.muted=e}getPlaybackRate(){return this.media.playbackRate}isSeeking(){return this.media.seeking}setPlaybackRate(e,t){null!=t&&(this.media.preservesPitch=t),this.media.playbackRate=e}getMediaElement(){return this.media}setSinkId(e){return this.media.setSinkId(e)}}class c extends i{constructor(e,t){super(),this.timeouts=[],this.isScrollable=!1,this.audioData=null,this.resizeObserver=null,this.lastContainerWidth=0,this.isDragging=!1,this.subscriptions=[],this.unsubscribeOnScroll=[],this.subscriptions=[],this.options=e;let n=this.parentFromOptionsContainer(e.container);this.parent=n;let[r,i]=this.initHtml();n.appendChild(r),this.container=r,this.scrollContainer=i.querySelector(".scroll"),this.wrapper=i.querySelector(".wrapper"),this.canvasWrapper=i.querySelector(".canvases"),this.progressWrapper=i.querySelector(".progress"),this.cursor=i.querySelector(".cursor"),t&&i.appendChild(t),this.initEvents()}parentFromOptionsContainer(e){let t;if("string"==typeof e?t=document.querySelector(e):e instanceof HTMLElement&&(t=e),!t)throw Error("Container not found");return t}initEvents(){let e=e=>{let t=this.wrapper.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;return[n/t.width,r/t.height]};if(this.wrapper.addEventListener("click",t=>{let[n,r]=e(t);this.emit("click",n,r)}),this.wrapper.addEventListener("dblclick",t=>{let[n,r]=e(t);this.emit("dblclick",n,r)}),!0!==this.options.dragToSeek&&"object"!=typeof this.options.dragToSeek||this.initDrag(),this.scrollContainer.addEventListener("scroll",()=>{let{scrollLeft:e,scrollWidth:t,clientWidth:n}=this.scrollContainer;this.emit("scroll",e/t,(e+n)/t,e,e+n)}),"function"==typeof ResizeObserver){let e=this.createDelay(100);this.resizeObserver=new ResizeObserver(()=>{e().then(()=>this.onContainerResize()).catch(()=>{})}),this.resizeObserver.observe(this.scrollContainer)}}onContainerResize(){let e=this.parent.clientWidth;e===this.lastContainerWidth&&"auto"!==this.options.height||(this.lastContainerWidth=e,this.reRender())}initDrag(){this.subscriptions.push(function(e,t,n,r,i=3,l=0,o=100){if(!e)return()=>{};let a=matchMedia("(pointer: coarse)").matches,s=()=>{},u=u=>{if(u.button!==l)return;u.preventDefault(),u.stopPropagation();let c=u.clientX,d=u.clientY,h=!1,p=Date.now(),f=r=>{if(r.preventDefault(),r.stopPropagation(),a&&Date.now()-p<o)return;let l=r.clientX,s=r.clientY,u=l-c,f=s-d;if(h||Math.abs(u)>i||Math.abs(f)>i){let{left:r,top:i}=e.getBoundingClientRect();h||(null==n||n(c-r,d-i),h=!0),t(u,f,l-r,s-i),c=l,d=s}},m=t=>{if(h){let n=t.clientX,i=t.clientY,{left:l,top:o}=e.getBoundingClientRect();null==r||r(n-l,i-o)}s()},g=e=>{e.relatedTarget&&e.relatedTarget!==document.documentElement||m(e)},y=e=>{h&&(e.stopPropagation(),e.preventDefault())},v=e=>{h&&e.preventDefault()};document.addEventListener("pointermove",f),document.addEventListener("pointerup",m),document.addEventListener("pointerout",g),document.addEventListener("pointercancel",g),document.addEventListener("touchmove",v,{passive:!1}),document.addEventListener("click",y,{capture:!0}),s=()=>{document.removeEventListener("pointermove",f),document.removeEventListener("pointerup",m),document.removeEventListener("pointerout",g),document.removeEventListener("pointercancel",g),document.removeEventListener("touchmove",v),setTimeout(()=>{document.removeEventListener("click",y,{capture:!0})},10)}};return e.addEventListener("pointerdown",u),()=>{s(),e.removeEventListener("pointerdown",u)}}(this.wrapper,(e,t,n)=>{this.emit("drag",Math.max(0,Math.min(1,n/this.wrapper.getBoundingClientRect().width)))},e=>{this.isDragging=!0,this.emit("dragstart",Math.max(0,Math.min(1,e/this.wrapper.getBoundingClientRect().width)))},e=>{this.isDragging=!1,this.emit("dragend",Math.max(0,Math.min(1,e/this.wrapper.getBoundingClientRect().width)))}))}getHeight(e,t){var n;let r=(null==(n=this.audioData)?void 0:n.numberOfChannels)||1;if(null==e)return 128;if(!isNaN(Number(e)))return Number(e);if("auto"===e){let e=this.parent.clientHeight||128;return(null==t?void 0:t.every(e=>!e.overlay))?e/r:e}return 128}initHtml(){let e=document.createElement("div"),t=e.attachShadow({mode:"open"}),n=this.options.cspNonce&&"string"==typeof this.options.cspNonce?this.options.cspNonce.replace(/"/g,""):"";return t.innerHTML=` + <style${n?` nonce="${n}"`:""}> + :host { + user-select: none; + min-width: 1px; + } + :host audio { + display: block; + width: 100%; + } + :host .scroll { + overflow-x: auto; + overflow-y: hidden; + width: 100%; + position: relative; + } + :host .noScrollbar { + scrollbar-color: transparent; + scrollbar-width: none; + } + :host .noScrollbar::-webkit-scrollbar { + display: none; + -webkit-appearance: none; + } + :host .wrapper { + position: relative; + overflow: visible; + z-index: 2; + } + :host .canvases { + min-height: ${this.getHeight(this.options.height,this.options.splitChannels)}px; + } + :host .canvases > div { + position: relative; + } + :host canvas { + display: block; + position: absolute; + top: 0; + image-rendering: pixelated; + } + :host .progress { + pointer-events: none; + position: absolute; + z-index: 2; + top: 0; + left: 0; + width: 0; + height: 100%; + overflow: hidden; + } + :host .progress > div { + position: relative; + } + :host .cursor { + pointer-events: none; + position: absolute; + z-index: 5; + top: 0; + left: 0; + height: 100%; + border-radius: 2px; + } + </style> + + <div class="scroll" part="scroll"> + <div class="wrapper" part="wrapper"> + <div class="canvases" part="canvases"></div> + <div class="progress" part="progress"></div> + <div class="cursor" part="cursor"></div> + </div> + </div> + `,[e,t]}setOptions(e){if(this.options.container!==e.container){let t=this.parentFromOptionsContainer(e.container);t.appendChild(this.container),this.parent=t}!0!==e.dragToSeek&&"object"!=typeof this.options.dragToSeek||this.initDrag(),this.options=e,this.reRender()}getWrapper(){return this.wrapper}getWidth(){return this.scrollContainer.clientWidth}getScroll(){return this.scrollContainer.scrollLeft}setScroll(e){this.scrollContainer.scrollLeft=e}setScrollPercentage(e){let{scrollWidth:t}=this.scrollContainer;this.setScroll(t*e)}destroy(){var e,t;this.subscriptions.forEach(e=>e()),this.container.remove(),null==(e=this.resizeObserver)||e.disconnect(),null==(t=this.unsubscribeOnScroll)||t.forEach(e=>e()),this.unsubscribeOnScroll=[]}createDelay(e=10){let t,n,r=()=>{t&&clearTimeout(t),n&&n()};return this.timeouts.push(r),()=>new Promise((i,l)=>{r(),n=l,t=setTimeout(()=>{t=void 0,n=void 0,i()},e)})}convertColorValues(e){if(!Array.isArray(e))return e||"";if(e.length<2)return e[0]||"";let t=document.createElement("canvas"),n=t.getContext("2d"),r=t.height*(window.devicePixelRatio||1),i=n.createLinearGradient(0,0,0,r),l=1/(e.length-1);return e.forEach((e,t)=>{i.addColorStop(t*l,e)}),i}getPixelRatio(){return Math.max(1,window.devicePixelRatio||1)}renderBarWaveform(e,t,n,r){let i=e[0],l=e[1]||e[0],o=i.length,{width:a,height:s}=n.canvas,u=s/2,c=this.getPixelRatio(),d=t.barWidth?t.barWidth*c:1,h=t.barGap?t.barGap*c:t.barWidth?d/2:0,p=t.barRadius||0,f=a/(d+h)/o,m=p&&"roundRect"in n?"roundRect":"rect";n.beginPath();let g=0,y=0,v=0;for(let e=0;e<=o;e++){let o=Math.round(e*f);if(o>g){let e=Math.round(y*u*r),i=e+Math.round(v*u*r)||1,l=u-e;"top"===t.barAlign?l=0:"bottom"===t.barAlign&&(l=s-i),n[m](g*(d+h),l,d,i,p),g=o,y=0,v=0}let a=Math.abs(i[e]||0),c=Math.abs(l[e]||0);a>y&&(y=a),c>v&&(v=c)}n.fill(),n.closePath()}renderLineWaveform(e,t,n,r){let i=t=>{let i=e[t]||e[0],l=i.length,{height:o}=n.canvas,a=o/2,s=n.canvas.width/l;n.moveTo(0,a);let u=0,c=0;for(let e=0;e<=l;e++){let l=Math.round(e*s);if(l>u){let e=a+(Math.round(c*a*r)||1)*(0===t?-1:1);n.lineTo(u,e),u=l,c=0}let o=Math.abs(i[e]||0);o>c&&(c=o)}n.lineTo(u,a)};n.beginPath(),i(0),i(1),n.fill(),n.closePath()}renderWaveform(e,t,n){if(n.fillStyle=this.convertColorValues(t.waveColor),t.renderFunction)return void t.renderFunction(e,n);let r=t.barHeight||1;if(t.normalize){let t=Array.from(e[0]).reduce((e,t)=>Math.max(e,Math.abs(t)),0);r=t?1/t:1}t.barWidth||t.barGap||t.barAlign?this.renderBarWaveform(e,t,n,r):this.renderLineWaveform(e,t,n,r)}renderSingleCanvas(e,t,n,r,i,l,o){let a=this.getPixelRatio(),s=document.createElement("canvas");s.width=Math.round(n*a),s.height=Math.round(r*a),s.style.width=`${n}px`,s.style.height=`${r}px`,s.style.left=`${Math.round(i)}px`,l.appendChild(s);let u=s.getContext("2d");if(this.renderWaveform(e,t,u),s.width>0&&s.height>0){let e=s.cloneNode(),n=e.getContext("2d");n.drawImage(s,0,0),n.globalCompositeOperation="source-in",n.fillStyle=this.convertColorValues(t.progressColor),n.fillRect(0,0,s.width,s.height),o.appendChild(e)}}renderMultiCanvas(e,t,n,r,i,l){let o=this.getPixelRatio(),{clientWidth:a}=this.scrollContainer,s=n/o,u=Math.min(c.MAX_CANVAS_WIDTH,a,s),d={};if(t.barWidth||t.barGap){let e=t.barWidth||.5,n=e+(t.barGap||e/2);u%n!=0&&(u=Math.floor(u/n)*n)}if(0===u)return;let h=n=>{if(n<0||n>=p||d[n])return;d[n]=!0;let o=n*u,a=Math.min(s-o,u);if(t.barWidth||t.barGap){let e=t.barWidth||.5,n=e+(t.barGap||e/2);a=Math.floor(a/n)*n}if(a<=0)return;let c=e.map(e=>{let t=Math.floor(o/s*e.length),n=Math.floor((o+a)/s*e.length);return e.slice(t,n)});this.renderSingleCanvas(c,t,a,r,o,i,l)},p=Math.ceil(s/u);if(!this.isScrollable){for(let e=0;e<p;e++)h(e);return}let f=Math.floor(this.scrollContainer.scrollLeft/s*p);if(h(f-1),h(f),h(f+1),p>1){let e=this.on("scroll",()=>{let{scrollLeft:e}=this.scrollContainer,t=Math.floor(e/s*p);Object.keys(d).length>c.MAX_NODES&&(i.innerHTML="",l.innerHTML="",d={}),h(t-1),h(t),h(t+1)});this.unsubscribeOnScroll.push(e)}}renderChannel(e,t,n,r){var{overlay:i}=t,l=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)0>t.indexOf(r[i])&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(t,["overlay"]);let o=document.createElement("div"),a=this.getHeight(l.height,l.splitChannels);o.style.height=`${a}px`,i&&r>0&&(o.style.marginTop=`-${a}px`),this.canvasWrapper.style.minHeight=`${a}px`,this.canvasWrapper.appendChild(o);let s=o.cloneNode();this.progressWrapper.appendChild(s),this.renderMultiCanvas(e,l,n,a,o,s)}render(e){return r(this,void 0,void 0,function*(){var t;this.timeouts.forEach(e=>e()),this.timeouts=[],this.canvasWrapper.innerHTML="",this.progressWrapper.innerHTML="",null!=this.options.width&&(this.scrollContainer.style.width="number"==typeof this.options.width?`${this.options.width}px`:this.options.width);let n=this.getPixelRatio(),r=this.scrollContainer.clientWidth,i=Math.ceil(e.duration*(this.options.minPxPerSec||0));this.isScrollable=i>r;let l=this.options.fillParent&&!this.isScrollable,o=(l?r:i)*n;if(this.wrapper.style.width=l?"100%":`${i}px`,this.scrollContainer.style.overflowX=this.isScrollable?"auto":"hidden",this.scrollContainer.classList.toggle("noScrollbar",!!this.options.hideScrollbar),this.cursor.style.backgroundColor=`${this.options.cursorColor||this.options.progressColor}`,this.cursor.style.width=`${this.options.cursorWidth}px`,this.audioData=e,this.emit("render"),this.options.splitChannels)for(let n=0;n<e.numberOfChannels;n++){let r=Object.assign(Object.assign({},this.options),null==(t=this.options.splitChannels)?void 0:t[n]);this.renderChannel([e.getChannelData(n)],r,o,n)}else{let t=[e.getChannelData(0)];e.numberOfChannels>1&&t.push(e.getChannelData(1)),this.renderChannel(t,this.options,o,0)}Promise.resolve().then(()=>this.emit("rendered"))})}reRender(){if(this.unsubscribeOnScroll.forEach(e=>e()),this.unsubscribeOnScroll=[],!this.audioData)return;let{scrollWidth:e}=this.scrollContainer,{right:t}=this.progressWrapper.getBoundingClientRect();if(this.render(this.audioData),this.isScrollable&&e!==this.scrollContainer.scrollWidth){let{right:e}=this.progressWrapper.getBoundingClientRect(),n=e-t;n*=2,n=(n<0?Math.floor(n):Math.ceil(n))/2,this.scrollContainer.scrollLeft+=n}}zoom(e){this.options.minPxPerSec=e,this.reRender()}scrollIntoView(e,t=!1){let{scrollLeft:n,scrollWidth:r,clientWidth:i}=this.scrollContainer,l=e*r,o=n+i,a=i/2;if(this.isDragging)l+30>o?this.scrollContainer.scrollLeft+=30:l-30<n&&(this.scrollContainer.scrollLeft-=30);else{(l<n||l>o)&&(this.scrollContainer.scrollLeft=l-(this.options.autoCenter?a:0));let e=l-n-a;t&&this.options.autoCenter&&e>0&&(this.scrollContainer.scrollLeft+=Math.min(e,10))}{let e=this.scrollContainer.scrollLeft;this.emit("scroll",e/r,(e+i)/r,e,e+i)}}renderProgress(e,t){if(isNaN(e))return;let n=100*e;this.canvasWrapper.style.clipPath=`polygon(${n}% 0%, 100% 0%, 100% 100%, ${n}% 100%)`,this.progressWrapper.style.width=`${n}%`,this.cursor.style.left=`${n}%`,this.cursor.style.transform=`translateX(-${100===Math.round(n)?this.options.cursorWidth:0}px)`,this.isScrollable&&this.options.autoScroll&&this.scrollIntoView(e,t)}exportImage(e,t,n){return r(this,void 0,void 0,function*(){let r=this.canvasWrapper.querySelectorAll("canvas");if(!r.length)throw Error("No waveform data");return"dataURL"===n?Promise.resolve(Array.from(r).map(n=>n.toDataURL(e,t))):Promise.all(Array.from(r).map(n=>new Promise((r,i)=>{n.toBlob(e=>{e?r(e):i(Error("Could not export image"))},e,t)})))})}}c.MAX_CANVAS_WIDTH=8e3,c.MAX_NODES=10;class d extends i{constructor(){super(...arguments),this.unsubscribe=()=>{}}start(){this.unsubscribe=this.on("tick",()=>{requestAnimationFrame(()=>{this.emit("tick")})}),this.emit("tick")}stop(){this.unsubscribe()}destroy(){this.unsubscribe()}}class h extends i{constructor(e=new AudioContext){super(),this.bufferNode=null,this.playStartTime=0,this.playedDuration=0,this._muted=!1,this._playbackRate=1,this._duration=void 0,this.buffer=null,this.currentSrc="",this.paused=!0,this.crossOrigin=null,this.seeking=!1,this.autoplay=!1,this.addEventListener=this.on,this.removeEventListener=this.un,this.audioContext=e,this.gainNode=this.audioContext.createGain(),this.gainNode.connect(this.audioContext.destination)}load(){return r(this,void 0,void 0,function*(){})}get src(){return this.currentSrc}set src(e){if(this.currentSrc=e,this._duration=void 0,!e)return this.buffer=null,void this.emit("emptied");fetch(e).then(t=>{if(t.status>=400)throw Error(`Failed to fetch ${e}: ${t.status} (${t.statusText})`);return t.arrayBuffer()}).then(t=>this.currentSrc!==e?null:this.audioContext.decodeAudioData(t)).then(t=>{this.currentSrc===e&&(this.buffer=t,this.emit("loadedmetadata"),this.emit("canplay"),this.autoplay&&this.play())})}_play(){var e;if(!this.paused)return;this.paused=!1,null==(e=this.bufferNode)||e.disconnect(),this.bufferNode=this.audioContext.createBufferSource(),this.buffer&&(this.bufferNode.buffer=this.buffer),this.bufferNode.playbackRate.value=this._playbackRate,this.bufferNode.connect(this.gainNode);let t=this.playedDuration*this._playbackRate;(t>=this.duration||t<0)&&(t=0,this.playedDuration=0),this.bufferNode.start(this.audioContext.currentTime,t),this.playStartTime=this.audioContext.currentTime,this.bufferNode.onended=()=>{this.currentTime>=this.duration&&(this.pause(),this.emit("ended"))}}_pause(){var e;this.paused=!0,null==(e=this.bufferNode)||e.stop(),this.playedDuration+=this.audioContext.currentTime-this.playStartTime}play(){return r(this,void 0,void 0,function*(){this.paused&&(this._play(),this.emit("play"))})}pause(){this.paused||(this._pause(),this.emit("pause"))}stopAt(e){let t=e-this.currentTime,n=this.bufferNode;null==n||n.stop(this.audioContext.currentTime+t),null==n||n.addEventListener("ended",()=>{n===this.bufferNode&&(this.bufferNode=null,this.pause())},{once:!0})}setSinkId(e){return r(this,void 0,void 0,function*(){return this.audioContext.setSinkId(e)})}get playbackRate(){return this._playbackRate}set playbackRate(e){this._playbackRate=e,this.bufferNode&&(this.bufferNode.playbackRate.value=e)}get currentTime(){return(this.paused?this.playedDuration:this.playedDuration+(this.audioContext.currentTime-this.playStartTime))*this._playbackRate}set currentTime(e){let t=!this.paused;t&&this._pause(),this.playedDuration=e/this._playbackRate,t&&this._play(),this.emit("seeking"),this.emit("timeupdate")}get duration(){var e,t;return null!=(e=this._duration)?e:(null==(t=this.buffer)?void 0:t.duration)||0}set duration(e){this._duration=e}get volume(){return this.gainNode.gain.value}set volume(e){this.gainNode.gain.value=e,this.emit("volumechange")}get muted(){return this._muted}set muted(e){this._muted!==e&&(this._muted=e,this._muted?this.gainNode.disconnect():this.gainNode.connect(this.audioContext.destination))}canPlayType(e){return/^(audio|video)\//.test(e)}getGainNode(){return this.gainNode}getChannelData(){let e=[];if(!this.buffer)return e;let t=this.buffer.numberOfChannels;for(let n=0;n<t;n++)e.push(this.buffer.getChannelData(n));return e}}let p={waveColor:"#999",progressColor:"#555",cursorWidth:1,minPxPerSec:0,fillParent:!0,interact:!0,dragToSeek:!1,autoScroll:!0,autoCenter:!0,sampleRate:8e3};class f extends u{static create(e){return new f(e)}constructor(e){let t=e.media||("WebAudio"===e.backend?new h:void 0);super({media:t,mediaControls:e.mediaControls,autoplay:e.autoplay,playbackRate:e.audioRate}),this.plugins=[],this.decodedData=null,this.stopAtPosition=null,this.subscriptions=[],this.mediaSubscriptions=[],this.abortController=null,this.options=Object.assign({},p,e),this.timer=new d;let n=t?void 0:this.getMediaElement();this.renderer=new c(this.options,n),this.initPlayerEvents(),this.initRendererEvents(),this.initTimerEvents(),this.initPlugins();let r=this.options.url||this.getSrc()||"";Promise.resolve().then(()=>{this.emit("init");let{peaks:e,duration:t}=this.options;(r||e&&t)&&this.load(r,e,t).catch(()=>null)})}updateProgress(e=this.getCurrentTime()){return this.renderer.renderProgress(e/this.getDuration(),this.isPlaying()),e}initTimerEvents(){this.subscriptions.push(this.timer.on("tick",()=>{if(!this.isSeeking()){let e=this.updateProgress();this.emit("timeupdate",e),this.emit("audioprocess",e),null!=this.stopAtPosition&&this.isPlaying()&&e>=this.stopAtPosition&&this.pause()}}))}initPlayerEvents(){this.isPlaying()&&(this.emit("play"),this.timer.start()),this.mediaSubscriptions.push(this.onMediaEvent("timeupdate",()=>{let e=this.updateProgress();this.emit("timeupdate",e)}),this.onMediaEvent("play",()=>{this.emit("play"),this.timer.start()}),this.onMediaEvent("pause",()=>{this.emit("pause"),this.timer.stop(),this.stopAtPosition=null}),this.onMediaEvent("emptied",()=>{this.timer.stop(),this.stopAtPosition=null}),this.onMediaEvent("ended",()=>{this.emit("timeupdate",this.getDuration()),this.emit("finish"),this.stopAtPosition=null}),this.onMediaEvent("seeking",()=>{this.emit("seeking",this.getCurrentTime())}),this.onMediaEvent("error",()=>{var e;this.emit("error",null!=(e=this.getMediaElement().error)?e:Error("Media error")),this.stopAtPosition=null}))}initRendererEvents(){this.subscriptions.push(this.renderer.on("click",(e,t)=>{this.options.interact&&(this.seekTo(e),this.emit("interaction",e*this.getDuration()),this.emit("click",e,t))}),this.renderer.on("dblclick",(e,t)=>{this.emit("dblclick",e,t)}),this.renderer.on("scroll",(e,t,n,r)=>{let i=this.getDuration();this.emit("scroll",e*i,t*i,n,r)}),this.renderer.on("render",()=>{this.emit("redraw")}),this.renderer.on("rendered",()=>{this.emit("redrawcomplete")}),this.renderer.on("dragstart",e=>{this.emit("dragstart",e)}),this.renderer.on("dragend",e=>{this.emit("dragend",e)}));{let e;this.subscriptions.push(this.renderer.on("drag",t=>{let n;this.options.interact&&(this.renderer.renderProgress(t),clearTimeout(e),this.isPlaying()?n=0:!0===this.options.dragToSeek?n=200:"object"==typeof this.options.dragToSeek&&void 0!==this.options.dragToSeek&&(n=this.options.dragToSeek.debounceTime),e=setTimeout(()=>{this.seekTo(t)},n),this.emit("interaction",t*this.getDuration()),this.emit("drag",t))}))}}initPlugins(){var e;(null==(e=this.options.plugins)?void 0:e.length)&&this.options.plugins.forEach(e=>{this.registerPlugin(e)})}unsubscribePlayerEvents(){this.mediaSubscriptions.forEach(e=>e()),this.mediaSubscriptions=[]}setOptions(e){this.options=Object.assign({},this.options,e),e.duration&&!e.peaks&&(this.decodedData=l.createBuffer(this.exportPeaks(),e.duration)),e.peaks&&e.duration&&(this.decodedData=l.createBuffer(e.peaks,e.duration)),this.renderer.setOptions(this.options),e.audioRate&&this.setPlaybackRate(e.audioRate),null!=e.mediaControls&&(this.getMediaElement().controls=e.mediaControls)}registerPlugin(e){if(this.plugins.includes(e))return e;e._init(this),this.plugins.push(e);let t=e.once("destroy",()=>{this.plugins=this.plugins.filter(t=>t!==e),this.subscriptions=this.subscriptions.filter(e=>e!==t)});return this.subscriptions.push(t),e}unregisterPlugin(e){this.plugins=this.plugins.filter(t=>t!==e),e.destroy()}getWrapper(){return this.renderer.getWrapper()}getWidth(){return this.renderer.getWidth()}getScroll(){return this.renderer.getScroll()}setScroll(e){return this.renderer.setScroll(e)}setScrollTime(e){let t=e/this.getDuration();this.renderer.setScrollPercentage(t)}getActivePlugins(){return this.plugins}loadAudio(e,t,n,i){return r(this,void 0,void 0,function*(){var r;if(this.emit("load",e),!this.options.media&&this.isPlaying()&&this.pause(),this.decodedData=null,this.stopAtPosition=null,!t&&!n){let n=this.options.fetchParams||{};window.AbortController&&!n.signal&&(this.abortController=new AbortController,n.signal=null==(r=this.abortController)?void 0:r.signal);let i=e=>this.emit("loading",e);t=yield s.fetchBlob(e,i,n);let l=this.options.blobMimeType;l&&(t=new Blob([t],{type:l}))}this.setSrc(e,t);let o=yield new Promise(e=>{let t=i||this.getDuration();t?e(t):this.mediaSubscriptions.push(this.onMediaEvent("loadedmetadata",()=>e(this.getDuration()),{once:!0}))});if(!e&&!t){let e=this.getMediaElement();e instanceof h&&(e.duration=o)}if(n)this.decodedData=l.createBuffer(n,o||0);else if(t){let e=yield t.arrayBuffer();this.decodedData=yield l.decode(e,this.options.sampleRate)}this.decodedData&&(this.emit("decode",this.getDuration()),this.renderer.render(this.decodedData)),this.emit("ready",this.getDuration())})}load(e,t,n){return r(this,void 0,void 0,function*(){try{return yield this.loadAudio(e,void 0,t,n)}catch(e){throw this.emit("error",e),e}})}loadBlob(e,t,n){return r(this,void 0,void 0,function*(){try{return yield this.loadAudio("",e,t,n)}catch(e){throw this.emit("error",e),e}})}zoom(e){if(!this.decodedData)throw Error("No audio loaded");this.renderer.zoom(e),this.emit("zoom",e)}getDecodedData(){return this.decodedData}exportPeaks({channels:e=2,maxLength:t=8e3,precision:n=1e4}={}){if(!this.decodedData)throw Error("The audio has not been decoded yet");let r=Math.min(e,this.decodedData.numberOfChannels),i=[];for(let e=0;e<r;e++){let r=this.decodedData.getChannelData(e),l=[],o=r.length/t;for(let e=0;e<t;e++){let t=r.slice(Math.floor(e*o),Math.ceil((e+1)*o)),i=0;for(let e=0;e<t.length;e++){let n=t[e];Math.abs(n)>Math.abs(i)&&(i=n)}l.push(Math.round(i*n)/n)}i.push(l)}return i}getDuration(){let e=super.getDuration()||0;return(0===e||e===1/0)&&this.decodedData&&(e=this.decodedData.duration),e}toggleInteraction(e){this.options.interact=e}setTime(e){this.stopAtPosition=null,super.setTime(e),this.updateProgress(e),this.emit("timeupdate",e)}seekTo(e){let t=this.getDuration()*e;this.setTime(t)}play(e,t){let n=Object.create(null,{play:{get:()=>super.play}});return r(this,void 0,void 0,function*(){null!=e&&this.setTime(e);let r=yield n.play.call(this);return null!=t&&(this.media instanceof h?this.media.stopAt(t):this.stopAtPosition=t),r})}playPause(){return r(this,void 0,void 0,function*(){return this.isPlaying()?this.pause():this.play()})}stop(){this.pause(),this.setTime(0)}skip(e){this.setTime(this.getCurrentTime()+e)}empty(){this.load("",[[0]],.001)}setMediaElement(e){this.unsubscribePlayerEvents(),super.setMediaElement(e),this.initPlayerEvents()}exportImage(){return r(this,arguments,void 0,function*(e="image/png",t=1,n="dataURL"){return this.renderer.exportImage(e,t,n)})}destroy(){var e;this.emit("destroy"),null==(e=this.abortController)||e.abort(),this.plugins.forEach(e=>e.destroy()),this.subscriptions.forEach(e=>e()),this.unsubscribePlayerEvents(),this.timer.destroy(),this.renderer.destroy(),super.destroy()}}f.BasePlugin=class extends i{constructor(e){super(),this.subscriptions=[],this.isDestroyed=!1,this.options=e}onInit(){}_init(e){this.isDestroyed&&(this.subscriptions=[],this.isDestroyed=!1),this.wavesurfer=e,this.onInit()}destroy(){this.emit("destroy"),this.subscriptions.forEach(e=>e()),this.subscriptions=[],this.isDestroyed=!0,this.wavesurfer=void 0}},f.dom=a},93237:e=>{e.exports={style:{fontFamily:"'Playfair Display', 'Playfair Display Fallback'",fontStyle:"normal"},className:"__className_17d9d3"}},93582:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.camelCase=void 0;var n=/^--[a-zA-Z0-9_-]+$/,r=/-([a-z])/g,i=/^[^-]+$/,l=/^-(webkit|moz|ms|o|khtml)-/,o=/^-(ms)-/,a=function(e,t){return t.toUpperCase()},s=function(e,t){return"".concat(t,"-")};t.camelCase=function(e,t){var u;return(void 0===t&&(t={}),!(u=e)||i.test(u)||n.test(u))?e:(e=e.toLowerCase(),(e=t.reactCompat?e.replace(o,s):e.replace(l,s)).replace(r,a))}},93843:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]])},95647:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]])},97946:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("List",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]])},99469:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(88077).A)("Blend",[["circle",{cx:"9",cy:"9",r:"7",key:"p2h5vp"}],["circle",{cx:"15",cy:"15",r:"7",key:"19ennj"}]])}}]); +//# sourceMappingURL=260-f7d05fbb5c55e877.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/260-f7d05fbb5c55e877.js.map b/opencut-ui/_next/static/chunks/260-f7d05fbb5c55e877.js.map new file mode 100644 index 0000000..2c02caf --- /dev/null +++ b/opencut-ui/_next/static/chunks/260-f7d05fbb5c55e877.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/260-f7d05fbb5c55e877.js","mappings":"4GAaM,MAAU,cAAgB,CAAC,SAAW,EAC1C,CAAC,MAAQ,EAAE,EAAG,CAAmB,qBAAK,SAAU,EAChD,CAAC,MAAQ,EAAE,EAAG,CAAgB,kBAAK,SAAU,EAC7C,CACE,OACA,CACE,CAAG,gGACH,GAAK,SACP,EACF,CACD,gDCVK,MAAM,cAAgB,CAAC,KAAO,EAClC,CAAC,MAAQ,EAAE,EAAG,CAAwD,0DAAK,SAAU,EACrF,CAAC,MAAQ,EAAE,EAAG,CAA8B,gCAAK,SAAU,EAC3D,CAAC,OAAQ,CAAE,GAAI,CAAM,OAAI,CAAM,OAAI,IAAM,IAAI,IAAM,KAAK,SAAU,EACnE,iDCJK,MAAQ,cAAgB,CAAC,OAAS,EACtC,CACE,OACA,CACE,CAAG,4IACH,GAAK,SACP,EACF,CACD,oCCyJD,yDAzKA,MAA0B,mBAAa,OACvC,kCAEA,OACA,yBACA,4CACA,8BACA,mBACA,0CACA,wBACA,4BACA,kCACA,+CACA,uDACA,6CACA,4CACA,EAGA,EAAkC,iBAAe,CAEjD,EAAc,iBAAK,qBACnB,kCACA,IACA,mBACA,UACA,EAAgB,YAAM,aAItB,OAHA,kBACA,mBAEA,oBAGA,YACA,WACA,eACA,gBACA,cACA,cACA,eACA,KACA,UACA,UACA,aACA,WACA,WACA,QACA,QACA,gBACA,KACC,EACD,MAAkB,gBAAU,IAC5B,YACA,+EAEA,IACA,gBACA,cACA,eACA,gBACA,UACA,mBACA,6BACA,gBACA,cACA,kBACA,CAAI,EACJ,OACA,EAAuB,YAAM,EAC7B,WACA,aACA,WACA,UACA,CAAK,CACL,aACA,gBACA,cACA,cACA,UACA,SACA,CAAK,CACL,KACA,yBACA,OACA,CAAG,EACD,YAAM,EACR,kCACA,CAAG,EACH,OACA,IACA,YACA,cACA,CAAM,UACN,GACA,KAEA,gBACA,mCACA,kBACA,eACA,aACA,aACA,kBACA,gBACA,gBACA,YACA,YAIA,kHACA,cAEA,CAAG,EACH,OACA,gBAEA,OADA,KACA,KACA,IACA,CACA,CAAG,YACD,yBAAmB,SACrB,cACA,YACA,CAAK,CACL,WACA,cACA,CAAK,CACL,UACA,EAEA,YACA,aAEA,gBACA,aAEA,eACA,cAEA,WACA,cACA,CACA,CAAG,iBACH,qBACA,MAAS,mBAAa,IACtB,KACA,WACA,YACA,KACA,OACA,KACA,KACK,CAEL,cACA,aACA,+BACA,cACA,kDACA,CAAG,CACH,CACA,MAAc,gBAAU,QAAiB,mBAAa,IACtD,KACA,cACA,CAAC,GACD,sBACA,kCAUA,WAEA,KACA,OAoDA,oBACA,IAkBA,EAdA,MAlDA,cACA,MACA,eACA,WACA,WACA,WACA,KACA,KACA,uBACQ,KACR,uBAEA,iBAEM,KACN,KACA,uBACQ,KACR,uBAEA,iBAEM,KACN,sBACM,KACN,gBAEA,CACA,UACA,iBACA,iBACA,oBACA,YACA,gBACA,iBACA,CACA,EAcA,KACA,QAGA,IACA,WACA,kCAEA,GACA,uBA3EA,GA6EA,8BAEA,MAEA,qCAEA,oDAAiL,UAAU,GAAO,YAAY,SAC9M,CAEA,cACA,yBAEA,cACA,mCACA,CACA,cACA,iCACA,CAEA,cACA,QACA,gBACA,OACA,YACA,YAEA,MACI,QACJ,OACA,YACA,aAGA,OACA,MACA,KACA,CACA,CA0DA,6GAoCA,cACA,eACA,WACA,WAEA,GADA,oBA7BA,YACA,mCAGA,sBAMA,oDAlBA,GACA,MAEA,mDACA,mCACA,EAaA,KACA,cACA,uCACA,mDACA,+CACA,iCACA,6CACA,0CACA,uBAEA,qCAUA,WACA,CACA,WACA,CAGA,cACA,+CACA,CAGA,cACA,SACA,QACA,UAEA,OAEA,QACA,CAGA,cACA,IACA,aACA,CAAI,SACJ,2BACA,OAEA,CACA,CAEA,QACA,IACA,IACA,IACA,wBApIA,iCACA,6DAEA,IAkIA,KACA,KACA,UACA,UACA,UA0CA,cACA,IACA,SACA,CAAI,EACJ,CACA,IACA,IACA,CAAI,KACJ,KACA,GACA,SACA,IACA,GACA,CAAG,EACH,IACA,aACA,YACA,mBACA,MACA,6BAGA,CACA,cACA,IACA,IACA,IACA,CAAI,KAQJ,GAJA,mBACA,KACA,WAEA,IACA,IACA,SACA,CAAM,EAKN,GACA,SACA,IACA,GACA,CAAK,CACL,CACA,YAGA,IACA,YACA,kBAEA,CACA,cACA,IACA,SACA,CAAI,EACJ,CACA,IACA,IACA,CAAI,KACJ,UACA,KACA,aACA,mBACA,MACA,8BAGA,UACA,GACA,SACA,IACA,GACA,CAAG,EACH,IACA,GACA,CACA,cACA,QACA,SACA,kCACA,SAEA,kBAEA,QACA,CACA,YACA,SACA,IACA,IACC,EACD,YACA,UACA,sDACA,MAEA,cACA,IACA,UACA,iBACA,CAAM,EACN,4BACA,CACA,SACA,OACA,QACA,MACA,CAAM,EACN,oBAEA,GADA,+BACA,CAOA,0EAIA,SA7RA,SAMA,EALA,wDACA,OACA,OACA,MACA,EAIA,8BACA,YACA,YACA,IAEA,iFACA,OACA,YACA,WACA,EACA,cACA,mBACA,GACA,aACA,YACA,EACA,WACA,WACA,WACA,oBACA,oBACA,CACA,CACA,yBACA,EA4PA,QAOA,QACA,KACA,aAtTA,EAuTA,iBACA,MACY,GAzTZ,EAyTY,0BAvTZ,iEAuTY,EAvTZ,EAuTY,CACZ,KACA,KACA,CACA,kBAEA,KACA,MAEA,CACA,SACA,CACA,CAAG,CACH,CAIA,aACA,SACA,KACA,cACA,IACA,YACA,CAAM,CACN,kBACA,KAEA,IAEA,CAAG,EACH,QACA,cACA,IACA,CAAG,EACH,KACA,oBACI,EACJ,kBACI,EACJ,gBApaA,WACA,6BACA,OACA,OACA,KAoaA,CACA,0BACA,aACA,UAEA,OACA,WACA,OAHA,wBAGA,OAEA,UAGA,GACA,YACA,kBACA,IACA,OACA,CAAU,EACV,MACA,sCACA,uCACA,sCAEA,CAAO,EAEP,yCACA,8CAEA,kBACA,IACA,OACA,CAAQ,EACR,MACA,sCACA,sCAEA,CAAK,EAEL,CACA,gBACA,cACA,IACA,wBACA,CAAM,EAEN,IADA,cACA,EACA,CAAG,CACH,CAOA,gBACA,MAEA,MADA,iBACA,QAEA,CAEA,iBArrBA,EAqrBA,SACA,4BACA,EAEA,QAEA,CACA,iBA5rBA,EA4rBA,EACA,mBACA,CAEA,kBACA,mBACA,CAiBA,YACA,mBACA,aACA,OACC,EACD,WACA,mDAA4E,EAAW,GACvF,IACA,kBACA,cACA,cACA,YACA,CAAI,EAgBJ,OAfA,WAKA,EAJA,GAGA,MADA,SAEA,EAEA,GAOA,cADA,iBACA,QA9uBA,IAgvBA,CAGA,YACA,QACA,gBACA,mBACA,eACA,aACA,UACC,EACD,UACA,SAEA,aACA,QACA,uCACA,wCACA,QAsBA,mBACA,CAEA,cACA,OACA,6CAA0E,EAAM,GAChF,IACA,kBACA,cACA,YACA,CAAU,EAIV,MACA,WAEA,GADA,uDAAgF,EAAM,GACtF,QACA,SAGA,qBACA,aAGA,CACA,CACA,CAEA,CAEA,cACA,OACA,4CAAyE,EAAM,GAC/E,IACA,kBACA,cACA,YACA,CAAU,EAIV,MACA,WAEA,GADA,uDAAgF,EAAM,GACtF,QACA,SAGA,qBACA,aAGA,CACA,CACA,CACA,CAIA,CAOA,eACA,UACA,IAGA,QACA,WAYA,GAXA,uDAA4E,EAAM,GASlF,GARA,GACA,mBACA,aACA,QACA,CAAO,EACP,EAKA,CADA,MACA,eACA,KAEA,CAGA,wCACA,WAGA,CAEA,CAIA,MADA,QAEA,wBACA,8BACA,OACA,uDAA4E,EAAM,GAElF,SACA,mBACA,aACA,KAJA,GAKA,CAAO,EACP,aACA,OACA,OACA,kEACA,UACA,CAAS,MACT,KAGA,KACA,IAEA,GAEA,CACA,CAOA,GA1NA,gBACA,uBACA,SAEA,YAAsB,WAAuB,IAG7C,MAFA,KACA,KANA,QAQA,SAGA,QACA,EA8MA,KAIA,QAEA,EAEA,cACA,OACA,uDAA0E,EAAW,GACrF,UACA,KACA,mBACA,aACA,MACA,CAAK,EAML,GAHA,OAGA,SACA,UAEA,EADA,QAEA,wBACA,WACA,uDAA8E,EAAM,GAEpF,SACA,mBACA,aACA,KAJA,GAKA,CAAS,EAKT,GAJA,SACA,OACA,QAEA,OACA,KAEA,KACA,IAEA,GAEA,CACA,CACA,QAUA,EALA,uBAKA,KAQA,EAJA,CAKA,CAyCA,yBACA,yCAA+C,iBAA+B,yBAAyB,EAAQ,KAC/G,CAEA,4BAEA,MADA,OACA,mDACA,qBACA,CAEA,mBACA,gBACA,+BAGA,0BACA,MAEA,qFACA,SAIA,iEAAuF,EAAG,YAC1F,GAGA,IACA,CAEA,0BACA,0BAA0C,iBAA+B,IAAI,EAAG,YAChF,GAGA,IACA,CA+HA,iBACA,uBACA,SAEA,YAAsB,WAAuB,IAC7C,eACA,SAGA,QACA,CAEA,iBAEA,IACA,IACA,IACA,CAAI,KACJ,qBALA,EAKA,GACA,CAyGA,mBACA,kBACA,WACA,sCAAwD,EAAM,GAC9D,IACA,YACA,cACA,KACA,CAAM,EACN,CACA,kBACA,cACA,CAAM,EACN,OACA,mBACA,OACA,IACA,aACA,WACA,WACA,CAAQ,CACR,IACA,OAEA,YACA,+BACA,IAEA,+BACA,IAGA,CACA,CAAG,CACH,CAEA,iBACA,uBACA,SAEA,YAAwB,WAAkB,IAC1C,cACA,SAIA,QACA,CAsDA,eACA,IACA,oCAEA,aACA,wBAEA,kBACA,yBACA,OAEA,6DAEA,CAAI,SACJ,iBACA,mBACA,gBACA,CACA,CAEA,eACA,gCAAmC,EAAW,CAC9C,CAMA,eACA,iBACA,IACA,cACA,KACA,gBACA,QACA,CAAM,SACN,EACA,EAEA,KAAwB,EAAM,GAAG,kBAA4B,mBAE7D,CAAG,2CACH,CACA,iBACA,IACA,YACA,eACA,MACA,oBACA,+BACA,QAEA,CACA,CAAI,UACJ,WACA,CAOA,uBACA,MACA,YACA,QACA,wBACA,OACA,8CACA,QACA,EACA,IACA,8BACA,CAAI,SACJ,gBACA,CACA,CAGA,aACA,SACA,mBACC,EACD,aACA,yBAGA,uBACA,uBAA2B,UAAyB,gBAAgB,YAA0B,EAAK,eAAe,GAC9G,yBACJ,YAAwB,WAAiC,KACzD,WACA,4CAAmE,EAAM,GACzE,aACA,OACA,CAEA,QAGA,YAAsB,WAAiC,KACvD,WACA,4CAAiE,EAAM,GACvE,SACA,mBACA,aACA,MACA,CAAK,EACL,OACA,OACA,OAEA,CAIA,WACA,YAAwB,WAAiC,KACzD,WACA,4CAAiE,EAAM,GAEvE,SACA,mBACA,aACA,KAJA,GAKA,CAAO,EACP,WACA,OACA,OAGA,QACA,KAGA,CAEA,QACA,CAGA,QACA,YACA,OACA,eAEA,gBACA,OACA,eACA,CACA,EACA,MACA,aACA,kBACA,WACA,eACA,YACA,eACA,UACA,gBACA,wBACA,aACA,QACA,gBACA,KACC,EACD,WACA,EAA+B,YAAM,OACrC,MAAoC,cAAQ,OAC5C,MAA8B,cAAQ,KACtC,aA/4BA,SAAwB,cAAQ,IAChC,MAAS,iBAAW,kBACpB,IA84BA,EAA0C,YAAM,GAAG,EACnD,EAAqC,YAAM,UAC3C,EAAuB,YAAM,IAC7B,EAA6B,YAAM,EACnC,aACA,YACA,YACA,KACA,mBACA,WACA,SACA,CAAG,EACH,EAAyB,YAAM,EAC/B,SACA,kBACA,wBACA,CAAG,EACD,YAAM,EACR,2BACA,iCACA,gBACG,EACD,yBAAmB,SACrB,uBACA,eACA,IACA,SACA,CAAQ,UACR,QACA,CAAK,CACL,cACA,IACA,WACA,CAAQ,UACR,CACA,SACA,iBACA,CAAQ,UACR,MACA,SACA,wCACA,CAAO,EACP,UACA,KACA,mBACA,GACA,KAEA,kBAEA,CACA,EAAG,KACH,OACA,uBACA,sBACA,sBACA,eACA,qBACA,mBACA,CAAG,EACH,SAzjBA,CACA,qBACA,iBACA,UACA,SACA,iBACA,oBACA,YACC,EACC,YAAM,EACR,kCACA,CAAG,EACH,OACA,MACA,OAEA,aACA,YAAwB,aAAmC,KAC3D,IACA,WACA,WACA,WACA,CA/GA,UACA,SACA,cACA,eACC,EACD,QACA,MACA,IACA,IACA,OAuBA,OAtBA,kCAGA,kBACA,IACA,cACA,CAAM,EACN,CACA,cACA,YACA,CAAM,CACN,QACA,IACA,MAEA,KACA,KAEA,CAAG,EAIH,CACA,SAJA,kBAKA,SAJA,kBAKA,SAJA,IAKA,CACA,EA0EQ,CACR,SACA,cACA,qBACO,EACP,OACA,WAAyC,MACzC,WACA,sCAA4D,EAAM,IAClE,qCACA,iDACA,iDACA,2DACA,CACA,CACA,WACA,kBACA,mCACA,mCACA,mCACA,kCACA,CAAO,CACP,CACA,CAAG,YACD,eAAS,MACX,MACA,OAEA,gBACA,8BACA,IACA,iBACA,CAAM,EAEN,QADA,QACA,0BAA2D,EAAQ,IACnE,aACA,6CAA6D,EAAQ,IACrE,gBACA,uCACA,wDACA,SA1EA,2BACA,YACA,cACA,SACA,oBAGA,OAFA,4CACA,8CACA,EAmEA,SACA,oBACA,aAEA,UACA,wBAIA,UADA,MAEA,CACA,mBACA,+BACA,SACA,WACA,qCAAmE,EAAM,GACzE,WACA,CACA,kBACA,cACA,YACA,CAAkB,cAClB,eACA,SACA,qBACA,gBACA,yCACA,uBACA,aACA,kBACA,CAAmB,CACnB,QACA,IAEA,CACA,CAEA,CAEA,EAEA,OADA,gCACA,KACA,kCACA,CACA,CAAK,EACL,WACA,iBACA,CACA,CAAG,iBACH,EA0cA,CACA,qBACA,iBACA,UACA,SACA,wCACA,YACA,4BACG,EACD,eAAS,MACX,IACA,iBACA,CAAM,UAGN,MACA,qCACA,OAEA,WAGA,WACA,WA/QA,QACA,WASA,MARA,SACA,UACA,gBAEA,kBACA,OACA,CAAK,GACL,CAEA,EAoQA,GAlHA,KAmHA,SAOA,IAFA,OACA,mBACA,IACA,CACA,CAAG,UAGD,eAAS,MACX,CAAG,EAGH,MAAwB,iBAAW,KACnC,IACA,WACA,CAAM,UACN,CACA,SACA,iBACA,CAAM,UACN,8BACA,8BACA,CACA,kBACA,YACA,eACA,CAAQ,UAER,GADA,6CAAmE,KAAa,IAChF,SAGA,sBACA,IAEA,KACA,MAHA,qBACA,QAGA,gBACA,mBACA,eACA,aACA,wBACA,CAAS,EACT,UACA,KACA,mBACA,GACA,KAEA,kBAEA,CACA,CACA,CAAG,KAGH,EAAsB,iBAAW,SACjC,IACA,WACA,CAAM,UACN,CACA,SACA,iBACA,CAAM,UACN,8BACA,8BACA,CACA,kBACA,cACA,YACA,eACA,CAAQ,UACR,cACA,WAEA,0BACA,oBAGA,KACA,MAHA,qBACA,QAGA,gBACA,mBACA,eACA,aACA,wBACA,CAAS,EACT,UACA,KACA,mBACA,GACA,KAEA,kBAEA,CACA,CACA,CAAG,KAGH,EAAuB,iBAAW,KAClC,IACA,SACA,iBACA,CAAM,UACN,CACA,YACA,CAAM,UAEN,OADA,6CAAiE,KAAa,IAC9E,CACA,CAAG,KAGH,EAAwB,iBAAW,SACnC,IACA,iBACA,CAAM,UACN,UACA,OAzaA,UACA,cACA,YACA,SACA,YACA,aACA,cACC,EACD,WAYA,OACA,YACA,SAZA,QAGA,+BACI,aAEJ,IAEA,iBAKA,aAEA,kBAGA,oCACA,CACA,EA2YA,CACA,cACA,YACA,SACA,YACA,YACA,CAAK,CACL,CAAG,QAGH,EAA2B,iBAAW,KACtC,IACA,SACA,iBACA,CAAM,UACN,CACA,kBACA,cACA,YACA,CAAM,UAEN,OADA,6CAAiE,KAAa,IAC9E,cACA,CAAG,KAGH,EAA0B,iBAAW,KACrC,IACA,SACA,iBACA,CAAM,UACN,CACA,kBACA,cACA,YACA,CAAM,UAEN,OADA,6CAAiE,KAAa,IAC9E,YACA,CAAG,KACH,EAAwB,iBAAW,KACnC,IACA,iBACA,CAAM,UACN,UACA,eACA,cACA,iBACA,iBACA,EACQ,QACR,GACQ,QACR,EAEA,GAEA,CAAK,EACL,mCACA,GACA,CAAG,MAIH,OACA,oCACA,mCACA,IACA,aACA,WACA,UACA,CAAQ,UACR,CACA,SACA,iBACA,CAAQ,UAIR,OACA,UA9YA,IACA,IA8YA,OA/YA,EA+YA,EA/YA,EA+YA,EA3YA,UAFA,cA6YA,EA7YA,OAEA,CADA,MACA,UA4YA,IACA,mDACA,WAEA,CACA,SACA,YA7lBA,CACA,iBACC,EACD,sBACA,0BACA,IACA,MAGA,YAAsB,WAA+B,KACrD,WACA,6CAAsE,EAAM,GAC5E,IACA,cACA,CAAM,CACN,WACA,IACA,OACA,KAEA,CAGA,YAAsB,WAA+B,KACrD,WACA,6CAAsE,EAAM,GAC5E,IACA,cACA,CAAM,EACN,WACA,SAGA,QADA,YAEA,KACA,OACA,IACA,CACA,QACA,EAsjBA,CACA,gBACA,EAAS,EAKT,UACA,SACA,wCACA,CAAO,EACP,UACA,KACA,mBACA,GACA,KAEA,kBAEA,CACA,CAAG,EAGH,OACA,gBACA,WACA,YAEA,CAAG,KACH,MAA+B,iBAAW,KAC1C,SACA,YAOA,OANA,GAEA,QADA,gCACA,+BACA,OAGA,gBAxyCA,IAyyCA,mBACA,gBACA,MACA,eAEA,IACA,YACA,YACA,KACA,mBACA,WACA,CAAQ,UACR,CACA,SACA,iBACA,CAAQ,UACR,CACA,gBACA,CAAQ,aACR,YACA,WAjsBA,aACA,gBAiCA,QACA,EAvDA,oBACA,uBACA,UACA,8CAAkE,EAAa,IAC/E,gCACA,uDACA,IACA,wBACA,CAAI,EACJ,UACA,UACA,sCAAyD,EAAQ,IACjE,gCAIA,MAFA,MADA,qBAEA,GAEA,EAwCA,UApCA,EACA,uBACA,IAEA,EADA,WACA,IACM,QACN,EAEA,GAEA,QACA,cACA,gBACA,QACA,KACA,iBACA,SACA,KACA,kBACA,QACA,KACA,eACA,SACA,KACA,WACA,MACA,KACA,YACA,MAEA,CACA,QACA,CAMA,CANI,CAgqBJ,aACA,kBACA,OACA,OAGA,SACA,QACA,0BACA,iBAJA,wBAKA,eACA,aACA,wCACA,CAAO,EACP,WAIA,cAIA,gBACA,YACA,UAp1CA,MA61CA,KANA,GAx1CA,EAy1CA,QAx1CA,MAw1CA,EAx1CA,KADA,EA21CA,QA11CA,MA01CA,EA11CA,KAi2CA,IACA,KACA,mBACA,GACA,KAEA,kBAEA,CACA,CAAG,KAGH,EAAsB,iBAAW,SACjC,IACA,WACA,CAAM,UACN,CACA,SACA,iBACA,CAAM,UACN,0BACA,CACA,YACA,eACA,CAAM,UACN,6CAAiE,KAAa,IAC9E,IAEA,KACA,MAHA,qBACA,QAGA,gBACA,mBACA,eACA,aACA,wBACA,CAAK,EACL,UACA,KACA,mBACA,GACA,KAEA,kBAEA,CAAG,KACH,EAAqC,iBAAW,SAChD,IACA,SACA,iBACA,CAAM,UACN,CACA,kBACA,cACA,CAAM,EACN,CACA,kBACA,cACA,cACA,YACA,CAAM,cACN,CACA,YACA,CAAM,SACN,WAIA,aACA,QACA,OAEM,IACN,OACM,KACN,OAEA,CAAG,MAGH,EAAwB,iBAAW,SACnC,IACA,YACA,CAAM,UACN,CACA,SACA,CAAM,UACN,cACA,OAEA,sBACA,6CAAmE,EAAa,IAChF,cACA,GACA,eACA,yCACA,wBACA,eACA,CAAK,CACL,CAAG,KACH,GAAuB,iBAAW,MAClC,OACA,CAAG,KACH,GAA0B,iBAAW,KACrC,IACA,iBACA,CAAM,UACN,UACA,OACA,cAMA,uBACA,mCACA,IAEA,CAAG,MACH,GAAkB,aAAO,OACzB,gBACA,YACA,YACA,cACA,eACA,gBACA,UACA,mBACA,kBACA,6BACA,gBACA,uBACA,cACA,gBACA,gBACA,mBACA,4BACA,CAAG,sCAQH,MAAS,mBAAa,aACtB,QACA,CAAG,CAAE,mBAAa,IAClB,KACA,WACA,YACA,KACA,MACA,OAdA,eACA,8CACA,cACA,kBACA,aAYA,KACK,CAEL,aACA,qBACA,aACA,CAAG,EACH,CACA,OAAmB,gBAAU,QAAiB,mBAAa,KAC3D,KACA,cACA,CAAC,GAGD,iBACA,yCACA,CACA,mBACA,cACA,iBAEA,OACA,OACA,iBACA,YACA,aALA,iBAMA,CACA,CAwDA,aACA,gBACA,eACA,cACA,iBACA,KACA,SACA,UACA,aACA,UACA,gBACA,cACA,UAA4B,CAC5B,aACA,gBACA,KACC,EACD,QACA,MAAqB,YAAM,OAG3B,EAAuB,YAAM,EAC7B,UACA,aACA,gBACA,aACA,CAAG,EACD,eAAS,MACX,oBACA,uBACA,0BACA,uBACA,CAAG,EACH,MAA4B,gBAAU,IACtC,YACA,2FAEA,IACA,YACA,UACA,uBACA,gBACA,eACA,oBACA,CAAI,EACJ,OACA,MAA4B,cAAQ,aACpC,MAAoC,cAAQ,KAC5C,MAA4C,cAAQ,OACpD,EAA6B,YAAM,EACnC,OACA,CAAG,EACH,OACA,iBACA,CAAG,EACD,eAAS,MACX,KACA,YACM,CACN,WACA,QACA,CACA,CAAG,UAIH,6CACA,4CACE,eAAS,MACX,cACA,OAEA,gBACA,gCACA,SAoDA,OAh5DA,oBACA,MACA,IACA,gBACA,CAAI,EACJ,GACA,YACA,UACA,iBACA,uBACA,EACA,yBAIA,OAHA,aACA,SACA,IACA,WACA,MACA,YACA,YACA,6BASA,GARA,aACA,IACA,OACA,YAKA,eACA,kBACA,OACA,cAEA,IAIA,eACA,CACA,CACA,EAw2DA,OACA,SACA,MACA,CAAK,CAtDL,UACA,kBACA,cAGA,UACA,WACA,CACA,UACA,KACA,sDACA,OACA,IACA,aACA,gBACA,CAAc,gBACd,SACA,aACA,KACA,CACA,WACA,CACA,IACA,QACA,CAAc,UACd,KACA,YACA,WAEA,sDACA,KACA,KACA,CACA,SACA,CACA,WACA,IACA,IACA,UACA,aACA,cACA,CAAc,gBACd,SACA,aACA,GACA,YAGA,CACA,CACA,EAKA,CAAG,uBAtLH,UACA,WACA,WACA,gBACA,oBACC,EACC,eAAS,MACX,uBACA,OAEA,cACA,WACA,OAEA,UACA,uBAGA,cACA,gBACA,gBACA,iBACA,cACA,UACA,WAEA,mBACA,KACA,KAEA,UACA,CACA,mBACA,gCACA,sCAA8D,EAAQ,IACtE,aACA,YACA,8CAAsE,EAAS,IAC/E,uDACA,KACA,OAEA,CACA,CACA,EAEA,OADA,gCACA,KACA,kCACA,CACA,CAAG,WACH,EAqIA,CACA,WACA,WACA,gBACA,mBACA,CAAG,EAKM,mBAAa,IACtB,KACA,WACA,YACA,KACA,YACA,MACA,YACA,CAAK,CACL,aACA,MACA,YACA,CAAK,CACL,MACA,iBACA,OAlBA,mBACA,kBAmBA,KACK,CACL,WAEA,qBACA,cACA,oBACA,gEACA,2BACA,qBACA,uBACA,CAAG,CACH,CAjPA,4BACA,wCAiPA,8CC32EA,WAAkB,OAAS,0DAA8D,gFCYnF,MAAW,cAAgB,CAAC,UAAY,EAC5C,CAAC,MAAQ,EAAE,EAAG,CAAuD,yDAAK,SAAU,EACrF,0BCbD,sCACA,4BACA,wBACA,kCAEA,oBACA,iCACA,iBAGA,4BACA,EAEA,cACA,qCACA,SAGA,IASA,EATA,0BACA,0FAEA,yBACA,SAMA,YAEA,IAFoB,GAEpB,uBACA,EAGA,gBACA,wBACA,YACA,cACA,gBACA,iBACA,WACA,CAAG,EAEH,sBAKA,gBACA,mBACA,iBACA,YACI,KAGJ,mBACA,CAGA,aAGA,uBAEA,IADA,YACA,eACA,IACA,mBACA,KAaA,IAVA,sBACA,IACA,mBAEA,KAEA,qDACA,OAGQ,IAAY,IAGpB,GAFA,eAEA,QAEA,WACA,SAIA,IAHA,aAKA,wBACA,GACA,KACA,gBAEA,eAIA,KAA4B,yBAAiD,GAGtE,YACP,KAA4B,kBAA4B,GAQxD,QACA,iDCvGM,MAAW,cAAgB,CAAC,UAAY,EAC5C,CACE,OACA,CACE,CAAG,yjBACH,GAAK,SACP,EACF,CACA,CAAC,QAAU,EAAE,EAAI,MAAM,CAAI,OAAM,CAAG,KAAK,GAAK,UAAU,EACzD,iDCTK,MAAM,cAAgB,CAAC,KAAO,EAClC,CACE,OACA,CACE,CAAG,yGACH,GAAK,SACP,EACF,CACA,CAAC,QAAU,EAAE,EAAI,MAAM,CAAI,OAAM,CAAG,KAAK,GAAK,UAAU,EACzD,oCClBM,EIJA,mBJKP,YACA,cACA,cACA,oBACA,0BACA,wBACA,4BACA,kBACA,0BACA,sBACA,0BACA,gBACA,sBACA,sBACA,YACA,gBACA,mBACA,CAAC,UAAsC,ECnBhC,YACP,QACA,cACA,CAAC,GCNM,8BACA,sEACA,qCACA,wCCQA,SACP,SAKA,MACA,MACA,MACA,KACA,WAIA,OACA,SACA,qBAAwC,SAAQ,gBAAgB,CAAG,IACnE,UACA,KAAyB,EAAa,KACtC,MADsC,KACtC,IACA,cACA,KACA,MAAyB,EAAa,MACtC,KAAyB,EAAa,QACtC,GADsC,EACb,EAAa,KACtC,KAAyB,CADa,CACA,QACtC,GADsC,EACb,EAAa,gBACb,EAAa,UACtC,CADsC,IACb,EAAa,YACtC,KAAyB,EAAa,OACtC,IADsC,CACb,EAAa,gBACb,EAAa,SACtC,EADsC,GACb,EAAa,WACtC,cACA,KACA,MAAyB,EAAa,IACtC,yBACA,KACA,MAAyB,EAAa,SACtC,EADsC,EACtC,qBACA,KACA,MAAyB,EAAa,MACtC,KADsC,CACtC,OAEA,CACA,kBACA,kBACA,CAEA,GAIA,SAAe,SAAY,UAC3B,QAGA,oBACA,MAAuB,GACvB,SADmC,CACnC,qBAAuD,mBAAgB,IACvE,aACA,aACA,iCACA,gCAAqD,GAAI,2BACzD,CAAa,EAAI,QAAY,CAC7B,CAAS,EAVT,eAAkC,EAWlC,CACA,QACA,KAbkD,GAalD,EACA,gBAEA,gBACA,eAEA,CACA,SACA,UACA,iCAEA,gBACA,kCAEA,CAQA,sBAAc,QAA4B,EAAI,EAAI,UAAS,EAAI,IAC/D,UACA,UACA,qBAAmD,6GAAe,GAClE,aACA,CAAiB,EAGjB,WAA2B,aAAQ,gBAA8B,CAAC,GAClE,UAA0B,CAC1B,CAAiB,EACjB,KAFkC,CAElC,KAEA,SACA,KAAkB,EAAa,KAC/B,MAD+B,CAEtB,WAsBT,OAEA,EAMA,aAAoB,GAAS,EAAI,YACjC,KAAc,EAAa,KAC3B,MAD2B,KACX,YAAe,CAC1B,WAiBL,SAEA,EAMA,aAAoB,GAAS,EAAI,YACjC,KAAc,EAAa,QAC3B,GAD2B,EAC3B,MAAgB,YAChB,CAAK,WAOL,eAGA,aAFA,qBAGA,WAA8B,GAC9B,aAD8C,CAC9C,IACA,iBAEA,WACA,oBACA,aACA,eAEA,EAcA,uBAA+B,GAAS,EAAI,IAC5C,SAIA,OAHA,yBACA,iBAEA,SACA,KAAkB,EAAa,gBAC/B,MAAoB,SAAY,CACvB,KACT,EACA,eAEA,SACA,KAAkB,EAAa,MAC/B,aAAoB,yBAA6B,CACxC,CAJT,GAKA,CACA,WAEA,SACA,KAAkB,EAAa,QAC/B,GAD+B,EAC/B,YAAoB,EAAY,CACvB,CAJT,GAKA,CAaA,YAQA,mBAA2B,GAAS,EAAI,YACxC,KAAc,EAAa,UAC3B,CAD2B,IAC3B,MAAgB,aAAgB,CAC3B,WAML,sBAA0B,GAAS,EAAI,YACvC,KAAc,EAAa,YAC3B,WAAgB,EAAM,CACjB,WAML,oBAAkC,GAAS,EAAI,YAC/C,KAAc,EAAa,OAC3B,IAD2B,CAC3B,SAAgB,YAAkB,CAC7B,WAML,cAAyB,UAAS,EAAI,YACtC,KAAc,EAAa,WAC3B,WAAgB,EAAM,CACjB,WAML,mBAAuB,GAAS,EAAI,YACpC,KAAc,EAAa,SAC3B,EAD2B,GAC3B,MAAgB,EAAM,CACjB,WAML,qBAAyB,GAAS,EAAI,YACtC,KAAc,EAAa,gBAC3B,MAAgB,EAAM,CACjB,YC/SL,YACA,gBACA,kBACA,wBACA,gBACA,sBACA,mBACA,CAAC,UAA4B,iDEKvB,MAAU,cAAgB,CAAC,SAAW,EAC1C,CAAC,QAAU,EAAE,EAAI,MAAM,CAAI,OAAM,CAAG,KAAK,GAAK,UAAU,EACxD,CAAC,OAAQ,CAAE,GAAI,CAAM,OAAI,CAAS,UAAI,IAAM,IAAI,OAAS,KAAK,SAAU,EACxE,CAAC,OAAQ,CAAE,GAAI,CAAK,MAAI,CAAM,OAAI,IAAM,IAAI,IAAM,KAAK,SAAU,EAClE,aChBD,WAAkB,OAAS,4DAAgE,iFC4S3F,aACA,IACA,WACA,wBACA,SAEA,OACA,QACA,QAEA,SACA,YAEA,CACA,CAAI,SACJ,OACA,QACA,YACO,CACP,SACA,OAEA,CACA,CACA,EAsIA,EArIA,iBACA,IA+CA,EA/CA,GACA,QAtDA,cACA,MACA,IACA,KACA,CAAI,SACJ,MACA,CAmBA,MAlBA,CACA,YACA,MACA,SACA,SACA,KAEA,qBAEA,uCACA,qBACA,UAEA,IACA,CAAK,CACL,qDACA,6BACA,CAEA,EA4BA,kBACA,gBACA,UACA,eACA,KACA,KACA,CAAK,CACL,MAEA,KACA,UACA,UACA,YACA,MACA,SACA,SACA,aACA,uDAAiE,OAAa,iDAE9E,OACA,CAAO,CACP,EACA,GAGA,WACA,oBAAuC,OAAU,EACjD,yBACA,QACA,iBACA,CAAK,CACL,EACA,YACA,oBACA,OACA,GACA,EACA,QACA,SACA,QACA,GACA,CAAK,CACL,EACA,EAEA,yBAEA,WACA,QACA,aACA,KACA,cACA,MACA,2BACA,CAAK,EACL,kFACA,6CACA,KACA,qDAeA,uBAfA,CACA,cACA,gBACA,QACA,kBAEA,qBACA,kBAEA,OAEA,cACA,wFAEA,CAIA,CAJU,KAIV,YACK,WACL,MACA,WAMA,GADA,EAJA,UACA,EACA,mBAEA,IACA,EACA,UAEA,CAAK,YACL,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,CFeA,sBACA,wBACA,wBGvBO,SASP,iBACA,iBACA,eACA,CACA,CAEA,yBACA,0BACA,uBACA,qCACA,8BACA,uBACA,+BACA,sBACA,iCACA,wBACA,8BACA,yBC/BA,QAEa,EAAO,IACb,MACA,CAFa,CAEb,IACA,MACA,MACA,MACA,MAEP,aACA,aACA,CCLA,MACA,YAAc,EAGP,IAJmB,GAInB,UAA0B,EAcjC,EAdqC,UAcrC,SACA,SAMA,GAJA,WAEA,SAyBA,OACA,GACA,QAEA,EA7BA,gBAEA,mBACA,oBACA,YACA,SAoBA,OACA,GACA,UAtBA,aAA0C,CAAK,OAAa,CAAK,IACjE,CAEA,CACA,CCCO,cAEP,SAEA,KAEA,6CACA,UAAqB,EACrB,EACA,OAFgC,IAEhC,iBAAsD,IACtD,EACA,QAIA,oBACA,+BAEA,uBAGA,OAEA,EAAY,EAAS,MACrB,CADqB,CACT,EAAS,eACrB,CAEA,WAAa,EAAM,YACnB,CD3BA,uBEtCO,MAAa,EAAM,CAC1B,GAD0B,QAC1B,CACA,0BACA,WAAgB,EAChB,QAD0B,SAC1B,KACA,SAAc,EACd,QADwB,IACP,EACjB,QAD2B,KACT,EAClB,IADwB,SACN,EAClB,IADwB,QACP,EACjB,IADuB,SACL,EAClB,YADgC,KAEhC,gBAAqB,EACrB,iBACA,aAAkB,EAClB,QAD4B,OACR,EACpB,YADkC,KAClC,KACA,aAAkB,EAClB,QAD4B,GACZ,EAChB,YAD8B,EAE9B,QAD2B,KAC3B,KACA,WAAgB,EAChB,QAD0B,IAC1B,KACA,sBACA,eACA,eAAoB,EACpB,UAAe,EADmB,IACb,KACrB,KACA,UAAe,EACf,QADyB,MACN,EACnB,QAD6B,YACJ,EACzB,QADmC,QACnC,KACA,SAAc,EACd,YAD4B,IAC5B,KACA,aAAkB,EAClB,IADwB,QACP,EACjB,QAD2B,KACT,EAClB,QAD4B,KAC5B,KACA,aAAkB,EAClB,QAD4B,YACH,EACzB,YADuC,CACrB,EAClB,IADwB,SACN,EAClB,IADwB,QACP,EACjB,IADuB,SACL,EAClB,QAD4B,IACX,EACjB,IADuB,KACvB,KACA,aAAkB,EAClB,IADwB,SACN,EAClB,IADwB,SACN,EAClB,IADwB,UACxB,KACA,SACA,CAAG,CACH,iBACA,WACA,EACA,gCAEA,CAAC,ECpDM,gBACP,oBACA,CCAO,gBACP,OAAS,EAAsB,kBAC/B,CCDO,CDAwB,GCAxB,EAAa,EAAM,CAC1B,GAD0B,QAC1B,CACA,+BACA,kBACA,cACA,sBACA,CAAG,CACH,0DACA,YAEA,UACA,OAAY,EACZ,YAD0B,EACP,EACnB,UAAe,EADkB,OAEjC,KAD6B,MAE7B,KACA,gBAAqB,EACrB,WAD4B,SACH,EACzB,WADgC,IACZ,EACpB,SACA,EAF2B,CAE3B,KACA,MAAW,EACX,WADkB,IAClB,KACA,aAAkB,EAClB,UAAe,EADiB,SAElB,EACd,SAAc,EADO,QAErB,IAD4B,CAE5B,aACA,QAAa,EACb,UACA,CAFoB,SAEL,EACf,KAAU,EACV,IADgB,CADa,GAE7B,KACA,aACA,gBAAqB,EACrB,QAD+B,CACjB,EACd,WADqB,EACH,EAClB,OAAY,EAAS,EACrB,CAFgC,CACd,UAAiB,KAEnC,UACA,cACA,cACA,QAAa,EACb,MAAW,EACX,GAFoB,CAEpB,KACA,EAFkB,MAElB,KACA,SAAc,EACd,SAAc,EADO,UAEN,EACf,GAF+B,KAE/B,KACA,kBACA,mBACA,UACA,gBACA,iBACA,gBACA,eAAoB,EACpB,WAD2B,KAE3B,QAAa,EACb,OAAY,EACZ,GAF2B,CACT,GACN,EACZ,KAAU,EACV,IADgB,CAChB,GAF6B,EAG7B,cACA,QAAa,EACb,UAAe,EADY,GAE3B,KACA,IAF6B,OAE7B,KACA,iBACA,MAAW,EACX,WADkB,IAElB,eACA,QACA,MAAW,EACX,WADkB,CAElB,SAAc,EACd,QAAa,EACb,EAF4B,QAEb,EADY,SAEb,EADQ,KAEtB,KACA,EAF4B,IAE5B,KACA,UACA,cACA,UACA,aACA,KAAU,EACV,IAAS,EACT,IADe,CADE,IAEjB,KACA,SACA,UAAe,EACf,IADqB,EACrB,KACA,YACA,SACA,UAAe,EACf,IADqB,KACP,EACd,MAAW,EACX,GAFqB,EAErB,KACA,CAFkB,KAElB,KACA,SAAc,EACd,WADqB,EAErB,WADuB,EAEvB,kBACA,gBACA,mBACA,mBACA,oBACA,oBACA,YACA,cACA,eACA,sBACA,cACA,aACA,aACA,mBACA,mBACA,uBACA,YACA,iBACA,WACA,gBACA,YACA,eACA,iBACA,gBACA,iBACA,gBACA,iBACA,YACA,sBACA,eACA,aACA,aACA,aACA,gBACA,kBACA,aACA,eACA,eACA,gBACA,aACA,sBACA,YACA,kBACA,sBACA,eACA,iBACA,eACA,oBACA,iBACA,kBACA,kBACA,iBACA,gBACA,iBACA,eACA,eACA,cACA,gBACA,gBACA,aACA,aACA,YACA,eACA,gBACA,gBACA,kBACA,wBACA,aACA,cACA,cACA,iBACA,+BACA,cACA,eACA,cACA,kBACA,eACA,eACA,cACA,eACA,kBACA,cACA,0BACA,cACA,oBACA,eACA,aACA,KAAU,EACV,QAAa,EACb,CAFiB,GACE,IACnB,KACA,KAAU,EACV,YADwB,KAExB,YAAiB,EACjB,WADwB,EAExB,mBACA,yBACA,YACA,aACA,SAAc,EACd,WADqB,IACrB,KACA,IAAS,EACT,SAAc,EACd,CAFuB,QAET,EADO,KAEX,EACV,IADgB,IACH,EACb,IADmB,IACN,EACb,WACA,CAF2B,MAEf,EACZ,SAAc,EADK,SAEL,EADO,WACA,QACG,EACxB,WAD+B,cACD,EAC9B,WADqC,IACrC,KACA,WACA,KAAU,EACV,IADgB,EAChB,KACA,UACA,KAAU,EACV,IADgB,OACA,EAChB,QAD0B,CAE1B,YACA,aACA,YACA,MAAW,EACX,IADiB,CACjB,KACA,WACA,SAAc,EACd,IADoB,GACpB,KACA,WACA,eACA,UACA,cAAmB,EACnB,WAD0B,CAE1B,MAAW,EACX,MAAW,EACX,IADiB,CACjB,KACA,wBAIA,WACA,WACA,QAAa,EACb,UACA,EAF2B,SAE3B,EAHiD,GAIjD,GAJuD,KAIvD,KACA,OAAY,EACZ,IADkB,QAClB,KACA,aAAkB,EAClB,IADwB,QACxB,KACA,iBACA,UACA,aACA,aACA,WACA,UACA,cACA,cACA,WACA,QAAa,EACb,QAAa,EACb,CAFoB,KAEpB,KACA,UACA,WACA,iBACA,OAAY,EACZ,IADkB,OACF,EAChB,IADsB,CACtB,KACA,cACA,YACA,KAH8C,QAG5B,CAHqC,CAIvD,IADwB,QACP,EACjB,IADuB,KACT,EACd,OAAY,EACZ,EAFqB,MAER,EACb,CAFmB,MAEP,EACZ,EAFoB,KAEpB,IADmB,CAEnB,aACA,YACA,SACA,YAAiB,EACjB,IADuB,EACvB,KACA,YACA,UAAe,EACf,QADyB,KAEzB,aACA,UACA,UAAe,EACf,IADqB,MACrB,KACA,aACA,YACA,WACA,OAAY,EAGZ,IAHkB,cAGlB,KACA,EALkD,MAAM,IAKxD,KACA,cACA,wBAA6B,EAC7B,WADoC,WACT,EAC3B,WADkC,CAElC,cACA,QAAa,EACb,IADmB,KACnB,KACA,iBACA,CAAG,CACH,aACA,UAAa,CACb,CAAC,ECvTM,EAAY,EAAM,CACzB,GADyB,QACzB,CACA,GDoTqC,UCpTrC,gBACA,uCACA,yBACA,+BACA,uBACA,kBACA,qBACA,qBACA,yCACA,wDACA,6BACA,iCACA,0BACA,oBACA,qCACA,qCACA,2BACA,qBACA,yBACA,6BACA,yBACA,qBACA,kCACA,2BACA,uBACA,2BACA,yBACA,uBACA,0DACA,sDACA,oBACA,wBACA,8BACA,8BACA,iCACA,+BACA,+BACA,uBACA,uBACA,2BACA,mBACA,4BACA,8BACA,mBACA,mBACA,mBACA,qBACA,eACA,wBACA,0BACA,kBACA,wBACA,4BACA,8BACA,kBACA,oBACA,sBACA,oCACA,oBACA,kBACA,kBACA,gBACA,0BACA,cACA,wBACA,gBACA,sBACA,0BACA,wBACA,0BACA,wBACA,0BACA,gBACA,oCACA,sBACA,cACA,kBACA,kBACA,kBACA,sBACA,wBACA,4BACA,kBACA,sBACA,sBACA,wBACA,kBACA,gBACA,4BACA,oCACA,0BACA,sBACA,0BACA,4BACA,4BACA,0BACA,wBACA,0BACA,sBACA,4BACA,sBACA,oBACA,wBACA,wBACA,kBACA,kBACA,gBACA,sBACA,wBACA,wBACA,4BACA,oBACA,kBACA,oBACA,oBACA,oBACA,sBACA,oBACA,gBACA,sBACA,sBACA,oBACA,sBACA,4BACA,oBACA,oBACA,gCACA,sBACA,gBACA,qCACA,uCACA,yBACA,mBACA,+BACA,gCACA,mCACA,iCACA,uBACA,2BACA,+CACA,iDACA,mCACA,qCACA,+BACA,iCACA,qCACA,+BACA,2BACA,oBACA,yBACA,iCACA,+BACA,mCACA,gBACA,uCACA,yCACA,2BACA,6BACA,0BACA,2BACA,qBACA,6BACA,+BACA,6BACA,sBACA,4BACA,4BACA,2BACA,2BACA,mBAEA,8BACA,6BACA,CAAG,CACH,YACA,MAAW,EACX,aAAkB,EAClB,IAFgC,OAEhC,KACA,cACA,uBACA,WAAgB,EAChB,IADsB,MACP,EACf,IADqB,OACrB,KACA,OAAY,EACZ,IADkB,UAClB,KACA,mBACA,QAAa,EACb,IADmB,MACnB,KACA,mBACA,mBACA,iBACA,UACA,WACA,KAAU,EACV,IADgB,IAEhB,cACA,UAAe,EACf,IADqB,MACN,EACf,UACA,EAF6B,OAE7B,KACA,mBACA,cACA,WACA,wBACA,+BACA,kBACA,oBACA,aACA,uBACA,sBACA,iBACA,YACA,QACA,QACA,OACA,cACA,mBACA,QAAa,EACb,IADmB,YACE,EACrB,IAD2B,MAC3B,KACA,aACA,SACA,QAAa,EACb,IADmB,aACnB,KACA,SAAc,EACd,QACA,QACA,cACA,cACA,UAAe,EACf,IADqB,aACrB,KACA,SACA,WACA,SAAc,EACd,IADoB,sBACpB,KACA,UACA,YAAiB,EACjB,IADuB,KACvB,KACA,YACA,eACA,iBACA,gBACA,kBACA,eACA,oBACA,gBACA,cACA,oBACA,iBACA,eACA,iBACA,gBACA,YACA,QACA,UACA,QACA,QACA,GAAQ,EACR,GAAQ,EACR,OAFsB,GAEP,EADO,YACO,eAC7B,KACA,8BACA,cACA,uBACA,mBACA,aACA,QAAa,EACb,IADmB,cACnB,KACA,gBACA,YACA,UACA,cACA,UAAe,EACf,IADqB,SACH,EAClB,IADwB,SACN,EAClB,IADwB,IAExB,YAAiB,EACjB,IADuB,WACvB,KACA,uBACA,QACA,SACA,UAAe,EACf,EAAO,EACP,GAAQ,CADK,CAEb,GAAQ,CADM,CAEd,GAAQ,CADM,CAEd,GAAQ,CADM,CAEd,IADc,SACI,EAClB,mBADuC,GAEvC,eACA,gBACA,cACA,aACA,UACA,kBACA,mBACA,mBACA,kBAAuB,EACvB,IAD6B,EAC7B,KACA,eACA,eACA,iBACA,kBACA,iBACA,iBACA,UACA,sBACA,eACA,kBACA,SACA,WACA,4BACA,2BACA,UAAe,EACf,IADqB,MACrB,KACA,YACA,SACA,UACA,UACA,aACA,iBACA,kBACA,aACA,aACA,aACA,cACA,WACA,eACA,gBACA,gBACA,cACA,YACA,aACA,gBACA,kBACA,mBACA,aACA,cACA,eACA,sBACA,cACA,aACA,aACA,YACA,iBACA,WACA,gBACA,YACA,eACA,iBACA,gBACA,iBACA,gBACA,iBACA,YACA,sBACA,eACA,WACA,aACA,aACA,aACA,eACA,gBACA,kBACA,aACA,eACA,eACA,gBACA,aACA,YACA,kBACA,sBACA,iBACA,eACA,iBACA,kBACA,kBACA,iBACA,gBACA,iBACA,eACA,kBACA,eACA,cACA,gBACA,gBACA,aACA,aACA,YACA,eACA,gBACA,gBACA,kBACA,cACA,aACA,cACA,cACA,cACA,eACA,cACA,YACA,eACA,eACA,cACA,eACA,kBACA,cACA,cACA,oBACA,eACA,YACA,aACA,cACA,WACA,YACA,iBACA,YACA,cACA,aACA,iBAAsB,EACtB,IAD4B,cACL,EACvB,IAD6B,OAC7B,KACA,aACA,UACA,WAAgB,EAChB,IADsB,gBACtB,KACA,sBACA,kBACA,WACA,KAAU,EACV,WACA,CAFwB,aAExB,KACA,mBACA,YACA,UAAe,EACf,IADqB,MACN,EACf,IADqB,MACN,EACf,IADqB,UACrB,KACA,yBACA,oBACA,eACA,SAAc,EACd,OACA,YACA,oBACA,UACA,UACA,IAAS,EACT,IAAS,EACT,aAF8B,GAE9B,GAD8B,EAE9B,iBACA,eACA,mBAAwB,EACxB,iBAAsB,EADuB,cAE1B,EACnB,GAF2C,aAEtB,EACrB,CAFwC,QAExC,KACA,KAF0C,GAE1C,KACA,YACA,YACA,QACA,QACA,WACA,UACA,oBACA,UACA,WACA,kBACA,iBAAsB,EACtB,IAD4B,aACN,EACtB,IAD4B,SAC5B,KACA,aACA,iBACA,kBACA,WACA,WACA,iBACA,eACA,iBACA,sBAA2B,EAC3B,IADiC,mBACL,EAC5B,IADkC,GAClC,KACA,YACA,gBAAqB,EACrB,mBAD0C,GAE1C,mBACA,oBACA,iBAAsB,EACtB,IAD4B,UACT,EACnB,IADyB,QACzB,KACA,WACA,aAAkB,EAClB,IADwB,SACxB,KACA,yBACA,gBACA,mBACA,0BACA,eAAoB,EACpB,SAAc,EACd,IADoB,IADqB,IAEzC,KACA,YACA,QAAa,EACb,IADmB,IACN,EACb,IADmB,OACnB,KACA,oBACA,mBACA,gBACA,mBACA,WACA,uBACA,UACA,OAAY,EACZ,QACA,WAFiC,IAGjC,qBACA,QACA,QACA,kBAAuB,EACvB,IAD6B,eACL,EACxB,IAD8B,IAC9B,KACA,iBACA,kBACA,WAAgB,EAChB,IADsB,GACtB,KACA,YAAiB,EACjB,IADuB,UACJ,EACnB,IADyB,SACzB,KACA,SAAc,EACd,IADoB,SACF,EAClB,IADwB,IACxB,KACA,SAAc,EACd,IADoB,QACH,EACjB,IADuB,QACN,EACjB,IADuB,IACvB,KACA,gBACA,gBACA,WACA,YACA,iBACA,iBACA,OACA,QACA,QACA,sBACA,QAAa,EACb,IADmB,GAEnB,QACA,QACA,sBACA,OACA,eACA,CAAG,CACH,YACA,UAAa,CACb,CAAC,ECpjBM,EAAc,EAAM,CAC3B,GAD2B,QAC3B,CACA,CDijBmC,YCjjBnC,KACA,kBACA,eACA,eACA,eACA,gB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ACA,iCACA,EAKA,OAHA,0BACA,8DAEA,CACA,CA4CA,eACA,yBACA,CC1wBO,QACP,gBACA,oCACA,gBACA,8BACA,gCACA,kBACA,YACA,kBACA,kBACA,iBACA,KACA,QACA,QACA,SACA,MACA,QACA,SACA,SACA,QACA,QACA,2BCjBA,IAAM,GAAY,GAuClB,SAAS,CAvCS,EAuCN,WAsDZ,EArDA,GAsDA,CADA,EArDA,IAsDA,mBAtDA,CACA,eACA,oCAGA,uBACA,aAGA,kBACA,OAAa,GAAG,eAEhB,QAEA,iBACW,GAAG,OAGd,EACA,CAcA,SAAS,GAAG,OAEZ,SACA,KAEA,mBACA,KAAoB,GAAG,UAGvB,iBACA,CCzEO,qBACP,IAGA,EAHA,WACA,IAaA,GAPA,EADA,IACA,WAEA,QAEA,UAGA,aACA,kBACA,aAEA,oBAMA,IAHA,iBAGA,YACA,qBACA,aAEA,eACA,OACA,MAGA,CAkBO,wBACP,YACA,mBACA,GAEA,CACA,CCnDO,SAOP,eAEA,sBAEA,cAYA,OACA,8CACA,6HAEA,gCACA,kDACA,CAMA,aACA,0CAUA,QAEA,OADA,kBACA,gBACA,CAaA,WAEA,2BACA,mBACA,qBAEA,mBACA,sGAEA,2FACA,CAsBA,cAGA,8BACA,0CAFA,OAEA,KAEA,OADA,mBACA,WACA,CAUA,MAEA,OADA,oBACA,eACA,CAWA,QACA,oBACA,iBACA,CAWA,YACA,oBACA,eACA,CAWA,WACA,kBACA,kBACA,CAWA,eACA,kBACA,0BACA,CAcA,aACA,wGACA,uBAEA,8BACA,0BACA,EAAM,IAEN,kEACA,yBACA,CACA,CACA,CAcA,iBAEA,QACA,gBACA,kBAEA,iBACA,4BACA,MAGA,CCvOO,eAEP,IAGA,EAEA,EAEA,EAEA,EAEA,EAEA,EAEA,EAfA,KACA,KAeA,MAAqB,GAAY,GACjC,MADiC,CACjC,aACA,aACA,OAMA,GAJA,WAIA,oEAGA,CADA,KADA,2BAEA,0CACA,OAEA,sCACA,mBACA,0BAGA,6BACA,uCACA,KAOA,kBACA,mBACA,yBAsDA,KACA,IAkBA,EAEA,EApBA,cACA,cACA,MAEA,KACA,gBACA,IACA,mCACA,4BACA,iCAGA,eAEA,KAEA,KAKA,KAEA,IACA,IACA,IACA,GADA,EACA,CAIA,SAEA,yBAGA,UACA,gBACA,mBACA,QACA,aAEA,GACA,sBAEA,+BACA,0CAEA,WACA,+BACA,+CAKA,IACA,SAMA,IADA,IACA,cAGA,8GACA,MACA,UAEA,oBACA,kBACA,UAqBA,IAhBA,YAKA,GAEA,oBACA,mBAEA,QAKA,WACA,MACA,2BACA,UACA,yBACA,eACA,CAGA,IAFA,YACA,KACA,cACA,uBACA,qBAEA,QACA,EA/JA,MACA,OACA,WAIA,oBAGA,IAFA,IACA,SACA,KAEA,kBADA,YACA,wCACA,iBACA,GACA,qCAEA,uBACA,UAEU,gEAGV,MAGA,IAEA,UACA,sBAKA,CADA,gBACA,WACA,oBAEA,CACA,CAIA,OADE,GAAM,oBACR,EACA,CEnGA,IAAM,GAAc,EAAK,gBCUlB,kBAcA,SDxBa,WC+Cb,6BAaA,eACP,OAGA,yBAEA,CAaO,gBAoBA,oBAeA,kBAAgD,MAiBhD,eACP,qBACA,CAWO,eACP,8BACA,CAiBO,eACP,6BACA,CAuBO,cAA0C,EAAE,IAAI,EAAE,IAsBlD,YAUP,eACA,OAUA,YACA,qDACA,CACA,CC7MO,qBACP,gBACA,IACA,OAGA,mBACA,GAAqB,IACrB,MADqB,CACrB,IACA,SAMA,YACA,GAAqB,WACrB,aACA,IAEA,UACA,KACA,EAbA,IAEA,IACA,CAWA,CClDO,QACP,SASA,YACA,IAEA,EAFA,kDAMA,mBACA,cACA,cAGA,sBACA,aACA,qBACW,GAAY,kBACvB,EAGA,YAEA,OADA,qBACA,SAIA,KACA,2BACA,mBACA,UACA,CAAK,EAKL,OAJA,GACA,WAEA,IACA,SAIA,KACA,aACA,oBACA,oBACA,aACA,MACA,QACA,GAA0B,IAC1B,WAD0B,EAE1B,oBACA,IAIA,aACA,EACA,EApBA,EACA,EAdA,EACA,GAlBA,QAmDA,CA/DA,ECQa,GAAQ,CACrB,SAcA,IAfqB,KAerB,GACA,IAKA,EAEA,EAEA,EATA,OAEA,KACA,IAOA,SAGA,cAWA,eACA,WAEA,OADA,sBACA,mCACA,CAGA,WACA,CAGA,cAMA,GALA,IAKA,iCAWA,CAVA,oCACA,GACA,IAKA,sBACA,IAKA,UACA,+DACA,qBACA,KACA,CAEA,KAGA,QACA,wBACA,oBACA,MAEA,IAQA,OAJM,GAAM,kCAGZ,kBACA,IACA,CACA,WACA,CAGA,cAMA,iBAIA,MACA,YAMA,mDACA,WAQA,qEACA,CAIA,OADA,oBACA,kBACA,CAGA,cAGA,OAFA,OACA,KACA,IACA,CAGA,cAGA,OAFA,yCACA,iBACA,IACA,CAGA,cAGA,OADA,oBACA,oBACA,CAGA,cAIA,OAHA,IACA,8CAEA,IACA,CAGA,cACA,aACA,OACA,KACA,aACA,MACA,CAOA,OANA,4BACA,qBACA,aACA,mBACA,UACA,CAAK,EACL,SAIA,KACA,aACA,0BACA,KACA,aACA,MACA,QACA,GAA0B,IAC1B,WAD0B,EAE1B,uBAEA,IACA,mBACA,IAEA,aACA,EACA,EArBA,EACA,CA8BA,gBACA,uBAyCA,GAxCA,gBACA,aACA,cACA,IACA,sBACA,WAmCA,6BACA,IAoBA,EAEA,EAtBA,kBACA,UACA,GAEA,+BAEA,sBAEA,6BAGA,OAMA,sBACA,IAOA,UACA,+DACA,MACA,qBACA,KACA,CACA,IACA,CAMA,IAJA,KAGA,IACA,mBACA,oBACA,MAEA,IAIM,GAAM,kCAGZ,iBACA,CACA,CAQA,cACA,eAGA,cACA,WACA,sBACA,mBACA,CACA,UACA,CACA,aACA,gBACA,SACA,SACA,kCACA,CACA,CApUA,EAGA,IACA,SAwUA,gBAGA,OAAS,GAAY,oIACrB,CA3UA,EClBO,IACP,WACA,SAQA,gBACA,OAgBA,YACA,OAAW,GAAa,GAAS,GAAY,IAArB,KAAqB,gBAC7C,EAgBA,cACA,iBAA4B,GAAkB,YAC9C,CACA,CA7CA,CA2C8C,CCxCjC,GAAO,CACpB,QAgBA,GAjBoB,MAiBpB,GAEA,OADE,GAAW,GACb,CACA,EAlBA,EAgBa,OASb,cAEA,MACA,OAYA,YAKA,OAJA,mBACA,0BACA,qBACA,CAAK,EACL,IACA,EAYA,qBACA,SACA,KAKQ,GAAkB,GAC1B,YAD0B,CAC1B,OAIA,aACA,EACA,CAOA,cAGA,OAFA,uBACA,kBACA,IACA,CAOA,cAQA,OAPA,aACA,uBACA,+BACA,sBACA,UACA,CAAK,EACL,SACA,CACA,CACA,CAnGA,EAGA,IACA,WACA,SAqGA,gBACA,WACA,OAOA,YAKA,OAJA,uBACA,sBACA,aACA,qBACW,GAAY,iBACvB,EAOA,cACA,aAAyB,GAAkB,GAC3C,YAKA,wCACA,gIACA,KAEA,4CACA,CACA,CAvIA,ECdO,IACP,SASA,YACA,WACA,YAEE,GAMF,MANW,GAMX,UACA,cACA,cAGA,2BACA,aACA,0BACA,0BACA,EACA,EAdA,+CAAsE,GAAY,oDAAuF,GAAO,oBAChL,SAgBA,qBACA,cACA,cAGA,sBACA,aACA,qBACA,0BACA,EACA,CACA,CA1CA,ECJO,IACP,eACA,EACO,gBACM,GAAI,WAQjB,eACA,OACA,oCACA,SAQA,YACA,WACA,4BACA,mBACA,SAGA,cACA,qBACA,CAGA,qBACA,cACA,cAGA,gBACA,aACA,EACA,CAGA,qBACA,MACA,eACA,OAIA,aACA,EACA,CAQA,cACA,YACA,SAEA,WACA,KACA,KAGA,oBACA,WACA,8CACA,QAEA,CAEA,QACA,CACA,CAjEA,CAkEA,CAQA,eACA,OAGA,cACA,IAEA,EAFA,KAMA,oBACA,WACA,8BACA,IACA,KAEQ,8BAER,UACA,0BACA,oBACA,OAEA,UAGA,iBACA,CACA,CAaA,iBACA,QAEA,CAFsB,IAEtB,eACA,yEACA,IAMA,EANA,YACA,mBACA,WACA,KACA,IAGA,WACA,WACA,uBAEA,IADA,WACA,wBACA,IACA,IAEA,WACA,IACA,MAEA,UACA,KACA,SACU,eAEA,CAEV,IACA,KACA,CACA,CAMA,GAHA,0CACA,MAEA,GACA,OACA,2DACA,OACA,wCACA,wBACA,gBACA,sBACA,qBACA,CAAW,CACX,KACA,SAEA,CACA,QACA,YAEA,8BACA,oBAEA,yCACA,KAEA,CACA,GACA,CAEA,QACA,CCtMO,QACP,qBACA,SAQA,gBACA,IAEA,EAFA,IAGA,OAYA,gBAgBA,EAbA,OAFA,yBAgBA,EADA,EAbA,EAeA,SAaA,YACA,OACA,iCACA,SAmBA,YACA,OACA,aACA,IACA,IAEA,gCACW,GAAa,GAAS,GAAY,0BAC7C,EA3BA,IAEA,iBAAuC,GAAkB,KACzD,UADyD,cAEzD,MAEA,IACA,EAvBA,EAdA,CA0DA,CArFA,ECCO,IACP,cACA,SAiHA,gBACA,WAEA,OADA,mCACA,QAAuB,GAGvB,MAHgC,GAGhC,GAKA,OAJA,yGAIW,GAAY,gDACvB,EAGA,mBACA,qCAAkD,GAAa,IAC/D,MAD+D,UAC/D,0BACA,yCACA,OAEA,0CACA,yCACA,qBACA,GAGA,cAOA,OALA,+BAEA,mBAGW,GAAY,uGACvB,CACA,CApJA,CAAG,CACH,KA0KA,YACA,gCACA,EA3KA,YACA,SAuBA,gBACA,WACA,8BACA,oEACA,IACA,OAGA,YACA,oFACA,6EAAwG,GAAU,IAOlH,GAPkH,EAClH,sBACA,wBACA,WACA,aACA,CAAS,GAET,oBAEA,OADA,0BACA,uBAA0D,GAAa,aAEvE,wBAGA,OAFA,0BACA,yBACA,SAOA,YACA,GAAkB,YAClB,aACA,GAEA,2FACA,wBACA,MAEA,IACA,EAjBA,EAEA,CACA,WACA,EAkBA,cAKA,OAJA,0BACA,aACA,yBACA,mDACA,QAAyB,GAEzB,MAFkC,KAElC,uBACA,CAGA,cAGA,OAFA,qCACA,IACA,IACA,CAGA,qBACA,GAAqB,IACrB,MADqB,CACrB,6BACA,aACA,mCACA,GAEA,IACA,CAGA,cAEA,OADA,6EACA,IACA,CACA,CArGA,EAGA,IACA,WACA,SA2KA,gBACA,WAIA,OAAS,GAAY,EAGrB,OAHqB,EAGrB,GACA,kCACA,OAAY,GAAa,uDACzB,EANqB,8FAOrB,CAtLA,EAGA,IACA,WACA,SA4IA,gBACA,WACA,OAAS,GAAY,EAGrB,OAHqB,EAGrB,GACA,kCACA,6GACA,EANqB,yCAOrB,CApJA,ECvBO,IACP,cACA,SAgFA,gBACA,WACA,OAeA,mBACA,GAAqB,GAGR,GAAY,IAHJ,KAGI,+EAEzB,IACA,EAeA,cACA,2BACA,CACA,CAzHA,CAAG,CACH,KA2HA,YACA,oBACA,EA5HA,kBACA,SAQA,gBACA,WACA,OAYA,YACA,WACA,uBAWA,OAVA,SACA,sBACA,aACA,CAAS,EACT,WAEA,4BACA,4BACA,aACA,2BACA,CACA,CACA,WACA,EAYA,qBACA,GAAqB,IACrB,MADqB,CACrB,+BACA,aACA,qCACA,2BACA,IAEA,2BACA,KACA,CACA,CA5DA,ECsBO,+BACP,aACA,IACA,OAcA,mBACA,QACA,WACA,WACA,WACA,aACA,UACA,GAIA,0BAAuD,GAAY,GACnE,MADmE,EAGnE,SACA,WACA,WACA,uBACA,oBACA,CAAK,EACL,KACA,EAYA,qBACA,QACA,WACA,aACA,UACA,UACA,UACA,IAEA,WACA,uBACA,oBACA,CAAK,EACL,KACA,CAYA,qBACA,QACA,sBACA,UACA,MAEA,kBAAwC,GAAkB,GAC1D,MAEA,MAH0D,GAG1D,IACA,WACA,CAYA,qBACA,wBACA,aACA,GAEA,IACA,CAYA,oBACA,uBAAqD,GAAyB,KAC9E,iBAD8E,KAE9E,UACA,UACA,UACA,MAEA,aACA,aACA,IACA,GAEA,QACA,aACA,IACA,GAMA,0BAAuD,GAAY,GACnE,MADmE,EAGnE,WACA,WACA,CAYA,qBACA,wBACA,aACA,GAEA,IACA,CACA,CCpKO,yBACP,IAGA,EAHA,OACA,IAGA,OAYA,YAMA,OALA,WACA,WACA,aACA,UACA,WACA,CACA,EAYA,qBACA,qCAMA,2DACA,KAEA,QACA,UACA,WACA,aACA,UACA,UACA,GAIQ,GAAkB,IAC1B,WAD0B,WAE1B,aACA,qBACA,IAEA,uBACA,oBACA,CAAK,EACL,KACA,CAYA,qBACA,0BAAuD,GAAkB,aACzE,sBACA,OAEA,aACA,OAAuB,GAAa,IACpC,MADoC,CACpC,IACA,CAYA,qBACA,wBACA,aACA,IACA,GAEA,IACA,CACA,CCzGO,yBAEP,MACA,OAYA,mBACA,wBACA,WACA,WACA,aACA,UACA,cACA,GAEA,IACA,EAcA,qBACA,OACA,WACA,aACA,UACA,UACA,IAEA,WACA,KACA,CAYA,qBACA,OACA,UACA,MAEA,SACA,KAIQ,GAAkB,IAE1B,WAF0B,WAG1B,aACA,qBACa,GAAY,oBAEzB,uBACA,oBACA,CAAK,EACL,KACA,CAOA,qBACA,iBAA4C,GAAkB,IAC9D,WAD8D,WAE9D,OAEA,aACA,WACA,CAYA,qBACA,eACA,aACA,GAEA,IACA,CACA,CCrIO,iBAEP,MACA,OAGA,qBACA,GAA0B,IAC1B,WAD0B,WAE1B,aACA,qBACA,KACA,GAEQ,GAAa,GACR,GAAY,oCAEzB,IACA,CACA,CCxBO,eACP,SAEA,2BAEA,qBAOA,2BACA,CCTA,QACA,WACA,SAuKA,gBACA,OAcA,YACA,OAAW,GAAyB,GAAS,GAAiB,YAC9D,EAaA,EAdoC,OAcpC,KACA,OAAW,GAAY,2EACvB,CAYA,cACA,OAAW,GAAa,GAAS,GAAY,IAArB,KAAqB,gBAC7C,CAYA,cACA,iBAA4B,GAAkB,YAC9C,CACA,CAnOA,CAiO8C,CC/OvC,IACP,oBACA,SAcA,gBACA,WACA,OAgBA,YAMA,OAHA,wBAGW,GAAY,sBACvB,EAYA,cACA,kCACA,oFAaA,YACA,SACA,KAEQ,GAAkB,GAC1B,YAD0B,CAC1B,SAEA,yBACA,SAaA,YACA,UAAyB,GAAkB,IAC3C,WAD2C,aAE3C,OAEA,aACA,EACA,EApBA,GACA,EAtBA,OACA,CA2CA,cAKA,OAJA,uBAIA,IACA,CACA,CAvGA,EAGA,IACA,WACA,SAyGA,gBACA,WACA,SAaA,qBAGA,4BACA,KAEQ,GAAkB,IAC1B,WAD0B,WAE1B,aACA,qBACA,GASW,GAAY,sBACvB,CAYA,cACA,kCACA,gFAAmH,GAAkB,YACrI,CACA,CA3JA,CAyJqI,CEhK9H,IACP,uBACA,UAKA,cAEA,IAEA,EAEA,EAEA,EANA,WAUA,UACA,sBACA,6BACA,IACA,KACA,CACA,4BACA,KAEA,KAGA,0BAEA,cAEA,gCACA,MAIA,OACA,qBACA,OACA,iBACK,CACL,KACA,wBAEA,EAmBA,OAhBA,iCAIA,GACA,4BACA,mCACA,aACA,iBAGA,UAIA,qBACA,CACA,EAjEA,SAwEA,gBACA,IAEA,EAFA,OAGA,OAaA,gBAmCA,EAlCA,IAEA,EAFA,kBAIA,UAGA,4GACA,oCACA,KACA,OAKA,gDACA,6BACA,IAiBA,EAhBA,EAiBA,qCACA,SAcA,YACA,OACA,aACA,IAEA,oCACW,GAAa,GAAS,GAAY,IAArB,KAAqB,iBAC7C,EArBA,IAhBA,IACA,EAiDA,qBACA,UAAyB,GAAkB,IAC3C,WAD2C,iBAE3C,MAEA,IACA,CACA,CAtKA,ECHO,IACP,UACA,UACA,QACA,OACA,WACA,aACA,OACA,UACA,SACA,MACA,WACA,KACA,UACA,SACA,MACA,MACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,QACA,WACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,KACA,OACA,SACA,SACA,KACA,OACA,OACA,OACA,WACA,MACA,WACA,KACA,WACA,SACA,IACA,QACA,SACA,UACA,UACA,QACA,QACA,KACA,QACA,KACA,QACA,QACA,KACA,QACA,KACA,CAcO,uCCpEP,IACA,WACA,SA6zBA,gBACA,OAaA,YAIA,OAHA,sBACA,aACA,qBACA,UAA2B,GAAS,IACpC,CACA,CAh1BA,EACA,IACA,WACA,SA2wBA,gBACA,WACA,OAaA,mBACA,GAA0B,IAC1B,WAD0B,WAE1B,aACA,qBACA,GAEA,IACA,EAaA,cACA,4CACA,CACA,CAjzBA,EClBA,IACA,WACA,SAiaA,gBACA,WACA,OAOA,mBACA,SACA,MAEA,sBACA,aACA,qBACA,EACA,EAOA,cACA,4CACA,CACA,CA3bA,EAGO,IACP,YACA,kBACA,SAQA,gBACA,IASA,EATA,OAEA,GACA,WACA,SAiSA,gBACA,QACA,OAOA,YAIA,OAHA,sBACA,aACA,qBACA,CACA,EAcA,cAKA,OADA,2BACa,GAAa,GAAS,GAAY,IAArB,KAAqB,mFAC/C,CAcA,qBACA,OACA,mCACA,SAiBA,YACA,OACA,IACA,aACA,GAEA,MACA,kCACe,GAAa,GAAS,GAAY,IAArB,KAAqB,kBAEjD,IACA,EA5BA,IAEA,IACA,CAuCA,qBACA,UAA2B,GAAkB,IAC7C,WAD6C,eAE7C,MAEA,IACA,CACA,CApYA,EACA,IACA,IAGA,OAcA,gBAiBA,EAfA,EAgBA,kCAMA,OALA,oEACA,IACA,sBACA,2BACA,mCAgBA,qBACA,OACA,IACA,aACA,GAEA,IACA,MAEA,kCACW,GAAa,GAAS,GAAY,IAArB,KAAqB,iBAC7C,EA1BA,EArBA,EA6DA,qBACA,UAAyB,GAAkB,IAC3C,WAD2C,eAE3C,sCAEA,+BACA,uBACA,oBACA,CAAK,EAgBL,qBACA,UAAyB,GAAkB,IAC3C,WAD2C,WAE3C,8BACA,MAEQ,GAAa,IACrB,MADqB,CACrB,eACA,8BACa,GAAY,sBAEzB,cACA,MAEA,aACA,EACA,EA/BA,GACA,CA4CA,qBACA,UAAyB,GAAkB,GAC3C,MAEA,MAH2C,CAG3C,wBACA,uBACA,oBACA,CAAK,EACL,SAeA,YACA,UAAyB,GAAkB,IAC3C,WAD2C,WAE3C,8BACA,MAEA,cACA,MAEA,aACA,EACA,EA1BA,GACA,CAwCA,cACA,0BACA,CAcA,cAIA,OAHA,sBACA,aACA,qBACA,CACA,CAcA,cACA,YAAgC,GAAa,GAAS,GAAY,IAArB,KAAqB,oBAClE,CAcA,qBACA,UAAyB,GAAkB,GAC3C,YAD2C,CAC3C,OAEA,yBACA,SAeA,YACA,UAAyB,GAAkB,IAC3C,WAD2C,aAE3C,OAEA,aACA,EACA,EAtBA,GACA,CAmCA,cAEA,OADA,qBACA,IACA,CA4GA,CAlZA,ECnBM,GAAO,4BAMN,eACP,cAA6C,EAC3C,GAAO,YACT,EADS,EACT,EAAoB,GAAO,kBAQ3B,CAGA,QAA2D,SAA3D,cACA,aASA,QACA,CCtBO,QACP,0BACA,SAQA,gBACA,IAGA,EAEA,EALA,OACA,IAKA,OAgBA,YAKA,OAJA,8BACA,oCACA,aACA,mCACA,CACA,EAiBA,qBACA,QACA,2CACA,aACA,0CACA,IAEA,mCACA,KACA,EAAW,GACX,KACA,CAcA,QAhB4B,CAgB5B,YACA,iBACA,+CACA,aACA,8CACA,mCACA,IACA,EAAa,GACb,IAEA,MAH0B,CAG1B,4BACA,IACA,EAAW,GACX,KACA,CAmBA,CArBqB,QAqBrB,KACA,cACA,+CACA,IAAmB,IAAsB,GAA6B,UAAlC,MAAkC,MAMtE,IANsE,GAMtE,6BACA,aACA,mCACA,6BACA,GATA,IAUA,QACA,aACA,aACA,GAEA,IACA,CACA,CApIA,ECLO,IACP,uBACA,SAQA,gBACA,OAYA,YAKA,OAJA,2BACA,wBACA,aACA,uBACA,CACA,EAYA,qBAEA,GAAwB,IACxB,SADwB,uBAExB,aACA,+BACA,0BACA,GAEA,IACA,CACA,CAjDA,ECFO,IACP,kBACA,SAQA,cACA,OAGA,YAIA,OAHA,sBACA,aACA,qBACW,GAAY,iBACvB,CACA,CAjBA,ECCO,mBAEP,SACA,KAEA,oBACA,sBAEA,oBACA,SACA,UAEA,CAEA,QACA,CCVO,QACP,gBACA,WAmBA,YACA,SAEA,KACA,oBACA,cAEA,GADA,aACA,kEAEA,+BACA,eACA,IACA,CACA,CAMA,OAHA,qBACI,GAAM,gBAEV,CACA,EAtCA,UAyCA,cACA,IAGA,EAEA,EAEA,EAEA,EATA,WACA,IAWA,UAEA,GADA,UACA,GAEA,sDACA,KAKA,0CACA,gBAEA,EAAM,SACN,qFACA,IACA,uBACA,IACA,KACA,CACA,KACM,qBACN,MAGA,OACA,+CACA,OACA,iBACK,CACL,KACA,uBACA,CACA,EACA,GACA,aACA,OACA,iBACK,CACL,KACA,eAEA,EACA,GACA,iBACA,OACA,mBACK,CACL,KACA,mBAEA,EAuBA,OAnBA,EAAU,GAHV,CAGc,CAHd,8BAGc,oBAGd,EAAU,GAAI,mBAKd,EAAU,GAAI,EAAQ,GAAU,2DAGhC,EAAU,GAAI,6CAGd,EAAU,GAAI,gBAGd,EAAU,GAAI,kBACZ,GAAM,gBACR,CACA,EAhIA,SAuIA,gBACA,IAGA,EAEA,EALA,OACA,kBAOA,UACA,uGACA,iBACA,KACA,CAEA,OAiBA,mBAEA,EAaA,YACA,MAEA,4BAA2C,GAAmB,kBAC9D,YACA,WACA,CAAK,IACL,oBACA,uBACA,aACA,sBACA,mBACA,GAxBA,IAyBA,E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A,GAEA,QAEA,gDACA,0BACA,aACA,yBACA,mBACA,GAEA,SAeA,KAEA,YAAwB,GAAiB,aACzC,CADyC,GACzC,aAEA,OADA,aACA,CACA,CACA,WACA,EAvBA,EACA,EA7B4B,OAC5B,CAmDA,CA1NA,ECDO,CACP,gBACA,SAQA,gBACA,IAEA,EAEA,EAEA,EANA,OAOA,OAYA,YAIA,OAHA,oBACA,wBACA,aACA,CACA,EAgBA,qBACA,QACA,aACA,GAEA,QACA,aACA,GAEA,QACA,aACA,GAIQ,GAAU,IAClB,GADkB,MAClB,IACA,GAEA,IACA,CAgBA,qBACA,QACA,aACA,GAEA,QACA,aACA,IACA,GAEQ,GAAU,IAClB,GADkB,MAClB,IACA,GAEA,IACA,CAYA,qBACA,QACA,aACA,GAEA,IACA,CAYA,qBACA,SACA,KAEA,QACA,aACA,GAEQ,GAAkB,IAC1B,IACA,OAF0B,EAI1B,WACA,EACA,CAYA,qBACA,QACA,aACA,GAEA,IACA,CAYA,cACA,mCACA,CAYA,cACA,sBACA,uBACA,aACA,kBAEA,IACA,CAYA,qBACA,SACA,KAEA,QACA,aACA,GAEQ,GAAkB,IAC1B,IACA,OAF0B,EAI1B,WACA,EACA,CAYA,qBACA,QACA,aACA,GAEA,IACA,CAYA,qBACA,OACA,KAEA,QACA,aACA,GAEA,IACA,CAYA,qBACA,iBACA,KAEQ,GAAkB,IAC1B,IACA,OAF0B,EAI1B,WACA,EACA,CAYA,qBACA,SACA,KAEA,QACA,aACA,GAEQ,GAAkB,IAC1B,IACA,OAF0B,EAI1B,WACA,EACA,CAYA,cACA,uBACA,CAYA,qBAEA,GAAkB,IAClB,GADkB,MAClB,IACA,GAEA,IACA,CAYA,qBAEA,QAAuB,GAAiB,IACxC,UADwC,GAExC,GAEA,SAaA,YACA,GAA0B,IAC1B,IACA,MAEQ,CAJkB,EAIL,IACrB,MADqB,GACrB,IACA,GAEA,IACA,EAvBA,EACA,CAkCA,qBAEA,QAAuB,GAAiB,IACxC,UADwC,GAExC,GAEA,gBAAsC,GAAyB,GAC/D,KAEA,IACA,CAYA,SAhB+D,EAgB/D,UACA,QACA,a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,eACA,OACA,gBACA,aAw1BA,WACA,OACA,kBACA,cACA,WACA,WACA,MACA,CACA,GA/1BA,8BACA,wBACA,wBACA,WA+1BA,WACA,OACA,gBACA,WACA,CACA,GAn2BA,qBACA,uBACA,gBACA,eACA,gBACA,eACA,QAy3BA,WACA,OACA,aACA,WACA,OACA,QACA,CACA,GA/3BA,QACA,UACA,WA25BA,YACA,OACA,gBACA,iBACA,aACA,YAEA,GAj6BA,cA2XA,YACA,wCACA,gCACA,iDACA,6CAEA,EAhYA,gBAkXA,WACA,wCACA,GAnXA,mBACA,YAi6BA,WACA,OACA,iBACA,YAEA,GAr6BA,UAwtBA,WACA,mCACA,EAztBA,kBACA,4BACA,sBACA,mBACA,SAm6BA,WACA,OACA,cACA,YAEA,GAv6BA,gBAk7BA,WACA,OACA,oBACA,CACA,EAr7BA,CAAK,CACL,MACA,eACA,mBA4cA,YACA,sCACA,SAEA,SADA,8BAGA,EAjdA,aACA,cAoxBA,YACA,eACA,gCACA,oCACA,EAvxBA,iBAywBA,YACA,eACA,gCACA,0BACA,EA5wBA,eACA,uBACA,sCACA,kCACA,wBAuuBA,YACA,IAGA,EAHA,yBACA,mCAGA,GACA,EAAc,GAA+B,+CAC7C,yCAGA,EADqB,GAA6B,GAGlD,uBAHkD,IAGlD,WACA,UACA,EApvBA,mBA0vBA,YACA,iBACA,aAAwB,GAAK,MAC7B,EA5vBA,aA8YA,UA6W6B,CA5W7B,mBACA,iCACA,+CACA,+BACA,GAlZA,gBAkYA,WAEA,2BACA,cACA,4BACA,EAtYA,oBA6WA,WACA,mBACA,iCACA,MACA,EAhXA,oBAsXA,WACA,mBAEA,CADA,gCACA,MACA,EAzXA,gBACA,eAoZA,WACA,mBAEA,CADA,gCACA,kCACA,GAvZA,WAujBA,WACA,mBAEA,CADA,gCACA,OACA,GA1jBA,eACA,OACA,eACA,4BA8aA,WACA,mBACA,iCACA,KACA,EAjbA,sBAwZA,YACA,oBACA,kCACA,UACA,aAAsB,GAAmB,qCACzC,EA5ZA,sBAkaA,WACA,mBAEA,CADA,gCACA,OACA,EAraA,aACA,qBACA,uBACA,WAuhBA,WACA,mBACA,iCACA,OACA,GA1hBA,eACA,WAgiBA,WACA,mBACA,iCACA,OACA,GAniBA,eACA,QAilBA,WACA,sCAKA,0BAEA,yCACA,qBAEA,kBAEA,aACA,gBACM,IAEN,oBAEA,eAEA,8BACA,GAtmBA,MA4nBA,WACA,sCACA,gBACA,kCAEA,yBACA,gBAGA,WADA,WAGA,OAEA,EAxoBA,UA4mBA,YACA,6BACA,kCAGA,QAAiC,EAAZ,ODxwBrB,KCwwBiC,GAEjC,aAA0B,GAAmB,kBAlnB7C,WAmfA,YACA,sCAEA,0BAEA,EADA,8BACA,aAA0B,GAAK,OAC/B,wBAD+B,GAC/B,EACA,MACA,CACA,6EACA,eACA,eAEA,EA/fA,OAgjBA,WACA,sCAKA,0BAEA,yCACA,qBAEA,kBAEA,aACA,gBACM,IAEN,oBAEA,eAEA,8BACA,GArkBA,aACA,gBACA,kBACA,cACA,gBAgrBA,YACA,oBACA,iCAGA,WAEA,aAAsB,GAAmB,sCACzC,8BACA,EAxrBA,0BAuoBA,WACA,mBACA,iCACA,KACA,EA1oBA,oBAipBA,WACA,mBAEA,CADA,gCACA,OACA,EAppBA,SA2pBA,WACA,4BACA,EA5pBA,gBA8bA,WACA,6CACA,GA/bA,0BAobA,YAEA,IADA,4BACA,oDACA,EAtbA,kBA2aA,WACA,yCACA,EA5aA,WACA,iBACA,CACA,GACA,SAw5BA,OACA,SACA,oBACA,WACA,iBACA,OAEA,SAUA,KAEA,MACA,WACA,GAAQ,GAAG,UACX,UACA,qBACA,CACA,UACA,IACA,gBAEA,KACA,CACA,iBACA,CACA,WACA,GACA,gBAEA,KACA,CACA,YACA,WACA,CACA,WACA,GACA,qBAGA,CAEA,CAGA,EA7CA,IAEA,CACA,EAl6BA,SAAkC,sBAGlC,SACA,OAUA,YAEA,OACA,YACA,aAGA,GACA,UACA,cACA,SACA,QACA,OACA,SACA,SACA,MACA,EAEA,KACA,KACA,mBAGA,iEACA,kBACA,UAGA,WAiDA,OACA,IAIA,EAEA,EAEA,EAEA,EAVA,MACA,KACA,KASA,cACA,WACA,kBACA,oBACA,kBACA,iBAEA,eACA,IAEA,IAEA,SACA,KAEA,uBAEA,iBACA,aACA,MAEA,UAEA,KAEA,kBACA,oBACA,qBACA,qBACA,+BAIA,KAEA,SAEA,QAEA,CACA,sIACA,MACA,QAEA,IADA,SACA,MACA,WACA,4DACA,0BACA,IACA,+BACA,MAEA,uBACA,GACA,EAAc,8KAGd,KAEA,CACA,cACA,eAIA,sBAAyC,2BACzC,iCACA,IACA,GACA,CAGA,iCAEA,OACA,gBACA,WACA,sBAAmC,aAEnC,UACA,EACA,IACA,+BACA,IACA,IACA,SACA,IACA,CACA,CACA,CAEA,OADA,kBACA,CACA,EAzJA,EADA,QACA,IAKA,IADA,KACA,eACA,iBACU,GAAG,sBACb,oCACA,sCACS,YAET,CAGA,0BACA,0CACA,WACA,mBACA,CAkBA,IAfA,YACA,MAAa,GAAK,0BAClB,KADkB,EAElB,SACA,QACA,CAAO,EACP,IAAW,GAAK,iCAChB,OACA,SACA,QACA,CAAO,CACP,EAGA,KACA,yBACA,wBAEA,QACA,EA4HA,gBACA,OAOA,YACA,oBACA,iBACA,CACA,CAKA,aACA,iBACA,gBACA,WACA,CAAK,CACL,CAKA,kBAGA,IAFA,4BAEA,SACA,QACA,mBACA,oCACA,YACA,MAAa,GAAK,SAElB,UACA,CACA,CAUA,UAdkB,CAclB,GACA,OAOA,YACA,kBACA,cACA,CACA,CAKA,gBACA,uBACA,wBACA,KAKM,qBACN,EACA,oBAGA,CADA,UACA,wBATA,0CAA8D,EAAiB,CAC/E,cAD+E,IAE/E,KACA,CAAO,qBASP,gBAAwB,GAAK,MAC7B,CAKA,aACA,OAAW,GAAQ,CAPU,GAOV,ajDpcnB,sCACA,mBAGA,kCAN8B,GAM9B,YiDicA,CAuJA,cAGA,UAFA,4BAEA,SACA,gBACA,qBAGA,CADA,EA8aA,CACA,YACA,QACA,CAjbA,EACA,UACA,MAAe,GAAK,SAEpB,UACA,EACA,UAJoB,CAMpB,kBACA,CAOA,cACA,sBACA,iCACA,eAAwB,GAAK,MAC7B,CA2BA,aACA,WA7B6B,UA6B7B,GACA,CA6LA,cACA,wCAiEA,aACA,OACA,YACA,UACA,UACA,QACA,CACA,CA8BA,aACA,OACA,eAEA,QACA,YAEA,CAGA,aACA,OACA,YACA,CACA,CAGA,aACA,OACA,YACA,QACA,CACA,CAaA,aACA,OACA,YACA,WACA,OACA,YAEA,CAMA,cACA,OACA,YACA,+BACA,WACA,iBACA,YAEA,CA6CA,GA7+BA,GAA2B,S7ClEpB,E6CkE+B,C7CjEtC,MAAU,GAAW,KAGrB,GAHqB,IAGrB,CACA,E6C6DuC,CJtDhC,SAAc,GAMrB,OACA,CAPqB,UAGnB,SxCNK,GAEP,KwCImB,CxCJnB,GACA,KAEA,oBAiBA,cAEA,MAEA,YAGA,IAIA,EAJA,GAFkB,GAAc,wBAEhC,SAAyC,CAEzC,OAIA,IARgC,CAShC,YACA,GAA2B,qBAC3B,YACA,SAqBA,GAvB2B,EAwB3B,SAEA,KAEA,mBAEK,oCAGH,GAAM,QACR,EA9BA,KACA,4BAEA,CAEA,CACA,EAzCA,QAGA,QACA,EwCJmB,CAAE,KAAiB,CAFtC,OAEsC,iBAKtC,UAAoB,IACpB,GAD2B,KAC3B,GACA,WAAqB,IACrB,OAAiB,IAAI,EADQ,GAE7B,EAAY,CACZ,SAAmB,IACnB,EADyB,GACzB,EAAiB,GACjB,EACA,IAFqB,GAErB,EAQA,cACA,OAEA,YACA,OAAa,SDQN,MCRqB,CDU5B,OACA,gBACA,SACA,kBACA,sBACA,qBACA,EAEA,KAEA,KAEA,KAEA,KASA,GACA,UAoNA,cACA,WACA,GArNA,WACA,QAsJA,YACQ,GAAkB,IAC1B,SACA,EAF0B,MAE1B,GACA,qBACA,KACM,SACN,WACA,YAIA,iBACA,YAEA,iBAGA,iBAIA,qBACA,kBACA,aAKA,YAIA,EAtLA,MAyLA,cAGA,YAKA,OAJA,SACA,YACA,6BACA,UACA,CACA,EAjMA,KAoMA,YACA,cAGA,OAFA,UACA,4BACA,CACA,EAxMA,eACA,YACA,CAAK,CACL,EAOA,GACA,UACA,iBAAsB,CACtB,WA8EA,YACA,mBACA,GACA,EAhFA,UACA,MACA,SACA,cACA,eA4CA,cACA,gBAuZA,KACA,IAIA,EAJA,KAEA,KAGA,oBACA,IAEA,EAFA,OAGA,sBACA,SACM,UACN,QAEA,OACA,KAEA,SAEA,OACA,KAEA,SAEA,SACA,KAEA,SAEA,YACA,KAEA,SAEA,kBACA,MACA,KAEA,SAGA,wBAEA,CACA,SACA,SACA,CACA,iBACA,EAxcA,OACA,EA7CA,cACA,MAsBA,kBAKA,CAJA,EAAa,GAAI,KAoEjB,WAEA,MACA,yBACA,kBAGA,sBAKA,IAJA,WACA,kBACA,mBAEA,uCACA,KAgBA,IAhBA,6BAmBA,MAnBA,MAmBA,IAhBA,EAEA,CACA,IAnFA,sBACA,IAEA,OAGA,SAAqB,GAAU,cAC/B,SACA,CAlCA,EAOA,uBAWA,OAHA,cACA,UAEA,EA4BA,cACA,OA2WA,cACA,IAKA,EALA,iBACA,uBACA,eACA,qBAGA,SAEA,wBACI,CAEJ,GADA,eACA,MACA,WACA,mBACA,gBAGA,SAEA,CACA,KAEA,uBAEA,CACA,QACA,EAtYA,IACA,CAGA,aAEA,IACA,eACA,SACA,OACA,SACA,SACA,CAAM,EACN,OACA,eACA,SACA,OACA,SACA,QACA,CACA,CAgIA,gBACA,WACA,CAUA,gBACA,OAeA,oBAsBA,EApBA,MAEA,EAEA,EAEA,EACA,wBACA,oBAEA,GAAqD,KAUrD,EAVqD,EAcrD,GAd0C,MAc1C,GACA,EAfqD,EAerD,iBACA,mBAKA,SAJA,IAGA,6DACA,EACA,GAWA,oBAGA,CAFA,IACA,IACA,cACA,EAEA,OACA,CAUA,cACA,OAGA,kBAaA,CARA,aAiEA,UACA,aACA,qBACA,kBACA,gBACA,OACA,OACA,QASA,WACA,IACA,aACA,qBACA,kBACA,IACA,GACA,CAfA,CAgBA,IAxFA,IACA,WACA,uBAKA,2DACA,KAEA,gBAIA,+CACA,CACA,CAGA,cAGA,OADA,OACA,CACA,CAGA,oBAGA,CADA,YACA,cACA,QAEA,CACA,CACA,CACA,CAUA,gBACA,8BACA,UAEA,WACM,GAAM,6DAEZ,aACA,kCAEA,CA0CA,aACA,0BACA,mBACA,sBAEA,CACA,EC1c4B,MAC5B,CACA,CACA,GIuB4C,oBAA2B,CHtDvE,IACA,KGqDiF,EHnDjF,GAOA,gBAEA,IAEA,EAEA,EAEA,EAEA,EAEA,EAVA,KAqBA,IAVA,2EACA,IACA,KACA,IAEA,yBACA,IAEA,UAEA,aAKA,GAJA,eAEA,GADA,eACA,kCACA,kBACA,IACA,aACA,KACA,CACA,oBACA,WACA,cAUA,OARA,IACA,WACA,UAEA,MACA,qBACA,QAEA,GACA,OAEA,cACA,IACA,KAEA,QAIA,IAFA,mBACA,WACA,kBACA,KAEA,SAEA,WACA,IACA,KAEA,SAEA,KACA,GAEA,CAEA,KACA,CAMA,OALA,IACA,cACA,aACA,cAEA,CACA,GIjFuB,ED8C0D,QCrCjF,CACA,CEnCA,6CA6EO,MA3EP,SACA,cACA,WACA,GAGA,MACA,YACA,gBAEA,cACA,UACA,KAAW,EACX,KAAW,EADS,CAEpB,CADe,MACf,MACA,KAAW,CDtBJ,ECsBS,CAChB,CADgB,GAChB,UACA,eACA,aACA,QACA,CACA,KAAW,EAAM,CACjB,GADiB,CACjB,MAA4B,IAC5B,iBACA,aACA,QACA,CACA,KDhCO,ECiCP,EADe,KACf,gBACA,KAAW,CDjCJ,ECiCU,CACjB,EADiB,CACjB,QAAe,WAAe,EAC9B,2BACA,CACA,KAAW,EAAG,CACd,mBACA,iBACA,iBACA,QACA,CACA,KAAW,EAAG,KACd,eACA,eACA,YACA,QACA,CACA,KAAW,EAAK,CAChB,EADgB,CAChB,MAAe,aAAe,EAC9B,wBACA,CACA,KAAW,EACX,IADiB,GACjB,cACA,cACA,6BACA,mBACA,oCACA,iBACA,WAAgB,GAAS,kBACzB,2BACA,CACA,CACA,wBACA,EAEA,SACA,EAWO,cC3EP,CAAO,QAAQ,KAAE,GACjB,MAAO,IAAM,OAEb,OACA,eACA,oBACA,OAAY,EAAS,GAErB,IAFqB,EAEF,GAAQ,oBAC3B,UACA,YACA,OAAc,EAbd,GAamB,KACnB,SACA,OFnBO,EEIP,GAeoB,KACpB,OACA,OFpBO,EEGP,EAiBkB,MAClB,SACA,OFrBO,EEEP,GAmBoB,KACpB,MACA,OFtBO,EECP,CAqBiB,OACjB,MACA,OAAc,EAvBd,CAuBiB,OACjB,WACA,OF9BO,EE8BY,UAGnB,oBACA,CAAY,EAAK,KAEjB,kBACA,CAAY,EAAK,GAEjB,CAAU,EAAM,OAGhB,SACA,OACA,MADW,QACX,CADoB,EACpB,cAyHQ,YAA2B,WAAa,EAAI,IACpD,SACA,MAxHA,aAEA,cACA,kBAEA,OADA,WACA,CACA,EAEA,MACA,YACA,gBAEA,eACA,UACA,KAAW,EAAS,CACpB,MADoB,EAEpB,UACA,aACA,EF1DO,EE2DP,GADmB,CACnB,KADyB,GACzB,GACA,KACA,gBACA,aACA,KACA,0CACA,OACA,KACA,iBACA,UF7EO,GE6EoB,GAC3B,CACA,iBACA,CACA,KF/EO,EE+ES,CAChB,EADgB,CAChB,GACA,QAOA,MANA,eACA,2BAEA,mBACA,sBAEA,eACA,CAEA,SACA,aACA,eACA,aACA,QACA,CACA,KFhGO,EEgGU,CACjB,GADiB,EAEjB,UACA,aACA,4BACA,eACA,aACA,aACA,2BACA,CAGA,mBACA,qBAEA,SACA,aACA,mBACA,oBACA,uBAEA,QACA,CACA,KFtHO,EEuHP,EADe,KACf,wBACA,KAAW,CFvHJ,EEuHU,CACjB,EADiB,CACjB,QAAe,WAAe,EAC9B,oBAA0B,UAAc,IACxC,CACA,KF1HO,EE0HO,KACd,KACA,aACA,iBACA,8BACA,oBAEA,QACA,CACA,KAAW,EAAG,KACd,KACA,aACA,eACA,iBACA,aAEA,QACA,CACA,CAEA,YAAW,GAAS,EACpB,aAAsB,iBAAoB,IAC1C,EAEA,QACA,GAgBA,2BACA,EC3JA,GAAe,mCAEf,OACA,6BACM,GAAY,GAAS,KAAV,CAAU,mBAE3B,OAAoB,GAAY,GAAS,KAAV,CCmCxB,KDnCiD,EAAC,ECmClD,MAEP,SACA,KACA,IACA,IACA,oBACA,sBAEA,KAGA,WAAuB,GAAiB,oBAAiC,GAAiB,mBAC1F,SAGA,SACA,QAAmB,0CACnB,gCAIA,qBACA,uBAGA,4BACA,2BACA,KAIA,KAEA,MAGA,yBAEA,IACA,2CACA,QACA,MAEA,IACA,KACA,IAEA,CAC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D,MACA,mBACA,EACA,MAEA,qBACA,IAAoB,sBAGpB,QACA,eACA,YACA,YACA,KACA,IACA,EACA,SACA,EACA,eACA,uBACA,UACA,mBACA,EACA,OACA,oCACS,CACT,gCACO,CACP,CAEA,oBAEA,2CACA,sCACA,mBACA,aAEA,iBAA4B,sBAAyB,EAGrD,qBACA,EAAM,IACN,aAIA,OACA,eACA,aACA,YAAmB,aAAmC,CACtD,qBACA,EAEA,aAEA,SACA,CAEA,gBAIA,OACA,eACA,kBACA,YAAiB,yCAA8C,CAC/D,UACA,CACA,eACA,UACA,YACA,GAAa,GAAe,GAC5B,mBACA,CAAS,CACT,WAAoB,oBAAmC,EAChD,CACP,CAAO,uBAA0B,CACjC,CACA,eACA,aACA,aAAsB,CACtB,qBACA,CAAO,CACP,CAAO,wBACP,CAEA,EgCjKqB,GAErB,mBACA,CAAO,wBACP,IAAe,yBAUf,OARA,GAKA,iBAA0B,uBAA0B,IAGpD,CACA,CC0Ce,wBACf,aAIA,oBAEA,MACQ,GAAM,QAAQ,OAAiB,CAEvC,CAHkC,MAGlC,IAH4C,CAG5C,KACA,EAMA,cAMA,OACM,GAAM,QADU,EACF,QAAkC,CAEtD,CACA,CCvKO,eACP,KACA,OAEA,iBCXe,eACf,gCACA,SAGA,+BACA,4HACA,CE4CO,QAAiB,SAcxB,kBAUA,EATA,kCACA,mDAGA,MACA,QACA,KACA,WAIA,GACA,YACA,cACA,kBACA,CACA,UACA,yBAGA,OACA,MACA,KACA,OACQ,MAGR,KACA,OAIA,0BACA,CAEA,SACA,SAGA,SACA,aAEA,UACA,yBAGA,OACA,MACA,KACA,OAEA,MAGA,KACA,OAGA,OAEA,sCACA,KAGA,OAKA,KACA,MAYA,OANA,MACA,IACI,KACJ,aAGA,YACA,EAlGwB,QA4GxB,gBAUA,EAPA,GAFA,MAEA,aACA,UAGA,SACA,WAKA,UACA,yBACA,OACA,IACA,KACA,OACM,GAEN,OAIA,WACA,sBACA,IACA,IACA,6BACA,KACA,YACA,EA5IwB,QAsJxB,gBAYA,EAXA,MAEA,eAEA,KACA,IACA,KAGA,IAIA,WACA,uBAE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","sources":["webpack://_N_E/../../../src/icons/pipette.ts","webpack://_N_E/../../../src/icons/mic.ts","webpack://_N_E/../../../src/icons/heart.ts","webpack://_N_E/../../node_modules/.bun/react-resizable-panels@2.1.9+6dbf9a050bc9aadb/node_modules/react-resizable-panels/dist/react-resizable-panels.browser.esm.js","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/font/google/target.css","webpack://_N_E/../../../src/icons/bookmark.ts","webpack://_N_E/../../node_modules/.bun/extend@3.0.2/node_modules/extend/index.js","webpack://_N_E/../../../src/icons/settings.ts","webpack://_N_E/../../../src/icons/eye.ts","webpack://_N_E/../../node_modules/.bun/@ffmpeg+ffmpeg@0.12.15/node_modules/@ffmpeg/ffmpeg/dist/esm/const.js","webpack://_N_E/../../node_modules/.bun/@ffmpeg+ffmpeg@0.12.15/node_modules/@ffmpeg/ffmpeg/dist/esm/utils.js","webpack://_N_E/../../node_modules/.bun/@ffmpeg+ffmpeg@0.12.15/node_modules/@ffmpeg/ffmpeg/dist/esm/errors.js","webpack://_N_E/../../node_modules/.bun/@ffmpeg+ffmpeg@0.12.15/node_modules/@ffmpeg/ffmpeg/dist/esm/classes.js","webpack://_N_E/../../node_modules/.bun/@ffmpeg+ffmpeg@0.12.15/node_modules/@ffmpeg/ffmpeg/dist/esm/types.js","webpack://_N_E/../../node_modules/.bun/@ffmpeg+ffmpeg@0.12.15/node_modules/@ffmpeg/ffmpeg/dist/esm/index.js","webpack://_N_E/../../../src/icons/zoom-out.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/font/google/target.css?073e","webpack://_N_E/../../node_modules/.bun/zustand@5.0.6+0e2fb8dbc083adda/node_modules/zustand/esm/middleware.mjs","webpack://_N_E/../../../src/icons/magnet.ts","webpack://_N_E/../../../src/icons/trash.ts","webpack://_N_E/../../../src/icons/square-slash.ts","webpack://_N_E/../../../src/icons/link.ts","webpack://_N_E/../../node_modules/.bun/@radix-ui+react-aspect-ratio@1.1.7+b41f8805ee63d2ff/node_modules/@radix-ui/react-aspect-ratio/dist/index.mjs","webpack://_N_E/../../../src/icons/arrow-left-to-line.ts","webpack://_N_E/../../../src/icons/loader-circle.ts","webpack://_N_E/../../../src/icons/sliders-horizontal.ts","webpack://_N_E/../../../src/icons/sun.ts","webpack://_N_E/../../../src/icons/keyboard.ts","webpack://_N_E/../../node_modules/.bun/inline-style-parser@0.2.4/node_modules/inline-style-parser/index.js","webpack://_N_E/../../../src/icons/expand.ts","webpack://_N_E/../../node_modules/.bun/style-to-object@1.0.9/node_modules/style-to-object/cjs/index.js","webpack://_N_E/../../../src/icons/chevron-right.ts","webpack://_N_E/../../../src/icons/list-filter.ts","webpack://_N_E/../../../src/icons/sparkles.ts","webpack://_N_E/../../node_modules/.bun/devlop@1.1.0/node_modules/devlop/lib/default.js","webpack://_N_E/../../node_modules/.bun/comma-separated-tokens@2.0.3/node_modules/comma-separated-tokens/index.js","webpack://_N_E/../../node_modules/.bun/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/lib/index.js","webpack://_N_E/../../node_modules/.bun/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/lib/index.js","webpack://_N_E/../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/util/schema.js","webpack://_N_E/../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/util/merge.js","webpack://_N_E/../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/normalize.js","webpack://_N_E/../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/util/info.js","webpack://_N_E/../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/util/types.js","webpack://_N_E/../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/util/defined-info.js","webpack://_N_E/../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/util/create.js","webpack://_N_E/../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/aria.js","webpack://_N_E/../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/util/case-sensitive-transform.js","webpack://_N_E/../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/util/case-insensitive-transform.js","webpack://_N_E/../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/html.js","webpack://_N_E/../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/svg.js","webpack://_N_E/../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/xlink.js","webpack://_N_E/../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/xmlns.js","webpack://_N_E/../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/xml.js","webpack://_N_E/../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/index.js","webpack://_N_E/../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/find.js","webpack://_N_E/../../node_modules/.bun/property-information@7.1.0/node_modules/property-information/lib/hast-to-react.js","webpack://_N_E/../../node_modules/.bun/space-separated-tokens@2.0.2/node_modules/space-separated-tokens/index.js","webpack://_N_E/../../node_modules/.bun/unist-util-position@5.0.0/node_modules/unist-util-position/lib/index.js","webpack://_N_E/../../node_modules/.bun/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js","webpack://_N_E/../../node_modules/.bun/vfile-message@4.0.3/node_modules/vfile-message/lib/index.js","webpack://_N_E/../../node_modules/.bun/hast-util-to-jsx-runtime@2.3.6/node_modules/hast-util-to-jsx-runtime/lib/index.js","webpack://_N_E/../../node_modules/.bun/html-url-attributes@3.0.1/node_modules/html-url-attributes/lib/index.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js","webpack://_N_E/../../node_modules/.bun/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/index.js","webpack://_N_E/../../node_modules/.bun/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/lib/splice-buffer.js","webpack://_N_E/../../node_modules/.bun/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/index.js","webpack://_N_E/../../node_modules/.bun/micromark@4.0.2/node_modules/micromark/lib/postprocess.js","webpack://_N_E/../../node_modules/.bun/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js","webpack://_N_E/../../node_modules/.bun/micromark-util-character@2.1.1/node_modules/micromark-util-character/index.js","webpack://_N_E/../../node_modules/.bun/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/index.js","webpack://_N_E/../../node_modules/.bun/micromark@4.0.2/node_modules/micromark/lib/initialize/content.js","webpack://_N_E/../../node_modules/.bun/micromark@4.0.2/node_modules/micromark/lib/initialize/document.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/blank-line.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/content.js","webpack://_N_E/../../node_modules/.bun/micromark@4.0.2/node_modules/micromark/lib/initialize/flow.js","webpack://_N_E/../../node_modules/.bun/micromark@4.0.2/node_modules/micromark/lib/initialize/text.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/thematic-break.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/list.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/block-quote.js","webpack://_N_E/../../node_modules/.bun/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/index.js","webpack://_N_E/../../node_modules/.bun/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/index.js","webpack://_N_E/../../node_modules/.bun/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/index.js","webpack://_N_E/../../node_modules/.bun/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/index.js","webpack://_N_E/../../node_modules/.bun/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/index.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/definition.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-indented.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/heading-atx.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/setext-underline.js","webpack://_N_E/../../node_modules/.bun/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-flow.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-fenced.js","webpack://_N_E/../../node_modules/.bun/decode-named-character-reference@1.2.0/node_modules/decode-named-character-reference/index.dom.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-reference.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-escape.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/line-ending.js","webpack://_N_E/../../node_modules/.bun/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-end.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-image.js","webpack://_N_E/../../node_modules/.bun/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/index.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/attention.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/autolink.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-text.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-link.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/hard-break-escape.js","webpack://_N_E/../../node_modules/.bun/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-text.js","webpack://_N_E/../../node_modules/.bun/micromark@4.0.2/node_modules/micromark/lib/constructs.js","webpack://_N_E/../../node_modules/.bun/micromark@4.0.2/node_modules/micromark/lib/create-tokenizer.js","webpack://_N_E/../../node_modules/.bun/micromark@4.0.2/node_modules/micromark/lib/parse.js","webpack://_N_E/../../node_modules/.bun/micromark@4.0.2/node_modules/micromark/lib/preprocess.js","webpack://_N_E/../../node_modules/.bun/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/index.js","webpack://_N_E/../../node_modules/.bun/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/index.js","webpack://_N_E/../../node_modules/.bun/mdast-util-from-markdown@2.0.2/node_modules/mdast-util-from-markdown/lib/index.js","webpack://_N_E/../../node_modules/.bun/remark-parse@11.0.0/node_modules/remark-parse/lib/index.js","webpack://_N_E/../../node_modules/.bun/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/types.js","webpack://_N_E/../../node_modules/.bun/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/deserialize.js","webpack://_N_E/../../node_modules/.bun/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/serialize.js","webpack://_N_E/../../node_modules/.bun/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/index.js","webpack://_N_E/../../node_modules/.bun/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-sanitize-uri/index.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/footer.js","webpack://_N_E/../../node_modules/.bun/unist-util-is@6.0.0/node_modules/unist-util-is/lib/index.js","webpack://_N_E/../../node_modules/.bun/unist-util-visit-parents@6.0.1/node_modules/unist-util-visit-parents/lib/color.js","webpack://_N_E/../../node_modules/.bun/unist-util-visit-parents@6.0.1/node_modules/unist-util-visit-parents/lib/index.js","webpack://_N_E/../../node_modules/.bun/unist-util-visit@5.0.0/node_modules/unist-util-visit/lib/index.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/break.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/code.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/delete.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/heading.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/html.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/revert.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/image.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/link.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/list-item.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/list.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/root.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/strong.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/table.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/table-row.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","webpack://_N_E/../../node_modules/.bun/trim-lines@3.0.1/node_modules/trim-lines/index.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/text.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/handlers/index.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/state.js","webpack://_N_E/../../node_modules/.bun/mdast-util-to-hast@13.2.0/node_modules/mdast-util-to-hast/lib/index.js","webpack://_N_E/../../node_modules/.bun/remark-rehype@11.1.2/node_modules/remark-rehype/lib/index.js","webpack://_N_E/../../node_modules/.bun/bail@2.0.2/node_modules/bail/index.js","webpack://_N_E/../../node_modules/.bun/is-plain-obj@4.1.0/node_modules/is-plain-obj/index.js","webpack://_N_E/../../node_modules/.bun/trough@2.2.0/node_modules/trough/lib/index.js","webpack://_N_E/../../node_modules/.bun/vfile@6.0.3/node_modules/vfile/lib/minpath.browser.js","webpack://_N_E/../../node_modules/.bun/vfile@6.0.3/node_modules/vfile/lib/minproc.browser.js","webpack://_N_E/../../node_modules/.bun/vfile@6.0.3/node_modules/vfile/lib/minurl.shared.js","webpack://_N_E/../../node_modules/.bun/vfile@6.0.3/node_modules/vfile/lib/minurl.browser.js","webpack://_N_E/../../node_modules/.bun/vfile@6.0.3/node_modules/vfile/lib/index.js","webpack://_N_E/../../node_modules/.bun/unified@11.0.5/node_modules/unified/lib/callable-instance.js","webpack://_N_E/../../node_modules/.bun/unified@11.0.5/node_modules/unified/lib/index.js","webpack://_N_E/../../node_modules/.bun/react-markdown@10.1.0+0e2fb8dbc083adda/node_modules/react-markdown/lib/index.js","webpack://_N_E/../../../src/icons/captions.ts","webpack://_N_E/../../../src/icons/refresh-cw.ts","webpack://_N_E/../../../src/icons/video.ts","webpack://_N_E/../../../src/icons/zoom-in.ts","webpack://_N_E/../../../src/icons/chevron-up.ts","webpack://_N_E/../../../src/icons/x.ts","webpack://_N_E/../../../src/icons/pause.ts","webpack://_N_E/../../../src/icons/play.ts","webpack://_N_E/../../../src/icons/music.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/font/google/target.css?0291","webpack://_N_E/../../../src/icons/square-split-horizontal.ts","webpack://_N_E/../../../src/icons/grid-2x2.ts","webpack://_N_E/../../../src/icons/circle.ts","webpack://_N_E/../../../src/icons/check.ts","webpack://_N_E/../../../src/icons/download.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/api/navigation.js","webpack://_N_E/../../node_modules/.bun/next-themes@0.4.6+6dbf9a050bc9aadb/node_modules/next-themes/dist/index.mjs","webpack://_N_E/../../../src/icons/eye-off.ts","webpack://_N_E/../../node_modules/.bun/react-icons@5.5.0+f4eacebf2041cd4f/node_modules/react-icons/lib/iconsManifest.mjs","webpack://_N_E/../../node_modules/.bun/react-icons@5.5.0+f4eacebf2041cd4f/node_modules/react-icons/lib/iconContext.mjs","webpack://_N_E/../../node_modules/.bun/react-icons@5.5.0+f4eacebf2041cd4f/node_modules/react-icons/lib/iconBase.mjs","webpack://_N_E/../../node_modules/.bun/react-icons@5.5.0+f4eacebf2041cd4f/node_modules/react-icons/lib/index.mjs","webpack://_N_E/../../../src/icons/skip-back.ts","webpack://_N_E/../../../src/icons/volume-x.ts","webpack://_N_E/../../../src/icons/arrow-right-to-line.ts","webpack://_N_E/../../../src/icons/arrow-left.ts","webpack://_N_E/../../../src/icons/chevron-left.ts","webpack://_N_E/../../node_modules/.bun/style-to-js@1.1.17/node_modules/style-to-js/cjs/index.js","webpack://_N_E/../../../src/icons/trash-2.ts","webpack://_N_E/../../../src/icons/skip-forward.ts","webpack://_N_E/../../../src/icons/arrow-left-right.ts","webpack://_N_E/../../../src/icons/sticker.ts","webpack://_N_E/../../../src/icons/copy.ts","webpack://_N_E/../../../src/icons/square-pen.ts","webpack://_N_E/../../../src/icons/arrow-down-0-1.ts","webpack://_N_E/../../../src/icons/type.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/font/google/target.css?26b0","webpack://_N_E/../../../src/icons/scissors.ts","webpack://_N_E/../../../src/icons/cloud-upload.ts","webpack://_N_E/../../node_modules/.bun/@ffmpeg+util@0.12.2/node_modules/@ffmpeg/util/dist/esm/errors.js","webpack://_N_E/../../node_modules/.bun/@ffmpeg+util@0.12.2/node_modules/@ffmpeg/util/dist/esm/const.js","webpack://_N_E/../../node_modules/.bun/@ffmpeg+util@0.12.2/node_modules/@ffmpeg/util/dist/esm/index.js","webpack://_N_E/../../../src/icons/volume-2.ts","webpack://_N_E/../../../src/icons/plus.ts","webpack://_N_E/../../../src/icons/snowflake.ts","webpack://_N_E/../../../src/icons/mic-off.ts","webpack://_N_E/../../../src/icons/chevron-down.ts","webpack://_N_E/../../node_modules/.bun/wavesurfer.js@7.10.0/node_modules/wavesurfer.js/dist/wavesurfer.esm.js","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/font/google/target.css?aba9","webpack://_N_E/../../node_modules/.bun/style-to-js@1.1.17/node_modules/style-to-js/cjs/utilities.js","webpack://_N_E/../../../src/icons/image.ts","webpack://_N_E/../../../src/icons/upload.ts","webpack://_N_E/../../../src/icons/list.ts","webpack://_N_E/../../../src/icons/blend.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Pipette\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMiAyMiAxLTFoM2w5LTkiIC8+CiAgPHBhdGggZD0iTTMgMjF2LTNsOS05IiAvPgogIDxwYXRoIGQ9Im0xNSA2IDMuNC0zLjRhMi4xIDIuMSAwIDEgMSAzIDNMMTggOWwuNC40YTIuMSAyLjEgMCAxIDEtMyAzbC0zLjgtMy44YTIuMSAyLjEgMCAxIDEgMy0zbC40LjRaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/pipette\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Pipette = createLucideIcon('Pipette', [\n ['path', { d: 'm2 22 1-1h3l9-9', key: '1sre89' }],\n ['path', { d: 'M3 21v-3l9-9', key: 'hpe2y6' }],\n [\n 'path',\n {\n d: 'm15 6 3.4-3.4a2.1 2.1 0 1 1 3 3L18 9l.4.4a2.1 2.1 0 1 1-3 3l-3.8-3.8a2.1 2.1 0 1 1 3-3l.4.4Z',\n key: '196du1',\n },\n ],\n]);\n\nexport default Pipette;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Mic\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMmEzIDMgMCAwIDAtMyAzdjdhMyAzIDAgMCAwIDYgMFY1YTMgMyAwIDAgMC0zLTNaIiAvPgogIDxwYXRoIGQ9Ik0xOSAxMHYyYTcgNyAwIDAgMS0xNCAwdi0yIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMTkiIHkyPSIyMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mic\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Mic = createLucideIcon('Mic', [\n ['path', { d: 'M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z', key: '131961' }],\n ['path', { d: 'M19 10v2a7 7 0 0 1-14 0v-2', key: '1vc78b' }],\n ['line', { x1: '12', x2: '12', y1: '19', y2: '22', key: 'x3vr5v' }],\n]);\n\nexport default Mic;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Heart\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTkgMTRjMS40OS0xLjQ2IDMtMy4yMSAzLTUuNUE1LjUgNS41IDAgMCAwIDE2LjUgM2MtMS43NiAwLTMgLjUtNC41IDItMS41LTEuNS0yLjc0LTItNC41LTJBNS41IDUuNSAwIDAgMCAyIDguNWMwIDIuMyAxLjUgNC4wNSAzIDUuNWw3IDdaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/heart\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Heart = createLucideIcon('Heart', [\n [\n 'path',\n {\n d: 'M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z',\n key: 'c3ymky',\n },\n ],\n]);\n\nexport default Heart;\n","import * as React from 'react';\nimport { createContext, useLayoutEffect, useRef, forwardRef, createElement, useContext, useImperativeHandle, useState, useCallback, useEffect, useMemo } from 'react';\n\n// The \"contextmenu\" event is not supported as a PointerEvent in all browsers yet, so MouseEvent still need to be handled\n\nconst PanelGroupContext = createContext(null);\nPanelGroupContext.displayName = \"PanelGroupContext\";\n\nconst DATA_ATTRIBUTES = {\n group: \"data-panel-group\",\n groupDirection: \"data-panel-group-direction\",\n groupId: \"data-panel-group-id\",\n panel: \"data-panel\",\n panelCollapsible: \"data-panel-collapsible\",\n panelId: \"data-panel-id\",\n panelSize: \"data-panel-size\",\n resizeHandle: \"data-resize-handle\",\n resizeHandleActive: \"data-resize-handle-active\",\n resizeHandleEnabled: \"data-panel-resize-handle-enabled\",\n resizeHandleId: \"data-panel-resize-handle-id\",\n resizeHandleState: \"data-resize-handle-state\"\n};\nconst PRECISION = 10;\n\nconst useIsomorphicLayoutEffect = useLayoutEffect ;\n\nconst useId = React[\"useId\".toString()];\nconst wrappedUseId = typeof useId === \"function\" ? useId : () => null;\nlet counter = 0;\nfunction useUniqueId(idFromParams = null) {\n const idFromUseId = wrappedUseId();\n const idRef = useRef(idFromParams || idFromUseId || null);\n if (idRef.current === null) {\n idRef.current = \"\" + counter++;\n }\n return idFromParams !== null && idFromParams !== void 0 ? idFromParams : idRef.current;\n}\n\nfunction PanelWithForwardedRef({\n children,\n className: classNameFromProps = \"\",\n collapsedSize,\n collapsible,\n defaultSize,\n forwardedRef,\n id: idFromProps,\n maxSize,\n minSize,\n onCollapse,\n onExpand,\n onResize,\n order,\n style: styleFromProps,\n tagName: Type = \"div\",\n ...rest\n}) {\n const context = useContext(PanelGroupContext);\n if (context === null) {\n throw Error(`Panel components must be rendered within a PanelGroup container`);\n }\n const {\n collapsePanel,\n expandPanel,\n getPanelSize,\n getPanelStyle,\n groupId,\n isPanelCollapsed,\n reevaluatePanelConstraints,\n registerPanel,\n resizePanel,\n unregisterPanel\n } = context;\n const panelId = useUniqueId(idFromProps);\n const panelDataRef = useRef({\n callbacks: {\n onCollapse,\n onExpand,\n onResize\n },\n constraints: {\n collapsedSize,\n collapsible,\n defaultSize,\n maxSize,\n minSize\n },\n id: panelId,\n idIsFromProps: idFromProps !== undefined,\n order\n });\n useRef({\n didLogMissingDefaultSizeWarning: false\n });\n useIsomorphicLayoutEffect(() => {\n const {\n callbacks,\n constraints\n } = panelDataRef.current;\n const prevConstraints = {\n ...constraints\n };\n panelDataRef.current.id = panelId;\n panelDataRef.current.idIsFromProps = idFromProps !== undefined;\n panelDataRef.current.order = order;\n callbacks.onCollapse = onCollapse;\n callbacks.onExpand = onExpand;\n callbacks.onResize = onResize;\n constraints.collapsedSize = collapsedSize;\n constraints.collapsible = collapsible;\n constraints.defaultSize = defaultSize;\n constraints.maxSize = maxSize;\n constraints.minSize = minSize;\n\n // If constraints have changed, we should revisit panel sizes.\n // This is uncommon but may happen if people are trying to implement pixel based constraints.\n if (prevConstraints.collapsedSize !== constraints.collapsedSize || prevConstraints.collapsible !== constraints.collapsible || prevConstraints.maxSize !== constraints.maxSize || prevConstraints.minSize !== constraints.minSize) {\n reevaluatePanelConstraints(panelDataRef.current, prevConstraints);\n }\n });\n useIsomorphicLayoutEffect(() => {\n const panelData = panelDataRef.current;\n registerPanel(panelData);\n return () => {\n unregisterPanel(panelData);\n };\n }, [order, panelId, registerPanel, unregisterPanel]);\n useImperativeHandle(forwardedRef, () => ({\n collapse: () => {\n collapsePanel(panelDataRef.current);\n },\n expand: minSize => {\n expandPanel(panelDataRef.current, minSize);\n },\n getId() {\n return panelId;\n },\n getSize() {\n return getPanelSize(panelDataRef.current);\n },\n isCollapsed() {\n return isPanelCollapsed(panelDataRef.current);\n },\n isExpanded() {\n return !isPanelCollapsed(panelDataRef.current);\n },\n resize: size => {\n resizePanel(panelDataRef.current, size);\n }\n }), [collapsePanel, expandPanel, getPanelSize, isPanelCollapsed, panelId, resizePanel]);\n const style = getPanelStyle(panelDataRef.current, defaultSize);\n return createElement(Type, {\n ...rest,\n children,\n className: classNameFromProps,\n id: panelId,\n style: {\n ...style,\n ...styleFromProps\n },\n // CSS selectors\n [DATA_ATTRIBUTES.groupId]: groupId,\n [DATA_ATTRIBUTES.panel]: \"\",\n [DATA_ATTRIBUTES.panelCollapsible]: collapsible || undefined,\n [DATA_ATTRIBUTES.panelId]: panelId,\n [DATA_ATTRIBUTES.panelSize]: parseFloat(\"\" + style.flexGrow).toFixed(1)\n });\n}\nconst Panel = forwardRef((props, ref) => createElement(PanelWithForwardedRef, {\n ...props,\n forwardedRef: ref\n}));\nPanelWithForwardedRef.displayName = \"Panel\";\nPanel.displayName = \"forwardRef(Panel)\";\n\nlet nonce;\nfunction getNonce() {\n return nonce;\n}\nfunction setNonce(value) {\n nonce = value;\n}\n\nlet currentCursorStyle = null;\nlet enabled = true;\nlet prevRuleIndex = -1;\nlet styleElement = null;\nfunction disableGlobalCursorStyles() {\n enabled = false;\n}\nfunction enableGlobalCursorStyles() {\n enabled = true;\n}\nfunction getCursorStyle(state, constraintFlags) {\n if (constraintFlags) {\n const horizontalMin = (constraintFlags & EXCEEDED_HORIZONTAL_MIN) !== 0;\n const horizontalMax = (constraintFlags & EXCEEDED_HORIZONTAL_MAX) !== 0;\n const verticalMin = (constraintFlags & EXCEEDED_VERTICAL_MIN) !== 0;\n const verticalMax = (constraintFlags & EXCEEDED_VERTICAL_MAX) !== 0;\n if (horizontalMin) {\n if (verticalMin) {\n return \"se-resize\";\n } else if (verticalMax) {\n return \"ne-resize\";\n } else {\n return \"e-resize\";\n }\n } else if (horizontalMax) {\n if (verticalMin) {\n return \"sw-resize\";\n } else if (verticalMax) {\n return \"nw-resize\";\n } else {\n return \"w-resize\";\n }\n } else if (verticalMin) {\n return \"s-resize\";\n } else if (verticalMax) {\n return \"n-resize\";\n }\n }\n switch (state) {\n case \"horizontal\":\n return \"ew-resize\";\n case \"intersection\":\n return \"move\";\n case \"vertical\":\n return \"ns-resize\";\n }\n}\nfunction resetGlobalCursorStyle() {\n if (styleElement !== null) {\n document.head.removeChild(styleElement);\n currentCursorStyle = null;\n styleElement = null;\n prevRuleIndex = -1;\n }\n}\nfunction setGlobalCursorStyle(state, constraintFlags) {\n var _styleElement$sheet$i, _styleElement$sheet2;\n if (!enabled) {\n return;\n }\n const style = getCursorStyle(state, constraintFlags);\n if (currentCursorStyle === style) {\n return;\n }\n currentCursorStyle = style;\n if (styleElement === null) {\n styleElement = document.createElement(\"style\");\n const nonce = getNonce();\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n document.head.appendChild(styleElement);\n }\n if (prevRuleIndex >= 0) {\n var _styleElement$sheet;\n (_styleElement$sheet = styleElement.sheet) === null || _styleElement$sheet === void 0 ? void 0 : _styleElement$sheet.removeRule(prevRuleIndex);\n }\n prevRuleIndex = (_styleElement$sheet$i = (_styleElement$sheet2 = styleElement.sheet) === null || _styleElement$sheet2 === void 0 ? void 0 : _styleElement$sheet2.insertRule(`*{cursor: ${style} !important;}`)) !== null && _styleElement$sheet$i !== void 0 ? _styleElement$sheet$i : -1;\n}\n\nfunction isKeyDown(event) {\n return event.type === \"keydown\";\n}\nfunction isPointerEvent(event) {\n return event.type.startsWith(\"pointer\");\n}\nfunction isMouseEvent(event) {\n return event.type.startsWith(\"mouse\");\n}\n\nfunction getResizeEventCoordinates(event) {\n if (isPointerEvent(event)) {\n if (event.isPrimary) {\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n } else if (isMouseEvent(event)) {\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n return {\n x: Infinity,\n y: Infinity\n };\n}\n\nfunction getInputType() {\n if (typeof matchMedia === \"function\") {\n return matchMedia(\"(pointer:coarse)\").matches ? \"coarse\" : \"fine\";\n }\n}\n\nfunction intersects(rectOne, rectTwo, strict) {\n if (strict) {\n return rectOne.x < rectTwo.x + rectTwo.width && rectOne.x + rectOne.width > rectTwo.x && rectOne.y < rectTwo.y + rectTwo.height && rectOne.y + rectOne.height > rectTwo.y;\n } else {\n return rectOne.x <= rectTwo.x + rectTwo.width && rectOne.x + rectOne.width >= rectTwo.x && rectOne.y <= rectTwo.y + rectTwo.height && rectOne.y + rectOne.height >= rectTwo.y;\n }\n}\n\n// Forked from NPM stacking-order@2.0.0\n\n/**\n * Determine which of two nodes appears in front of the other —\n * if `a` is in front, returns 1, otherwise returns -1\n * @param {HTMLElement | SVGElement} a\n * @param {HTMLElement | SVGElement} b\n */\nfunction compare(a, b) {\n if (a === b) throw new Error(\"Cannot compare node with itself\");\n const ancestors = {\n a: get_ancestors(a),\n b: get_ancestors(b)\n };\n let common_ancestor;\n\n // remove shared ancestors\n while (ancestors.a.at(-1) === ancestors.b.at(-1)) {\n a = ancestors.a.pop();\n b = ancestors.b.pop();\n common_ancestor = a;\n }\n assert(common_ancestor, \"Stacking order can only be calculated for elements with a common ancestor\");\n const z_indexes = {\n a: get_z_index(find_stacking_context(ancestors.a)),\n b: get_z_index(find_stacking_context(ancestors.b))\n };\n if (z_indexes.a === z_indexes.b) {\n const children = common_ancestor.childNodes;\n const furthest_ancestors = {\n a: ancestors.a.at(-1),\n b: ancestors.b.at(-1)\n };\n let i = children.length;\n while (i--) {\n const child = children[i];\n if (child === furthest_ancestors.a) return 1;\n if (child === furthest_ancestors.b) return -1;\n }\n }\n return Math.sign(z_indexes.a - z_indexes.b);\n}\nconst props = /\\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\\b/;\n\n/** @param {HTMLElement | SVGElement} node */\nfunction is_flex_item(node) {\n var _get_parent;\n // @ts-ignore\n const display = getComputedStyle((_get_parent = get_parent(node)) !== null && _get_parent !== void 0 ? _get_parent : node).display;\n return display === \"flex\" || display === \"inline-flex\";\n}\n\n/** @param {HTMLElement | SVGElement} node */\nfunction creates_stacking_context(node) {\n const style = getComputedStyle(node);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n if (style.position === \"fixed\") return true;\n // Forked to fix upstream bug https://github.com/Rich-Harris/stacking-order/issues/3\n // if (\n // (style.zIndex !== \"auto\" && style.position !== \"static\") ||\n // is_flex_item(node)\n // )\n if (style.zIndex !== \"auto\" && (style.position !== \"static\" || is_flex_item(node))) return true;\n if (+style.opacity < 1) return true;\n if (\"transform\" in style && style.transform !== \"none\") return true;\n if (\"webkitTransform\" in style && style.webkitTransform !== \"none\") return true;\n if (\"mixBlendMode\" in style && style.mixBlendMode !== \"normal\") return true;\n if (\"filter\" in style && style.filter !== \"none\") return true;\n if (\"webkitFilter\" in style && style.webkitFilter !== \"none\") return true;\n if (\"isolation\" in style && style.isolation === \"isolate\") return true;\n if (props.test(style.willChange)) return true;\n // @ts-expect-error\n if (style.webkitOverflowScrolling === \"touch\") return true;\n return false;\n}\n\n/** @param {(HTMLElement| SVGElement)[]} nodes */\nfunction find_stacking_context(nodes) {\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n assert(node, \"Missing node\");\n if (creates_stacking_context(node)) return node;\n }\n return null;\n}\n\n/** @param {HTMLElement | SVGElement} node */\nfunction get_z_index(node) {\n return node && Number(getComputedStyle(node).zIndex) || 0;\n}\n\n/** @param {HTMLElement} node */\nfunction get_ancestors(node) {\n const ancestors = [];\n while (node) {\n ancestors.push(node);\n // @ts-ignore\n node = get_parent(node);\n }\n return ancestors; // [ node, ... <body>, <html>, document ]\n}\n\n/** @param {HTMLElement} node */\nfunction get_parent(node) {\n const {\n parentNode\n } = node;\n if (parentNode && parentNode instanceof ShadowRoot) {\n return parentNode.host;\n }\n return parentNode;\n}\n\nconst EXCEEDED_HORIZONTAL_MIN = 0b0001;\nconst EXCEEDED_HORIZONTAL_MAX = 0b0010;\nconst EXCEEDED_VERTICAL_MIN = 0b0100;\nconst EXCEEDED_VERTICAL_MAX = 0b1000;\nconst isCoarsePointer = getInputType() === \"coarse\";\nlet intersectingHandles = [];\nlet isPointerDown = false;\nlet ownerDocumentCounts = new Map();\nlet panelConstraintFlags = new Map();\nconst registeredResizeHandlers = new Set();\nfunction registerResizeHandle(resizeHandleId, element, direction, hitAreaMargins, setResizeHandlerState) {\n var _ownerDocumentCounts$;\n const {\n ownerDocument\n } = element;\n const data = {\n direction,\n element,\n hitAreaMargins,\n setResizeHandlerState\n };\n const count = (_ownerDocumentCounts$ = ownerDocumentCounts.get(ownerDocument)) !== null && _ownerDocumentCounts$ !== void 0 ? _ownerDocumentCounts$ : 0;\n ownerDocumentCounts.set(ownerDocument, count + 1);\n registeredResizeHandlers.add(data);\n updateListeners();\n return function unregisterResizeHandle() {\n var _ownerDocumentCounts$2;\n panelConstraintFlags.delete(resizeHandleId);\n registeredResizeHandlers.delete(data);\n const count = (_ownerDocumentCounts$2 = ownerDocumentCounts.get(ownerDocument)) !== null && _ownerDocumentCounts$2 !== void 0 ? _ownerDocumentCounts$2 : 1;\n ownerDocumentCounts.set(ownerDocument, count - 1);\n updateListeners();\n if (count === 1) {\n ownerDocumentCounts.delete(ownerDocument);\n }\n\n // If the resize handle that is currently unmounting is intersecting with the pointer,\n // update the global pointer to account for the change\n if (intersectingHandles.includes(data)) {\n const index = intersectingHandles.indexOf(data);\n if (index >= 0) {\n intersectingHandles.splice(index, 1);\n }\n updateCursor();\n\n // Also instruct the handle to stop dragging; this prevents the parent group from being left in an inconsistent state\n // See github.com/bvaughn/react-resizable-panels/issues/402\n setResizeHandlerState(\"up\", true, null);\n }\n };\n}\nfunction handlePointerDown(event) {\n const {\n target\n } = event;\n const {\n x,\n y\n } = getResizeEventCoordinates(event);\n isPointerDown = true;\n recalculateIntersectingHandles({\n target,\n x,\n y\n });\n updateListeners();\n if (intersectingHandles.length > 0) {\n updateResizeHandlerStates(\"down\", event);\n event.preventDefault();\n if (!isWithinResizeHandle(target)) {\n event.stopImmediatePropagation();\n }\n }\n}\nfunction handlePointerMove(event) {\n const {\n x,\n y\n } = getResizeEventCoordinates(event);\n\n // Edge case (see #340)\n // Detect when the pointer has been released outside an iframe on a different domain\n if (isPointerDown && event.buttons === 0) {\n isPointerDown = false;\n updateResizeHandlerStates(\"up\", event);\n }\n if (!isPointerDown) {\n const {\n target\n } = event;\n\n // Recalculate intersecting handles whenever the pointer moves, except if it has already been pressed\n // at that point, the handles may not move with the pointer (depending on constraints)\n // but the same set of active handles should be locked until the pointer is released\n recalculateIntersectingHandles({\n target,\n x,\n y\n });\n }\n updateResizeHandlerStates(\"move\", event);\n\n // Update cursor based on return value(s) from active handles\n updateCursor();\n if (intersectingHandles.length > 0) {\n event.preventDefault();\n }\n}\nfunction handlePointerUp(event) {\n const {\n target\n } = event;\n const {\n x,\n y\n } = getResizeEventCoordinates(event);\n panelConstraintFlags.clear();\n isPointerDown = false;\n if (intersectingHandles.length > 0) {\n event.preventDefault();\n if (!isWithinResizeHandle(target)) {\n event.stopImmediatePropagation();\n }\n }\n updateResizeHandlerStates(\"up\", event);\n recalculateIntersectingHandles({\n target,\n x,\n y\n });\n updateCursor();\n updateListeners();\n}\nfunction isWithinResizeHandle(element) {\n let currentElement = element;\n while (currentElement) {\n if (currentElement.hasAttribute(DATA_ATTRIBUTES.resizeHandle)) {\n return true;\n }\n currentElement = currentElement.parentElement;\n }\n return false;\n}\nfunction recalculateIntersectingHandles({\n target,\n x,\n y\n}) {\n intersectingHandles.splice(0);\n let targetElement = null;\n if (target instanceof HTMLElement || target instanceof SVGElement) {\n targetElement = target;\n }\n registeredResizeHandlers.forEach(data => {\n const {\n element: dragHandleElement,\n hitAreaMargins\n } = data;\n const dragHandleRect = dragHandleElement.getBoundingClientRect();\n const {\n bottom,\n left,\n right,\n top\n } = dragHandleRect;\n const margin = isCoarsePointer ? hitAreaMargins.coarse : hitAreaMargins.fine;\n const eventIntersects = x >= left - margin && x <= right + margin && y >= top - margin && y <= bottom + margin;\n if (eventIntersects) {\n // TRICKY\n // We listen for pointers events at the root in order to support hit area margins\n // (determining when the pointer is close enough to an element to be considered a \"hit\")\n // Clicking on an element \"above\" a handle (e.g. a modal) should prevent a hit though\n // so at this point we need to compare stacking order of a potentially intersecting drag handle,\n // and the element that was actually clicked/touched\n if (targetElement !== null && document.contains(targetElement) && dragHandleElement !== targetElement && !dragHandleElement.contains(targetElement) && !targetElement.contains(dragHandleElement) &&\n // Calculating stacking order has a cost, so we should avoid it if possible\n // That is why we only check potentially intersecting handles,\n // and why we skip if the event target is within the handle's DOM\n compare(targetElement, dragHandleElement) > 0) {\n // If the target is above the drag handle, then we also need to confirm they overlap\n // If they are beside each other (e.g. a panel and its drag handle) then the handle is still interactive\n //\n // It's not enough to compare only the target\n // The target might be a small element inside of a larger container\n // (For example, a SPAN or a DIV inside of a larger modal dialog)\n let currentElement = targetElement;\n let didIntersect = false;\n while (currentElement) {\n if (currentElement.contains(dragHandleElement)) {\n break;\n } else if (intersects(currentElement.getBoundingClientRect(), dragHandleRect, true)) {\n didIntersect = true;\n break;\n }\n currentElement = currentElement.parentElement;\n }\n if (didIntersect) {\n return;\n }\n }\n intersectingHandles.push(data);\n }\n });\n}\nfunction reportConstraintsViolation(resizeHandleId, flag) {\n panelConstraintFlags.set(resizeHandleId, flag);\n}\nfunction updateCursor() {\n let intersectsHorizontal = false;\n let intersectsVertical = false;\n intersectingHandles.forEach(data => {\n const {\n direction\n } = data;\n if (direction === \"horizontal\") {\n intersectsHorizontal = true;\n } else {\n intersectsVertical = true;\n }\n });\n let constraintFlags = 0;\n panelConstraintFlags.forEach(flag => {\n constraintFlags |= flag;\n });\n if (intersectsHorizontal && intersectsVertical) {\n setGlobalCursorStyle(\"intersection\", constraintFlags);\n } else if (intersectsHorizontal) {\n setGlobalCursorStyle(\"horizontal\", constraintFlags);\n } else if (intersectsVertical) {\n setGlobalCursorStyle(\"vertical\", constraintFlags);\n } else {\n resetGlobalCursorStyle();\n }\n}\nlet listenersAbortController = new AbortController();\nfunction updateListeners() {\n listenersAbortController.abort();\n listenersAbortController = new AbortController();\n const options = {\n capture: true,\n signal: listenersAbortController.signal\n };\n if (!registeredResizeHandlers.size) {\n return;\n }\n if (isPointerDown) {\n if (intersectingHandles.length > 0) {\n ownerDocumentCounts.forEach((count, ownerDocument) => {\n const {\n body\n } = ownerDocument;\n if (count > 0) {\n body.addEventListener(\"contextmenu\", handlePointerUp, options);\n body.addEventListener(\"pointerleave\", handlePointerMove, options);\n body.addEventListener(\"pointermove\", handlePointerMove, options);\n }\n });\n }\n window.addEventListener(\"pointerup\", handlePointerUp, options);\n window.addEventListener(\"pointercancel\", handlePointerUp, options);\n } else {\n ownerDocumentCounts.forEach((count, ownerDocument) => {\n const {\n body\n } = ownerDocument;\n if (count > 0) {\n body.addEventListener(\"pointerdown\", handlePointerDown, options);\n body.addEventListener(\"pointermove\", handlePointerMove, options);\n }\n });\n }\n}\nfunction updateResizeHandlerStates(action, event) {\n registeredResizeHandlers.forEach(data => {\n const {\n setResizeHandlerState\n } = data;\n const isActive = intersectingHandles.includes(data);\n setResizeHandlerState(action, isActive, event);\n });\n}\n\nfunction useForceUpdate() {\n const [_, setCount] = useState(0);\n return useCallback(() => setCount(prevCount => prevCount + 1), []);\n}\n\nfunction assert(expectedCondition, message) {\n if (!expectedCondition) {\n console.error(message);\n throw Error(message);\n }\n}\n\nfunction fuzzyCompareNumbers(actual, expected, fractionDigits = PRECISION) {\n if (actual.toFixed(fractionDigits) === expected.toFixed(fractionDigits)) {\n return 0;\n } else {\n return actual > expected ? 1 : -1;\n }\n}\nfunction fuzzyNumbersEqual$1(actual, expected, fractionDigits = PRECISION) {\n return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;\n}\n\nfunction fuzzyNumbersEqual(actual, expected, fractionDigits) {\n return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;\n}\n\nfunction fuzzyLayoutsEqual(actual, expected, fractionDigits) {\n if (actual.length !== expected.length) {\n return false;\n }\n for (let index = 0; index < actual.length; index++) {\n const actualSize = actual[index];\n const expectedSize = expected[index];\n if (!fuzzyNumbersEqual(actualSize, expectedSize, fractionDigits)) {\n return false;\n }\n }\n return true;\n}\n\n// Panel size must be in percentages; pixel values should be pre-converted\nfunction resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex,\n size\n}) {\n const panelConstraints = panelConstraintsArray[panelIndex];\n assert(panelConstraints != null, `Panel constraints not found for index ${panelIndex}`);\n let {\n collapsedSize = 0,\n collapsible,\n maxSize = 100,\n minSize = 0\n } = panelConstraints;\n if (fuzzyCompareNumbers(size, minSize) < 0) {\n if (collapsible) {\n // Collapsible panels should snap closed or open only once they cross the halfway point between collapsed and min size.\n const halfwayPoint = (collapsedSize + minSize) / 2;\n if (fuzzyCompareNumbers(size, halfwayPoint) < 0) {\n size = collapsedSize;\n } else {\n size = minSize;\n }\n } else {\n size = minSize;\n }\n }\n size = Math.min(maxSize, size);\n size = parseFloat(size.toFixed(PRECISION));\n return size;\n}\n\n// All units must be in percentages; pixel values should be pre-converted\nfunction adjustLayoutByDelta({\n delta,\n initialLayout,\n panelConstraints: panelConstraintsArray,\n pivotIndices,\n prevLayout,\n trigger\n}) {\n if (fuzzyNumbersEqual(delta, 0)) {\n return initialLayout;\n }\n const nextLayout = [...initialLayout];\n const [firstPivotIndex, secondPivotIndex] = pivotIndices;\n assert(firstPivotIndex != null, \"Invalid first pivot index\");\n assert(secondPivotIndex != null, \"Invalid second pivot index\");\n let deltaApplied = 0;\n\n // const DEBUG = [];\n // DEBUG.push(`adjustLayoutByDelta()`);\n // DEBUG.push(` initialLayout: ${initialLayout.join(\", \")}`);\n // DEBUG.push(` prevLayout: ${prevLayout.join(\", \")}`);\n // DEBUG.push(` delta: ${delta}`);\n // DEBUG.push(` pivotIndices: ${pivotIndices.join(\", \")}`);\n // DEBUG.push(` trigger: ${trigger}`);\n // DEBUG.push(\"\");\n\n // A resizing panel affects the panels before or after it.\n //\n // A negative delta means the panel(s) immediately after the resize handle should grow/expand by decreasing its offset.\n // Other panels may also need to shrink/contract (and shift) to make room, depending on the min weights.\n //\n // A positive delta means the panel(s) immediately before the resize handle should \"expand\".\n // This is accomplished by shrinking/contracting (and shifting) one or more of the panels after the resize handle.\n\n {\n // If this is a resize triggered by a keyboard event, our logic for expanding/collapsing is different.\n // We no longer check the halfway threshold because this may prevent the panel from expanding at all.\n if (trigger === \"keyboard\") {\n {\n // Check if we should expand a collapsed panel\n const index = delta < 0 ? secondPivotIndex : firstPivotIndex;\n const panelConstraints = panelConstraintsArray[index];\n assert(panelConstraints, `Panel constraints not found for index ${index}`);\n const {\n collapsedSize = 0,\n collapsible,\n minSize = 0\n } = panelConstraints;\n\n // DEBUG.push(`edge case check 1: ${index}`);\n // DEBUG.push(` -> collapsible? ${collapsible}`);\n if (collapsible) {\n const prevSize = initialLayout[index];\n assert(prevSize != null, `Previous layout not found for panel index ${index}`);\n if (fuzzyNumbersEqual(prevSize, collapsedSize)) {\n const localDelta = minSize - prevSize;\n // DEBUG.push(` -> expand delta: ${localDelta}`);\n\n if (fuzzyCompareNumbers(localDelta, Math.abs(delta)) > 0) {\n delta = delta < 0 ? 0 - localDelta : localDelta;\n // DEBUG.push(` -> delta: ${delta}`);\n }\n }\n }\n }\n\n {\n // Check if we should collapse a panel at its minimum size\n const index = delta < 0 ? firstPivotIndex : secondPivotIndex;\n const panelConstraints = panelConstraintsArray[index];\n assert(panelConstraints, `No panel constraints found for index ${index}`);\n const {\n collapsedSize = 0,\n collapsible,\n minSize = 0\n } = panelConstraints;\n\n // DEBUG.push(`edge case check 2: ${index}`);\n // DEBUG.push(` -> collapsible? ${collapsible}`);\n if (collapsible) {\n const prevSize = initialLayout[index];\n assert(prevSize != null, `Previous layout not found for panel index ${index}`);\n if (fuzzyNumbersEqual(prevSize, minSize)) {\n const localDelta = prevSize - collapsedSize;\n // DEBUG.push(` -> expand delta: ${localDelta}`);\n\n if (fuzzyCompareNumbers(localDelta, Math.abs(delta)) > 0) {\n delta = delta < 0 ? 0 - localDelta : localDelta;\n // DEBUG.push(` -> delta: ${delta}`);\n }\n }\n }\n }\n }\n // DEBUG.push(\"\");\n }\n\n {\n // Pre-calculate max available delta in the opposite direction of our pivot.\n // This will be the maximum amount we're allowed to expand/contract the panels in the primary direction.\n // If this amount is less than the requested delta, adjust the requested delta.\n // If this amount is greater than the requested delta, that's useful information too–\n // as an expanding panel might change from collapsed to min size.\n\n const increment = delta < 0 ? 1 : -1;\n let index = delta < 0 ? secondPivotIndex : firstPivotIndex;\n let maxAvailableDelta = 0;\n\n // DEBUG.push(\"pre calc...\");\n while (true) {\n const prevSize = initialLayout[index];\n assert(prevSize != null, `Previous layout not found for panel index ${index}`);\n const maxSafeSize = resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex: index,\n size: 100\n });\n const delta = maxSafeSize - prevSize;\n // DEBUG.push(` ${index}: ${prevSize} -> ${maxSafeSize}`);\n\n maxAvailableDelta += delta;\n index += increment;\n if (index < 0 || index >= panelConstraintsArray.length) {\n break;\n }\n }\n\n // DEBUG.push(` -> max available delta: ${maxAvailableDelta}`);\n const minAbsDelta = Math.min(Math.abs(delta), Math.abs(maxAvailableDelta));\n delta = delta < 0 ? 0 - minAbsDelta : minAbsDelta;\n // DEBUG.push(` -> adjusted delta: ${delta}`);\n // DEBUG.push(\"\");\n }\n\n {\n // Delta added to a panel needs to be subtracted from other panels (within the constraints that those panels allow).\n\n const pivotIndex = delta < 0 ? firstPivotIndex : secondPivotIndex;\n let index = pivotIndex;\n while (index >= 0 && index < panelConstraintsArray.length) {\n const deltaRemaining = Math.abs(delta) - Math.abs(deltaApplied);\n const prevSize = initialLayout[index];\n assert(prevSize != null, `Previous layout not found for panel index ${index}`);\n const unsafeSize = prevSize - deltaRemaining;\n const safeSize = resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex: index,\n size: unsafeSize\n });\n if (!fuzzyNumbersEqual(prevSize, safeSize)) {\n deltaApplied += prevSize - safeSize;\n nextLayout[index] = safeSize;\n if (deltaApplied.toPrecision(3).localeCompare(Math.abs(delta).toPrecision(3), undefined, {\n numeric: true\n }) >= 0) {\n break;\n }\n }\n if (delta < 0) {\n index--;\n } else {\n index++;\n }\n }\n }\n // DEBUG.push(`after 1: ${nextLayout.join(\", \")}`);\n // DEBUG.push(` deltaApplied: ${deltaApplied}`);\n // DEBUG.push(\"\");\n\n // If we were unable to resize any of the panels panels, return the previous state.\n // This will essentially bailout and ignore e.g. drags past a panel's boundaries\n if (fuzzyLayoutsEqual(prevLayout, nextLayout)) {\n // DEBUG.push(`bailout to previous layout: ${prevLayout.join(\", \")}`);\n // console.log(DEBUG.join(\"\\n\"));\n\n return prevLayout;\n }\n {\n // Now distribute the applied delta to the panels in the other direction\n const pivotIndex = delta < 0 ? secondPivotIndex : firstPivotIndex;\n const prevSize = initialLayout[pivotIndex];\n assert(prevSize != null, `Previous layout not found for panel index ${pivotIndex}`);\n const unsafeSize = prevSize + deltaApplied;\n const safeSize = resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex: pivotIndex,\n size: unsafeSize\n });\n\n // Adjust the pivot panel before, but only by the amount that surrounding panels were able to shrink/contract.\n nextLayout[pivotIndex] = safeSize;\n\n // Edge case where expanding or contracting one panel caused another one to change collapsed state\n if (!fuzzyNumbersEqual(safeSize, unsafeSize)) {\n let deltaRemaining = unsafeSize - safeSize;\n const pivotIndex = delta < 0 ? secondPivotIndex : firstPivotIndex;\n let index = pivotIndex;\n while (index >= 0 && index < panelConstraintsArray.length) {\n const prevSize = nextLayout[index];\n assert(prevSize != null, `Previous layout not found for panel index ${index}`);\n const unsafeSize = prevSize + deltaRemaining;\n const safeSize = resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex: index,\n size: unsafeSize\n });\n if (!fuzzyNumbersEqual(prevSize, safeSize)) {\n deltaRemaining -= safeSize - prevSize;\n nextLayout[index] = safeSize;\n }\n if (fuzzyNumbersEqual(deltaRemaining, 0)) {\n break;\n }\n if (delta > 0) {\n index--;\n } else {\n index++;\n }\n }\n }\n }\n // DEBUG.push(`after 2: ${nextLayout.join(\", \")}`);\n // DEBUG.push(` deltaApplied: ${deltaApplied}`);\n // DEBUG.push(\"\");\n\n const totalSize = nextLayout.reduce((total, size) => size + total, 0);\n // DEBUG.push(`total size: ${totalSize}`);\n\n // If our new layout doesn't add up to 100%, that means the requested delta can't be applied\n // In that case, fall back to our most recent valid layout\n if (!fuzzyNumbersEqual(totalSize, 100)) {\n // DEBUG.push(`bailout to previous layout: ${prevLayout.join(\", \")}`);\n // console.log(DEBUG.join(\"\\n\"));\n\n return prevLayout;\n }\n\n // console.log(DEBUG.join(\"\\n\"));\n return nextLayout;\n}\n\nfunction calculateAriaValues({\n layout,\n panelsArray,\n pivotIndices\n}) {\n let currentMinSize = 0;\n let currentMaxSize = 100;\n let totalMinSize = 0;\n let totalMaxSize = 0;\n const firstIndex = pivotIndices[0];\n assert(firstIndex != null, \"No pivot index found\");\n\n // A panel's effective min/max sizes also need to account for other panel's sizes.\n panelsArray.forEach((panelData, index) => {\n const {\n constraints\n } = panelData;\n const {\n maxSize = 100,\n minSize = 0\n } = constraints;\n if (index === firstIndex) {\n currentMinSize = minSize;\n currentMaxSize = maxSize;\n } else {\n totalMinSize += minSize;\n totalMaxSize += maxSize;\n }\n });\n const valueMax = Math.min(currentMaxSize, 100 - totalMinSize);\n const valueMin = Math.max(currentMinSize, 100 - totalMaxSize);\n const valueNow = layout[firstIndex];\n return {\n valueMax,\n valueMin,\n valueNow\n };\n}\n\nfunction getResizeHandleElementsForGroup(groupId, scope = document) {\n return Array.from(scope.querySelectorAll(`[${DATA_ATTRIBUTES.resizeHandleId}][data-panel-group-id=\"${groupId}\"]`));\n}\n\nfunction getResizeHandleElementIndex(groupId, id, scope = document) {\n const handles = getResizeHandleElementsForGroup(groupId, scope);\n const index = handles.findIndex(handle => handle.getAttribute(DATA_ATTRIBUTES.resizeHandleId) === id);\n return index !== null && index !== void 0 ? index : null;\n}\n\nfunction determinePivotIndices(groupId, dragHandleId, panelGroupElement) {\n const index = getResizeHandleElementIndex(groupId, dragHandleId, panelGroupElement);\n return index != null ? [index, index + 1] : [-1, -1];\n}\n\nfunction getPanelGroupElement(id, rootElement = document) {\n var _dataset;\n //If the root element is the PanelGroup\n if (rootElement instanceof HTMLElement && (rootElement === null || rootElement === void 0 ? void 0 : (_dataset = rootElement.dataset) === null || _dataset === void 0 ? void 0 : _dataset.panelGroupId) == id) {\n return rootElement;\n }\n\n //Else query children\n const element = rootElement.querySelector(`[data-panel-group][data-panel-group-id=\"${id}\"]`);\n if (element) {\n return element;\n }\n return null;\n}\n\nfunction getResizeHandleElement(id, scope = document) {\n const element = scope.querySelector(`[${DATA_ATTRIBUTES.resizeHandleId}=\"${id}\"]`);\n if (element) {\n return element;\n }\n return null;\n}\n\nfunction getResizeHandlePanelIds(groupId, handleId, panelsArray, scope = document) {\n var _panelsArray$index$id, _panelsArray$index, _panelsArray$id, _panelsArray;\n const handle = getResizeHandleElement(handleId, scope);\n const handles = getResizeHandleElementsForGroup(groupId, scope);\n const index = handle ? handles.indexOf(handle) : -1;\n const idBefore = (_panelsArray$index$id = (_panelsArray$index = panelsArray[index]) === null || _panelsArray$index === void 0 ? void 0 : _panelsArray$index.id) !== null && _panelsArray$index$id !== void 0 ? _panelsArray$index$id : null;\n const idAfter = (_panelsArray$id = (_panelsArray = panelsArray[index + 1]) === null || _panelsArray === void 0 ? void 0 : _panelsArray.id) !== null && _panelsArray$id !== void 0 ? _panelsArray$id : null;\n return [idBefore, idAfter];\n}\n\n// https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/\n\nfunction useWindowSplitterPanelGroupBehavior({\n committedValuesRef,\n eagerValuesRef,\n groupId,\n layout,\n panelDataArray,\n panelGroupElement,\n setLayout\n}) {\n useRef({\n didWarnAboutMissingResizeHandle: false\n });\n useIsomorphicLayoutEffect(() => {\n if (!panelGroupElement) {\n return;\n }\n const resizeHandleElements = getResizeHandleElementsForGroup(groupId, panelGroupElement);\n for (let index = 0; index < panelDataArray.length - 1; index++) {\n const {\n valueMax,\n valueMin,\n valueNow\n } = calculateAriaValues({\n layout,\n panelsArray: panelDataArray,\n pivotIndices: [index, index + 1]\n });\n const resizeHandleElement = resizeHandleElements[index];\n if (resizeHandleElement == null) ; else {\n const panelData = panelDataArray[index];\n assert(panelData, `No panel data found for index \"${index}\"`);\n resizeHandleElement.setAttribute(\"aria-controls\", panelData.id);\n resizeHandleElement.setAttribute(\"aria-valuemax\", \"\" + Math.round(valueMax));\n resizeHandleElement.setAttribute(\"aria-valuemin\", \"\" + Math.round(valueMin));\n resizeHandleElement.setAttribute(\"aria-valuenow\", valueNow != null ? \"\" + Math.round(valueNow) : \"\");\n }\n }\n return () => {\n resizeHandleElements.forEach((resizeHandleElement, index) => {\n resizeHandleElement.removeAttribute(\"aria-controls\");\n resizeHandleElement.removeAttribute(\"aria-valuemax\");\n resizeHandleElement.removeAttribute(\"aria-valuemin\");\n resizeHandleElement.removeAttribute(\"aria-valuenow\");\n });\n };\n }, [groupId, layout, panelDataArray, panelGroupElement]);\n useEffect(() => {\n if (!panelGroupElement) {\n return;\n }\n const eagerValues = eagerValuesRef.current;\n assert(eagerValues, `Eager values not found`);\n const {\n panelDataArray\n } = eagerValues;\n const groupElement = getPanelGroupElement(groupId, panelGroupElement);\n assert(groupElement != null, `No group found for id \"${groupId}\"`);\n const handles = getResizeHandleElementsForGroup(groupId, panelGroupElement);\n assert(handles, `No resize handles found for group id \"${groupId}\"`);\n const cleanupFunctions = handles.map(handle => {\n const handleId = handle.getAttribute(DATA_ATTRIBUTES.resizeHandleId);\n assert(handleId, `Resize handle element has no handle id attribute`);\n const [idBefore, idAfter] = getResizeHandlePanelIds(groupId, handleId, panelDataArray, panelGroupElement);\n if (idBefore == null || idAfter == null) {\n return () => {};\n }\n const onKeyDown = event => {\n if (event.defaultPrevented) {\n return;\n }\n switch (event.key) {\n case \"Enter\":\n {\n event.preventDefault();\n const index = panelDataArray.findIndex(panelData => panelData.id === idBefore);\n if (index >= 0) {\n const panelData = panelDataArray[index];\n assert(panelData, `No panel data found for index ${index}`);\n const size = layout[index];\n const {\n collapsedSize = 0,\n collapsible,\n minSize = 0\n } = panelData.constraints;\n if (size != null && collapsible) {\n const nextLayout = adjustLayoutByDelta({\n delta: fuzzyNumbersEqual(size, collapsedSize) ? minSize - collapsedSize : collapsedSize - size,\n initialLayout: layout,\n panelConstraints: panelDataArray.map(panelData => panelData.constraints),\n pivotIndices: determinePivotIndices(groupId, handleId, panelGroupElement),\n prevLayout: layout,\n trigger: \"keyboard\"\n });\n if (layout !== nextLayout) {\n setLayout(nextLayout);\n }\n }\n }\n break;\n }\n }\n };\n handle.addEventListener(\"keydown\", onKeyDown);\n return () => {\n handle.removeEventListener(\"keydown\", onKeyDown);\n };\n });\n return () => {\n cleanupFunctions.forEach(cleanupFunction => cleanupFunction());\n };\n }, [panelGroupElement, committedValuesRef, eagerValuesRef, groupId, layout, panelDataArray, setLayout]);\n}\n\nfunction areEqual(arrayA, arrayB) {\n if (arrayA.length !== arrayB.length) {\n return false;\n }\n for (let index = 0; index < arrayA.length; index++) {\n if (arrayA[index] !== arrayB[index]) {\n return false;\n }\n }\n return true;\n}\n\nfunction getResizeEventCursorPosition(direction, event) {\n const isHorizontal = direction === \"horizontal\";\n const {\n x,\n y\n } = getResizeEventCoordinates(event);\n return isHorizontal ? x : y;\n}\n\nfunction calculateDragOffsetPercentage(event, dragHandleId, direction, initialDragState, panelGroupElement) {\n const isHorizontal = direction === \"horizontal\";\n const handleElement = getResizeHandleElement(dragHandleId, panelGroupElement);\n assert(handleElement, `No resize handle element found for id \"${dragHandleId}\"`);\n const groupId = handleElement.getAttribute(DATA_ATTRIBUTES.groupId);\n assert(groupId, `Resize handle element has no group id attribute`);\n let {\n initialCursorPosition\n } = initialDragState;\n const cursorPosition = getResizeEventCursorPosition(direction, event);\n const groupElement = getPanelGroupElement(groupId, panelGroupElement);\n assert(groupElement, `No group element found for id \"${groupId}\"`);\n const groupRect = groupElement.getBoundingClientRect();\n const groupSizeInPixels = isHorizontal ? groupRect.width : groupRect.height;\n const offsetPixels = cursorPosition - initialCursorPosition;\n const offsetPercentage = offsetPixels / groupSizeInPixels * 100;\n return offsetPercentage;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/movementX\nfunction calculateDeltaPercentage(event, dragHandleId, direction, initialDragState, keyboardResizeBy, panelGroupElement) {\n if (isKeyDown(event)) {\n const isHorizontal = direction === \"horizontal\";\n let delta = 0;\n if (event.shiftKey) {\n delta = 100;\n } else if (keyboardResizeBy != null) {\n delta = keyboardResizeBy;\n } else {\n delta = 10;\n }\n let movement = 0;\n switch (event.key) {\n case \"ArrowDown\":\n movement = isHorizontal ? 0 : delta;\n break;\n case \"ArrowLeft\":\n movement = isHorizontal ? -delta : 0;\n break;\n case \"ArrowRight\":\n movement = isHorizontal ? delta : 0;\n break;\n case \"ArrowUp\":\n movement = isHorizontal ? 0 : -delta;\n break;\n case \"End\":\n movement = 100;\n break;\n case \"Home\":\n movement = -100;\n break;\n }\n return movement;\n } else {\n if (initialDragState == null) {\n return 0;\n }\n return calculateDragOffsetPercentage(event, dragHandleId, direction, initialDragState, panelGroupElement);\n }\n}\n\nfunction calculateUnsafeDefaultLayout({\n panelDataArray\n}) {\n const layout = Array(panelDataArray.length);\n const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);\n let numPanelsWithSizes = 0;\n let remainingSize = 100;\n\n // Distribute default sizes first\n for (let index = 0; index < panelDataArray.length; index++) {\n const panelConstraints = panelConstraintsArray[index];\n assert(panelConstraints, `Panel constraints not found for index ${index}`);\n const {\n defaultSize\n } = panelConstraints;\n if (defaultSize != null) {\n numPanelsWithSizes++;\n layout[index] = defaultSize;\n remainingSize -= defaultSize;\n }\n }\n\n // Remaining size should be distributed evenly between panels without default sizes\n for (let index = 0; index < panelDataArray.length; index++) {\n const panelConstraints = panelConstraintsArray[index];\n assert(panelConstraints, `Panel constraints not found for index ${index}`);\n const {\n defaultSize\n } = panelConstraints;\n if (defaultSize != null) {\n continue;\n }\n const numRemainingPanels = panelDataArray.length - numPanelsWithSizes;\n const size = remainingSize / numRemainingPanels;\n numPanelsWithSizes++;\n layout[index] = size;\n remainingSize -= size;\n }\n return layout;\n}\n\n// Layout should be pre-converted into percentages\nfunction callPanelCallbacks(panelsArray, layout, panelIdToLastNotifiedSizeMap) {\n layout.forEach((size, index) => {\n const panelData = panelsArray[index];\n assert(panelData, `Panel data not found for index ${index}`);\n const {\n callbacks,\n constraints,\n id: panelId\n } = panelData;\n const {\n collapsedSize = 0,\n collapsible\n } = constraints;\n const lastNotifiedSize = panelIdToLastNotifiedSizeMap[panelId];\n if (lastNotifiedSize == null || size !== lastNotifiedSize) {\n panelIdToLastNotifiedSizeMap[panelId] = size;\n const {\n onCollapse,\n onExpand,\n onResize\n } = callbacks;\n if (onResize) {\n onResize(size, lastNotifiedSize);\n }\n if (collapsible && (onCollapse || onExpand)) {\n if (onExpand && (lastNotifiedSize == null || fuzzyNumbersEqual$1(lastNotifiedSize, collapsedSize)) && !fuzzyNumbersEqual$1(size, collapsedSize)) {\n onExpand();\n }\n if (onCollapse && (lastNotifiedSize == null || !fuzzyNumbersEqual$1(lastNotifiedSize, collapsedSize)) && fuzzyNumbersEqual$1(size, collapsedSize)) {\n onCollapse();\n }\n }\n }\n });\n}\n\nfunction compareLayouts(a, b) {\n if (a.length !== b.length) {\n return false;\n } else {\n for (let index = 0; index < a.length; index++) {\n if (a[index] != b[index]) {\n return false;\n }\n }\n }\n return true;\n}\n\n// This method returns a number between 1 and 100 representing\n\n// the % of the group's overall space this panel should occupy.\nfunction computePanelFlexBoxStyle({\n defaultSize,\n dragState,\n layout,\n panelData,\n panelIndex,\n precision = 3\n}) {\n const size = layout[panelIndex];\n let flexGrow;\n if (size == null) {\n // Initial render (before panels have registered themselves)\n // In order to support server rendering, fall back to default size if provided\n flexGrow = defaultSize != undefined ? defaultSize.toPrecision(precision) : \"1\";\n } else if (panelData.length === 1) {\n // Special case: Single panel group should always fill full width/height\n flexGrow = \"1\";\n } else {\n flexGrow = size.toPrecision(precision);\n }\n return {\n flexBasis: 0,\n flexGrow,\n flexShrink: 1,\n // Without this, Panel sizes may be unintentionally overridden by their content\n overflow: \"hidden\",\n // Disable pointer events inside of a panel during resize\n // This avoid edge cases like nested iframes\n pointerEvents: dragState !== null ? \"none\" : undefined\n };\n}\n\nfunction debounce(callback, durationMs = 10) {\n let timeoutId = null;\n let callable = (...args) => {\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n callback(...args);\n }, durationMs);\n };\n return callable;\n}\n\n// PanelGroup might be rendering in a server-side environment where localStorage is not available\n// or on a browser with cookies/storage disabled.\n// In either case, this function avoids accessing localStorage until needed,\n// and avoids throwing user-visible errors.\nfunction initializeDefaultStorage(storageObject) {\n try {\n if (typeof localStorage !== \"undefined\") {\n // Bypass this check for future calls\n storageObject.getItem = name => {\n return localStorage.getItem(name);\n };\n storageObject.setItem = (name, value) => {\n localStorage.setItem(name, value);\n };\n } else {\n throw new Error(\"localStorage not supported in this environment\");\n }\n } catch (error) {\n console.error(error);\n storageObject.getItem = () => null;\n storageObject.setItem = () => {};\n }\n}\n\nfunction getPanelGroupKey(autoSaveId) {\n return `react-resizable-panels:${autoSaveId}`;\n}\n\n// Note that Panel ids might be user-provided (stable) or useId generated (non-deterministic)\n// so they should not be used as part of the serialization key.\n// Using the min/max size attributes should work well enough as a backup.\n// Pre-sorting by minSize allows remembering layouts even if panels are re-ordered/dragged.\nfunction getPanelKey(panels) {\n return panels.map(panel => {\n const {\n constraints,\n id,\n idIsFromProps,\n order\n } = panel;\n if (idIsFromProps) {\n return id;\n } else {\n return order ? `${order}:${JSON.stringify(constraints)}` : JSON.stringify(constraints);\n }\n }).sort((a, b) => a.localeCompare(b)).join(\",\");\n}\nfunction loadSerializedPanelGroupState(autoSaveId, storage) {\n try {\n const panelGroupKey = getPanelGroupKey(autoSaveId);\n const serialized = storage.getItem(panelGroupKey);\n if (serialized) {\n const parsed = JSON.parse(serialized);\n if (typeof parsed === \"object\" && parsed != null) {\n return parsed;\n }\n }\n } catch (error) {}\n return null;\n}\nfunction loadPanelGroupState(autoSaveId, panels, storage) {\n var _loadSerializedPanelG, _state$panelKey;\n const state = (_loadSerializedPanelG = loadSerializedPanelGroupState(autoSaveId, storage)) !== null && _loadSerializedPanelG !== void 0 ? _loadSerializedPanelG : {};\n const panelKey = getPanelKey(panels);\n return (_state$panelKey = state[panelKey]) !== null && _state$panelKey !== void 0 ? _state$panelKey : null;\n}\nfunction savePanelGroupState(autoSaveId, panels, panelSizesBeforeCollapse, sizes, storage) {\n var _loadSerializedPanelG2;\n const panelGroupKey = getPanelGroupKey(autoSaveId);\n const panelKey = getPanelKey(panels);\n const state = (_loadSerializedPanelG2 = loadSerializedPanelGroupState(autoSaveId, storage)) !== null && _loadSerializedPanelG2 !== void 0 ? _loadSerializedPanelG2 : {};\n state[panelKey] = {\n expandToSizes: Object.fromEntries(panelSizesBeforeCollapse.entries()),\n layout: sizes\n };\n try {\n storage.setItem(panelGroupKey, JSON.stringify(state));\n } catch (error) {\n console.error(error);\n }\n}\n\n// All units must be in percentages; pixel values should be pre-converted\nfunction validatePanelGroupLayout({\n layout: prevLayout,\n panelConstraints\n}) {\n const nextLayout = [...prevLayout];\n const nextLayoutTotalSize = nextLayout.reduce((accumulated, current) => accumulated + current, 0);\n\n // Validate layout expectations\n if (nextLayout.length !== panelConstraints.length) {\n throw Error(`Invalid ${panelConstraints.length} panel layout: ${nextLayout.map(size => `${size}%`).join(\", \")}`);\n } else if (!fuzzyNumbersEqual(nextLayoutTotalSize, 100) && nextLayout.length > 0) {\n for (let index = 0; index < panelConstraints.length; index++) {\n const unsafeSize = nextLayout[index];\n assert(unsafeSize != null, `No layout data found for index ${index}`);\n const safeSize = 100 / nextLayoutTotalSize * unsafeSize;\n nextLayout[index] = safeSize;\n }\n }\n let remainingSize = 0;\n\n // First pass: Validate the proposed layout given each panel's constraints\n for (let index = 0; index < panelConstraints.length; index++) {\n const unsafeSize = nextLayout[index];\n assert(unsafeSize != null, `No layout data found for index ${index}`);\n const safeSize = resizePanel({\n panelConstraints,\n panelIndex: index,\n size: unsafeSize\n });\n if (unsafeSize != safeSize) {\n remainingSize += unsafeSize - safeSize;\n nextLayout[index] = safeSize;\n }\n }\n\n // If there is additional, left over space, assign it to any panel(s) that permits it\n // (It's not worth taking multiple additional passes to evenly distribute)\n if (!fuzzyNumbersEqual(remainingSize, 0)) {\n for (let index = 0; index < panelConstraints.length; index++) {\n const prevSize = nextLayout[index];\n assert(prevSize != null, `No layout data found for index ${index}`);\n const unsafeSize = prevSize + remainingSize;\n const safeSize = resizePanel({\n panelConstraints,\n panelIndex: index,\n size: unsafeSize\n });\n if (prevSize !== safeSize) {\n remainingSize -= safeSize - prevSize;\n nextLayout[index] = safeSize;\n\n // Once we've used up the remainder, bail\n if (fuzzyNumbersEqual(remainingSize, 0)) {\n break;\n }\n }\n }\n }\n return nextLayout;\n}\n\nconst LOCAL_STORAGE_DEBOUNCE_INTERVAL = 100;\nconst defaultStorage = {\n getItem: name => {\n initializeDefaultStorage(defaultStorage);\n return defaultStorage.getItem(name);\n },\n setItem: (name, value) => {\n initializeDefaultStorage(defaultStorage);\n defaultStorage.setItem(name, value);\n }\n};\nconst debounceMap = {};\nfunction PanelGroupWithForwardedRef({\n autoSaveId = null,\n children,\n className: classNameFromProps = \"\",\n direction,\n forwardedRef,\n id: idFromProps = null,\n onLayout = null,\n keyboardResizeBy = null,\n storage = defaultStorage,\n style: styleFromProps,\n tagName: Type = \"div\",\n ...rest\n}) {\n const groupId = useUniqueId(idFromProps);\n const panelGroupElementRef = useRef(null);\n const [dragState, setDragState] = useState(null);\n const [layout, setLayout] = useState([]);\n const forceUpdate = useForceUpdate();\n const panelIdToLastNotifiedSizeMapRef = useRef({});\n const panelSizeBeforeCollapseRef = useRef(new Map());\n const prevDeltaRef = useRef(0);\n const committedValuesRef = useRef({\n autoSaveId,\n direction,\n dragState,\n id: groupId,\n keyboardResizeBy,\n onLayout,\n storage\n });\n const eagerValuesRef = useRef({\n layout,\n panelDataArray: [],\n panelDataArrayChanged: false\n });\n useRef({\n didLogIdAndOrderWarning: false,\n didLogPanelConstraintsWarning: false,\n prevPanelIds: []\n });\n useImperativeHandle(forwardedRef, () => ({\n getId: () => committedValuesRef.current.id,\n getLayout: () => {\n const {\n layout\n } = eagerValuesRef.current;\n return layout;\n },\n setLayout: unsafeLayout => {\n const {\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n const safeLayout = validatePanelGroupLayout({\n layout: unsafeLayout,\n panelConstraints: panelDataArray.map(panelData => panelData.constraints)\n });\n if (!areEqual(prevLayout, safeLayout)) {\n setLayout(safeLayout);\n eagerValuesRef.current.layout = safeLayout;\n if (onLayout) {\n onLayout(safeLayout);\n }\n callPanelCallbacks(panelDataArray, safeLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n }\n }), []);\n useIsomorphicLayoutEffect(() => {\n committedValuesRef.current.autoSaveId = autoSaveId;\n committedValuesRef.current.direction = direction;\n committedValuesRef.current.dragState = dragState;\n committedValuesRef.current.id = groupId;\n committedValuesRef.current.onLayout = onLayout;\n committedValuesRef.current.storage = storage;\n });\n useWindowSplitterPanelGroupBehavior({\n committedValuesRef,\n eagerValuesRef,\n groupId,\n layout,\n panelDataArray: eagerValuesRef.current.panelDataArray,\n setLayout,\n panelGroupElement: panelGroupElementRef.current\n });\n useEffect(() => {\n const {\n panelDataArray\n } = eagerValuesRef.current;\n\n // If this panel has been configured to persist sizing information, save sizes to local storage.\n if (autoSaveId) {\n if (layout.length === 0 || layout.length !== panelDataArray.length) {\n return;\n }\n let debouncedSave = debounceMap[autoSaveId];\n\n // Limit the frequency of localStorage updates.\n if (debouncedSave == null) {\n debouncedSave = debounce(savePanelGroupState, LOCAL_STORAGE_DEBOUNCE_INTERVAL);\n debounceMap[autoSaveId] = debouncedSave;\n }\n\n // Clone mutable data before passing to the debounced function,\n // else we run the risk of saving an incorrect combination of mutable and immutable values to state.\n const clonedPanelDataArray = [...panelDataArray];\n const clonedPanelSizesBeforeCollapse = new Map(panelSizeBeforeCollapseRef.current);\n debouncedSave(autoSaveId, clonedPanelDataArray, clonedPanelSizesBeforeCollapse, layout, storage);\n }\n }, [autoSaveId, layout, storage]);\n\n // DEV warnings\n useEffect(() => {\n });\n\n // External APIs are safe to memoize via committed values ref\n const collapsePanel = useCallback(panelData => {\n const {\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n if (panelData.constraints.collapsible) {\n const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);\n const {\n collapsedSize = 0,\n panelSize,\n pivotIndices\n } = panelDataHelper(panelDataArray, panelData, prevLayout);\n assert(panelSize != null, `Panel size not found for panel \"${panelData.id}\"`);\n if (!fuzzyNumbersEqual$1(panelSize, collapsedSize)) {\n // Store size before collapse;\n // This is the size that gets restored if the expand() API is used.\n panelSizeBeforeCollapseRef.current.set(panelData.id, panelSize);\n const isLastPanel = findPanelDataIndex(panelDataArray, panelData) === panelDataArray.length - 1;\n const delta = isLastPanel ? panelSize - collapsedSize : collapsedSize - panelSize;\n const nextLayout = adjustLayoutByDelta({\n delta,\n initialLayout: prevLayout,\n panelConstraints: panelConstraintsArray,\n pivotIndices,\n prevLayout,\n trigger: \"imperative-api\"\n });\n if (!compareLayouts(prevLayout, nextLayout)) {\n setLayout(nextLayout);\n eagerValuesRef.current.layout = nextLayout;\n if (onLayout) {\n onLayout(nextLayout);\n }\n callPanelCallbacks(panelDataArray, nextLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n }\n }\n }, []);\n\n // External APIs are safe to memoize via committed values ref\n const expandPanel = useCallback((panelData, minSizeOverride) => {\n const {\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n if (panelData.constraints.collapsible) {\n const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);\n const {\n collapsedSize = 0,\n panelSize = 0,\n minSize: minSizeFromProps = 0,\n pivotIndices\n } = panelDataHelper(panelDataArray, panelData, prevLayout);\n const minSize = minSizeOverride !== null && minSizeOverride !== void 0 ? minSizeOverride : minSizeFromProps;\n if (fuzzyNumbersEqual$1(panelSize, collapsedSize)) {\n // Restore this panel to the size it was before it was collapsed, if possible.\n const prevPanelSize = panelSizeBeforeCollapseRef.current.get(panelData.id);\n const baseSize = prevPanelSize != null && prevPanelSize >= minSize ? prevPanelSize : minSize;\n const isLastPanel = findPanelDataIndex(panelDataArray, panelData) === panelDataArray.length - 1;\n const delta = isLastPanel ? panelSize - baseSize : baseSize - panelSize;\n const nextLayout = adjustLayoutByDelta({\n delta,\n initialLayout: prevLayout,\n panelConstraints: panelConstraintsArray,\n pivotIndices,\n prevLayout,\n trigger: \"imperative-api\"\n });\n if (!compareLayouts(prevLayout, nextLayout)) {\n setLayout(nextLayout);\n eagerValuesRef.current.layout = nextLayout;\n if (onLayout) {\n onLayout(nextLayout);\n }\n callPanelCallbacks(panelDataArray, nextLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n }\n }\n }, []);\n\n // External APIs are safe to memoize via committed values ref\n const getPanelSize = useCallback(panelData => {\n const {\n layout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n panelSize\n } = panelDataHelper(panelDataArray, panelData, layout);\n assert(panelSize != null, `Panel size not found for panel \"${panelData.id}\"`);\n return panelSize;\n }, []);\n\n // This API should never read from committedValuesRef\n const getPanelStyle = useCallback((panelData, defaultSize) => {\n const {\n panelDataArray\n } = eagerValuesRef.current;\n const panelIndex = findPanelDataIndex(panelDataArray, panelData);\n return computePanelFlexBoxStyle({\n defaultSize,\n dragState,\n layout,\n panelData: panelDataArray,\n panelIndex\n });\n }, [dragState, layout]);\n\n // External APIs are safe to memoize via committed values ref\n const isPanelCollapsed = useCallback(panelData => {\n const {\n layout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n collapsedSize = 0,\n collapsible,\n panelSize\n } = panelDataHelper(panelDataArray, panelData, layout);\n assert(panelSize != null, `Panel size not found for panel \"${panelData.id}\"`);\n return collapsible === true && fuzzyNumbersEqual$1(panelSize, collapsedSize);\n }, []);\n\n // External APIs are safe to memoize via committed values ref\n const isPanelExpanded = useCallback(panelData => {\n const {\n layout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n collapsedSize = 0,\n collapsible,\n panelSize\n } = panelDataHelper(panelDataArray, panelData, layout);\n assert(panelSize != null, `Panel size not found for panel \"${panelData.id}\"`);\n return !collapsible || fuzzyCompareNumbers(panelSize, collapsedSize) > 0;\n }, []);\n const registerPanel = useCallback(panelData => {\n const {\n panelDataArray\n } = eagerValuesRef.current;\n panelDataArray.push(panelData);\n panelDataArray.sort((panelA, panelB) => {\n const orderA = panelA.order;\n const orderB = panelB.order;\n if (orderA == null && orderB == null) {\n return 0;\n } else if (orderA == null) {\n return -1;\n } else if (orderB == null) {\n return 1;\n } else {\n return orderA - orderB;\n }\n });\n eagerValuesRef.current.panelDataArrayChanged = true;\n forceUpdate();\n }, [forceUpdate]);\n\n // (Re)calculate group layout whenever panels are registered or unregistered.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useIsomorphicLayoutEffect(() => {\n if (eagerValuesRef.current.panelDataArrayChanged) {\n eagerValuesRef.current.panelDataArrayChanged = false;\n const {\n autoSaveId,\n onLayout,\n storage\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n\n // If this panel has been configured to persist sizing information,\n // default size should be restored from local storage if possible.\n let unsafeLayout = null;\n if (autoSaveId) {\n const state = loadPanelGroupState(autoSaveId, panelDataArray, storage);\n if (state) {\n panelSizeBeforeCollapseRef.current = new Map(Object.entries(state.expandToSizes));\n unsafeLayout = state.layout;\n }\n }\n if (unsafeLayout == null) {\n unsafeLayout = calculateUnsafeDefaultLayout({\n panelDataArray\n });\n }\n\n // Validate even saved layouts in case something has changed since last render\n // e.g. for pixel groups, this could be the size of the window\n const nextLayout = validatePanelGroupLayout({\n layout: unsafeLayout,\n panelConstraints: panelDataArray.map(panelData => panelData.constraints)\n });\n if (!areEqual(prevLayout, nextLayout)) {\n setLayout(nextLayout);\n eagerValuesRef.current.layout = nextLayout;\n if (onLayout) {\n onLayout(nextLayout);\n }\n callPanelCallbacks(panelDataArray, nextLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n }\n });\n\n // Reset the cached layout if hidden by the Activity/Offscreen API\n useIsomorphicLayoutEffect(() => {\n const eagerValues = eagerValuesRef.current;\n return () => {\n eagerValues.layout = [];\n };\n }, []);\n const registerResizeHandle = useCallback(dragHandleId => {\n let isRTL = false;\n const panelGroupElement = panelGroupElementRef.current;\n if (panelGroupElement) {\n const style = window.getComputedStyle(panelGroupElement, null);\n if (style.getPropertyValue(\"direction\") === \"rtl\") {\n isRTL = true;\n }\n }\n return function resizeHandler(event) {\n event.preventDefault();\n const panelGroupElement = panelGroupElementRef.current;\n if (!panelGroupElement) {\n return () => null;\n }\n const {\n direction,\n dragState,\n id: groupId,\n keyboardResizeBy,\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n initialLayout\n } = dragState !== null && dragState !== void 0 ? dragState : {};\n const pivotIndices = determinePivotIndices(groupId, dragHandleId, panelGroupElement);\n let delta = calculateDeltaPercentage(event, dragHandleId, direction, dragState, keyboardResizeBy, panelGroupElement);\n const isHorizontal = direction === \"horizontal\";\n if (isHorizontal && isRTL) {\n delta = -delta;\n }\n const panelConstraints = panelDataArray.map(panelData => panelData.constraints);\n const nextLayout = adjustLayoutByDelta({\n delta,\n initialLayout: initialLayout !== null && initialLayout !== void 0 ? initialLayout : prevLayout,\n panelConstraints,\n pivotIndices,\n prevLayout,\n trigger: isKeyDown(event) ? \"keyboard\" : \"mouse-or-touch\"\n });\n const layoutChanged = !compareLayouts(prevLayout, nextLayout);\n\n // Only update the cursor for layout changes triggered by touch/mouse events (not keyboard)\n // Update the cursor even if the layout hasn't changed (we may need to show an invalid cursor state)\n if (isPointerEvent(event) || isMouseEvent(event)) {\n // Watch for multiple subsequent deltas; this might occur for tiny cursor movements.\n // In this case, Panel sizes might not change–\n // but updating cursor in this scenario would cause a flicker.\n if (prevDeltaRef.current != delta) {\n prevDeltaRef.current = delta;\n if (!layoutChanged && delta !== 0) {\n // If the pointer has moved too far to resize the panel any further, note this so we can update the cursor.\n // This mimics VS Code behavior.\n if (isHorizontal) {\n reportConstraintsViolation(dragHandleId, delta < 0 ? EXCEEDED_HORIZONTAL_MIN : EXCEEDED_HORIZONTAL_MAX);\n } else {\n reportConstraintsViolation(dragHandleId, delta < 0 ? EXCEEDED_VERTICAL_MIN : EXCEEDED_VERTICAL_MAX);\n }\n } else {\n reportConstraintsViolation(dragHandleId, 0);\n }\n }\n }\n if (layoutChanged) {\n setLayout(nextLayout);\n eagerValuesRef.current.layout = nextLayout;\n if (onLayout) {\n onLayout(nextLayout);\n }\n callPanelCallbacks(panelDataArray, nextLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n };\n }, []);\n\n // External APIs are safe to memoize via committed values ref\n const resizePanel = useCallback((panelData, unsafePanelSize) => {\n const {\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);\n const {\n panelSize,\n pivotIndices\n } = panelDataHelper(panelDataArray, panelData, prevLayout);\n assert(panelSize != null, `Panel size not found for panel \"${panelData.id}\"`);\n const isLastPanel = findPanelDataIndex(panelDataArray, panelData) === panelDataArray.length - 1;\n const delta = isLastPanel ? panelSize - unsafePanelSize : unsafePanelSize - panelSize;\n const nextLayout = adjustLayoutByDelta({\n delta,\n initialLayout: prevLayout,\n panelConstraints: panelConstraintsArray,\n pivotIndices,\n prevLayout,\n trigger: \"imperative-api\"\n });\n if (!compareLayouts(prevLayout, nextLayout)) {\n setLayout(nextLayout);\n eagerValuesRef.current.layout = nextLayout;\n if (onLayout) {\n onLayout(nextLayout);\n }\n callPanelCallbacks(panelDataArray, nextLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n }, []);\n const reevaluatePanelConstraints = useCallback((panelData, prevConstraints) => {\n const {\n layout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n collapsedSize: prevCollapsedSize = 0,\n collapsible: prevCollapsible\n } = prevConstraints;\n const {\n collapsedSize: nextCollapsedSize = 0,\n collapsible: nextCollapsible,\n maxSize: nextMaxSize = 100,\n minSize: nextMinSize = 0\n } = panelData.constraints;\n const {\n panelSize: prevPanelSize\n } = panelDataHelper(panelDataArray, panelData, layout);\n if (prevPanelSize == null) {\n // It's possible that the panels in this group have changed since the last render\n return;\n }\n if (prevCollapsible && nextCollapsible && fuzzyNumbersEqual$1(prevPanelSize, prevCollapsedSize)) {\n if (!fuzzyNumbersEqual$1(prevCollapsedSize, nextCollapsedSize)) {\n resizePanel(panelData, nextCollapsedSize);\n }\n } else if (prevPanelSize < nextMinSize) {\n resizePanel(panelData, nextMinSize);\n } else if (prevPanelSize > nextMaxSize) {\n resizePanel(panelData, nextMaxSize);\n }\n }, [resizePanel]);\n\n // TODO Multiple drag handles can be active at the same time so this API is a bit awkward now\n const startDragging = useCallback((dragHandleId, event) => {\n const {\n direction\n } = committedValuesRef.current;\n const {\n layout\n } = eagerValuesRef.current;\n if (!panelGroupElementRef.current) {\n return;\n }\n const handleElement = getResizeHandleElement(dragHandleId, panelGroupElementRef.current);\n assert(handleElement, `Drag handle element not found for id \"${dragHandleId}\"`);\n const initialCursorPosition = getResizeEventCursorPosition(direction, event);\n setDragState({\n dragHandleId,\n dragHandleRect: handleElement.getBoundingClientRect(),\n initialCursorPosition,\n initialLayout: layout\n });\n }, []);\n const stopDragging = useCallback(() => {\n setDragState(null);\n }, []);\n const unregisterPanel = useCallback(panelData => {\n const {\n panelDataArray\n } = eagerValuesRef.current;\n const index = findPanelDataIndex(panelDataArray, panelData);\n if (index >= 0) {\n panelDataArray.splice(index, 1);\n\n // TRICKY\n // When a panel is removed from the group, we should delete the most recent prev-size entry for it.\n // If we don't do this, then a conditionally rendered panel might not call onResize when it's re-mounted.\n // Strict effects mode makes this tricky though because all panels will be registered, unregistered, then re-registered on mount.\n delete panelIdToLastNotifiedSizeMapRef.current[panelData.id];\n eagerValuesRef.current.panelDataArrayChanged = true;\n forceUpdate();\n }\n }, [forceUpdate]);\n const context = useMemo(() => ({\n collapsePanel,\n direction,\n dragState,\n expandPanel,\n getPanelSize,\n getPanelStyle,\n groupId,\n isPanelCollapsed,\n isPanelExpanded,\n reevaluatePanelConstraints,\n registerPanel,\n registerResizeHandle,\n resizePanel,\n startDragging,\n stopDragging,\n unregisterPanel,\n panelGroupElement: panelGroupElementRef.current\n }), [collapsePanel, dragState, direction, expandPanel, getPanelSize, getPanelStyle, groupId, isPanelCollapsed, isPanelExpanded, reevaluatePanelConstraints, registerPanel, registerResizeHandle, resizePanel, startDragging, stopDragging, unregisterPanel]);\n const style = {\n display: \"flex\",\n flexDirection: direction === \"horizontal\" ? \"row\" : \"column\",\n height: \"100%\",\n overflow: \"hidden\",\n width: \"100%\"\n };\n return createElement(PanelGroupContext.Provider, {\n value: context\n }, createElement(Type, {\n ...rest,\n children,\n className: classNameFromProps,\n id: idFromProps,\n ref: panelGroupElementRef,\n style: {\n ...style,\n ...styleFromProps\n },\n // CSS selectors\n [DATA_ATTRIBUTES.group]: \"\",\n [DATA_ATTRIBUTES.groupDirection]: direction,\n [DATA_ATTRIBUTES.groupId]: groupId\n }));\n}\nconst PanelGroup = forwardRef((props, ref) => createElement(PanelGroupWithForwardedRef, {\n ...props,\n forwardedRef: ref\n}));\nPanelGroupWithForwardedRef.displayName = \"PanelGroup\";\nPanelGroup.displayName = \"forwardRef(PanelGroup)\";\nfunction findPanelDataIndex(panelDataArray, panelData) {\n return panelDataArray.findIndex(prevPanelData => prevPanelData === panelData || prevPanelData.id === panelData.id);\n}\nfunction panelDataHelper(panelDataArray, panelData, layout) {\n const panelIndex = findPanelDataIndex(panelDataArray, panelData);\n const isLastPanel = panelIndex === panelDataArray.length - 1;\n const pivotIndices = isLastPanel ? [panelIndex - 1, panelIndex] : [panelIndex, panelIndex + 1];\n const panelSize = layout[panelIndex];\n return {\n ...panelData.constraints,\n panelSize,\n pivotIndices\n };\n}\n\n// https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/\n\nfunction useWindowSplitterResizeHandlerBehavior({\n disabled,\n handleId,\n resizeHandler,\n panelGroupElement\n}) {\n useEffect(() => {\n if (disabled || resizeHandler == null || panelGroupElement == null) {\n return;\n }\n const handleElement = getResizeHandleElement(handleId, panelGroupElement);\n if (handleElement == null) {\n return;\n }\n const onKeyDown = event => {\n if (event.defaultPrevented) {\n return;\n }\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowLeft\":\n case \"ArrowRight\":\n case \"ArrowUp\":\n case \"End\":\n case \"Home\":\n {\n event.preventDefault();\n resizeHandler(event);\n break;\n }\n case \"F6\":\n {\n event.preventDefault();\n const groupId = handleElement.getAttribute(DATA_ATTRIBUTES.groupId);\n assert(groupId, `No group element found for id \"${groupId}\"`);\n const handles = getResizeHandleElementsForGroup(groupId, panelGroupElement);\n const index = getResizeHandleElementIndex(groupId, handleId, panelGroupElement);\n assert(index !== null, `No resize element found for id \"${handleId}\"`);\n const nextIndex = event.shiftKey ? index > 0 ? index - 1 : handles.length - 1 : index + 1 < handles.length ? index + 1 : 0;\n const nextHandle = handles[nextIndex];\n nextHandle.focus();\n break;\n }\n }\n };\n handleElement.addEventListener(\"keydown\", onKeyDown);\n return () => {\n handleElement.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [panelGroupElement, disabled, handleId, resizeHandler]);\n}\n\nfunction PanelResizeHandle({\n children = null,\n className: classNameFromProps = \"\",\n disabled = false,\n hitAreaMargins,\n id: idFromProps,\n onBlur,\n onClick,\n onDragging,\n onFocus,\n onPointerDown,\n onPointerUp,\n style: styleFromProps = {},\n tabIndex = 0,\n tagName: Type = \"div\",\n ...rest\n}) {\n var _hitAreaMargins$coars, _hitAreaMargins$fine;\n const elementRef = useRef(null);\n\n // Use a ref to guard against users passing inline props\n const callbacksRef = useRef({\n onClick,\n onDragging,\n onPointerDown,\n onPointerUp\n });\n useEffect(() => {\n callbacksRef.current.onClick = onClick;\n callbacksRef.current.onDragging = onDragging;\n callbacksRef.current.onPointerDown = onPointerDown;\n callbacksRef.current.onPointerUp = onPointerUp;\n });\n const panelGroupContext = useContext(PanelGroupContext);\n if (panelGroupContext === null) {\n throw Error(`PanelResizeHandle components must be rendered within a PanelGroup container`);\n }\n const {\n direction,\n groupId,\n registerResizeHandle: registerResizeHandleWithParentGroup,\n startDragging,\n stopDragging,\n panelGroupElement\n } = panelGroupContext;\n const resizeHandleId = useUniqueId(idFromProps);\n const [state, setState] = useState(\"inactive\");\n const [isFocused, setIsFocused] = useState(false);\n const [resizeHandler, setResizeHandler] = useState(null);\n const committedValuesRef = useRef({\n state\n });\n useIsomorphicLayoutEffect(() => {\n committedValuesRef.current.state = state;\n });\n useEffect(() => {\n if (disabled) {\n setResizeHandler(null);\n } else {\n const resizeHandler = registerResizeHandleWithParentGroup(resizeHandleId);\n setResizeHandler(() => resizeHandler);\n }\n }, [disabled, resizeHandleId, registerResizeHandleWithParentGroup]);\n\n // Extract hit area margins before passing them to the effect's dependency array\n // so that inline object values won't trigger re-renders\n const coarseHitAreaMargins = (_hitAreaMargins$coars = hitAreaMargins === null || hitAreaMargins === void 0 ? void 0 : hitAreaMargins.coarse) !== null && _hitAreaMargins$coars !== void 0 ? _hitAreaMargins$coars : 15;\n const fineHitAreaMargins = (_hitAreaMargins$fine = hitAreaMargins === null || hitAreaMargins === void 0 ? void 0 : hitAreaMargins.fine) !== null && _hitAreaMargins$fine !== void 0 ? _hitAreaMargins$fine : 5;\n useEffect(() => {\n if (disabled || resizeHandler == null) {\n return;\n }\n const element = elementRef.current;\n assert(element, \"Element ref not attached\");\n let didMove = false;\n const setResizeHandlerState = (action, isActive, event) => {\n if (!isActive) {\n setState(\"inactive\");\n return;\n }\n switch (action) {\n case \"down\":\n {\n setState(\"drag\");\n didMove = false;\n assert(event, 'Expected event to be defined for \"down\" action');\n startDragging(resizeHandleId, event);\n const {\n onDragging,\n onPointerDown\n } = callbacksRef.current;\n onDragging === null || onDragging === void 0 ? void 0 : onDragging(true);\n onPointerDown === null || onPointerDown === void 0 ? void 0 : onPointerDown();\n break;\n }\n case \"move\":\n {\n const {\n state\n } = committedValuesRef.current;\n didMove = true;\n if (state !== \"drag\") {\n setState(\"hover\");\n }\n assert(event, 'Expected event to be defined for \"move\" action');\n resizeHandler(event);\n break;\n }\n case \"up\":\n {\n setState(\"hover\");\n stopDragging();\n const {\n onClick,\n onDragging,\n onPointerUp\n } = callbacksRef.current;\n onDragging === null || onDragging === void 0 ? void 0 : onDragging(false);\n onPointerUp === null || onPointerUp === void 0 ? void 0 : onPointerUp();\n if (!didMove) {\n onClick === null || onClick === void 0 ? void 0 : onClick();\n }\n break;\n }\n }\n };\n return registerResizeHandle(resizeHandleId, element, direction, {\n coarse: coarseHitAreaMargins,\n fine: fineHitAreaMargins\n }, setResizeHandlerState);\n }, [coarseHitAreaMargins, direction, disabled, fineHitAreaMargins, registerResizeHandleWithParentGroup, resizeHandleId, resizeHandler, startDragging, stopDragging]);\n useWindowSplitterResizeHandlerBehavior({\n disabled,\n handleId: resizeHandleId,\n resizeHandler,\n panelGroupElement\n });\n const style = {\n touchAction: \"none\",\n userSelect: \"none\"\n };\n return createElement(Type, {\n ...rest,\n children,\n className: classNameFromProps,\n id: idFromProps,\n onBlur: () => {\n setIsFocused(false);\n onBlur === null || onBlur === void 0 ? void 0 : onBlur();\n },\n onFocus: () => {\n setIsFocused(true);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus();\n },\n ref: elementRef,\n role: \"separator\",\n style: {\n ...style,\n ...styleFromProps\n },\n tabIndex,\n // CSS selectors\n [DATA_ATTRIBUTES.groupDirection]: direction,\n [DATA_ATTRIBUTES.groupId]: groupId,\n [DATA_ATTRIBUTES.resizeHandle]: \"\",\n [DATA_ATTRIBUTES.resizeHandleActive]: state === \"drag\" ? \"pointer\" : isFocused ? \"keyboard\" : undefined,\n [DATA_ATTRIBUTES.resizeHandleEnabled]: !disabled,\n [DATA_ATTRIBUTES.resizeHandleId]: resizeHandleId,\n [DATA_ATTRIBUTES.resizeHandleState]: state\n });\n}\nPanelResizeHandle.displayName = \"PanelResizeHandle\";\n\nfunction getPanelElement(id, scope = document) {\n const element = scope.querySelector(`[data-panel-id=\"${id}\"]`);\n if (element) {\n return element;\n }\n return null;\n}\n\nfunction getPanelElementsForGroup(groupId, scope = document) {\n return Array.from(scope.querySelectorAll(`[data-panel][data-panel-group-id=\"${groupId}\"]`));\n}\n\nfunction getIntersectingRectangle(rectOne, rectTwo, strict) {\n if (!intersects(rectOne, rectTwo, strict)) {\n return {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n return {\n x: Math.max(rectOne.x, rectTwo.x),\n y: Math.max(rectOne.y, rectTwo.y),\n width: Math.min(rectOne.x + rectOne.width, rectTwo.x + rectTwo.width) - Math.max(rectOne.x, rectTwo.x),\n height: Math.min(rectOne.y + rectOne.height, rectTwo.y + rectTwo.height) - Math.max(rectOne.y, rectTwo.y)\n };\n}\n\nexport { DATA_ATTRIBUTES, Panel, PanelGroup, PanelResizeHandle, assert, disableGlobalCursorStyles, enableGlobalCursorStyles, getIntersectingRectangle, getPanelElement, getPanelElementsForGroup, getPanelGroupElement, getResizeHandleElement, getResizeHandleElementIndex, getResizeHandleElementsForGroup, getResizeHandlePanelIds, intersects, setNonce };\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'Inter', 'Inter Fallback'\",\"fontStyle\":\"normal\"},\"className\":\"__className_ef9af1\"};","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Bookmark\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTkgMjEtNy00LTcgNFY1YTIgMiAwIDAgMSAyLTJoMTBhMiAyIDAgMCAxIDIgMnYxNnoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/bookmark\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Bookmark = createLucideIcon('Bookmark', [\n ['path', { d: 'm19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z', key: '1fy3hk' }],\n]);\n\nexport default Bookmark;\n","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Settings\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIuMjIgMmgtLjQ0YTIgMiAwIDAgMC0yIDJ2LjE4YTIgMiAwIDAgMS0xIDEuNzNsLS40My4yNWEyIDIgMCAwIDEtMiAwbC0uMTUtLjA4YTIgMiAwIDAgMC0yLjczLjczbC0uMjIuMzhhMiAyIDAgMCAwIC43MyAyLjczbC4xNS4xYTIgMiAwIDAgMSAxIDEuNzJ2LjUxYTIgMiAwIDAgMS0xIDEuNzRsLS4xNS4wOWEyIDIgMCAwIDAtLjczIDIuNzNsLjIyLjM4YTIgMiAwIDAgMCAyLjczLjczbC4xNS0uMDhhMiAyIDAgMCAxIDIgMGwuNDMuMjVhMiAyIDAgMCAxIDEgMS43M1YyMGEyIDIgMCAwIDAgMiAyaC40NGEyIDIgMCAwIDAgMi0ydi0uMThhMiAyIDAgMCAxIDEtMS43M2wuNDMtLjI1YTIgMiAwIDAgMSAyIDBsLjE1LjA4YTIgMiAwIDAgMCAyLjczLS43M2wuMjItLjM5YTIgMiAwIDAgMC0uNzMtMi43M2wtLjE1LS4wOGEyIDIgMCAwIDEtMS0xLjc0di0uNWEyIDIgMCAwIDEgMS0xLjc0bC4xNS0uMDlhMiAyIDAgMCAwIC43My0yLjczbC0uMjItLjM4YTIgMiAwIDAgMC0yLjczLS43M2wtLjE1LjA4YTIgMiAwIDAgMS0yIDBsLS40My0uMjVhMiAyIDAgMCAxLTEtMS43M1Y0YTIgMiAwIDAgMC0yLTJ6IiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/settings\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Settings = createLucideIcon('Settings', [\n [\n 'path',\n {\n d: 'M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z',\n key: '1qme2f',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3', key: '1v7zrd' }],\n]);\n\nexport default Settings;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Eye\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi4wNjIgMTIuMzQ4YTEgMSAwIDAgMSAwLS42OTYgMTAuNzUgMTAuNzUgMCAwIDEgMTkuODc2IDAgMSAxIDAgMCAxIDAgLjY5NiAxMC43NSAxMC43NSAwIDAgMS0xOS44NzYgMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eye\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Eye = createLucideIcon('Eye', [\n [\n 'path',\n {\n d: 'M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0',\n key: '1nclc0',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3', key: '1v7zrd' }],\n]);\n\nexport default Eye;\n","export const MIME_TYPE_JAVASCRIPT = \"text/javascript\";\nexport const MIME_TYPE_WASM = \"application/wasm\";\nexport const CORE_VERSION = \"0.12.9\";\nexport const CORE_URL = `https://unpkg.com/@ffmpeg/core@${CORE_VERSION}/dist/umd/ffmpeg-core.js`;\nexport var FFMessageType;\n(function (FFMessageType) {\n FFMessageType[\"LOAD\"] = \"LOAD\";\n FFMessageType[\"EXEC\"] = \"EXEC\";\n FFMessageType[\"FFPROBE\"] = \"FFPROBE\";\n FFMessageType[\"WRITE_FILE\"] = \"WRITE_FILE\";\n FFMessageType[\"READ_FILE\"] = \"READ_FILE\";\n FFMessageType[\"DELETE_FILE\"] = \"DELETE_FILE\";\n FFMessageType[\"RENAME\"] = \"RENAME\";\n FFMessageType[\"CREATE_DIR\"] = \"CREATE_DIR\";\n FFMessageType[\"LIST_DIR\"] = \"LIST_DIR\";\n FFMessageType[\"DELETE_DIR\"] = \"DELETE_DIR\";\n FFMessageType[\"ERROR\"] = \"ERROR\";\n FFMessageType[\"DOWNLOAD\"] = \"DOWNLOAD\";\n FFMessageType[\"PROGRESS\"] = \"PROGRESS\";\n FFMessageType[\"LOG\"] = \"LOG\";\n FFMessageType[\"MOUNT\"] = \"MOUNT\";\n FFMessageType[\"UNMOUNT\"] = \"UNMOUNT\";\n})(FFMessageType || (FFMessageType = {}));\n","/**\n * Generate an unique message ID.\n */\nexport const getMessageID = (() => {\n let messageID = 0;\n return () => messageID++;\n})();\n","export const ERROR_UNKNOWN_MESSAGE_TYPE = new Error(\"unknown message type\");\nexport const ERROR_NOT_LOADED = new Error(\"ffmpeg is not loaded, call `await ffmpeg.load()` first\");\nexport const ERROR_TERMINATED = new Error(\"called FFmpeg.terminate()\");\nexport const ERROR_IMPORT_FAILURE = new Error(\"failed to import ffmpeg-core.js\");\n","import { FFMessageType } from \"./const.js\";\nimport { getMessageID } from \"./utils.js\";\nimport { ERROR_TERMINATED, ERROR_NOT_LOADED } from \"./errors.js\";\n/**\n * Provides APIs to interact with ffmpeg web worker.\n *\n * @example\n * ```ts\n * const ffmpeg = new FFmpeg();\n * ```\n */\nexport class FFmpeg {\n #worker = null;\n /**\n * #resolves and #rejects tracks Promise resolves and rejects to\n * be called when we receive message from web worker.\n */\n #resolves = {};\n #rejects = {};\n #logEventCallbacks = [];\n #progressEventCallbacks = [];\n loaded = false;\n /**\n * register worker message event handlers.\n */\n #registerHandlers = () => {\n if (this.#worker) {\n this.#worker.onmessage = ({ data: { id, type, data }, }) => {\n switch (type) {\n case FFMessageType.LOAD:\n this.loaded = true;\n this.#resolves[id](data);\n break;\n case FFMessageType.MOUNT:\n case FFMessageType.UNMOUNT:\n case FFMessageType.EXEC:\n case FFMessageType.FFPROBE:\n case FFMessageType.WRITE_FILE:\n case FFMessageType.READ_FILE:\n case FFMessageType.DELETE_FILE:\n case FFMessageType.RENAME:\n case FFMessageType.CREATE_DIR:\n case FFMessageType.LIST_DIR:\n case FFMessageType.DELETE_DIR:\n this.#resolves[id](data);\n break;\n case FFMessageType.LOG:\n this.#logEventCallbacks.forEach((f) => f(data));\n break;\n case FFMessageType.PROGRESS:\n this.#progressEventCallbacks.forEach((f) => f(data));\n break;\n case FFMessageType.ERROR:\n this.#rejects[id](data);\n break;\n }\n delete this.#resolves[id];\n delete this.#rejects[id];\n };\n }\n };\n /**\n * Generic function to send messages to web worker.\n */\n #send = ({ type, data }, trans = [], signal) => {\n if (!this.#worker) {\n return Promise.reject(ERROR_NOT_LOADED);\n }\n return new Promise((resolve, reject) => {\n const id = getMessageID();\n this.#worker && this.#worker.postMessage({ id, type, data }, trans);\n this.#resolves[id] = resolve;\n this.#rejects[id] = reject;\n signal?.addEventListener(\"abort\", () => {\n reject(new DOMException(`Message # ${id} was aborted`, \"AbortError\"));\n }, { once: true });\n });\n };\n on(event, callback) {\n if (event === \"log\") {\n this.#logEventCallbacks.push(callback);\n }\n else if (event === \"progress\") {\n this.#progressEventCallbacks.push(callback);\n }\n }\n off(event, callback) {\n if (event === \"log\") {\n this.#logEventCallbacks = this.#logEventCallbacks.filter((f) => f !== callback);\n }\n else if (event === \"progress\") {\n this.#progressEventCallbacks = this.#progressEventCallbacks.filter((f) => f !== callback);\n }\n }\n /**\n * Loads ffmpeg-core inside web worker. It is required to call this method first\n * as it initializes WebAssembly and other essential variables.\n *\n * @category FFmpeg\n * @returns `true` if ffmpeg core is loaded for the first time.\n */\n load = ({ classWorkerURL, ...config } = {}, { signal } = {}) => {\n if (!this.#worker) {\n this.#worker = classWorkerURL ?\n new Worker(new URL(classWorkerURL, import.meta.url), {\n type: \"module\",\n }) :\n // We need to duplicated the code here to enable webpack\n // to bundle worekr.js here.\n new Worker(new URL(\"./worker.js\", import.meta.url), {\n type: \"module\",\n });\n this.#registerHandlers();\n }\n return this.#send({\n type: FFMessageType.LOAD,\n data: config,\n }, undefined, signal);\n };\n /**\n * Execute ffmpeg command.\n *\n * @remarks\n * To avoid common I/O issues, [\"-nostdin\", \"-y\"] are prepended to the args\n * by default.\n *\n * @example\n * ```ts\n * const ffmpeg = new FFmpeg();\n * await ffmpeg.load();\n * await ffmpeg.writeFile(\"video.avi\", ...);\n * // ffmpeg -i video.avi video.mp4\n * await ffmpeg.exec([\"-i\", \"video.avi\", \"video.mp4\"]);\n * const data = ffmpeg.readFile(\"video.mp4\");\n * ```\n *\n * @returns `0` if no error, `!= 0` if timeout (1) or error.\n * @category FFmpeg\n */\n exec = (\n /** ffmpeg command line args */\n args, \n /**\n * milliseconds to wait before stopping the command execution.\n *\n * @defaultValue -1\n */\n timeout = -1, { signal } = {}) => this.#send({\n type: FFMessageType.EXEC,\n data: { args, timeout },\n }, undefined, signal);\n /**\n * Execute ffprobe command.\n *\n * @example\n * ```ts\n * const ffmpeg = new FFmpeg();\n * await ffmpeg.load();\n * await ffmpeg.writeFile(\"video.avi\", ...);\n * // Getting duration of a video in seconds: ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 video.avi -o output.txt\n * await ffmpeg.ffprobe([\"-v\", \"error\", \"-show_entries\", \"format=duration\", \"-of\", \"default=noprint_wrappers=1:nokey=1\", \"video.avi\", \"-o\", \"output.txt\"]);\n * const data = ffmpeg.readFile(\"output.txt\");\n * ```\n *\n * @returns `0` if no error, `!= 0` if timeout (1) or error.\n * @category FFmpeg\n */\n ffprobe = (\n /** ffprobe command line args */\n args, \n /**\n * milliseconds to wait before stopping the command execution.\n *\n * @defaultValue -1\n */\n timeout = -1, { signal } = {}) => this.#send({\n type: FFMessageType.FFPROBE,\n data: { args, timeout },\n }, undefined, signal);\n /**\n * Terminate all ongoing API calls and terminate web worker.\n * `FFmpeg.load()` must be called again before calling any other APIs.\n *\n * @category FFmpeg\n */\n terminate = () => {\n const ids = Object.keys(this.#rejects);\n // rejects all incomplete Promises.\n for (const id of ids) {\n this.#rejects[id](ERROR_TERMINATED);\n delete this.#rejects[id];\n delete this.#resolves[id];\n }\n if (this.#worker) {\n this.#worker.terminate();\n this.#worker = null;\n this.loaded = false;\n }\n };\n /**\n * Write data to ffmpeg.wasm.\n *\n * @example\n * ```ts\n * const ffmpeg = new FFmpeg();\n * await ffmpeg.load();\n * await ffmpeg.writeFile(\"video.avi\", await fetchFile(\"../video.avi\"));\n * await ffmpeg.writeFile(\"text.txt\", \"hello world\");\n * ```\n *\n * @category File System\n */\n writeFile = (path, data, { signal } = {}) => {\n const trans = [];\n if (data instanceof Uint8Array) {\n trans.push(data.buffer);\n }\n return this.#send({\n type: FFMessageType.WRITE_FILE,\n data: { path, data },\n }, trans, signal);\n };\n mount = (fsType, options, mountPoint) => {\n const trans = [];\n return this.#send({\n type: FFMessageType.MOUNT,\n data: { fsType, options, mountPoint },\n }, trans);\n };\n unmount = (mountPoint) => {\n const trans = [];\n return this.#send({\n type: FFMessageType.UNMOUNT,\n data: { mountPoint },\n }, trans);\n };\n /**\n * Read data from ffmpeg.wasm.\n *\n * @example\n * ```ts\n * const ffmpeg = new FFmpeg();\n * await ffmpeg.load();\n * const data = await ffmpeg.readFile(\"video.mp4\");\n * ```\n *\n * @category File System\n */\n readFile = (path, \n /**\n * File content encoding, supports two encodings:\n * - utf8: read file as text file, return data in string type.\n * - binary: read file as binary file, return data in Uint8Array type.\n *\n * @defaultValue binary\n */\n encoding = \"binary\", { signal } = {}) => this.#send({\n type: FFMessageType.READ_FILE,\n data: { path, encoding },\n }, undefined, signal);\n /**\n * Delete a file.\n *\n * @category File System\n */\n deleteFile = (path, { signal } = {}) => this.#send({\n type: FFMessageType.DELETE_FILE,\n data: { path },\n }, undefined, signal);\n /**\n * Rename a file or directory.\n *\n * @category File System\n */\n rename = (oldPath, newPath, { signal } = {}) => this.#send({\n type: FFMessageType.RENAME,\n data: { oldPath, newPath },\n }, undefined, signal);\n /**\n * Create a directory.\n *\n * @category File System\n */\n createDir = (path, { signal } = {}) => this.#send({\n type: FFMessageType.CREATE_DIR,\n data: { path },\n }, undefined, signal);\n /**\n * List directory contents.\n *\n * @category File System\n */\n listDir = (path, { signal } = {}) => this.#send({\n type: FFMessageType.LIST_DIR,\n data: { path },\n }, undefined, signal);\n /**\n * Delete an empty directory.\n *\n * @category File System\n */\n deleteDir = (path, { signal } = {}) => this.#send({\n type: FFMessageType.DELETE_DIR,\n data: { path },\n }, undefined, signal);\n}\n","export var FFFSType;\n(function (FFFSType) {\n FFFSType[\"MEMFS\"] = \"MEMFS\";\n FFFSType[\"NODEFS\"] = \"NODEFS\";\n FFFSType[\"NODERAWFS\"] = \"NODERAWFS\";\n FFFSType[\"IDBFS\"] = \"IDBFS\";\n FFFSType[\"WORKERFS\"] = \"WORKERFS\";\n FFFSType[\"PROXYFS\"] = \"PROXYFS\";\n})(FFFSType || (FFFSType = {}));\n","export * from \"./classes.js\";\nexport * from \"./types.js\";\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ZoomOut\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4IiAvPgogIDxsaW5lIHgxPSIyMSIgeDI9IjE2LjY1IiB5MT0iMjEiIHkyPSIxNi42NSIgLz4KICA8bGluZSB4MT0iOCIgeDI9IjE0IiB5MT0iMTEiIHkyPSIxMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/zoom-out\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ZoomOut = createLucideIcon('ZoomOut', [\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n ['line', { x1: '21', x2: '16.65', y1: '21', y2: '16.65', key: '13gj7c' }],\n ['line', { x1: '8', x2: '14', y1: '11', y2: '11', key: 'durymu' }],\n]);\n\nexport default ZoomOut;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'Roboto', 'Roboto Fallback'\",\"fontStyle\":\"normal\"},\"className\":\"__className_765053\"};","const reduxImpl = (reducer, initial) => (set, _get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return { dispatch: (...args) => api.dispatch(...args), ...initial };\n};\nconst redux = reduxImpl;\n\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api) return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === void 0) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst removeStoreFromTrackedConnections = (name, store) => {\n if (store === void 0) return;\n const connectionInfo = trackedConnections.get(name);\n if (!connectionInfo) return;\n delete connectionInfo.stores[store];\n if (Object.keys(connectionInfo.stores).length === 0) {\n trackedConnections.delete(name);\n }\n};\nconst findCallerName = (stack) => {\n var _a, _b;\n if (!stack) return void 0;\n const traceLines = stack.split(\"\\n\");\n const apiSetStateLineIndex = traceLines.findIndex(\n (traceLine) => traceLine.includes(\"api.setState\")\n );\n if (apiSetStateLineIndex < 0) return void 0;\n const callerLine = ((_a = traceLines[apiSetStateLineIndex + 1]) == null ? void 0 : _a.trim()) || \"\";\n return (_b = /.+ (.+) .+/.exec(callerLine)) == null ? void 0 : _b[1];\n};\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extensionConnector) {\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = (state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording) return r;\n const action = nameOrAction === void 0 ? {\n type: anonymousActionType || findCallerName(new Error().stack) || \"anonymous\"\n } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === void 0) {\n connection == null ? void 0 : connection.send(action, get());\n return r;\n }\n connection == null ? void 0 : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n };\n api.devtools = {\n cleanup: () => {\n if (connection && typeof connection.unsubscribe === \"function\") {\n connection.unsubscribe();\n }\n removeStoreFromTrackedConnections(options.name, store);\n }\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n if (connectionInformation.type === \"untracked\") {\n connection == null ? void 0 : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? void 0 : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (api.dispatchFromDevtools && typeof api.dispatch === \"function\") {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...args) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && args[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...args);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === void 0) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format.\n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (!api.dispatchFromDevtools) return;\n if (typeof api.dispatch !== \"function\") return;\n api.dispatch(action);\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === void 0) {\n return connection == null ? void 0 : connection.init(api.getState());\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === void 0) {\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n if (!lastComputedState) return;\n if (store === void 0) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? void 0 : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, fn) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== void 0) fn(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = (selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n };\n const initialState = fn(set, get, api);\n return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nfunction combine(initialState, create) {\n return (...args) => Object.assign({}, initialState, create(...args));\n}\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? void 0 : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(name, JSON.stringify(newValue, options == null ? void 0 : options.replacer)),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst persistImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n void setItem();\n },\n get,\n api\n );\n api.getInitialState = () => configResult;\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage) return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n const migration = options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n if (migration instanceof Promise) {\n return migration.then((result) => [true, result]);\n }\n return [true, migration];\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return [false, deserializedStorageValue.state];\n }\n }\n return [false, void 0];\n }).then((migrationResult) => {\n var _a2;\n const [migrated, migratedState] = migrationResult;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n if (migrated) {\n return setItem();\n }\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persist = persistImpl;\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector };\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Magnet\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiAxNS00LTQgNi43NS02Ljc3YTcuNzkgNy43OSAwIDAgMSAxMSAxMUwxMyAyMmwtNC00IDYuMzktNi4zNmEyLjE0IDIuMTQgMCAwIDAtMy0zTDYgMTUiIC8+CiAgPHBhdGggZD0ibTUgOCA0IDQiIC8+CiAgPHBhdGggZD0ibTEyIDE1IDQgNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/magnet\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Magnet = createLucideIcon('Magnet', [\n [\n 'path',\n {\n d: 'm6 15-4-4 6.75-6.77a7.79 7.79 0 0 1 11 11L13 22l-4-4 6.39-6.36a2.14 2.14 0 0 0-3-3L6 15',\n key: '1i3lhw',\n },\n ],\n ['path', { d: 'm5 8 4 4', key: 'j6kj7e' }],\n ['path', { d: 'm12 15 4 4', key: 'lnac28' }],\n]);\n\nexport default Magnet;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Trash\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA2aDE4IiAvPgogIDxwYXRoIGQ9Ik0xOSA2djE0YzAgMS0xIDItMiAySDdjLTEgMC0yLTEtMi0yVjYiIC8+CiAgPHBhdGggZD0iTTggNlY0YzAtMSAxLTIgMi0yaDRjMSAwIDIgMSAyIDJ2MiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/trash\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Trash = createLucideIcon('Trash', [\n ['path', { d: 'M3 6h18', key: 'd0wm0j' }],\n ['path', { d: 'M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6', key: '4alrt4' }],\n ['path', { d: 'M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2', key: 'v07s0e' }],\n]);\n\nexport default Trash;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name SquareSlash\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxsaW5lIHgxPSI5IiB4Mj0iMTUiIHkxPSIxNSIgeTI9IjkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/square-slash\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst SquareSlash = createLucideIcon('SquareSlash', [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', key: 'afitv7' }],\n ['line', { x1: '9', x2: '15', y1: '15', y2: '9', key: '1dfufj' }],\n]);\n\nexport default SquareSlash;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Link\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgMTNhNSA1IDAgMCAwIDcuNTQuNTRsMy0zYTUgNSAwIDAgMC03LjA3LTcuMDdsLTEuNzIgMS43MSIgLz4KICA8cGF0aCBkPSJNMTQgMTFhNSA1IDAgMCAwLTcuNTQtLjU0bC0zIDNhNSA1IDAgMCAwIDcuMDcgNy4wN2wxLjcxLTEuNzEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/link\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Link = createLucideIcon('Link', [\n ['path', { d: 'M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71', key: '1cjeqo' }],\n ['path', { d: 'M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71', key: '19qd67' }],\n]);\n\nexport default Link;\n","// src/aspect-ratio.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"AspectRatio\";\nvar AspectRatio = React.forwardRef(\n (props, forwardedRef) => {\n const { ratio = 1 / 1, style, ...aspectRatioProps } = props;\n return /* @__PURE__ */ jsx(\n \"div\",\n {\n style: {\n // ensures inner element is contained\n position: \"relative\",\n // ensures padding bottom trick maths works\n width: \"100%\",\n paddingBottom: `${100 / ratio}%`\n },\n \"data-radix-aspect-ratio-wrapper\": \"\",\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...aspectRatioProps,\n ref: forwardedRef,\n style: {\n ...style,\n // ensures children expand in ratio\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n }\n )\n }\n );\n }\n);\nAspectRatio.displayName = NAME;\nvar Root = AspectRatio;\nexport {\n AspectRatio,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowLeftToLine\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxOVY1IiAvPgogIDxwYXRoIGQ9Im0xMyA2LTYgNiA2IDYiIC8+CiAgPHBhdGggZD0iTTcgMTJoMTQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/arrow-left-to-line\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowLeftToLine = createLucideIcon('ArrowLeftToLine', [\n ['path', { d: 'M3 19V5', key: 'rwsyhb' }],\n ['path', { d: 'm13 6-6 6 6 6', key: '1yhaz7' }],\n ['path', { d: 'M7 12h14', key: 'uoisry' }],\n]);\n\nexport default ArrowLeftToLine;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name LoaderCircle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/loader-circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst LoaderCircle = createLucideIcon('LoaderCircle', [\n ['path', { d: 'M21 12a9 9 0 1 1-6.219-8.56', key: '13zald' }],\n]);\n\nexport default LoaderCircle;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name SlidersHorizontal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMjEiIHgyPSIxNCIgeTE9IjQiIHkyPSI0IiAvPgogIDxsaW5lIHgxPSIxMCIgeDI9IjMiIHkxPSI0IiB5Mj0iNCIgLz4KICA8bGluZSB4MT0iMjEiIHgyPSIxMiIgeTE9IjEyIiB5Mj0iMTIiIC8+CiAgPGxpbmUgeDE9IjgiIHgyPSIzIiB5MT0iMTIiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iMjEiIHgyPSIxNiIgeTE9IjIwIiB5Mj0iMjAiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMyIgeTE9IjIwIiB5Mj0iMjAiIC8+CiAgPGxpbmUgeDE9IjE0IiB4Mj0iMTQiIHkxPSIyIiB5Mj0iNiIgLz4KICA8bGluZSB4MT0iOCIgeDI9IjgiIHkxPSIxMCIgeTI9IjE0IiAvPgogIDxsaW5lIHgxPSIxNiIgeDI9IjE2IiB5MT0iMTgiIHkyPSIyMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/sliders-horizontal\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst SlidersHorizontal = createLucideIcon('SlidersHorizontal', [\n ['line', { x1: '21', x2: '14', y1: '4', y2: '4', key: 'obuewd' }],\n ['line', { x1: '10', x2: '3', y1: '4', y2: '4', key: '1q6298' }],\n ['line', { x1: '21', x2: '12', y1: '12', y2: '12', key: '1iu8h1' }],\n ['line', { x1: '8', x2: '3', y1: '12', y2: '12', key: 'ntss68' }],\n ['line', { x1: '21', x2: '16', y1: '20', y2: '20', key: '14d8ph' }],\n ['line', { x1: '12', x2: '3', y1: '20', y2: '20', key: 'm0wm8r' }],\n ['line', { x1: '14', x2: '14', y1: '2', y2: '6', key: '14e1ph' }],\n ['line', { x1: '8', x2: '8', y1: '10', y2: '14', key: '1i6ji0' }],\n ['line', { x1: '16', x2: '16', y1: '18', y2: '22', key: '1lctlv' }],\n]);\n\nexport default SlidersHorizontal;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Sun\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI0IiAvPgogIDxwYXRoIGQ9Ik0xMiAydjIiIC8+CiAgPHBhdGggZD0iTTEyIDIwdjIiIC8+CiAgPHBhdGggZD0ibTQuOTMgNC45MyAxLjQxIDEuNDEiIC8+CiAgPHBhdGggZD0ibTE3LjY2IDE3LjY2IDEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJNMiAxMmgyIiAvPgogIDxwYXRoIGQ9Ik0yMCAxMmgyIiAvPgogIDxwYXRoIGQ9Im02LjM0IDE3LjY2LTEuNDEgMS40MSIgLz4KICA8cGF0aCBkPSJtMTkuMDcgNC45My0xLjQxIDEuNDEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/sun\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Sun = createLucideIcon('Sun', [\n ['circle', { cx: '12', cy: '12', r: '4', key: '4exip2' }],\n ['path', { d: 'M12 2v2', key: 'tus03m' }],\n ['path', { d: 'M12 20v2', key: '1lh1kg' }],\n ['path', { d: 'm4.93 4.93 1.41 1.41', key: '149t6j' }],\n ['path', { d: 'm17.66 17.66 1.41 1.41', key: 'ptbguv' }],\n ['path', { d: 'M2 12h2', key: '1t8f8n' }],\n ['path', { d: 'M20 12h2', key: '1q8mjw' }],\n ['path', { d: 'm6.34 17.66-1.41 1.41', key: '1m8zz5' }],\n ['path', { d: 'm19.07 4.93-1.41 1.41', key: '1shlcs' }],\n]);\n\nexport default Sun;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Keyboard\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAgOGguMDEiIC8+CiAgPHBhdGggZD0iTTEyIDEyaC4wMSIgLz4KICA8cGF0aCBkPSJNMTQgOGguMDEiIC8+CiAgPHBhdGggZD0iTTE2IDEyaC4wMSIgLz4KICA8cGF0aCBkPSJNMTggOGguMDEiIC8+CiAgPHBhdGggZD0iTTYgOGguMDEiIC8+CiAgPHBhdGggZD0iTTcgMTZoMTAiIC8+CiAgPHBhdGggZD0iTTggMTJoLjAxIiAvPgogIDxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIxNiIgeD0iMiIgeT0iNCIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/keyboard\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Keyboard = createLucideIcon('Keyboard', [\n ['path', { d: 'M10 8h.01', key: '1r9ogq' }],\n ['path', { d: 'M12 12h.01', key: '1mp3jc' }],\n ['path', { d: 'M14 8h.01', key: '1primd' }],\n ['path', { d: 'M16 12h.01', key: '1l6xoz' }],\n ['path', { d: 'M18 8h.01', key: 'emo2bl' }],\n ['path', { d: 'M6 8h.01', key: 'x9i8wu' }],\n ['path', { d: 'M7 16h10', key: 'wp8him' }],\n ['path', { d: 'M8 12h.01', key: 'czm47f' }],\n ['rect', { width: '20', height: '16', x: '2', y: '4', rx: '2', key: '18n3k1' }],\n]);\n\nexport default Keyboard;\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Expand\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMjEtNi02bTYgNnYtNC44bTAgNC44aC00LjgiIC8+CiAgPHBhdGggZD0iTTMgMTYuMlYyMW0wIDBoNC44TTMgMjFsNi02IiAvPgogIDxwYXRoIGQ9Ik0yMSA3LjhWM20wIDBoLTQuOE0yMSAzbC02IDYiIC8+CiAgPHBhdGggZD0iTTMgNy44VjNtMCAwaDQuOE0zIDNsNiA2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/expand\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Expand = createLucideIcon('Expand', [\n ['path', { d: 'm21 21-6-6m6 6v-4.8m0 4.8h-4.8', key: '1c15vz' }],\n ['path', { d: 'M3 16.2V21m0 0h4.8M3 21l6-6', key: '1fsnz2' }],\n ['path', { d: 'M21 7.8V3m0 0h-4.8M21 3l-6 6', key: 'hawz9i' }],\n ['path', { d: 'M3 7.8V3m0 0h4.8M3 3l6 6', key: 'u9ee12' }],\n]);\n\nexport default Expand;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = StyleToObject;\nvar inline_style_parser_1 = __importDefault(require(\"inline-style-parser\"));\n/**\n * Parses inline style to object.\n *\n * @param style - Inline style.\n * @param iterator - Iterator.\n * @returns - Style object or null.\n *\n * @example Parsing inline style to object:\n *\n * ```js\n * import parse from 'style-to-object';\n * parse('line-height: 42;'); // { 'line-height': '42' }\n * ```\n */\nfunction StyleToObject(style, iterator) {\n var styleObject = null;\n if (!style || typeof style !== 'string') {\n return styleObject;\n }\n var declarations = (0, inline_style_parser_1.default)(style);\n var hasIterator = typeof iterator === 'function';\n declarations.forEach(function (declaration) {\n if (declaration.type !== 'declaration') {\n return;\n }\n var property = declaration.property, value = declaration.value;\n if (hasIterator) {\n iterator(property, value, declaration);\n }\n else if (value) {\n styleObject = styleObject || {};\n styleObject[property] = value;\n }\n });\n return styleObject;\n}\n//# sourceMappingURL=index.js.map","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxOCA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevron-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronRight = createLucideIcon('ChevronRight', [\n ['path', { d: 'm9 18 6-6-6-6', key: 'mthhwq' }],\n]);\n\nexport default ChevronRight;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ListFilter\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA2aDE4IiAvPgogIDxwYXRoIGQ9Ik03IDEyaDEwIiAvPgogIDxwYXRoIGQ9Ik0xMCAxOGg0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/list-filter\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ListFilter = createLucideIcon('ListFilter', [\n ['path', { d: 'M3 6h18', key: 'd0wm0j' }],\n ['path', { d: 'M7 12h10', key: 'b7w52i' }],\n ['path', { d: 'M10 18h4', key: '1ulq68' }],\n]);\n\nexport default ListFilter;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Sparkles\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOS45MzcgMTUuNUEyIDIgMCAwIDAgOC41IDE0LjA2M2wtNi4xMzUtMS41ODJhLjUuNSAwIDAgMSAwLS45NjJMOC41IDkuOTM2QTIgMiAwIDAgMCA5LjkzNyA4LjVsMS41ODItNi4xMzVhLjUuNSAwIDAgMSAuOTYzIDBMMTQuMDYzIDguNUEyIDIgMCAwIDAgMTUuNSA5LjkzN2w2LjEzNSAxLjU4MWEuNS41IDAgMCAxIDAgLjk2NEwxNS41IDE0LjA2M2EyIDIgMCAwIDAtMS40MzcgMS40MzdsLTEuNTgyIDYuMTM1YS41LjUgMCAwIDEtLjk2MyAweiIgLz4KICA8cGF0aCBkPSJNMjAgM3Y0IiAvPgogIDxwYXRoIGQ9Ik0yMiA1aC00IiAvPgogIDxwYXRoIGQ9Ik00IDE3djIiIC8+CiAgPHBhdGggZD0iTTUgMThIMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/sparkles\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Sparkles = createLucideIcon('Sparkles', [\n [\n 'path',\n {\n d: 'M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z',\n key: '4pj2yx',\n },\n ],\n ['path', { d: 'M20 3v4', key: '1olli1' }],\n ['path', { d: 'M22 5h-4', key: '1gvqau' }],\n ['path', { d: 'M4 17v2', key: 'vumght' }],\n ['path', { d: 'M5 18H3', key: 'zchphs' }],\n]);\n\nexport default Sparkles;\n","export function deprecate(fn) {\n return fn\n}\n\nexport function equal() {}\n\nexport function ok() {}\n\nexport function unreachable() {}\n","/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n * Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n * Comma-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n /** @type {Array<string>} */\n const tokens = []\n const input = String(value || '')\n let index = input.indexOf(',')\n let start = 0\n /** @type {boolean} */\n let end = false\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n const token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nexport function stringify(values, options) {\n const settings = options || {}\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [jsx=false]\n * Support JSX identifiers (default: `false`).\n */\n\nconst startRe = /[$_\\p{ID_Start}]/u\nconst contRe = /[$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst contReJsx = /[-$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst nameRe = /^[$_\\p{ID_Start}][$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\nconst nameReJsx = /^[$_\\p{ID_Start}][-$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Checks if the given code point can start an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @returns {boolean}\n * Whether `code` can start an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function start(code) {\n return code ? startRe.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given code point can continue an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `code` can continue an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function cont(code, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? contReJsx : contRe\n return code ? re.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given value is a valid identifier name.\n *\n * @param {string} name\n * Identifier to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `name` can be an identifier.\n */\nexport function name(name, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? nameReJsx : nameRe\n return re.test(name)\n}\n","/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See <https://infra.spec.whatwg.org/#ascii-whitespace>.\nconst re = /[ \\t\\n\\f\\r]/g\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n * Thing to check (`Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n * whose `value` field is checked.\n */\nexport function whitespace(thing) {\n return typeof thing === 'object'\n ? thing.type === 'text'\n ? empty(thing.value)\n : false\n : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n return value.replace(re, '') === ''\n}\n","/**\n * @import {Schema as SchemaType, Space} from 'property-information'\n */\n\n/** @type {SchemaType} */\nexport class Schema {\n /**\n * @param {SchemaType['property']} property\n * Property.\n * @param {SchemaType['normal']} normal\n * Normal.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Schema.\n */\n constructor(property, normal, space) {\n this.normal = normal\n this.property = property\n\n if (space) {\n this.space = space\n }\n }\n}\n\nSchema.prototype.normal = {}\nSchema.prototype.property = {}\nSchema.prototype.space = undefined\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {ReadonlyArray<Schema>} definitions\n * Definitions.\n * @param {Space | undefined} [space]\n * Space.\n * @returns {Schema}\n * Schema.\n */\nexport function merge(definitions, space) {\n /** @type {Record<string, Info>} */\n const property = {}\n /** @type {Record<string, string>} */\n const normal = {}\n\n for (const definition of definitions) {\n Object.assign(property, definition.property)\n Object.assign(normal, definition.normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * Get the cleaned case insensitive form of an attribute or property.\n *\n * @param {string} value\n * An attribute-like or property-like name.\n * @returns {string}\n * Value that can be used to look up the properly cased property on a\n * `Schema`.\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","/**\n * @import {Info as InfoType} from 'property-information'\n */\n\n/** @type {InfoType} */\nexport class Info {\n /**\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @returns\n * Info.\n */\n constructor(property, attribute) {\n this.attribute = attribute\n this.property = property\n }\n}\n\nInfo.prototype.attribute = ''\nInfo.prototype.booleanish = false\nInfo.prototype.boolean = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.defined = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.number = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.property = ''\nInfo.prototype.spaceSeparated = false\nInfo.prototype.space = undefined\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","/**\n * @import {Space} from 'property-information'\n */\n\nimport {Info} from './info.js'\nimport * as types from './types.js'\n\nconst checks = /** @type {ReadonlyArray<keyof typeof types>} */ (\n Object.keys(types)\n)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @param {number | null | undefined} [mask]\n * Mask.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Info.\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @template {keyof DefinedInfo} Key\n * Key type.\n * @param {DefinedInfo} values\n * Info.\n * @param {Key} key\n * Key.\n * @param {DefinedInfo[Key]} value\n * Value.\n * @returns {undefined}\n * Nothing.\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\n/**\n * @typedef Definition\n * Definition of a schema.\n * @property {Record<string, string> | undefined} [attributes]\n * Normalzed names to special attribute case.\n * @property {ReadonlyArray<string> | undefined} [mustUseProperty]\n * Normalized names that must be set as properties.\n * @property {Record<string, number | null>} properties\n * Property names to their types.\n * @property {Space | undefined} [space]\n * Space.\n * @property {Transform} transform\n * Transform a property name.\n */\n\n/**\n * @callback Transform\n * Transform.\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Attribute.\n */\n\nimport {normalize} from '../normalize.js'\nimport {DefinedInfo} from './defined-info.js'\nimport {Schema} from './schema.js'\n\n/**\n * @param {Definition} definition\n * Definition.\n * @returns {Schema}\n * Schema.\n */\nexport function create(definition) {\n /** @type {Record<string, Info>} */\n const properties = {}\n /** @type {Record<string, string>} */\n const normals = {}\n\n for (const [property, value] of Object.entries(definition.properties)) {\n const info = new DefinedInfo(\n property,\n definition.transform(definition.attributes || {}, property),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(property)\n ) {\n info.mustUseProperty = true\n }\n\n properties[property] = info\n\n normals[normalize(property)] = property\n normals[normalize(info.attribute)] = property\n }\n\n return new Schema(properties, normals, definition.space)\n}\n","import {create} from './util/create.js'\nimport {booleanish, number, spaceSeparated} from './util/types.js'\n\nexport const aria = create({\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n },\n transform(_, property) {\n return property === 'role'\n ? property\n : 'aria-' + property.slice(4).toLowerCase()\n }\n})\n","/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} attribute\n * Attribute.\n * @returns {string}\n * Transformed attribute.\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Transformed property.\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n booleanish,\n boolean,\n commaSeparated,\n number,\n overloadedBoolean,\n spaceSeparated\n} from './util/types.js'\n\nexport const html = create({\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: overloadedBoolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n },\n space: 'html',\n transform: caseInsensitiveTransform\n})\n","import {caseSensitiveTransform} from './util/case-sensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n boolean,\n commaOrSpaceSeparated,\n commaSeparated,\n number,\n spaceSeparated\n} from './util/types.js'\n\nexport const svg = create({\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n },\n space: 'svg',\n transform: caseSensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n },\n space: 'xlink',\n transform(_, property) {\n return 'xlink:' + property.slice(5).toLowerCase()\n }\n})\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n properties: {xmlnsXLink: null, xmlns: null},\n space: 'xmlns',\n transform: caseInsensitiveTransform\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n properties: {xmlBase: null, xmlLang: null, xmlSpace: null},\n space: 'xml',\n transform(_, property) {\n return 'xml:' + property.slice(3).toLowerCase()\n }\n})\n","// Note: types exposed from `index.d.ts`.\nimport {merge} from './lib/util/merge.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\nimport {xlink} from './lib/xlink.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {xml} from './lib/xml.js'\n\nexport {hastToReact} from './lib/hast-to-react.js'\n\nexport const html = merge([aria, htmlBase, xlink, xmlns, xml], 'html')\n\nexport {find} from './lib/find.js'\nexport {normalize} from './lib/normalize.js'\n\nexport const svg = merge([aria, svgBase, xlink, xmlns, xml], 'svg')\n","/**\n * @import {Schema} from 'property-information'\n */\n\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\nimport {normalize} from './normalize.js'\n\nconst cap = /[A-Z]/g\nconst dash = /-[a-z]/g\nconst valid = /^data[-\\w.:]+$/i\n\n/**\n * Look up info on a property.\n *\n * In most cases the given `schema` contains info on the property.\n * All standard,\n * most legacy,\n * and some non-standard properties are supported.\n * For these cases,\n * the returned `Info` has hints about the value of the property.\n *\n * `name` can also be a valid data attribute or property,\n * in which case an `Info` object with the correctly cased `attribute` and\n * `property` is returned.\n *\n * `name` can be an unknown attribute,\n * in which case an `Info` object with `attribute` and `property` set to the\n * given name is returned.\n * It is not recommended to provide unsupported legacy or recently specced\n * properties.\n *\n *\n * @param {Schema} schema\n * Schema;\n * either the `html` or `svg` export.\n * @param {string} value\n * An attribute-like or property-like name;\n * it will be passed through `normalize` to hopefully find the correct info.\n * @returns {Info}\n * Info.\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let property = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n property = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(property, value)\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Kebab.\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Camel.\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","/**\n * Special cases for React (`Record<string, string>`).\n *\n * `hast` is close to `React` but differs in a couple of cases.\n * To get a React property from a hast property,\n * check if it is in `hastToReact`.\n * If it is, use the corresponding value;\n * otherwise, use the hast property.\n *\n * @type {Record<string, string>}\n */\nexport const hastToReact = {\n classId: 'classID',\n dataType: 'datatype',\n itemId: 'itemID',\n strokeDashArray: 'strokeDasharray',\n strokeDashOffset: 'strokeDashoffset',\n strokeLineCap: 'strokeLinecap',\n strokeLineJoin: 'strokeLinejoin',\n strokeMiterLimit: 'strokeMiterlimit',\n typeOf: 'typeof',\n xLinkActuate: 'xlinkActuate',\n xLinkArcRole: 'xlinkArcrole',\n xLinkHref: 'xlinkHref',\n xLinkRole: 'xlinkRole',\n xLinkShow: 'xlinkShow',\n xLinkTitle: 'xlinkTitle',\n xLinkType: 'xlinkType',\n xmlnsXLink: 'xmlnsXlink'\n}\n","/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n const input = String(value || '').trim()\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'end' | 'start'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * @returns {Point | undefined}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n if (\n typeof point.line === 'number' &&\n point.line > 0 &&\n typeof point.column === 'number' &&\n point.column > 0\n ) {\n return {\n line: point.line,\n column: point.column,\n offset:\n typeof point.offset === 'number' && point.offset > -1\n ? point.offset\n : undefined\n }\n }\n }\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * Node.\n * @returns {Position | undefined}\n * Position.\n */\nexport function position(node) {\n const start = pointStart(node)\n const end = pointEnd(node)\n\n if (start && end) {\n return {start, end}\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Point | PointLike | Position | PositionLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef Options\n * Configuration.\n * @property {Array<Node> | null | undefined} [ancestors]\n * Stack of (inclusive) ancestor nodes surrounding the message (optional).\n * @property {Error | null | undefined} [cause]\n * Original error cause of the message (optional).\n * @property {Point | Position | null | undefined} [place]\n * Place of message (optional).\n * @property {string | null | undefined} [ruleId]\n * Category of message (optional, example: `'my-rule'`).\n * @property {string | null | undefined} [source]\n * Namespace of who sent the message (optional, example: `'my-package'`).\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n /**\n * Create a message for `reason`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {Options | null | undefined} [options]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // eslint-disable-next-line complexity\n constructor(causeOrReason, optionsOrParentOrPlace, origin) {\n super()\n\n if (typeof optionsOrParentOrPlace === 'string') {\n origin = optionsOrParentOrPlace\n optionsOrParentOrPlace = undefined\n }\n\n /** @type {string} */\n let reason = ''\n /** @type {Options} */\n let options = {}\n let legacyCause = false\n\n if (optionsOrParentOrPlace) {\n // Point.\n if (\n 'line' in optionsOrParentOrPlace &&\n 'column' in optionsOrParentOrPlace\n ) {\n options = {place: optionsOrParentOrPlace}\n }\n // Position.\n else if (\n 'start' in optionsOrParentOrPlace &&\n 'end' in optionsOrParentOrPlace\n ) {\n options = {place: optionsOrParentOrPlace}\n }\n // Node.\n else if ('type' in optionsOrParentOrPlace) {\n options = {\n ancestors: [optionsOrParentOrPlace],\n place: optionsOrParentOrPlace.position\n }\n }\n // Options.\n else {\n options = {...optionsOrParentOrPlace}\n }\n }\n\n if (typeof causeOrReason === 'string') {\n reason = causeOrReason\n }\n // Error.\n else if (!options.cause && causeOrReason) {\n legacyCause = true\n reason = causeOrReason.message\n options.cause = causeOrReason\n }\n\n if (!options.ruleId && !options.source && typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n options.ruleId = origin\n } else {\n options.source = origin.slice(0, index)\n options.ruleId = origin.slice(index + 1)\n }\n }\n\n if (!options.place && options.ancestors && options.ancestors) {\n const parent = options.ancestors[options.ancestors.length - 1]\n\n if (parent) {\n options.place = parent.position\n }\n }\n\n const start =\n options.place && 'start' in options.place\n ? options.place.start\n : options.place\n\n /**\n * Stack of ancestor nodes surrounding the message.\n *\n * @type {Array<Node> | undefined}\n */\n this.ancestors = options.ancestors || undefined\n\n /**\n * Original error cause of the message.\n *\n * @type {Error | undefined}\n */\n this.cause = options.cause || undefined\n\n /**\n * Starting column of message.\n *\n * @type {number | undefined}\n */\n this.column = start ? start.column : undefined\n\n /**\n * State of problem.\n *\n * * `true` — error, file not usable\n * * `false` — warning, change may be needed\n * * `undefined` — change likely not needed\n *\n * @type {boolean | null | undefined}\n */\n this.fatal = undefined\n\n /**\n * Path of a file (used throughout the `VFile` ecosystem).\n *\n * @type {string | undefined}\n */\n this.file = ''\n\n // Field from `Error`.\n /**\n * Reason for message.\n *\n * @type {string}\n */\n this.message = reason\n\n /**\n * Starting line of error.\n *\n * @type {number | undefined}\n */\n this.line = start ? start.line : undefined\n\n // Field from `Error`.\n /**\n * Serialized positional info of message.\n *\n * On normal errors, this would be something like `ParseError`, buit in\n * `VFile` messages we use this space to show where an error happened.\n */\n this.name = stringifyPosition(options.place) || '1:1'\n\n /**\n * Place of message.\n *\n * @type {Point | Position | undefined}\n */\n this.place = options.place || undefined\n\n /**\n * Reason for message, should use markdown.\n *\n * @type {string}\n */\n this.reason = this.message\n\n /**\n * Category of message (example: `'my-rule'`).\n *\n * @type {string | undefined}\n */\n this.ruleId = options.ruleId || undefined\n\n /**\n * Namespace of message (example: `'my-package'`).\n *\n * @type {string | undefined}\n */\n this.source = options.source || undefined\n\n // Field from `Error`.\n /**\n * Stack of message.\n *\n * This is used by normal errors to show where something happened in\n * programming code, irrelevant for `VFile` messages,\n *\n * @type {string}\n */\n this.stack =\n legacyCause && options.cause && typeof options.cause.stack === 'string'\n ? options.cause.stack\n : ''\n\n // The following fields are “well known”.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /**\n * Specify the source value that’s being reported, which is deemed\n * incorrect.\n *\n * @type {string | undefined}\n */\n this.actual = undefined\n\n /**\n * Suggest acceptable values that can be used instead of `actual`.\n *\n * @type {Array<string> | undefined}\n */\n this.expected = undefined\n\n /**\n * Long form description of the message (you should use markdown).\n *\n * @type {string | undefined}\n */\n this.note = undefined\n\n /**\n * Link to docs for the message.\n *\n * > 👉 **Note**: this must be an absolute URL that can be passed as `x`\n * > to `new URL(x)`.\n *\n * @type {string | undefined}\n */\n this.url = undefined\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.column = undefined\nVFileMessage.prototype.line = undefined\nVFileMessage.prototype.ancestors = undefined\nVFileMessage.prototype.cause = undefined\nVFileMessage.prototype.fatal = undefined\nVFileMessage.prototype.place = undefined\nVFileMessage.prototype.ruleId = undefined\nVFileMessage.prototype.source = undefined\n","/**\n * @import {Identifier, Literal, MemberExpression} from 'estree'\n * @import {Jsx, JsxDev, Options, Props} from 'hast-util-to-jsx-runtime'\n * @import {Element, Nodes, Parents, Root, Text} from 'hast'\n * @import {MdxFlowExpressionHast, MdxTextExpressionHast} from 'mdast-util-mdx-expression'\n * @import {MdxJsxFlowElementHast, MdxJsxTextElementHast} from 'mdast-util-mdx-jsx'\n * @import {MdxjsEsmHast} from 'mdast-util-mdxjs-esm'\n * @import {Position} from 'unist'\n * @import {Child, Create, Field, JsxElement, State, Style} from './types.js'\n */\n\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {ok as assert} from 'devlop'\nimport {name as isIdentifierName} from 'estree-util-is-identifier-name'\nimport {whitespace} from 'hast-util-whitespace'\nimport {find, hastToReact, html, svg} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport styleToJs from 'style-to-js'\nimport {pointStart} from 'unist-util-position'\nimport {VFileMessage} from 'vfile-message'\n\n// To do: next major: `Object.hasOwn`.\nconst own = {}.hasOwnProperty\n\n/** @type {Map<string, number>} */\nconst emptyMap = new Map()\n\nconst cap = /[A-Z]/g\n\n// `react-dom` triggers a warning for *any* white space in tables.\n// To follow GFM, `mdast-util-to-hast` injects line endings between elements.\n// Other tools might do so too, but they don’t do here, so we remove all of\n// that.\n\n// See: <https://github.com/facebook/react/pull/7081>.\n// See: <https://github.com/facebook/react/pull/7515>.\n// See: <https://github.com/remarkjs/remark-react/issues/64>.\n// See: <https://github.com/rehypejs/rehype-react/pull/29>.\n// See: <https://github.com/rehypejs/rehype-react/pull/32>.\n// See: <https://github.com/rehypejs/rehype-react/pull/45>.\nconst tableElements = new Set(['table', 'tbody', 'thead', 'tfoot', 'tr'])\n\nconst tableCellElement = new Set(['td', 'th'])\n\nconst docs = 'https://github.com/syntax-tree/hast-util-to-jsx-runtime'\n\n/**\n * Transform a hast tree to preact, react, solid, svelte, vue, etc.,\n * with an automatic JSX runtime.\n *\n * @param {Nodes} tree\n * Tree to transform.\n * @param {Options} options\n * Configuration (required).\n * @returns {JsxElement}\n * JSX element.\n */\n\nexport function toJsxRuntime(tree, options) {\n if (!options || options.Fragment === undefined) {\n throw new TypeError('Expected `Fragment` in options')\n }\n\n const filePath = options.filePath || undefined\n /** @type {Create} */\n let create\n\n if (options.development) {\n if (typeof options.jsxDEV !== 'function') {\n throw new TypeError(\n 'Expected `jsxDEV` in options when `development: true`'\n )\n }\n\n create = developmentCreate(filePath, options.jsxDEV)\n } else {\n if (typeof options.jsx !== 'function') {\n throw new TypeError('Expected `jsx` in production options')\n }\n\n if (typeof options.jsxs !== 'function') {\n throw new TypeError('Expected `jsxs` in production options')\n }\n\n create = productionCreate(filePath, options.jsx, options.jsxs)\n }\n\n /** @type {State} */\n const state = {\n Fragment: options.Fragment,\n ancestors: [],\n components: options.components || {},\n create,\n elementAttributeNameCase: options.elementAttributeNameCase || 'react',\n evaluater: options.createEvaluater ? options.createEvaluater() : undefined,\n filePath,\n ignoreInvalidStyle: options.ignoreInvalidStyle || false,\n passKeys: options.passKeys !== false,\n passNode: options.passNode || false,\n schema: options.space === 'svg' ? svg : html,\n stylePropertyNameCase: options.stylePropertyNameCase || 'dom',\n tableCellAlignToStyle: options.tableCellAlignToStyle !== false\n }\n\n const result = one(state, tree, undefined)\n\n // JSX element.\n if (result && typeof result !== 'string') {\n return result\n }\n\n // Text node or something that turned into nothing.\n return state.create(\n tree,\n state.Fragment,\n {children: result || undefined},\n undefined\n )\n}\n\n/**\n * Transform a node.\n *\n * @param {State} state\n * Info passed around.\n * @param {Nodes} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction one(state, node, key) {\n if (node.type === 'element') {\n return element(state, node, key)\n }\n\n if (node.type === 'mdxFlowExpression' || node.type === 'mdxTextExpression') {\n return mdxExpression(state, node)\n }\n\n if (node.type === 'mdxJsxFlowElement' || node.type === 'mdxJsxTextElement') {\n return mdxJsxElement(state, node, key)\n }\n\n if (node.type === 'mdxjsEsm') {\n return mdxEsm(state, node)\n }\n\n if (node.type === 'root') {\n return root(state, node, key)\n }\n\n if (node.type === 'text') {\n return text(state, node)\n }\n}\n\n/**\n * Handle element.\n *\n * @param {State} state\n * Info passed around.\n * @param {Element} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction element(state, node, key) {\n const parentSchema = state.schema\n let schema = parentSchema\n\n if (node.tagName.toLowerCase() === 'svg' && parentSchema.space === 'html') {\n schema = svg\n state.schema = schema\n }\n\n state.ancestors.push(node)\n\n const type = findComponentFromName(state, node.tagName, false)\n const props = createElementProps(state, node)\n let children = createChildren(state, node)\n\n if (tableElements.has(node.tagName)) {\n children = children.filter(function (child) {\n return typeof child === 'string' ? !whitespace(child) : true\n })\n }\n\n addNode(state, props, type, node)\n addChildren(props, children)\n\n // Restore.\n state.ancestors.pop()\n state.schema = parentSchema\n\n return state.create(node, type, props, key)\n}\n\n/**\n * Handle MDX expression.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxFlowExpressionHast | MdxTextExpressionHast} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxExpression(state, node) {\n if (node.data && node.data.estree && state.evaluater) {\n const program = node.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n\n // Assume result is a child.\n return /** @type {Child | undefined} */ (\n state.evaluater.evaluateExpression(expression.expression)\n )\n }\n\n crashEstree(state, node.position)\n}\n\n/**\n * Handle MDX ESM.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxjsEsmHast} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxEsm(state, node) {\n if (node.data && node.data.estree && state.evaluater) {\n // Assume result is a child.\n return /** @type {Child | undefined} */ (\n state.evaluater.evaluateProgram(node.data.estree)\n )\n }\n\n crashEstree(state, node.position)\n}\n\n/**\n * Handle MDX JSX.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxJsxFlowElementHast | MdxJsxTextElementHast} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxJsxElement(state, node, key) {\n const parentSchema = state.schema\n let schema = parentSchema\n\n if (node.name === 'svg' && parentSchema.space === 'html') {\n schema = svg\n state.schema = schema\n }\n\n state.ancestors.push(node)\n\n const type =\n node.name === null\n ? state.Fragment\n : findComponentFromName(state, node.name, true)\n const props = createJsxElementProps(state, node)\n const children = createChildren(state, node)\n\n addNode(state, props, type, node)\n addChildren(props, children)\n\n // Restore.\n state.ancestors.pop()\n state.schema = parentSchema\n\n return state.create(node, type, props, key)\n}\n\n/**\n * Handle root.\n *\n * @param {State} state\n * Info passed around.\n * @param {Root} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction root(state, node, key) {\n /** @type {Props} */\n const props = {}\n\n addChildren(props, createChildren(state, node))\n\n return state.create(node, state.Fragment, props, key)\n}\n\n/**\n * Handle text.\n *\n * @param {State} _\n * Info passed around.\n * @param {Text} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction text(_, node) {\n return node.value\n}\n\n/**\n * Add `node` to props.\n *\n * @param {State} state\n * Info passed around.\n * @param {Props} props\n * Props.\n * @param {unknown} type\n * Type.\n * @param {Element | MdxJsxFlowElementHast | MdxJsxTextElementHast} node\n * Node.\n * @returns {undefined}\n * Nothing.\n */\nfunction addNode(state, props, type, node) {\n // If this is swapped out for a component:\n if (typeof type !== 'string' && type !== state.Fragment && state.passNode) {\n props.node = node\n }\n}\n\n/**\n * Add children to props.\n *\n * @param {Props} props\n * Props.\n * @param {Array<Child>} children\n * Children.\n * @returns {undefined}\n * Nothing.\n */\nfunction addChildren(props, children) {\n if (children.length > 0) {\n const value = children.length > 1 ? children : children[0]\n\n if (value) {\n props.children = value\n }\n }\n}\n\n/**\n * @param {string | undefined} _\n * Path to file.\n * @param {Jsx} jsx\n * Dynamic.\n * @param {Jsx} jsxs\n * Static.\n * @returns {Create}\n * Create a production element.\n */\nfunction productionCreate(_, jsx, jsxs) {\n return create\n /** @type {Create} */\n function create(_, type, props, key) {\n // Only an array when there are 2 or more children.\n const isStaticChildren = Array.isArray(props.children)\n const fn = isStaticChildren ? jsxs : jsx\n return key ? fn(type, props, key) : fn(type, props)\n }\n}\n\n/**\n * @param {string | undefined} filePath\n * Path to file.\n * @param {JsxDev} jsxDEV\n * Development.\n * @returns {Create}\n * Create a development element.\n */\nfunction developmentCreate(filePath, jsxDEV) {\n return create\n /** @type {Create} */\n function create(node, type, props, key) {\n // Only an array when there are 2 or more children.\n const isStaticChildren = Array.isArray(props.children)\n const point = pointStart(node)\n return jsxDEV(\n type,\n props,\n key,\n isStaticChildren,\n {\n columnNumber: point ? point.column - 1 : undefined,\n fileName: filePath,\n lineNumber: point ? point.line : undefined\n },\n undefined\n )\n }\n}\n\n/**\n * Create props from an element.\n *\n * @param {State} state\n * Info passed around.\n * @param {Element} node\n * Current element.\n * @returns {Props}\n * Props.\n */\nfunction createElementProps(state, node) {\n /** @type {Props} */\n const props = {}\n /** @type {string | undefined} */\n let alignValue\n /** @type {string} */\n let prop\n\n for (prop in node.properties) {\n if (prop !== 'children' && own.call(node.properties, prop)) {\n const result = createProperty(state, prop, node.properties[prop])\n\n if (result) {\n const [key, value] = result\n\n if (\n state.tableCellAlignToStyle &&\n key === 'align' &&\n typeof value === 'string' &&\n tableCellElement.has(node.tagName)\n ) {\n alignValue = value\n } else {\n props[key] = value\n }\n }\n }\n }\n\n if (alignValue) {\n // Assume style is an object.\n const style = /** @type {Style} */ (props.style || (props.style = {}))\n style[state.stylePropertyNameCase === 'css' ? 'text-align' : 'textAlign'] =\n alignValue\n }\n\n return props\n}\n\n/**\n * Create props from a JSX element.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxJsxFlowElementHast | MdxJsxTextElementHast} node\n * Current JSX element.\n * @returns {Props}\n * Props.\n */\nfunction createJsxElementProps(state, node) {\n /** @type {Props} */\n const props = {}\n\n for (const attribute of node.attributes) {\n if (attribute.type === 'mdxJsxExpressionAttribute') {\n if (attribute.data && attribute.data.estree && state.evaluater) {\n const program = attribute.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n const objectExpression = expression.expression\n assert(objectExpression.type === 'ObjectExpression')\n const property = objectExpression.properties[0]\n assert(property.type === 'SpreadElement')\n\n Object.assign(\n props,\n state.evaluater.evaluateExpression(property.argument)\n )\n } else {\n crashEstree(state, node.position)\n }\n } else {\n // For JSX, the author is responsible of passing in the correct values.\n const name = attribute.name\n /** @type {unknown} */\n let value\n\n if (attribute.value && typeof attribute.value === 'object') {\n if (\n attribute.value.data &&\n attribute.value.data.estree &&\n state.evaluater\n ) {\n const program = attribute.value.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n value = state.evaluater.evaluateExpression(expression.expression)\n } else {\n crashEstree(state, node.position)\n }\n } else {\n value = attribute.value === null ? true : attribute.value\n }\n\n // Assume a prop.\n props[name] = /** @type {Props[keyof Props]} */ (value)\n }\n }\n\n return props\n}\n\n/**\n * Create children.\n *\n * @param {State} state\n * Info passed around.\n * @param {Parents} node\n * Current element.\n * @returns {Array<Child>}\n * Children.\n */\nfunction createChildren(state, node) {\n /** @type {Array<Child>} */\n const children = []\n let index = -1\n /** @type {Map<string, number>} */\n // Note: test this when Solid doesn’t want to merge my upcoming PR.\n /* c8 ignore next */\n const countsByName = state.passKeys ? new Map() : emptyMap\n\n while (++index < node.children.length) {\n const child = node.children[index]\n /** @type {string | undefined} */\n let key\n\n if (state.passKeys) {\n const name =\n child.type === 'element'\n ? child.tagName\n : child.type === 'mdxJsxFlowElement' ||\n child.type === 'mdxJsxTextElement'\n ? child.name\n : undefined\n\n if (name) {\n const count = countsByName.get(name) || 0\n key = name + '-' + count\n countsByName.set(name, count + 1)\n }\n }\n\n const result = one(state, child, key)\n if (result !== undefined) children.push(result)\n }\n\n return children\n}\n\n/**\n * Handle a property.\n *\n * @param {State} state\n * Info passed around.\n * @param {string} prop\n * Key.\n * @param {Array<number | string> | boolean | number | string | null | undefined} value\n * hast property value.\n * @returns {Field | undefined}\n * Field for runtime, optional.\n */\nfunction createProperty(state, prop, value) {\n const info = find(state.schema, prop)\n\n // Ignore nullish and `NaN` values.\n if (\n value === null ||\n value === undefined ||\n (typeof value === 'number' && Number.isNaN(value))\n ) {\n return\n }\n\n if (Array.isArray(value)) {\n // Accept `array`.\n // Most props are space-separated.\n value = info.commaSeparated ? commas(value) : spaces(value)\n }\n\n // React only accepts `style` as object.\n if (info.property === 'style') {\n let styleObject =\n typeof value === 'object' ? value : parseStyle(state, String(value))\n\n if (state.stylePropertyNameCase === 'css') {\n styleObject = transformStylesToCssCasing(styleObject)\n }\n\n return ['style', styleObject]\n }\n\n return [\n state.elementAttributeNameCase === 'react' && info.space\n ? hastToReact[info.property] || info.property\n : info.attribute,\n value\n ]\n}\n\n/**\n * Parse a CSS declaration to an object.\n *\n * @param {State} state\n * Info passed around.\n * @param {string} value\n * CSS declarations.\n * @returns {Style}\n * Properties.\n * @throws\n * Throws `VFileMessage` when CSS cannot be parsed.\n */\nfunction parseStyle(state, value) {\n try {\n return styleToJs(value, {reactCompat: true})\n } catch (error) {\n if (state.ignoreInvalidStyle) {\n return {}\n }\n\n const cause = /** @type {Error} */ (error)\n const message = new VFileMessage('Cannot parse `style` attribute', {\n ancestors: state.ancestors,\n cause,\n ruleId: 'style',\n source: 'hast-util-to-jsx-runtime'\n })\n message.file = state.filePath || undefined\n message.url = docs + '#cannot-parse-style-attribute'\n\n throw message\n }\n}\n\n/**\n * Create a JSX name from a string.\n *\n * @param {State} state\n * To do.\n * @param {string} name\n * Name.\n * @param {boolean} allowExpression\n * Allow member expressions and identifiers.\n * @returns {unknown}\n * To do.\n */\nfunction findComponentFromName(state, name, allowExpression) {\n /** @type {Identifier | Literal | MemberExpression} */\n let result\n\n if (!allowExpression) {\n result = {type: 'Literal', value: name}\n } else if (name.includes('.')) {\n const identifiers = name.split('.')\n let index = -1\n /** @type {Identifier | Literal | MemberExpression | undefined} */\n let node\n\n while (++index < identifiers.length) {\n /** @type {Identifier | Literal} */\n const prop = isIdentifierName(identifiers[index])\n ? {type: 'Identifier', name: identifiers[index]}\n : {type: 'Literal', value: identifiers[index]}\n node = node\n ? {\n type: 'MemberExpression',\n object: node,\n property: prop,\n computed: Boolean(index && prop.type === 'Literal'),\n optional: false\n }\n : prop\n }\n\n assert(node, 'always a result')\n result = node\n } else {\n result =\n isIdentifierName(name) && !/^[a-z]/.test(name)\n ? {type: 'Identifier', name}\n : {type: 'Literal', value: name}\n }\n\n // Only literals can be passed in `components` currently.\n // No identifiers / member expressions.\n if (result.type === 'Literal') {\n const name = /** @type {string | number} */ (result.value)\n return own.call(state.components, name) ? state.components[name] : name\n }\n\n // Assume component.\n if (state.evaluater) {\n return state.evaluater.evaluateExpression(result)\n }\n\n crashEstree(state)\n}\n\n/**\n * @param {State} state\n * @param {Position | undefined} [place]\n * @returns {never}\n */\nfunction crashEstree(state, place) {\n const message = new VFileMessage(\n 'Cannot handle MDX estrees without `createEvaluater`',\n {\n ancestors: state.ancestors,\n place,\n ruleId: 'mdx-estree',\n source: 'hast-util-to-jsx-runtime'\n }\n )\n message.file = state.filePath || undefined\n message.url = docs + '#cannot-handle-mdx-estrees-without-createevaluater'\n\n throw message\n}\n\n/**\n * Transform a DOM casing style object to a CSS casing style object.\n *\n * @param {Style} domCasing\n * @returns {Style}\n */\nfunction transformStylesToCssCasing(domCasing) {\n /** @type {Style} */\n const cssCasing = {}\n /** @type {string} */\n let from\n\n for (from in domCasing) {\n if (own.call(domCasing, from)) {\n cssCasing[transformStyleToCssCasing(from)] = domCasing[from]\n }\n }\n\n return cssCasing\n}\n\n/**\n * Transform a DOM casing style field to a CSS casing style field.\n *\n * @param {string} from\n * @returns {string}\n */\nfunction transformStyleToCssCasing(from) {\n let to = from.replace(cap, toDash)\n // Handle `ms-xxx` -> `-ms-xxx`.\n if (to.slice(0, 3) === 'ms-') to = '-' + to\n return to\n}\n\n/**\n * Make `$0` dash cased.\n *\n * @param {string} $0\n * Capitalized ASCII leter.\n * @returns {string}\n * Dash and lower letter.\n */\nfunction toDash($0) {\n return '-' + $0.toLowerCase()\n}\n","/**\n * HTML URL properties.\n *\n * Each key is a property name and each value is a list of tag names it applies\n * to or `null` if it applies to all elements.\n *\n * @type {Record<string, Array<string> | null>}\n */\nexport const urlAttributes = {\n action: ['form'],\n cite: ['blockquote', 'del', 'ins', 'q'],\n data: ['object'],\n formAction: ['button', 'input'],\n href: ['a', 'area', 'base', 'link'],\n icon: ['menuitem'],\n itemId: null,\n manifest: ['html'],\n ping: ['a', 'area'],\n poster: ['video'],\n src: [\n 'audio',\n 'embed',\n 'iframe',\n 'img',\n 'input',\n 'script',\n 'source',\n 'track',\n 'video'\n ]\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s (default: `true`).\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML (default: `true`).\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} [value]\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array<unknown>} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array<string>} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Nodes}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array<T>} items\n * Items to inject into `list`.\n * @returns {undefined}\n * Nothing.\n */\nexport function splice(list, start, remove, items) {\n const end = list.length;\n let chunkStart = 0;\n /** @type {Array<unknown>} */\n let parameters;\n\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start;\n } else {\n start = start > end ? end : start;\n }\n remove = remove > 0 ? remove : 0;\n\n // No need to chunk the items if there’s only a couple (10k) items.\n if (items.length < 10000) {\n parameters = Array.from(items);\n parameters.unshift(start, remove);\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters);\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove);\n\n // Insert the items in chunks to not cause stack overflows.\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000);\n parameters.unshift(start, 0);\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters);\n chunkStart += 10000;\n start += 10000;\n }\n }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {Array<T>} items\n * Items to add to `list`.\n * @returns {Array<T>}\n * Either `list` or `items`.\n */\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items);\n return list;\n }\n return items;\n}","/**\n * Some of the internal operations of micromark do lots of editing\n * operations on very large arrays. This runs into problems with two\n * properties of most circa-2020 JavaScript interpreters:\n *\n * - Array-length modifications at the high end of an array (push/pop) are\n * expected to be common and are implemented in (amortized) time\n * proportional to the number of elements added or removed, whereas\n * other operations (shift/unshift and splice) are much less efficient.\n * - Function arguments are passed on the stack, so adding tens of thousands\n * of elements to an array with `arr.push(...newElements)` will frequently\n * cause stack overflows. (see <https://stackoverflow.com/questions/22123769/rangeerror-maximum-call-stack-size-exceeded-why>)\n *\n * SpliceBuffers are an implementation of gap buffers, which are a\n * generalization of the \"queue made of two stacks\" idea. The splice buffer\n * maintains a cursor, and moving the cursor has cost proportional to the\n * distance the cursor moves, but inserting, deleting, or splicing in\n * new information at the cursor is as efficient as the push/pop operation.\n * This allows for an efficient sequence of splices (or pushes, pops, shifts,\n * or unshifts) as long such edits happen at the same part of the array or\n * generally sweep through the array from the beginning to the end.\n *\n * The interface for splice buffers also supports large numbers of inputs by\n * passing a single array argument rather passing multiple arguments on the\n * function call stack.\n *\n * @template T\n * Item type.\n */\nexport class SpliceBuffer {\n /**\n * @param {ReadonlyArray<T> | null | undefined} [initial]\n * Initial items (optional).\n * @returns\n * Splice buffer.\n */\n constructor(initial) {\n /** @type {Array<T>} */\n this.left = initial ? [...initial] : [];\n /** @type {Array<T>} */\n this.right = [];\n }\n\n /**\n * Array access;\n * does not move the cursor.\n *\n * @param {number} index\n * Index.\n * @return {T}\n * Item.\n */\n get(index) {\n if (index < 0 || index >= this.left.length + this.right.length) {\n throw new RangeError('Cannot access index `' + index + '` in a splice buffer of size `' + (this.left.length + this.right.length) + '`');\n }\n if (index < this.left.length) return this.left[index];\n return this.right[this.right.length - index + this.left.length - 1];\n }\n\n /**\n * The length of the splice buffer, one greater than the largest index in the\n * array.\n */\n get length() {\n return this.left.length + this.right.length;\n }\n\n /**\n * Remove and return `list[0]`;\n * moves the cursor to `0`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n shift() {\n this.setCursor(0);\n return this.right.pop();\n }\n\n /**\n * Slice the buffer to get an array;\n * does not move the cursor.\n *\n * @param {number} start\n * Start.\n * @param {number | null | undefined} [end]\n * End (optional).\n * @returns {Array<T>}\n * Array of items.\n */\n slice(start, end) {\n /** @type {number} */\n const stop = end === null || end === undefined ? Number.POSITIVE_INFINITY : end;\n if (stop < this.left.length) {\n return this.left.slice(start, stop);\n }\n if (start > this.left.length) {\n return this.right.slice(this.right.length - stop + this.left.length, this.right.length - start + this.left.length).reverse();\n }\n return this.left.slice(start).concat(this.right.slice(this.right.length - stop + this.left.length).reverse());\n }\n\n /**\n * Mimics the behavior of Array.prototype.splice() except for the change of\n * interface necessary to avoid segfaults when patching in very large arrays.\n *\n * This operation moves cursor is moved to `start` and results in the cursor\n * placed after any inserted items.\n *\n * @param {number} start\n * Start;\n * zero-based index at which to start changing the array;\n * negative numbers count backwards from the end of the array and values\n * that are out-of bounds are clamped to the appropriate end of the array.\n * @param {number | null | undefined} [deleteCount=0]\n * Delete count (default: `0`);\n * maximum number of elements to delete, starting from start.\n * @param {Array<T> | null | undefined} [items=[]]\n * Items to include in place of the deleted items (default: `[]`).\n * @return {Array<T>}\n * Any removed items.\n */\n splice(start, deleteCount, items) {\n /** @type {number} */\n const count = deleteCount || 0;\n this.setCursor(Math.trunc(start));\n const removed = this.right.splice(this.right.length - count, Number.POSITIVE_INFINITY);\n if (items) chunkedPush(this.left, items);\n return removed.reverse();\n }\n\n /**\n * Remove and return the highest-numbered item in the array, so\n * `list[list.length - 1]`;\n * Moves the cursor to `length`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n pop() {\n this.setCursor(Number.POSITIVE_INFINITY);\n return this.left.pop();\n }\n\n /**\n * Inserts a single item to the high-numbered side of the array;\n * moves the cursor to `length`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n push(item) {\n this.setCursor(Number.POSITIVE_INFINITY);\n this.left.push(item);\n }\n\n /**\n * Inserts many items to the high-numbered side of the array.\n * Moves the cursor to `length`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n pushMany(items) {\n this.setCursor(Number.POSITIVE_INFINITY);\n chunkedPush(this.left, items);\n }\n\n /**\n * Inserts a single item to the low-numbered side of the array;\n * Moves the cursor to `0`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n unshift(item) {\n this.setCursor(0);\n this.right.push(item);\n }\n\n /**\n * Inserts many items to the low-numbered side of the array;\n * moves the cursor to `0`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n unshiftMany(items) {\n this.setCursor(0);\n chunkedPush(this.right, items.reverse());\n }\n\n /**\n * Move the cursor to a specific position in the array. Requires\n * time proportional to the distance moved.\n *\n * If `n < 0`, the cursor will end up at the beginning.\n * If `n > length`, the cursor will end up at the end.\n *\n * @param {number} n\n * Position.\n * @return {undefined}\n * Nothing.\n */\n setCursor(n) {\n if (n === this.left.length || n > this.left.length && this.right.length === 0 || n < 0 && this.left.length === 0) return;\n if (n < this.left.length) {\n // Move cursor to the this.left\n const removed = this.left.splice(n, Number.POSITIVE_INFINITY);\n chunkedPush(this.right, removed.reverse());\n } else {\n // Move cursor to the this.right\n const removed = this.right.splice(this.left.length + this.right.length - n, Number.POSITIVE_INFINITY);\n chunkedPush(this.left, removed.reverse());\n }\n }\n}\n\n/**\n * Avoid stack overflow by pushing items onto the stack in segments\n *\n * @template T\n * Item type.\n * @param {Array<T>} list\n * List to inject into.\n * @param {ReadonlyArray<T>} right\n * Items to inject.\n * @return {undefined}\n * Nothing.\n */\nfunction chunkedPush(list, right) {\n /** @type {number} */\n let chunkStart = 0;\n if (right.length < 10000) {\n list.push(...right);\n } else {\n while (chunkStart < right.length) {\n list.push(...right.slice(chunkStart, chunkStart + 10000));\n chunkStart += 10000;\n }\n }\n}","/**\n * @import {Chunk, Event, Token} from 'micromark-util-types'\n */\n\nimport { splice } from 'micromark-util-chunked';\nimport { SpliceBuffer } from './lib/splice-buffer.js';\n\n// Hidden API exposed for testing.\nexport { SpliceBuffer } from './lib/splice-buffer.js';\n\n/**\n * Tokenize subcontent.\n *\n * @param {Array<Event>} eventsArray\n * List of events.\n * @returns {boolean}\n * Whether subtokens were found.\n */\n// eslint-disable-next-line complexity\nexport function subtokenize(eventsArray) {\n /** @type {Record<string, number>} */\n const jumps = {};\n let index = -1;\n /** @type {Event} */\n let event;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number} */\n let otherIndex;\n /** @type {Event} */\n let otherEvent;\n /** @type {Array<Event>} */\n let parameters;\n /** @type {Array<Event>} */\n let subevents;\n /** @type {boolean | undefined} */\n let more;\n const events = new SpliceBuffer(eventsArray);\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index];\n }\n event = events.get(index);\n\n // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n if (index && event[1].type === \"chunkFlow\" && events.get(index - 1)[1].type === \"listItemPrefix\") {\n subevents = event[1]._tokenizer.events;\n otherIndex = 0;\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"lineEndingBlank\") {\n otherIndex += 2;\n }\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"content\") {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === \"content\") {\n break;\n }\n if (subevents[otherIndex][1].type === \"chunkText\") {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true;\n otherIndex++;\n }\n }\n }\n }\n\n // Enter.\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index));\n index = jumps[index];\n more = true;\n }\n }\n // Exit.\n else if (event[1]._container) {\n otherIndex = index;\n lineIndex = undefined;\n while (otherIndex--) {\n otherEvent = events.get(otherIndex);\n if (otherEvent[1].type === \"lineEnding\" || otherEvent[1].type === \"lineEndingBlank\") {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events.get(lineIndex)[1].type = \"lineEndingBlank\";\n }\n otherEvent[1].type = \"lineEnding\";\n lineIndex = otherIndex;\n }\n } else if (otherEvent[1].type === \"linePrefix\" || otherEvent[1].type === \"listItemIndent\") {\n // Move past.\n } else {\n break;\n }\n }\n if (lineIndex) {\n // Fix position.\n event[1].end = {\n ...events.get(lineIndex)[1].start\n };\n\n // Switch container exit w/ line endings.\n parameters = events.slice(lineIndex, index);\n parameters.unshift(event);\n events.splice(lineIndex, index - lineIndex + 1, parameters);\n }\n }\n }\n\n // The changes to the `events` buffer must be copied back into the eventsArray\n splice(eventsArray, 0, Number.POSITIVE_INFINITY, events.slice(0));\n return !more;\n}\n\n/**\n * Tokenize embedded tokens.\n *\n * @param {SpliceBuffer<Event>} events\n * Events.\n * @param {number} eventIndex\n * Index.\n * @returns {Record<string, number>}\n * Gaps.\n */\nfunction subcontent(events, eventIndex) {\n const token = events.get(eventIndex)[1];\n const context = events.get(eventIndex)[2];\n let startPosition = eventIndex - 1;\n /** @type {Array<number>} */\n const startPositions = [];\n let tokenizer = token._tokenizer;\n if (!tokenizer) {\n tokenizer = context.parser[token.contentType](token.start);\n if (token._contentTypeTextTrailing) {\n tokenizer._contentTypeTextTrailing = true;\n }\n }\n const childEvents = tokenizer.events;\n /** @type {Array<[number, number]>} */\n const jumps = [];\n /** @type {Record<string, number>} */\n const gaps = {};\n /** @type {Array<Chunk>} */\n let stream;\n /** @type {Token | undefined} */\n let previous;\n let index = -1;\n /** @type {Token | undefined} */\n let current = token;\n let adjust = 0;\n let start = 0;\n const breaks = [start];\n\n // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n while (current) {\n // Find the position of the event for this token.\n while (events.get(++startPosition)[1] !== current) {\n // Empty.\n }\n startPositions.push(startPosition);\n if (!current._tokenizer) {\n stream = context.sliceStream(current);\n if (!current.next) {\n stream.push(null);\n }\n if (previous) {\n tokenizer.defineSkip(current.start);\n }\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true;\n }\n tokenizer.write(stream);\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined;\n }\n }\n\n // Unravel the next token.\n previous = current;\n current = current.next;\n }\n\n // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n current = token;\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' && childEvents[index - 1][0] === 'enter' && childEvents[index][1].type === childEvents[index - 1][1].type && childEvents[index][1].start.line !== childEvents[index][1].end.line) {\n start = index + 1;\n breaks.push(start);\n // Help GC.\n current._tokenizer = undefined;\n current.previous = undefined;\n current = current.next;\n }\n }\n\n // Help GC.\n tokenizer.events = [];\n\n // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n if (current) {\n // Help GC.\n current._tokenizer = undefined;\n current.previous = undefined;\n } else {\n breaks.pop();\n }\n\n // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n index = breaks.length;\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1]);\n const start = startPositions.pop();\n jumps.push([start, start + slice.length - 1]);\n events.splice(start, 2, slice);\n }\n jumps.reverse();\n index = -1;\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1];\n adjust += jumps[index][1] - jumps[index][0] - 1;\n }\n return gaps;\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\nimport { subtokenize } from 'micromark-util-subtokenize';\n\n/**\n * @param {Array<Event>} events\n * Events.\n * @returns {Array<Event>}\n * Events.\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events;\n}","/**\n * @import {\n * Extension,\n * Handles,\n * HtmlExtension,\n * NormalizedExtension\n * } from 'micromark-util-types'\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {ReadonlyArray<Extension>} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {undefined}\n * Nothing.\n */\nfunction syntaxExtension(all, extension) {\n /** @type {keyof Extension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n /** @type {Record<string, unknown>} */\n const left = maybe || (all[hook] = {})\n /** @type {Record<string, unknown> | undefined} */\n const right = extension[hook]\n /** @type {string} */\n let code\n\n if (right) {\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array<unknown>} existing\n * List of constructs to merge into.\n * @param {Array<unknown>} list\n * List of constructs to merge.\n * @returns {undefined}\n * Nothing.\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {Array<unknown>} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {ReadonlyArray<HtmlExtension>} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * Single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {undefined}\n * Nothing.\n */\nfunction htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {keyof Handles} */\n let type\n\n if (right) {\n for (type in right) {\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type]\n }\n }\n }\n}\n","/**\n * @import {Code} from 'micromark-util-types'\n */\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/);\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n );\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/);\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/);\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2;\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32);\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32;\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(/\\p{P}|\\p{S}/u);\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/);\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * Expression.\n * @returns {(code: Code) => boolean}\n * Check.\n */\nfunction regexCheck(regex) {\n return check;\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && code > -1 && regex.test(String.fromCharCode(code));\n }\n}","/**\n * @import {Effects, State, TokenType} from 'micromark-util-types'\n */\n\nimport { markdownSpace } from 'micromark-util-character';\n\n// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `␉` represents a tab (plus how much it expands) and `␠` represents a\n * single space.\n *\n * ```markdown\n * ␉\n * ␠␠␠␠\n * ␉␠\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type (`' \\t'`).\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns {State}\n * Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type);\n return prefix(code);\n }\n return ok(code);\n }\n\n /** @type {State} */\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code);\n return prefix;\n }\n effects.exit(type);\n return ok(code);\n }\n}","/**\n * @import {\n * InitialConstruct,\n * Initializer,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Initializer}\n * Content.\n */\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(this.parser.constructs.contentInitial, afterContentStartConstruct, paragraphInitial);\n /** @type {Token} */\n let previous;\n return contentStart;\n\n /** @type {State} */\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, contentStart, \"linePrefix\");\n }\n\n /** @type {State} */\n function paragraphInitial(code) {\n effects.enter(\"paragraph\");\n return lineStart(code);\n }\n\n /** @type {State} */\n function lineStart(code) {\n const token = effects.enter(\"chunkText\", {\n contentType: \"text\",\n previous\n });\n if (previous) {\n previous.next = token;\n }\n previous = token;\n return data(code);\n }\n\n /** @type {State} */\n function data(code) {\n if (code === null) {\n effects.exit(\"chunkText\");\n effects.exit(\"paragraph\");\n effects.consume(code);\n return;\n }\n if (markdownLineEnding(code)) {\n effects.consume(code);\n effects.exit(\"chunkText\");\n return lineStart;\n }\n\n // Data.\n effects.consume(code);\n return data;\n }\n}","/**\n * @import {\n * Construct,\n * ContainerState,\n * InitialConstruct,\n * Initializer,\n * Point,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @typedef {[Construct, ContainerState]} StackItem\n * Construct and its state.\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { splice } from 'micromark-util-chunked';\n/** @type {InitialConstruct} */\nexport const document = {\n tokenize: initializeDocument\n};\n\n/** @type {Construct} */\nconst containerConstruct = {\n tokenize: tokenizeContainer\n};\n\n/**\n * @this {TokenizeContext}\n * Self.\n * @type {Initializer}\n * Initializer.\n */\nfunction initializeDocument(effects) {\n const self = this;\n /** @type {Array<StackItem>} */\n const stack = [];\n let continued = 0;\n /** @type {TokenizeContext | undefined} */\n let childFlow;\n /** @type {Token | undefined} */\n let childToken;\n /** @type {number} */\n let lineStartOffset;\n return start;\n\n /** @type {State} */\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued];\n self.containerState = item[1];\n return effects.attempt(item[0].continuation, documentContinue, checkNewContainers)(code);\n }\n\n // Done.\n return checkNewContainers(code);\n }\n\n /** @type {State} */\n function documentContinue(code) {\n continued++;\n\n // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined;\n if (childFlow) {\n closeFlow();\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n const indexBeforeExits = self.events.length;\n let indexBeforeFlow = indexBeforeExits;\n /** @type {Point | undefined} */\n let point;\n\n // Find the flow chunk.\n while (indexBeforeFlow--) {\n if (self.events[indexBeforeFlow][0] === 'exit' && self.events[indexBeforeFlow][1].type === \"chunkFlow\") {\n point = self.events[indexBeforeFlow][1].end;\n break;\n }\n }\n exitContainers(continued);\n\n // Fix positions.\n let index = indexBeforeExits;\n while (index < self.events.length) {\n self.events[index][1].end = {\n ...point\n };\n index++;\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(self.events, indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits));\n\n // Discard the duplicate exits.\n self.events.length = index;\n return checkNewContainers(code);\n }\n return start(code);\n }\n\n /** @type {State} */\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code);\n }\n\n // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce” into them, so we can immediately\n // start.\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code);\n }\n\n // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n // needed in micromark-extension-gfm-table@1.0.6).\n self.interrupt = Boolean(childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack);\n }\n\n // Check if there is a new container.\n self.containerState = {};\n return effects.check(containerConstruct, thereIsANewContainer, thereIsNoNewContainer)(code);\n }\n\n /** @type {State} */\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow();\n exitContainers(continued);\n return documentContinued(code);\n }\n\n /** @type {State} */\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length;\n lineStartOffset = self.now().offset;\n return flowStart(code);\n }\n\n /** @type {State} */\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {};\n return effects.attempt(containerConstruct, containerContinue, flowStart)(code);\n }\n\n /** @type {State} */\n function containerContinue(code) {\n continued++;\n stack.push([self.currentConstruct, self.containerState]);\n // Try another.\n return documentContinued(code);\n }\n\n /** @type {State} */\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow();\n exitContainers(0);\n effects.consume(code);\n return;\n }\n childFlow = childFlow || self.parser.flow(self.now());\n effects.enter(\"chunkFlow\", {\n _tokenizer: childFlow,\n contentType: \"flow\",\n previous: childToken\n });\n return flowContinue(code);\n }\n\n /** @type {State} */\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit(\"chunkFlow\"), true);\n exitContainers(0);\n effects.consume(code);\n return;\n }\n if (markdownLineEnding(code)) {\n effects.consume(code);\n writeToChild(effects.exit(\"chunkFlow\"));\n // Get ready for the next line.\n continued = 0;\n self.interrupt = undefined;\n return start;\n }\n effects.consume(code);\n return flowContinue;\n }\n\n /**\n * @param {Token} token\n * Token.\n * @param {boolean | undefined} [endOfFile]\n * Whether the token is at the end of the file (default: `false`).\n * @returns {undefined}\n * Nothing.\n */\n function writeToChild(token, endOfFile) {\n const stream = self.sliceStream(token);\n if (endOfFile) stream.push(null);\n token.previous = childToken;\n if (childToken) childToken.next = token;\n childToken = token;\n childFlow.defineSkip(token.start);\n childFlow.write(stream);\n\n // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length;\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset && (\n // …and either is not ended yet…\n !childFlow.events[index][1].end ||\n // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return;\n }\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n const indexBeforeExits = self.events.length;\n let indexBeforeFlow = indexBeforeExits;\n /** @type {boolean | undefined} */\n let seen;\n /** @type {Point | undefined} */\n let point;\n\n // Find the previous chunk (the one before the lazy line).\n while (indexBeforeFlow--) {\n if (self.events[indexBeforeFlow][0] === 'exit' && self.events[indexBeforeFlow][1].type === \"chunkFlow\") {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end;\n break;\n }\n seen = true;\n }\n }\n exitContainers(continued);\n\n // Fix positions.\n index = indexBeforeExits;\n while (index < self.events.length) {\n self.events[index][1].end = {\n ...point\n };\n index++;\n }\n\n // Inject the exits earlier (they’re still also at the end).\n splice(self.events, indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits));\n\n // Discard the duplicate exits.\n self.events.length = index;\n }\n }\n\n /**\n * @param {number} size\n * Size.\n * @returns {undefined}\n * Nothing.\n */\n function exitContainers(size) {\n let index = stack.length;\n\n // Exit open containers.\n while (index-- > size) {\n const entry = stack[index];\n self.containerState = entry[1];\n entry[0].exit.call(self, effects);\n }\n stack.length = size;\n }\n function closeFlow() {\n childFlow.write([null]);\n childToken = undefined;\n childFlow = undefined;\n self.containerState._closeFlow = undefined;\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n * Tokenizer.\n */\nfunction tokenizeContainer(effects, ok, nok) {\n // Always populated by defaults.\n\n return factorySpace(effects, effects.attempt(this.parser.constructs.document, ok, nok), \"linePrefix\", this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4);\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const blankLine = {\n partial: true,\n tokenize: tokenizeBlankLine\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start;\n\n /**\n * Start of blank line.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n return markdownSpace(code) ? factorySpace(effects, after, \"linePrefix\")(code) : after(code);\n }\n\n /**\n * At eof/eol, after optional whitespace.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { subtokenize } from 'micromark-util-subtokenize';\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n resolve: resolveContent,\n tokenize: tokenizeContent\n};\n\n/** @type {Construct} */\nconst continuationConstruct = {\n partial: true,\n tokenize: tokenizeContinuation\n};\n\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\nfunction resolveContent(events) {\n subtokenize(events);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeContent(effects, ok) {\n /** @type {Token | undefined} */\n let previous;\n return chunkStart;\n\n /**\n * Before a content chunk.\n *\n * ```markdown\n * > | abc\n * ^\n * ```\n *\n * @type {State}\n */\n function chunkStart(code) {\n effects.enter(\"content\");\n previous = effects.enter(\"chunkContent\", {\n contentType: \"content\"\n });\n return chunkInside(code);\n }\n\n /**\n * In a content chunk.\n *\n * ```markdown\n * > | abc\n * ^^^\n * ```\n *\n * @type {State}\n */\n function chunkInside(code) {\n if (code === null) {\n return contentEnd(code);\n }\n\n // To do: in `markdown-rs`, each line is parsed on its own, and everything\n // is stitched together resolving.\n if (markdownLineEnding(code)) {\n return effects.check(continuationConstruct, contentContinue, contentEnd)(code);\n }\n\n // Data.\n effects.consume(code);\n return chunkInside;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentEnd(code) {\n effects.exit(\"chunkContent\");\n effects.exit(\"content\");\n return ok(code);\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentContinue(code) {\n effects.consume(code);\n effects.exit(\"chunkContent\");\n previous.next = effects.enter(\"chunkContent\", {\n contentType: \"content\",\n previous\n });\n previous = previous.next;\n return chunkInside;\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this;\n return startLookahead;\n\n /**\n *\n *\n * @type {State}\n */\n function startLookahead(code) {\n effects.exit(\"chunkContent\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, prefixed, \"linePrefix\");\n }\n\n /**\n *\n *\n * @type {State}\n */\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code);\n }\n\n // Always populated by defaults.\n\n const tail = self.events[self.events.length - 1];\n if (!self.parser.constructs.disable.null.includes('codeIndented') && tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4) {\n return ok(code);\n }\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code);\n }\n}","/**\n * @import {\n * InitialConstruct,\n * Initializer,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nimport { blankLine, content } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n};\n\n/**\n * @this {TokenizeContext}\n * Self.\n * @type {Initializer}\n * Initializer.\n */\nfunction initializeFlow(effects) {\n const self = this;\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine, atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(this.parser.constructs.flowInitial, afterConstruct, factorySpace(effects, effects.attempt(this.parser.constructs.flow, afterConstruct, effects.attempt(content, afterConstruct)), \"linePrefix\")));\n return initial;\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEndingBlank\");\n effects.consume(code);\n effects.exit(\"lineEndingBlank\");\n self.currentConstruct = undefined;\n return initial;\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n self.currentConstruct = undefined;\n return initial;\n }\n}","/**\n * @import {\n * Code,\n * InitialConstruct,\n * Initializer,\n * Resolver,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nexport const resolver = {\n resolveAll: createResolver()\n};\nexport const string = initializeFactory('string');\nexport const text = initializeFactory('text');\n\n/**\n * @param {'string' | 'text'} field\n * Field.\n * @returns {InitialConstruct}\n * Construct.\n */\nfunction initializeFactory(field) {\n return {\n resolveAll: createResolver(field === 'text' ? resolveAllLineSuffixes : undefined),\n tokenize: initializeText\n };\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this;\n const constructs = this.parser.constructs[field];\n const text = effects.attempt(constructs, start, notText);\n return start;\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code);\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"data\");\n effects.consume(code);\n return data;\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit(\"data\");\n return text(code);\n }\n\n // Data.\n effects.consume(code);\n return data;\n }\n\n /**\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether the code is a break.\n */\n function atBreak(code) {\n if (code === null) {\n return true;\n }\n const list = constructs[code];\n let index = -1;\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index];\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true;\n }\n }\n }\n return false;\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * Resolver.\n * @returns {Resolver}\n * Resolver.\n */\nfunction createResolver(extraResolver) {\n return resolveAllText;\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1;\n /** @type {number | undefined} */\n let enter;\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === \"data\") {\n enter = index;\n index++;\n }\n } else if (!events[index] || events[index][1].type !== \"data\") {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return extraResolver ? extraResolver(events, context) : events;\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0; // Skip first.\n\n while (++eventIndex <= events.length) {\n if ((eventIndex === events.length || events[eventIndex][1].type === \"lineEnding\") && events[eventIndex - 1][1].type === \"data\") {\n const data = events[eventIndex - 1][1];\n const chunks = context.sliceStream(data);\n let index = chunks.length;\n let bufferIndex = -1;\n let size = 0;\n /** @type {boolean | undefined} */\n let tabs;\n while (index--) {\n const chunk = chunks[index];\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length;\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++;\n bufferIndex--;\n }\n if (bufferIndex) break;\n bufferIndex = -1;\n }\n // Number\n else if (chunk === -2) {\n tabs = true;\n size++;\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++;\n break;\n }\n }\n\n // Allow final trailing whitespace.\n if (context._contentTypeTextTrailing && eventIndex === events.length) {\n size = 0;\n }\n if (size) {\n const token = {\n type: eventIndex === events.length || tabs || size < 2 ? \"lineSuffix\" : \"hardBreakTrailing\",\n start: {\n _bufferIndex: index ? bufferIndex : data.start._bufferIndex + bufferIndex,\n _index: data.start._index + index,\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size\n },\n end: {\n ...data.end\n }\n };\n data.end = {\n ...token.start\n };\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token);\n } else {\n events.splice(eventIndex, 0, ['enter', token, context], ['exit', token, context]);\n eventIndex += 2;\n }\n }\n eventIndex++;\n }\n }\n return events;\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"thematicBreak\");\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code;\n return atBreak(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter(\"thematicBreakSequence\");\n return sequence(code);\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit(\"thematicBreak\");\n return ok(code);\n }\n return nok(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code);\n size++;\n return sequence;\n }\n effects.exit(\"thematicBreakSequence\");\n return markdownSpace(code) ? factorySpace(effects, atBreak, \"whitespace\")(code) : atBreak(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Exiter,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiDigit, markdownSpace } from 'micromark-util-character';\nimport { blankLine } from './blank-line.js';\nimport { thematicBreak } from './thematic-break.js';\n\n/** @type {Construct} */\nexport const list = {\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd,\n name: 'list',\n tokenize: tokenizeListStart\n};\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n partial: true,\n tokenize: tokenizeListItemPrefixWhitespace\n};\n\n/** @type {Construct} */\nconst indentConstruct = {\n partial: true,\n tokenize: tokenizeIndent\n};\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this;\n const tail = self.events[self.events.length - 1];\n let initialSize = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n const kind = self.containerState.type || (code === 42 || code === 43 || code === 45 ? \"listUnordered\" : \"listOrdered\");\n if (kind === \"listUnordered\" ? !self.containerState.marker || code === self.containerState.marker : asciiDigit(code)) {\n if (!self.containerState.type) {\n self.containerState.type = kind;\n effects.enter(kind, {\n _container: true\n });\n }\n if (kind === \"listUnordered\") {\n effects.enter(\"listItemPrefix\");\n return code === 42 || code === 45 ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code);\n }\n if (!self.interrupt || code === 49) {\n effects.enter(\"listItemPrefix\");\n effects.enter(\"listItemValue\");\n return inside(code);\n }\n }\n return nok(code);\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code);\n return inside;\n }\n if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === 41 || code === 46)) {\n effects.exit(\"listItemValue\");\n return atMarker(code);\n }\n return nok(code);\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter(\"listItemMarker\");\n effects.consume(code);\n effects.exit(\"listItemMarker\");\n self.containerState.marker = self.containerState.marker || code;\n return effects.check(blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank, effects.attempt(listItemPrefixWhitespaceConstruct, endOfPrefix, otherPrefix));\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true;\n initialSize++;\n return endOfPrefix(code);\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter(\"listItemPrefixWhitespace\");\n effects.consume(code);\n effects.exit(\"listItemPrefixWhitespace\");\n return endOfPrefix;\n }\n return nok(code);\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size = initialSize + self.sliceSerialize(effects.exit(\"listItemPrefix\"), true).length;\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this;\n self.containerState._closeFlow = undefined;\n return effects.check(blankLine, onBlank, notBlank);\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine;\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(effects, ok, \"listItemIndent\", self.containerState.size + 1)(code);\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return notInCurrentItem(code);\n }\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code);\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true;\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined;\n // Always populated by defaults.\n\n return factorySpace(effects, effects.attempt(list, ok, nok), \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, \"listItemIndent\", self.containerState.size + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"listItemIndent\" && tail[2].sliceSerialize(tail[1], true).length === self.containerState.size ? ok(code) : nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Exiter}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type);\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this;\n\n // Always populated by defaults.\n\n return factorySpace(effects, afterPrefix, \"listItemPrefixWhitespace\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return !markdownSpace(code) && tail && tail[1].type === \"listItemPrefixWhitespace\" ? ok(code) : nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * Exiter,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const blockQuote = {\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit,\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of block quote.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 62) {\n const state = self.containerState;\n if (!state.open) {\n effects.enter(\"blockQuote\", {\n _container: true\n });\n state.open = true;\n }\n effects.enter(\"blockQuotePrefix\");\n effects.enter(\"blockQuoteMarker\");\n effects.consume(code);\n effects.exit(\"blockQuoteMarker\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `>`, before optional whitespace.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter(\"blockQuotePrefixWhitespace\");\n effects.consume(code);\n effects.exit(\"blockQuotePrefixWhitespace\");\n effects.exit(\"blockQuotePrefix\");\n return ok;\n }\n effects.exit(\"blockQuotePrefix\");\n return ok(code);\n }\n}\n\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self = this;\n return contStart;\n\n /**\n * Start of block quote continuation.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contStart(code) {\n if (markdownSpace(code)) {\n // Always populated by defaults.\n\n return factorySpace(effects, contBefore, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n return contBefore(code);\n }\n\n /**\n * At `>`, after optional whitespace.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contBefore(code) {\n return effects.attempt(blockQuote, ok, nok)(code);\n }\n}\n\n/** @type {Exiter} */\nfunction exit(effects) {\n effects.exit(\"blockQuote\");\n}","/**\n * @import {Effects, State, TokenType} from 'micromark-util-types'\n */\n\nimport { asciiControl, markdownLineEndingOrSpace, markdownLineEnding } from 'micromark-util-character';\n/**\n * Parse destinations.\n *\n * ###### Examples\n *\n * ```markdown\n * <a>\n * <a\\>b>\n * <a b>\n * <a)>\n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type for whole (`<a>` or `b`).\n * @param {TokenType} literalType\n * Type when enclosed (`<a>`).\n * @param {TokenType} literalMarkerType\n * Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n * Type when not enclosed (`b`).\n * @param {TokenType} stringType\n * Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n * Depth of nested parens (inclusive).\n * @returns {State}\n * Start state.\n */\nexport function factoryDestination(effects, ok, nok, type, literalType, literalMarkerType, rawType, stringType, max) {\n const limit = max || Number.POSITIVE_INFINITY;\n let balance = 0;\n return start;\n\n /**\n * Start of destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 60) {\n effects.enter(type);\n effects.enter(literalType);\n effects.enter(literalMarkerType);\n effects.consume(code);\n effects.exit(literalMarkerType);\n return enclosedBefore;\n }\n\n // ASCII control, space, closing paren.\n if (code === null || code === 32 || code === 41 || asciiControl(code)) {\n return nok(code);\n }\n effects.enter(type);\n effects.enter(rawType);\n effects.enter(stringType);\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return raw(code);\n }\n\n /**\n * After `<`, at an enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType);\n effects.consume(code);\n effects.exit(literalMarkerType);\n effects.exit(literalType);\n effects.exit(type);\n return ok;\n }\n effects.enter(stringType);\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return enclosed(code);\n }\n\n /**\n * In enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosed(code) {\n if (code === 62) {\n effects.exit(\"chunkString\");\n effects.exit(stringType);\n return enclosedBefore(code);\n }\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code);\n }\n effects.consume(code);\n return code === 92 ? enclosedEscape : enclosed;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | <a\\*a>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code);\n return enclosed;\n }\n return enclosed(code);\n }\n\n /**\n * In raw destination.\n *\n * ```markdown\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function raw(code) {\n if (!balance && (code === null || code === 41 || markdownLineEndingOrSpace(code))) {\n effects.exit(\"chunkString\");\n effects.exit(stringType);\n effects.exit(rawType);\n effects.exit(type);\n return ok(code);\n }\n if (balance < limit && code === 40) {\n effects.consume(code);\n balance++;\n return raw;\n }\n if (code === 41) {\n effects.consume(code);\n balance--;\n return raw;\n }\n\n // ASCII control (but *not* `\\0`) and space and `(`.\n // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n // doesn’t.\n if (code === null || code === 32 || code === 40 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return code === 92 ? rawEscape : raw;\n }\n\n /**\n * After `\\`, at special character.\n *\n * ```markdown\n * > | a\\*a\n * ^\n * ```\n *\n * @type {State}\n */\n function rawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code);\n return raw;\n }\n return raw(code);\n }\n}","/**\n * @import {\n * Effects,\n * State,\n * TokenizeContext,\n * TokenType\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/**\n * Parse labels.\n *\n * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n * Tokenize context.\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n * Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n * Type for the identifier (`a`).\n * @returns {State}\n * Start state.\n */\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this;\n let size = 0;\n /** @type {boolean} */\n let seen;\n return start;\n\n /**\n * Start of label.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.enter(stringType);\n return atBreak;\n }\n\n /**\n * In label, at something, before something else.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (size > 999 || code === null || code === 91 || code === 93 && !seen ||\n // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n code === 94 && !size && '_hiddenFootnoteSupport' in self.parser.constructs) {\n return nok(code);\n }\n if (code === 93) {\n effects.exit(stringType);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n\n // To do: indent? Link chunks and EOLs together?\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return atBreak;\n }\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return labelInside(code);\n }\n\n /**\n * In label, in text.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (code === null || code === 91 || code === 93 || markdownLineEnding(code) || size++ > 999) {\n effects.exit(\"chunkString\");\n return atBreak(code);\n }\n effects.consume(code);\n if (!seen) seen = !markdownSpace(code);\n return code === 92 ? labelEscape : labelInside;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | [a\\*a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code);\n size++;\n return labelInside;\n }\n return labelInside(code);\n }\n}","/**\n * @import {\n * Code,\n * Effects,\n * State,\n * TokenType\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/**\n * Parse titles.\n *\n * ###### Examples\n *\n * ```markdown\n * \"a\"\n * 'b'\n * (c)\n * \"a\n * b\"\n * 'a\n * b'\n * (a\\)b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole title (`\"a\"`, `'b'`, `(c)`).\n * @param {TokenType} markerType\n * Type for the markers (`\"`, `'`, `(`, and `)`).\n * @param {TokenType} stringType\n * Type for the value (`a`).\n * @returns {State}\n * Start state.\n */\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of title.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 34 || code === 39 || code === 40) {\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n marker = code === 40 ? 41 : code;\n return begin;\n }\n return nok(code);\n }\n\n /**\n * After opening marker.\n *\n * This is also used at the closing marker.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function begin(code) {\n if (code === marker) {\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n effects.enter(stringType);\n return atBreak(code);\n }\n\n /**\n * At something, before something else.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.exit(stringType);\n return begin(marker);\n }\n if (code === null) {\n return nok(code);\n }\n\n // Note: blank lines can’t exist in content.\n if (markdownLineEnding(code)) {\n // To do: use `space_or_tab_eol_with_options`, connect.\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, atBreak, \"linePrefix\");\n }\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return inside(code);\n }\n\n /**\n *\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n return atBreak(code);\n }\n effects.consume(code);\n return code === 92 ? escape : inside;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \"a\\*b\"\n * ^\n * ```\n *\n * @type {State}\n */\n function escape(code) {\n if (code === marker || code === 92) {\n effects.consume(code);\n return inside;\n }\n return inside(code);\n }\n}","/**\n * @import {Effects, State} from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * line endings or spaces in markdown are often optional, in which case this\n * factory can be used and `ok` will be switched to whether spaces were found\n * or not\n * * one line ending or space can be detected with\n * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @returns {State}\n * Start state.\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen;\n return start;\n\n /** @type {State} */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n seen = true;\n return start;\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, start, seen ? \"linePrefix\" : \"lineSuffix\")(code);\n }\n return ok(code);\n }\n}","/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n return value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, \" \")\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase().toUpperCase();\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factorySpace } from 'micromark-factory-space';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n};\n\n/** @type {Construct} */\nconst titleBefore = {\n partial: true,\n tokenize: tokenizeTitleBefore\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this;\n /** @type {string} */\n let identifier;\n return start;\n\n /**\n * At start of a definition.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Do not interrupt paragraphs (but do follow definitions).\n // To do: do `interrupt` the way `markdown-rs` does.\n // To do: parse whitespace the way `markdown-rs` does.\n effects.enter(\"definition\");\n return before(code);\n }\n\n /**\n * After optional whitespace, at `[`.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n // To do: parse whitespace the way `markdown-rs` does.\n\n return factoryLabel.call(self, effects, labelAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok, \"definitionLabel\", \"definitionLabelMarker\", \"definitionLabelString\")(code);\n }\n\n /**\n * After label.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n identifier = normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1));\n if (code === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code);\n effects.exit(\"definitionMarker\");\n return markerAfter;\n }\n return nok(code);\n }\n\n /**\n * After marker.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function markerAfter(code) {\n // Note: whitespace is optional.\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, destinationBefore)(code) : destinationBefore(code);\n }\n\n /**\n * Before destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationBefore(code) {\n return factoryDestination(effects, destinationAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok, \"definitionDestination\", \"definitionDestinationLiteral\", \"definitionDestinationLiteralMarker\", \"definitionDestinationRaw\", \"definitionDestinationString\")(code);\n }\n\n /**\n * After destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationAfter(code) {\n return effects.attempt(titleBefore, after, after)(code);\n }\n\n /**\n * After definition.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return markdownSpace(code) ? factorySpace(effects, afterWhitespace, \"whitespace\")(code) : afterWhitespace(code);\n }\n\n /**\n * After definition, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function afterWhitespace(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"definition\");\n\n // Note: we don’t care about uniqueness.\n // It’s likely that that doesn’t happen very frequently.\n // It is more likely that it wastes precious time.\n self.parser.defined.push(identifier);\n\n // To do: `markdown-rs` interrupt.\n // // You’d be interrupting.\n // tokenizer.interrupt = true\n return ok(code);\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore;\n\n /**\n * After destination, at whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, beforeMarker)(code) : nok(code);\n }\n\n /**\n * At title.\n *\n * ```markdown\n * | [a]: b\n * > | \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeMarker(code) {\n return factoryTitle(effects, titleAfter, nok, \"definitionTitle\", \"definitionTitleMarker\", \"definitionTitleString\")(code);\n }\n\n /**\n * After title.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfter(code) {\n return markdownSpace(code) ? factorySpace(effects, titleAfterOptionalWhitespace, \"whitespace\")(code) : titleAfterOptionalWhitespace(code);\n }\n\n /**\n * After title, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfterOptionalWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n};\n\n/** @type {Construct} */\nconst furtherStart = {\n partial: true,\n tokenize: tokenizeFurtherStart\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of code (indented).\n *\n * > **Parsing note**: it is not needed to check if this first line is a\n * > filled line (that it has a non-whitespace character), because blank lines\n * > are parsed already, so we never run into that.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: manually check if interrupting like `markdown-rs`.\n\n effects.enter(\"codeIndented\");\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code);\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? atBreak(code) : nok(code);\n }\n\n /**\n * At a break.\n *\n * ```markdown\n * > | aaa\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === null) {\n return after(code);\n }\n if (markdownLineEnding(code)) {\n return effects.attempt(furtherStart, atBreak, after)(code);\n }\n effects.enter(\"codeFlowValue\");\n return inside(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * > | aaa\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFlowValue\");\n return atBreak(code);\n }\n effects.consume(code);\n return inside;\n }\n\n /** @type {State} */\n function after(code) {\n effects.exit(\"codeIndented\");\n // To do: allow interrupting like `markdown-rs`.\n // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeFurtherStart(effects, ok, nok) {\n const self = this;\n return furtherStart;\n\n /**\n * At eol, trying to parse another indent.\n *\n * ```markdown\n * > | aaa\n * ^\n * | bbb\n * ```\n *\n * @type {State}\n */\n function furtherStart(code) {\n // To do: improve `lazy` / `pierce` handling.\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return furtherStart;\n }\n\n // To do: the code here in `micromark-js` is a bit different from\n // `markdown-rs` because there it can attempt spaces.\n // We can’t yet.\n //\n // To do: use an improved `space_or_tab` function like `markdown-rs`,\n // so that we can drop the next state.\n return factorySpace(effects, afterPrefix, \"linePrefix\", 4 + 1)(code);\n }\n\n /**\n * At start, after 1 or 4 spaces.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? ok(code) : markdownLineEnding(code) ? furtherStart(code) : nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { splice } from 'micromark-util-chunked';\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n resolve: resolveHeadingAtx,\n tokenize: tokenizeHeadingAtx\n};\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2;\n let contentStart = 3;\n /** @type {Token} */\n let content;\n /** @type {Token} */\n let text;\n\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === \"whitespace\") {\n contentStart += 2;\n }\n\n // Suffix whitespace, part of the closing.\n if (contentEnd - 2 > contentStart && events[contentEnd][1].type === \"whitespace\") {\n contentEnd -= 2;\n }\n if (events[contentEnd][1].type === \"atxHeadingSequence\" && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === \"whitespace\")) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4;\n }\n if (contentEnd > contentStart) {\n content = {\n type: \"atxHeadingText\",\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n };\n text = {\n type: \"chunkText\",\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: \"text\"\n };\n splice(events, contentStart, contentEnd - contentStart + 1, [['enter', content, context], ['enter', text, context], ['exit', text, context], ['exit', content, context]]);\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter(\"atxHeading\");\n return before(code);\n }\n\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"atxHeadingSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code);\n return sequenceOpen;\n }\n\n // Always at least one `#`.\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit(\"atxHeadingSequence\");\n return atBreak(code);\n }\n return nok(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === 35) {\n effects.enter(\"atxHeadingSequence\");\n return sequenceFurther(code);\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"atxHeading\");\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code);\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, \"whitespace\")(code);\n }\n\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter(\"atxHeadingText\");\n return data(code);\n }\n\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal “visible” hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceFurther(code) {\n if (code === 35) {\n effects.consume(code);\n return sequenceFurther;\n }\n effects.exit(\"atxHeadingSequence\");\n return atBreak(code);\n }\n\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit(\"atxHeadingText\");\n return atBreak(code);\n }\n effects.consume(code);\n return data;\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n resolveTo: resolveToSetextUnderline,\n tokenize: tokenizeSetextUnderline\n};\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n // To do: resolve like `markdown-rs`.\n let index = events.length;\n /** @type {number | undefined} */\n let content;\n /** @type {number | undefined} */\n let text;\n /** @type {number | undefined} */\n let definition;\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === \"content\") {\n content = index;\n break;\n }\n if (events[index][1].type === \"paragraph\") {\n text = index;\n }\n }\n // Exit\n else {\n if (events[index][1].type === \"content\") {\n // Remove the content end (if needed we’ll add it later)\n events.splice(index, 1);\n }\n if (!definition && events[index][1].type === \"definition\") {\n definition = index;\n }\n }\n }\n const heading = {\n type: \"setextHeading\",\n start: {\n ...events[content][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n\n // Change the paragraph to setext heading text.\n events[text][1].type = \"setextHeadingText\";\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n events.splice(text, 0, ['enter', heading, context]);\n events.splice(definition + 1, 0, ['exit', events[content][1], context]);\n events[content][1].end = {\n ...events[definition][1].end\n };\n } else {\n events[content][1] = heading;\n }\n\n // Add the heading exit at the end.\n events.push(['exit', heading, context]);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length;\n /** @type {boolean | undefined} */\n let paragraph;\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (self.events[index][1].type !== \"lineEnding\" && self.events[index][1].type !== \"linePrefix\" && self.events[index][1].type !== \"content\") {\n paragraph = self.events[index][1].type === \"paragraph\";\n break;\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter(\"setextHeadingLine\");\n marker = code;\n return before(code);\n }\n return nok(code);\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"setextHeadingLineSequence\");\n return inside(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n effects.exit(\"setextHeadingLineSequence\");\n return markdownSpace(code) ? factorySpace(effects, after, \"lineSuffix\")(code) : after(code);\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"setextHeadingLine\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * List of lowercase HTML “block” tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesn’t have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `search` was added in `CommonMark@0.31`.\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'search',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML “raw” tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @import {\n * Code,\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { htmlBlockNames, htmlRawNames } from 'micromark-util-html-tag-name';\nimport { blankLine } from './blank-line.js';\n\n/** @type {Construct} */\nexport const htmlFlow = {\n concrete: true,\n name: 'htmlFlow',\n resolveTo: resolveToHtmlFlow,\n tokenize: tokenizeHtmlFlow\n};\n\n/** @type {Construct} */\nconst blankLineBefore = {\n partial: true,\n tokenize: tokenizeBlankLineBefore\n};\nconst nonLazyContinuationStart = {\n partial: true,\n tokenize: tokenizeNonLazyContinuationStart\n};\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n let index = events.length;\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === \"htmlFlow\") {\n break;\n }\n }\n if (index > 1 && events[index - 2][1].type === \"linePrefix\") {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start;\n // Add the prefix start to the HTML line token.\n events[index + 1][1].start = events[index - 2][1].start;\n // Remove the line prefix.\n events.splice(index - 2, 2);\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this;\n /** @type {number} */\n let marker;\n /** @type {boolean} */\n let closingTag;\n /** @type {string} */\n let buffer;\n /** @type {number} */\n let index;\n /** @type {Code} */\n let markerB;\n return start;\n\n /**\n * Start of HTML (flow).\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * At `<`, after optional whitespace.\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"htmlFlow\");\n effects.enter(\"htmlFlowData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | <x />\n * ^\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n closingTag = true;\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n marker = 3;\n // To do:\n // tokenizer.concrete = true\n // To do: use `markdown-rs` style interrupt.\n // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n // Always the case.\n effects.consume(code);\n buffer = String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n marker = 2;\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n marker = 5;\n index = 0;\n return cdataOpenInside;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n marker = 4;\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code);\n }\n\n /**\n * After `<!-`, inside a comment, at another `-`.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code);\n }\n\n /**\n * After `<![`, inside CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n if (index === value.length) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation;\n }\n return cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | </x>\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n // Always the case.\n effects.consume(code);\n buffer = String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * In tag name.\n *\n * ```markdown\n * > | <ab>\n * ^^\n * > | </ab>\n * ^^\n * ```\n *\n * @type {State}\n */\n function tagName(code) {\n if (code === null || code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n const slash = code === 47;\n const name = buffer.toLowerCase();\n if (!slash && !closingTag && htmlRawNames.includes(name)) {\n marker = 1;\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code);\n }\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = 6;\n if (slash) {\n effects.consume(code);\n return basicSelfClosing;\n }\n\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code);\n }\n marker = 7;\n // Do not support complete HTML when interrupting.\n return self.interrupt && !self.parser.lazy[self.now().line] ? nok(code) : closingTag ? completeClosingTagAfter(code) : completeAttributeNameBefore(code);\n }\n\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * After closing slash of a basic tag name.\n *\n * ```markdown\n * > | <div/>\n * ^\n * ```\n *\n * @type {State}\n */\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code);\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation;\n }\n return nok(code);\n }\n\n /**\n * After closing slash of a complete tag name.\n *\n * ```markdown\n * > | <x/>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeClosingTagAfter;\n }\n return completeEnd(code);\n }\n\n /**\n * At an attribute name.\n *\n * At first, this state is used after a complete tag name, after whitespace,\n * where it expects optional attributes or the end of the tag.\n * It is also reused after attributes, when expecting more optional\n * attributes.\n *\n * ```markdown\n * > | <a />\n * ^\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * > | <a >\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code);\n return completeEnd;\n }\n\n // ASCII alphanumerical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return completeAttributeName;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeNameBefore;\n }\n return completeEnd(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeName(code) {\n // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return completeAttributeName;\n }\n return completeAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, at an optional initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | <a b>\n * ^\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return completeAttributeValueBefore;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeNameAfter;\n }\n return completeAttributeNameBefore(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n markerB = code;\n return completeAttributeValueQuoted;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeValueBefore;\n }\n return completeAttributeValueUnquoted(code);\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * > | <a b='c'>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuoted(code) {\n if (code === markerB) {\n effects.consume(code);\n markerB = null;\n return completeAttributeValueQuotedAfter;\n }\n if (code === null || markdownLineEnding(code)) {\n return nok(code);\n }\n effects.consume(code);\n return completeAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 47 || code === 60 || code === 61 || code === 62 || code === 96 || markdownLineEndingOrSpace(code)) {\n return completeAttributeNameAfter(code);\n }\n effects.consume(code);\n return completeAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the\n * end of the tag.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a complete tag where only an `>` is allowed.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code);\n return completeAfter;\n }\n return nok(code);\n }\n\n /**\n * After `>` in a complete tag.\n *\n * ```markdown\n * > | <x>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return continuation(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAfter;\n }\n return nok(code);\n }\n\n /**\n * In continuation of any HTML kind.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuation(code) {\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationCommentInside;\n }\n if (code === 60 && marker === 1) {\n effects.consume(code);\n return continuationRawTagOpen;\n }\n if (code === 62 && marker === 4) {\n effects.consume(code);\n return continuationClose;\n }\n if (code === 63 && marker === 3) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n if (code === 93 && marker === 5) {\n effects.consume(code);\n return continuationCdataInside;\n }\n if (markdownLineEnding(code) && (marker === 6 || marker === 7)) {\n effects.exit(\"htmlFlowData\");\n return effects.check(blankLineBefore, continuationAfter, continuationStart)(code);\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationStart(code);\n }\n effects.consume(code);\n return continuation;\n }\n\n /**\n * In continuation, at eol.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStart(code) {\n return effects.check(nonLazyContinuationStart, continuationStartNonLazy, continuationAfter)(code);\n }\n\n /**\n * In continuation, at eol, before non-lazy content.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStartNonLazy(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return continuationBefore;\n }\n\n /**\n * In continuation, before non-lazy content.\n *\n * ```markdown\n * | <x>\n * > | asd\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return continuationStart(code);\n }\n effects.enter(\"htmlFlowData\");\n return continuation(code);\n }\n\n /**\n * In comment continuation, after one `-`, expecting another.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after `<`, at `/`.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code);\n buffer = '';\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after `</`, in a raw tag name.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code);\n return continuationClose;\n }\n return continuation(code);\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n // Always the case.\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | <!-->\n * ^\n * > | <?>\n * ^\n * > | <!q>\n * ^\n * > | <!--ab-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code);\n return continuationClose;\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationAfter(code);\n }\n effects.consume(code);\n return continuationClose;\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit(\"htmlFlow\");\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > | <div>\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nconst nonLazyContinuation = {\n partial: true,\n tokenize: tokenizeNonLazyContinuation\n};\n\n/** @type {Construct} */\nexport const codeFenced = {\n concrete: true,\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this;\n /** @type {Construct} */\n const closeStart = {\n partial: true,\n tokenize: tokenizeCloseStart\n };\n let initialPrefix = 0;\n let sizeOpen = 0;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code);\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1];\n initialPrefix = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n marker = code;\n effects.enter(\"codeFenced\");\n effects.enter(\"codeFencedFence\");\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++;\n effects.consume(code);\n return sequenceOpen;\n }\n if (sizeOpen < 3) {\n return nok(code);\n }\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, infoBefore, \"whitespace\")(code) : infoBefore(code);\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return self.interrupt ? ok(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFencedFenceInfo\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return info(code);\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return infoBefore(code);\n }\n if (markdownSpace(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return factorySpace(effects, metaBefore, \"whitespace\")(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return info;\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code);\n }\n effects.enter(\"codeFencedFenceMeta\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return meta(code);\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceMeta\");\n return infoBefore(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return meta;\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code);\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return contentStart;\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code) ? factorySpace(effects, beforeContentChunk, \"linePrefix\", initialPrefix + 1)(code) : beforeContentChunk(code);\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFlowValue\");\n return contentChunk(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFlowValue\");\n return beforeContentChunk(code);\n }\n effects.consume(code);\n return contentChunk;\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit(\"codeFenced\");\n return ok(code);\n }\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0;\n return startBefore;\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return start;\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter(\"codeFencedFence\");\n return markdownSpace(code) ? factorySpace(effects, beforeSequenceClose, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : beforeSequenceClose(code);\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceClose(code);\n }\n return nok(code);\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++;\n effects.consume(code);\n return sequenceClose;\n }\n if (size >= sizeOpen) {\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, sequenceCloseAfter, \"whitespace\")(code) : sequenceCloseAfter(code);\n }\n return nok(code);\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return ok(code);\n }\n return nok(code);\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code);\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineStart;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}","/// <reference lib=\"dom\" />\n\n/* global document */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string | false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const character = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n if (\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n character.charCodeAt(character.length - 1) === 59 /* `;` */ &&\n value !== 'semi'\n ) {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return character === characterReference ? false : character\n}\n","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { asciiAlphanumeric, asciiDigit, asciiHexDigit } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this;\n let size = 0;\n /** @type {number} */\n let max;\n /** @type {(code: Code) => boolean} */\n let test;\n return start;\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterReference\");\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n return open;\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter(\"characterReferenceMarkerNumeric\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerNumeric\");\n return numeric;\n }\n effects.enter(\"characterReferenceValue\");\n max = 31;\n test = asciiAlphanumeric;\n return value(code);\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter(\"characterReferenceMarkerHexadecimal\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerHexadecimal\");\n effects.enter(\"characterReferenceValue\");\n max = 6;\n test = asciiHexDigit;\n return value;\n }\n effects.enter(\"characterReferenceValue\");\n max = 7;\n test = asciiDigit;\n return value(code);\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit(\"characterReferenceValue\");\n if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self.sliceSerialize(token))) {\n return nok(code);\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n effects.exit(\"characterReference\");\n return ok;\n }\n if (test(code) && size++ < max) {\n effects.consume(code);\n return value;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiPunctuation } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterEscape\");\n effects.enter(\"escapeMarker\");\n effects.consume(code);\n effects.exit(\"escapeMarker\");\n return inside;\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter(\"characterEscapeValue\");\n effects.consume(code);\n effects.exit(\"characterEscapeValue\");\n effects.exit(\"characterEscape\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}","/**\n * @import {Event, Resolver, TokenizeContext} from 'micromark-util-types'\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {ReadonlyArray<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array<Event>} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array<Event>}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array<Resolver>} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @import {\n * Construct,\n * Event,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n resolveAll: resolveAllLabelEnd,\n resolveTo: resolveToLabelEnd,\n tokenize: tokenizeLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n /** @type {Array<Event>} */\n const newEvents = [];\n while (++index < events.length) {\n const token = events[index][1];\n newEvents.push(events[index]);\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n // Remove the marker.\n const offset = token.type === \"labelImage\" ? 4 : 2;\n token.type = \"data\";\n index += offset;\n }\n }\n\n // If the events are equal, we don't have to copy newEvents to events\n if (events.length !== newEvents.length) {\n splice(events, 0, events.length, newEvents);\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */\n let token;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array<Event>} */\n let media;\n\n // Find an opening.\n while (index--) {\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n const label = {\n type: \"label\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[close][1].end\n }\n };\n const text = {\n type: \"labelText\",\n start: {\n ...events[open + offset + 2][1].end\n },\n end: {\n ...events[close - 2][1].start\n }\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n\n // Find an opening.\n while (index--) {\n if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartImage\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n * <p>!<a href=\\\"b\\\">^a</a></p>\n * <p>!<a href=\\\"c\\\">^a</a></p>\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {Code} from 'micromark-util-types'\n */\n\nimport { markdownLineEndingOrSpace, unicodePunctuation, unicodeWhitespace } from 'micromark-util-character';\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return 1;\n }\n if (unicodePunctuation(code)) {\n return 2;\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Event,\n * Point,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { push, splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n resolveAll: resolveAllAttention,\n tokenize: tokenizeAttention\n};\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n// eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n let index = -1;\n /** @type {number} */\n let open;\n /** @type {Token} */\n let group;\n /** @type {Token} */\n let text;\n /** @type {Token} */\n let openingSequence;\n /** @type {Token} */\n let closingSequence;\n /** @type {number} */\n let use;\n /** @type {Array<Event>} */\n let nextEvents;\n /** @type {number} */\n let offset;\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close) {\n open = index;\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'attentionSequence' && events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n continue;\n }\n\n // Number of markers to use from the sequence.\n use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n const start = {\n ...events[open][1].end\n };\n const end = {\n ...events[index][1].start\n };\n movePoint(start, -use);\n movePoint(end, use);\n openingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start,\n end: {\n ...events[open][1].end\n }\n };\n closingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: {\n ...events[index][1].start\n },\n end\n };\n text = {\n type: use > 1 ? \"strongText\" : \"emphasisText\",\n start: {\n ...events[open][1].end\n },\n end: {\n ...events[index][1].start\n }\n };\n group = {\n type: use > 1 ? \"strong\" : \"emphasis\",\n start: {\n ...openingSequence.start\n },\n end: {\n ...closingSequence.end\n }\n };\n events[open][1].end = {\n ...openingSequence.start\n };\n events[index][1].start = {\n ...closingSequence.end\n };\n nextEvents = [];\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [['enter', events[open][1], context], ['exit', events[open][1], context]]);\n }\n\n // Opening.\n nextEvents = push(nextEvents, [['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(nextEvents, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context));\n\n // Closing.\n nextEvents = push(nextEvents, [['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], ['exit', group, context]]);\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2;\n nextEvents = push(nextEvents, [['enter', events[index][1], context], ['exit', events[index][1], context]]);\n } else {\n offset = 0;\n }\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - offset - 2;\n break;\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data';\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null;\n const previous = this.previous;\n const before = classifyCharacter(previous);\n\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code;\n effects.enter('attentionSequence');\n return inside(code);\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n const token = effects.exit('attentionSequence');\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code);\n\n // Always populated by defaults.\n\n const open = !after || after === 2 && before || attentionMarkers.includes(code);\n const close = !before || before === 2 && after || attentionMarkers.includes(previous);\n token._open = Boolean(marker === 42 ? open : open && (before || !close));\n token._close = Boolean(marker === 42 ? close : close && (after || !open));\n return ok(code);\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * Point.\n * @param {number} offset\n * Amount to move.\n * @returns {undefined}\n * Nothing.\n */\nfunction movePoint(point, offset) {\n point.column += offset;\n point.offset += offset;\n point._bufferIndex += offset;\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiAlphanumeric, asciiAlpha, asciiAtext, asciiControl } from 'micromark-util-character';\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"autolink\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.enter(\"autolinkProtocol\");\n return open;\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code);\n return schemeOrEmailAtext;\n }\n if (code === 64) {\n return nok(code);\n }\n return emailAtext(code);\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1;\n return schemeInsideOrEmailAtext(code);\n }\n return emailAtext(code);\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code);\n size = 0;\n return urlInside;\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32) {\n effects.consume(code);\n return schemeInsideOrEmailAtext;\n }\n size = 0;\n return emailAtext(code);\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit(\"autolinkProtocol\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return urlInside;\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code);\n return emailAtSignOrDot;\n }\n if (asciiAtext(code)) {\n effects.consume(code);\n return emailAtext;\n }\n return nok(code);\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code);\n size = 0;\n return emailAtSignOrDot;\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit(\"autolinkProtocol\").type = \"autolinkEmail\";\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n return emailValue(code);\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | a<user.name@ex-ample.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel;\n effects.consume(code);\n return next;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable<Code> | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * > | a <![CDATA[>&<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after `<!-`, at another `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After `<![`, in CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a <!b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After `</x`, in a tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After `<x`, in opening tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a <!--a\n * ^\n * | b-->\n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(\"htmlTextData\");\n return returnState(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartLink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"hardBreakEscape\");\n effects.consume(code);\n return after;\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit(\"hardBreakEscape\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * Previous,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n previous,\n resolve: resolveCodeText,\n tokenize: tokenizeCodeText\n};\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4;\n let headEnterIndex = 3;\n /** @type {number} */\n let index;\n /** @type {number | undefined} */\n let enter;\n\n // If we start and end with an EOL or a space.\n if ((events[headEnterIndex][1].type === \"lineEnding\" || events[headEnterIndex][1].type === 'space') && (events[tailExitIndex][1].type === \"lineEnding\" || events[tailExitIndex][1].type === 'space')) {\n index = headEnterIndex;\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === \"codeTextData\") {\n // Then we have padding.\n events[headEnterIndex][1].type = \"codeTextPadding\";\n events[tailExitIndex][1].type = \"codeTextPadding\";\n headEnterIndex += 2;\n tailExitIndex -= 2;\n break;\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1;\n tailExitIndex++;\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== \"lineEnding\") {\n enter = index;\n }\n } else if (index === tailExitIndex || events[index][1].type === \"lineEnding\") {\n events[enter][1].type = \"codeTextData\";\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n tailExitIndex -= index - enter - 2;\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return code !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this;\n let sizeOpen = 0;\n /** @type {number} */\n let size;\n /** @type {Token} */\n let token;\n return start;\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"codeText\");\n effects.enter(\"codeTextSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code);\n sizeOpen++;\n return sequenceOpen;\n }\n effects.exit(\"codeTextSequence\");\n return between(code);\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code);\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space');\n effects.consume(code);\n effects.exit('space');\n return between;\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter(\"codeTextSequence\");\n size = 0;\n return sequenceClose(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return between;\n }\n\n // Data.\n effects.enter(\"codeTextData\");\n return data(code);\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) {\n effects.exit(\"codeTextData\");\n return between(code);\n }\n effects.consume(code);\n return data;\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code);\n size++;\n return sequenceClose;\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit(\"codeTextSequence\");\n effects.exit(\"codeText\");\n return ok(code);\n }\n\n // More or less accents: mark as data.\n token.type = \"codeTextData\";\n return data(code);\n }\n}","/**\n * @import {Extension} from 'micromark-util-types'\n */\n\nimport { attention, autolink, blockQuote, characterEscape, characterReference, codeFenced, codeIndented, codeText, definition, hardBreakEscape, headingAtx, htmlFlow, htmlText, labelEnd, labelStartImage, labelStartLink, lineEnding, list, setextUnderline, thematicBreak } from 'micromark-core-commonmark';\nimport { resolver as resolveText } from './initialize/text.js';\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n};\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n};\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n};\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n};\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n};\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n};\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n};\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n};\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n};","/**\n * @import {\n * Chunk,\n * Code,\n * ConstructRecord,\n * Construct,\n * Effects,\n * InitialConstruct,\n * ParseContext,\n * Point,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @callback Restore\n * Restore the state.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef Info\n * Info.\n * @property {Restore} restore\n * Restore.\n * @property {number} from\n * From.\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * Construct.\n * @param {Info} info\n * Info.\n * @returns {undefined}\n * Nothing.\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * Parser.\n * @param {InitialConstruct} initialize\n * Construct.\n * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]\n * Point (optional).\n * @returns {TokenizeContext}\n * Context.\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = {\n _bufferIndex: -1,\n _index: 0,\n line: from && from.line || 1,\n column: from && from.column || 1,\n offset: from && from.offset || 0\n };\n /** @type {Record<string, number>} */\n const columnStart = {};\n /** @type {Array<Construct>} */\n const resolveAllConstructs = [];\n /** @type {Array<Chunk>} */\n let chunks = [];\n /** @type {Array<Token>} */\n let stack = [];\n /** @type {boolean | undefined} */\n let consumed = true;\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n consume,\n enter,\n exit,\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n };\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n code: null,\n containerState: {},\n defineSkip,\n events: [],\n now,\n parser,\n previous: null,\n sliceSerialize,\n sliceStream,\n write\n };\n\n /**\n * The state function.\n *\n * @type {State | undefined}\n */\n let state = initialize.tokenize.call(context, effects);\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode;\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n }\n return context;\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice);\n main();\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return [];\n }\n addResult(initialize, 0);\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context);\n return context.events;\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs);\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n } = point;\n return {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n };\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {undefined}\n * Nothing.\n */\n function main() {\n /** @type {number} */\n let chunkIndex;\n while (point._index < chunks.length) {\n const chunk = chunks[point._index];\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index;\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * Code.\n * @returns {undefined}\n * Nothing.\n */\n function go(code) {\n consumed = undefined;\n expectedCode = code;\n state = state(code);\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++;\n point.column = 1;\n point.offset += code === -3 ? 2 : 1;\n accountForPotentialSkip();\n } else if (code !== -1) {\n point.column++;\n point.offset++;\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++;\n\n // At end of string chunk.\n if (point._bufferIndex ===\n // Points w/ non-negative `_bufferIndex` reference\n // strings.\n /** @type {string} */\n chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n }\n\n // Expose the previous character.\n context.previous = code;\n\n // Mark as consumed.\n consumed = true;\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {};\n token.type = type;\n token.start = now();\n context.events.push(['enter', token, context]);\n stack.push(token);\n return token;\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop();\n token.end = now();\n context.events.push(['exit', token, context]);\n return token;\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore();\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * Callback.\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n * Fields.\n */\n function constructFactory(onreturn, fields) {\n return hook;\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array<Construct> | ConstructRecord | Construct} constructs\n * Constructs.\n * @param {State} returnState\n * State.\n * @param {State | undefined} [bogusState]\n * State.\n * @returns {State}\n * State.\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {ReadonlyArray<Construct>} */\n let listOfConstructs;\n /** @type {number} */\n let constructIndex;\n /** @type {Construct} */\n let currentConstruct;\n /** @type {Info} */\n let info;\n return Array.isArray(constructs) ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs) : 'tokenize' in constructs ?\n // Looks like a construct.\n handleListOfConstructs([(/** @type {Construct} */constructs)]) : handleMapOfConstructs(constructs);\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleMapOfConstructs(map) {\n return start;\n\n /** @type {State} */\n function start(code) {\n const left = code !== null && map[code];\n const all = code !== null && map.null;\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(left) ? left : left ? [left] : []), ...(Array.isArray(all) ? all : all ? [all] : [])];\n return handleListOfConstructs(list)(code);\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {ReadonlyArray<Construct>} list\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list;\n constructIndex = 0;\n if (list.length === 0) {\n return bogusState;\n }\n return handleConstruct(list[constructIndex]);\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * Construct.\n * @returns {State}\n * State.\n */\n function handleConstruct(construct) {\n return start;\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store();\n currentConstruct = construct;\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n\n // Always populated by defaults.\n\n if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n return nok(code);\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context, effects, ok, nok)(code);\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true;\n onreturn(currentConstruct, info);\n return returnState;\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true;\n info.restore();\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n return bogusState;\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * Construct.\n * @param {number} from\n * From.\n * @returns {undefined}\n * Nothing.\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct);\n }\n if (construct.resolve) {\n splice(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n * Info.\n */\n function store() {\n const startPoint = now();\n const startPrevious = context.previous;\n const startCurrentConstruct = context.currentConstruct;\n const startEventsIndex = context.events.length;\n const startStack = Array.from(stack);\n return {\n from: startEventsIndex,\n restore\n };\n\n /**\n * Restore state.\n *\n * @returns {undefined}\n * Nothing.\n */\n function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {undefined}\n * Nothing.\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {ReadonlyArray<Chunk>} chunks\n * Chunks.\n * @param {Pick<Token, 'end' | 'start'>} token\n * Token.\n * @returns {Array<Chunk>}\n * Chunks.\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index;\n const startBufferIndex = token.start._bufferIndex;\n const endIndex = token.end._index;\n const endBufferIndex = token.end._bufferIndex;\n /** @type {Array<Chunk>} */\n let view;\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n } else {\n view = chunks.slice(startIndex, endIndex);\n if (startBufferIndex > -1) {\n const head = view[0];\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex);\n /* c8 ignore next 4 -- used to be used, no longer */\n } else {\n view.shift();\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n return view;\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {ReadonlyArray<Chunk>} chunks\n * Chunks.\n * @param {boolean | undefined} [expandTabs=false]\n * Whether to expand tabs (default: `false`).\n * @returns {string}\n * Result.\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1;\n /** @type {Array<string>} */\n const result = [];\n /** @type {boolean | undefined} */\n let atTab;\n while (++index < chunks.length) {\n const chunk = chunks[index];\n /** @type {string} */\n let value;\n if (typeof chunk === 'string') {\n value = chunk;\n } else switch (chunk) {\n case -5:\n {\n value = \"\\r\";\n break;\n }\n case -4:\n {\n value = \"\\n\";\n break;\n }\n case -3:\n {\n value = \"\\r\" + \"\\n\";\n break;\n }\n case -2:\n {\n value = expandTabs ? \" \" : \"\\t\";\n break;\n }\n case -1:\n {\n if (!expandTabs && atTab) continue;\n value = \" \";\n break;\n }\n default:\n {\n // Currently only replacement character.\n value = String.fromCharCode(chunk);\n }\n }\n atTab = chunk === -2;\n result.push(value);\n }\n return result.join('');\n}","/**\n * @import {\n * Create,\n * FullNormalizedExtension,\n * InitialConstruct,\n * ParseContext,\n * ParseOptions\n * } from 'micromark-util-types'\n */\n\nimport { combineExtensions } from 'micromark-util-combine-extensions';\nimport { content } from './initialize/content.js';\nimport { document } from './initialize/document.js';\nimport { flow } from './initialize/flow.js';\nimport { string, text } from './initialize/text.js';\nimport * as defaultConstructs from './constructs.js';\nimport { createTokenizer } from './create-tokenizer.js';\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * Configuration (optional).\n * @returns {ParseContext}\n * Parser.\n */\nexport function parse(options) {\n const settings = options || {};\n const constructs = /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])]);\n\n /** @type {ParseContext} */\n const parser = {\n constructs,\n content: create(content),\n defined: [],\n document: create(document),\n flow: create(flow),\n lazy: {},\n string: create(string),\n text: create(text)\n };\n return parser;\n\n /**\n * @param {InitialConstruct} initial\n * Construct to start with.\n * @returns {Create}\n * Create a tokenizer.\n */\n function create(initial) {\n return creator;\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from);\n }\n }\n}","/**\n * @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'\n */\n\n/**\n * @callback Preprocessor\n * Preprocess a value.\n * @param {Value} value\n * Value.\n * @param {Encoding | null | undefined} [encoding]\n * Encoding when `value` is a typed array (optional).\n * @param {boolean | null | undefined} [end=false]\n * Whether this is the last chunk (default: `false`).\n * @returns {Array<Chunk>}\n * Chunks.\n */\n\nconst search = /[\\0\\t\\n\\r]/g;\n\n/**\n * @returns {Preprocessor}\n * Preprocess a value.\n */\nexport function preprocess() {\n let column = 1;\n let buffer = '';\n /** @type {boolean | undefined} */\n let start = true;\n /** @type {boolean | undefined} */\n let atCarriageReturn;\n return preprocessor;\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array<Chunk>} */\n const chunks = [];\n /** @type {RegExpMatchArray | null} */\n let match;\n /** @type {number} */\n let next;\n /** @type {number} */\n let startPosition;\n /** @type {number} */\n let endPosition;\n /** @type {Code} */\n let code;\n value = buffer + (typeof value === 'string' ? value.toString() : new TextDecoder(encoding || undefined).decode(value));\n startPosition = 0;\n buffer = '';\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++;\n }\n start = undefined;\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition;\n match = search.exec(value);\n endPosition = match && match.index !== undefined ? match.index : value.length;\n code = value.charCodeAt(endPosition);\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3);\n atCarriageReturn = undefined;\n } else {\n if (atCarriageReturn) {\n chunks.push(-5);\n atCarriageReturn = undefined;\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n switch (code) {\n case 0:\n {\n chunks.push(65533);\n column++;\n break;\n }\n case 9:\n {\n next = Math.ceil(column / 4) * 4;\n chunks.push(-2);\n while (column++ < next) chunks.push(-1);\n break;\n }\n case 10:\n {\n chunks.push(-4);\n column = 1;\n break;\n }\n default:\n {\n atCarriageReturn = true;\n column = 1;\n }\n }\n }\n startPosition = endPosition + 1;\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5);\n if (buffer) chunks.push(buffer);\n chunks.push(null);\n }\n return chunks;\n }\n}","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base);\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 || code === 11 || code > 13 && code < 32 ||\n // Control character (DEL) of C0, and C1 controls.\n code > 126 && code < 160 ||\n // Lone high surrogates and low surrogates.\n code > 55_295 && code < 57_344 ||\n // Noncharacters.\n code > 64_975 && code < 65_008 || /* eslint-disable no-bitwise */\n (code & 65_535) === 65_535 || (code & 65_535) === 65_534 || /* eslint-enable no-bitwise */\n // Out of range\n code > 1_114_111) {\n return \"\\uFFFD\";\n }\n return String.fromCodePoint(code);\n}","import { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nconst characterEscapeOrReference = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode);\n}\n\n/**\n * @param {string} $0\n * Match.\n * @param {string} $1\n * Character escape.\n * @param {string} $2\n * Character reference.\n * @returns {string}\n * Decoded value\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1;\n }\n\n // Reference.\n const head = $2.charCodeAt(0);\n if (head === 35) {\n const head = $2.charCodeAt(1);\n const hex = head === 120 || head === 88;\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10);\n }\n return decodeNamedCharacterReference($2) || $0;\n}","/**\n * @import {\n * Break,\n * Blockquote,\n * Code,\n * Definition,\n * Emphasis,\n * Heading,\n * Html,\n * Image,\n * InlineCode,\n * Link,\n * ListItem,\n * List,\n * Nodes,\n * Paragraph,\n * PhrasingContent,\n * ReferenceType,\n * Root,\n * Strong,\n * Text,\n * ThematicBreak\n * } from 'mdast'\n * @import {\n * Encoding,\n * Event,\n * Token,\n * Value\n * } from 'micromark-util-types'\n * @import {Point} from 'unist'\n * @import {\n * CompileContext,\n * CompileData,\n * Config,\n * Extension,\n * Handle,\n * OnEnterError,\n * Options\n * } from './types.js'\n */\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse, postprocess, preprocess } from 'micromark';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding;\n encoding = undefined;\n }\n return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n characterReference: onexitcharacterreference,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n };\n configure(config, (options || {}).mdastExtensions || []);\n\n /** @type {CompileData} */\n const data = {};\n return compile;\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array<Event>} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n };\n /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n };\n /** @type {Array<number>} */\n const listStack = [];\n let index = -1;\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n if (events[index][0] === 'enter') {\n listStack.push(index);\n } else {\n const tail = listStack.pop();\n index = prepareList(events, tail, index);\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n const handler = config[events[index][0]];\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(Object.assign({\n sliceSerialize: events[index][2].sliceSerialize\n }, context), events[index][1]);\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1];\n const handler = tail[1] || defaultOnError;\n handler.call(context, undefined, tail[0]);\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(events.length > 0 ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length > 0 ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n\n // Call transforms.\n index = -1;\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree;\n }\n return tree;\n }\n\n /**\n * @param {Array<Event>} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1;\n let containerBalance = -1;\n let listSpread = false;\n /** @type {Token | undefined} */\n let listItem;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number | undefined} */\n let firstBlankLineIndex;\n /** @type {boolean | undefined} */\n let atMarker;\n while (++index <= length) {\n const event = events[index];\n switch (event[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\":\n {\n if (event[0] === 'enter') {\n containerBalance++;\n } else {\n containerBalance--;\n }\n atMarker = undefined;\n break;\n }\n case \"lineEndingBlank\":\n {\n if (event[0] === 'enter') {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n atMarker = undefined;\n }\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n {\n // Empty.\n\n break;\n }\n default:\n {\n atMarker = undefined;\n }\n }\n if (!containerBalance && event[0] === 'enter' && event[1].type === \"listItemPrefix\" || containerBalance === -1 && event[0] === 'exit' && (event[1].type === \"listUnordered\" || event[1].type === \"listOrdered\")) {\n if (listItem) {\n let tailIndex = index;\n lineIndex = undefined;\n while (tailIndex--) {\n const tailEvent = events[tailIndex];\n if (tailEvent[1].type === \"lineEnding\" || tailEvent[1].type === \"lineEndingBlank\") {\n if (tailEvent[0] === 'exit') continue;\n if (lineIndex) {\n events[lineIndex][1].type = \"lineEndingBlank\";\n listSpread = true;\n }\n tailEvent[1].type = \"lineEnding\";\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === \"linePrefix\" || tailEvent[1].type === \"blockQuotePrefix\" || tailEvent[1].type === \"blockQuotePrefixWhitespace\" || tailEvent[1].type === \"blockQuoteMarker\" || tailEvent[1].type === \"listItemIndent\") {\n // Empty\n } else {\n break;\n }\n }\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n }\n\n // Fix position.\n listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n index++;\n length++;\n }\n\n // Create a new list item.\n if (event[1].type === \"listItemPrefix\") {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n };\n listItem = item;\n events.splice(index, 0, ['enter', item, event[2]]);\n index++;\n length++;\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n events[start][1]._spread = listSpread;\n return length;\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['buffer']}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n });\n }\n\n /**\n * @type {CompileContext['enter']}\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1];\n /** @type {Array<Nodes>} */\n const siblings = parent.children;\n siblings.push(node);\n this.stack.push(node);\n this.tokenStack.push([token, errorHandler || undefined]);\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n };\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['exit']}\n */\n function exit(token, onExitError) {\n const node = this.stack.pop();\n const open = this.tokenStack.pop();\n if (!open) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): it’s not open');\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0]);\n } else {\n const handler = open[1] || defaultOnError;\n handler.call(this, token, open[0]);\n }\n }\n node.position.end = point(token.end);\n }\n\n /**\n * @type {CompileContext['resume']}\n */\n function resume() {\n return toString(this.stack.pop());\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2];\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n this.data.expectingFirstListItemValue = undefined;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.lang = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.meta = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return;\n this.buffer();\n this.data.flowCodeInside = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n this.data.flowCodeInside = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.label = label;\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1];\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length;\n node.depth = depth;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1];\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1];\n /** @type {Array<Nodes>} */\n const siblings = node.children;\n let tail = siblings[siblings.length - 1];\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text();\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n };\n siblings.push(tail);\n }\n this.stack.push(tail);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop();\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1];\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1];\n tail.position.end = point(token.end);\n this.data.atHardBreak = undefined;\n return;\n }\n if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token);\n const ancestor = this.stack[this.stack.length - 2];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string);\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1];\n const value = this.resume();\n const node = this.stack[this.stack.length - 1];\n // Assume a reference.\n this.data.inReference = true;\n if (node.type === 'link') {\n /** @type {Array<PhrasingContent>} */\n const children = fragment.children;\n node.children = children;\n } else {\n node.alt = value;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label;\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n this.data.referenceType = 'full';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token);\n const type = this.data.characterReferenceType;\n /** @type {string} */\n let value;\n if (type) {\n value = decodeNumericCharacterReference(data, type === \"characterReferenceMarkerNumeric\" ? 10 : 16);\n this.data.characterReferenceType = undefined;\n } else {\n const result = decodeNamedCharacterReference(data);\n value = result;\n }\n const tail = this.stack[this.stack.length - 1];\n tail.value += value;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreference(token) {\n const tail = this.stack.pop();\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = this.sliceSerialize(token);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = 'mailto:' + this.sliceSerialize(token);\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n };\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n };\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n };\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n };\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n };\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n };\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n };\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n };\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n };\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n };\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n };\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n };\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n };\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n}\n\n/**\n * @param {Config} combined\n * @param {Array<Array<Extension> | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1;\n while (++index < extensions.length) {\n const value = extensions[index];\n if (Array.isArray(value)) {\n configure(combined, value);\n } else {\n extension(combined, value);\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key;\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'transforms':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'enter':\n case 'exit':\n {\n const right = extension[key];\n if (right) {\n Object.assign(combined[key], right);\n }\n break;\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n start: left.start,\n end: left.end\n }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is open');\n } else {\n throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is still open');\n }\n}","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser<Root>} Parser\n * @typedef {import('unified').Processor<Root>} Processor\n */\n\n/**\n * @typedef {Omit<FromMarkdownOptions, 'extensions' | 'mdastExtensions'>} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly<Options> | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","export const VOID = -1;\nexport const PRIMITIVE = 0;\nexport const ARRAY = 1;\nexport const OBJECT = 2;\nexport const DATE = 3;\nexport const REGEXP = 4;\nexport const MAP = 5;\nexport const SET = 6;\nexport const ERROR = 7;\nexport const BIGINT = 8;\n// export const SYMBOL = 9;\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n const as = (out, index) => {\n $.set(index, out);\n return out;\n };\n\n const unpair = index => {\n if ($.has(index))\n return $.get(index);\n\n const [type, value] = _[index];\n switch (type) {\n case PRIMITIVE:\n case VOID:\n return as(value, index);\n case ARRAY: {\n const arr = as([], index);\n for (const index of value)\n arr.push(unpair(index));\n return arr;\n }\n case OBJECT: {\n const object = as({}, index);\n for (const [key, index] of value)\n object[unpair(key)] = unpair(index);\n return object;\n }\n case DATE:\n return as(new Date(value), index);\n case REGEXP: {\n const {source, flags} = value;\n return as(new RegExp(source, flags), index);\n }\n case MAP: {\n const map = as(new Map, index);\n for (const [key, index] of value)\n map.set(unpair(key), unpair(index));\n return map;\n }\n case SET: {\n const set = as(new Set, index);\n for (const index of value)\n set.add(unpair(index));\n return set;\n }\n case ERROR: {\n const {name, message} = value;\n return as(new env[name](message), index);\n }\n case BIGINT:\n return as(BigInt(value), index);\n case 'BigInt':\n return as(Object(BigInt(value)), index);\n case 'ArrayBuffer':\n return as(new Uint8Array(value).buffer, value);\n case 'DataView': {\n const { buffer } = new Uint8Array(value);\n return as(new DataView(buffer), value);\n }\n }\n return as(new env[type](value), index);\n };\n\n return unpair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n const type = typeof value;\n if (type !== 'object' || !value)\n return [PRIMITIVE, type];\n\n const asString = toString.call(value).slice(8, -1);\n switch (asString) {\n case 'Array':\n return [ARRAY, EMPTY];\n case 'Object':\n return [OBJECT, EMPTY];\n case 'Date':\n return [DATE, EMPTY];\n case 'RegExp':\n return [REGEXP, EMPTY];\n case 'Map':\n return [MAP, EMPTY];\n case 'Set':\n return [SET, EMPTY];\n case 'DataView':\n return [ARRAY, asString];\n }\n\n if (asString.includes('Array'))\n return [ARRAY, asString];\n\n if (asString.includes('Error'))\n return [ERROR, asString];\n\n return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n TYPE === PRIMITIVE &&\n (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n const as = (out, value) => {\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n\n const pair = value => {\n if ($.has(value))\n return $.get(value);\n\n let [TYPE, type] = typeOf(value);\n switch (TYPE) {\n case PRIMITIVE: {\n let entry = value;\n switch (type) {\n case 'bigint':\n TYPE = BIGINT;\n entry = value.toString();\n break;\n case 'function':\n case 'symbol':\n if (strict)\n throw new TypeError('unable to serialize ' + type);\n entry = null;\n break;\n case 'undefined':\n return as([VOID], value);\n }\n return as([TYPE, entry], value);\n }\n case ARRAY: {\n if (type) {\n let spread = value;\n if (type === 'DataView') {\n spread = new Uint8Array(value.buffer);\n }\n else if (type === 'ArrayBuffer') {\n spread = new Uint8Array(value);\n }\n return as([type, [...spread]], value);\n }\n\n const arr = [];\n const index = as([TYPE, arr], value);\n for (const entry of value)\n arr.push(pair(entry));\n return index;\n }\n case OBJECT: {\n if (type) {\n switch (type) {\n case 'BigInt':\n return as([type, value.toString()], value);\n case 'Boolean':\n case 'Number':\n case 'String':\n return as([type, value.valueOf()], value);\n }\n }\n\n if (json && ('toJSON' in value))\n return pair(value.toJSON());\n\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const key of keys(value)) {\n if (strict || !shouldSkip(typeOf(value[key])))\n entries.push([pair(key), pair(value[key])]);\n }\n return index;\n }\n case DATE:\n return as([TYPE, value.toISOString()], value);\n case REGEXP: {\n const {source, flags} = value;\n return as([TYPE, {source, flags}], value);\n }\n case MAP: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const [key, entry] of value) {\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n entries.push([pair(key), pair(entry)]);\n }\n return index;\n }\n case SET: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const entry of value) {\n if (strict || !shouldSkip(typeOf(entry)))\n entries.push(pair(entry));\n }\n return index;\n }\n }\n\n const {message} = value;\n return as([TYPE, {name: type, message}], value);\n };\n\n return pair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n /* c8 ignore start */\n (any, options) => (\n options && ('json' in options || 'lossy' in options) ?\n deserialize(serialize(any, options)) : structuredClone(any)\n ) :\n (any, options) => deserialize(serialize(any, options));\n /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","import { asciiAlphanumeric } from 'micromark-util-character';\nimport { encode } from 'micromark-util-encode';\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''));\n if (!protocol) {\n return value;\n }\n const colon = value.indexOf(':');\n const questionMark = value.indexOf('?');\n const numberSign = value.indexOf('#');\n const slash = value.indexOf('/');\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))) {\n return value;\n }\n return '';\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array<string>} */\n const result = [];\n let index = -1;\n let start = 0;\n let skip = 0;\n while (++index < value.length) {\n const code = value.charCodeAt(index);\n /** @type {string} */\n let replace = '';\n\n // A correct percent encoded value.\n if (code === 37 && asciiAlphanumeric(value.charCodeAt(index + 1)) && asciiAlphanumeric(value.charCodeAt(index + 2))) {\n skip = 2;\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code);\n }\n }\n // Astral.\n else if (code > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1);\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\n replace = String.fromCharCode(code, next);\n skip = 1;\n }\n // Lone surrogate.\n else {\n replace = \"\\uFFFD\";\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code);\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace));\n start = index + skip + 1;\n replace = '';\n }\n if (skip) {\n index += skip;\n skip = 0;\n }\n }\n return result.join('') + value.slice(start);\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent> | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent>}\n * Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array<ElementContent>} */\n const result = [{type: 'text', value: '↩'}]\n\n if (rereferenceIndex > 1) {\n result.push({\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [{type: 'text', value: String(rereferenceIndex)}]\n })\n }\n\n return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return (\n 'Back to reference ' +\n (referenceIndex + 1) +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const footnoteBackContent =\n state.options.footnoteBackContent || defaultFootnoteBackContent\n const footnoteBackLabel =\n state.options.footnoteBackLabel || defaultFootnoteBackLabel\n const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: ['sr-only']\n }\n /** @type {Array<ElementContent>} */\n const listItems = []\n let referenceIndex = -1\n\n while (++referenceIndex < state.footnoteOrder.length) {\n const definition = state.footnoteById.get(\n state.footnoteOrder[referenceIndex]\n )\n\n if (!definition) {\n continue\n }\n\n const content = state.all(definition)\n const id = String(definition.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let rereferenceIndex = 0\n /** @type {Array<ElementContent>} */\n const backReferences = []\n const counts = state.footnoteCounts.get(id)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (counts !== undefined && ++rereferenceIndex <= counts) {\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n let children =\n typeof footnoteBackContent === 'string'\n ? footnoteBackContent\n : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n if (typeof children === 'string') {\n children = {type: 'text', value: children}\n }\n\n backReferences.push({\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n clobberPrefix +\n 'fnref-' +\n safeId +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n dataFootnoteBackref: '',\n ariaLabel:\n typeof footnoteBackLabel === 'string'\n ? footnoteBackLabel\n : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: ['data-footnote-backref']\n },\n children: Array.isArray(children) ? children : [children]\n })\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(definition, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: footnoteLabelTagName,\n properties: {\n ...structuredClone(footnoteLabelProperties),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record<string, unknown> | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array<Props | TestFunction | string> | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array<Props | TestFunction | string>} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array<Check>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n const checkAsRecord = /** @type {Record<string, unknown>} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record<string, unknown>} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @param {string} d\n * @returns {string}\n */\nexport function color(d) {\n return d\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate<Check, Value> extends Value\n * ? Predicate<Check, Value>\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array<any>\n * ? MatchesOne<Value, Check[keyof Check]>\n * : MatchesOne<Value, Check>\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array<infer Children>}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent<Node, Child>\n * | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {InternalAncestor<InclusiveDescendant<Tree>, Child>} Ancestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array<VisitedParents>} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly<ActionTuple>} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} test\n * `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n * Handle each node.\n * @param {boolean | null | undefined} [reverse]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n /** @type {Test} */\n let check\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n } else {\n // @ts-expect-error visitor given, so `test` isn’t a visitor.\n check = test\n }\n\n const is = convert(check)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {UnistNode} node\n * @param {number | undefined} index\n * @param {Array<UnistParent>} parents\n */\n function factory(node, index, parents) {\n const value = /** @type {Record<string, unknown>} */ (\n node && typeof node === 'object' ? node : {}\n )\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {Readonly<ActionTuple>} */\n let result = empty\n /** @type {Readonly<ActionTuple>} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array<UnistParent>} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n // @ts-expect-error: `visitor` is now a visitor.\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if ('children' in node && node.children) {\n const nodeAsParent = /** @type {UnistParent} */ (node)\n\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = (reverse ? nodeAsParent.children.length : -1) + step\n grandparents = parents.concat(nodeAsParent)\n\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset]\n\n subresult = factory(child, offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n }\n\n return result\n }\n }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {Readonly<ActionTuple>}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate<Check, Value> extends Value\n * ? Predicate<Check, Value>\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array<any>\n * ? MatchesOne<Value, Check[keyof Check]>\n * : MatchesOne<Value, Check>\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array<infer Children>}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent<Node, Child>\n * | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor<Visited, Parent<Ancestor, Visited>>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches<Descendant, Check>,\n * Extract<Descendant, UnistParent>\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant<Tree>,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor<Tree, Check>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor<Tree>} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n * `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n * Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n /** @type {boolean | null | undefined} */\n let reverse\n /** @type {Test} */\n let test\n /** @type {Visitor} */\n let visitor\n\n if (\n typeof testOrVisitor === 'function' &&\n typeof visitorOrReverse !== 'function'\n ) {\n test = undefined\n visitor = testOrVisitor\n reverse = visitorOrReverse\n } else {\n // @ts-expect-error: assume the overload with test was given.\n test = testOrVisitor\n // @ts-expect-error: assume the overload with test was given.\n visitor = visitorOrReverse\n reverse = maybeReverse\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {UnistNode} node\n * @param {Array<UnistParent>} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n const index = parent ? parent.children.indexOf(node) : undefined\n return visitor(node, index, parent)\n }\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array<Element | Text>}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n\n if (node.lang) {\n properties.className = ['language-' + node.lang]\n }\n\n // Create `<code>`.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `<pre>`.\n result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n state.patch(node, result)\n return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Delete} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strikethrough(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'del',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Emphasis} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function emphasis(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'em',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {FootnoteReference} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnoteReference(state, node) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const id = String(node.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n const index = state.footnoteOrder.indexOf(id)\n /** @type {number} */\n let counter\n\n let reuseCounter = state.footnoteCounts.get(id)\n\n if (reuseCounter === undefined) {\n reuseCounter = 0\n state.footnoteOrder.push(id)\n counter = state.footnoteOrder.length\n } else {\n counter = index + 1\n }\n\n reuseCounter += 1\n state.footnoteCounts.set(id, reuseCounter)\n\n /** @type {Element} */\n const link = {\n type: 'element',\n tagName: 'a',\n properties: {\n href: '#' + clobberPrefix + 'fn-' + safeId,\n id:\n clobberPrefix +\n 'fnref-' +\n safeId +\n (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: ['footnote-label']\n },\n children: [{type: 'text', value: String(counter)}]\n }\n state.patch(node, link)\n\n /** @type {Element} */\n const sup = {\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [link]\n }\n state.patch(node, sup)\n return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Heading} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function heading(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'h' + node.depth,\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Html} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n * Info passed around.\n * @param {Html} node\n * mdast node.\n * @returns {Element | Raw | undefined}\n * hast node.\n */\nexport function html(state, node) {\n if (state.options.allowDangerousHtml) {\n /** @type {Raw} */\n const result = {type: 'raw', value: node.value}\n state.patch(node, result)\n return state.applyData(node, result)\n }\n\n return undefined\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Reference} Reference\n *\n * @typedef {import('./state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {Extract<Nodes, Reference>} node\n * Reference node (image, link).\n * @returns {Array<ElementContent>}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return [{type: 'text', value: '![' + node.alt + suffix}]\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ImageReference} node\n * mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n * hast node.\n */\nexport function imageReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const definition = state.definitionById.get(id)\n\n if (!definition) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n if (definition.title !== null && definition.title !== undefined) {\n properties.title = definition.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Image} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function image(state, node) {\n /** @type {Properties} */\n const properties = {src: normalizeUri(node.url)}\n\n if (node.alt !== null && node.alt !== undefined) {\n properties.alt = node.alt\n }\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {InlineCode} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function inlineCode(state, node) {\n /** @type {Text} */\n const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n state.patch(node, text)\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'code',\n properties: {},\n children: [text]\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {LinkReference} node\n * mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n * hast node.\n */\nexport function linkReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const definition = state.definitionById.get(id)\n\n if (!definition) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {href: normalizeUri(definition.url || '')}\n\n if (definition.title !== null && definition.title !== undefined) {\n properties.title = definition.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Link} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function link(state, node) {\n /** @type {Properties} */\n const properties = {href: normalizeUri(node.url)}\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array<ElementContent>} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: <https://github.com/sindresorhus/github-markdown-css>.\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === null || spread === undefined\n ? node.children.length > 1\n : spread\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {List} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function list(state, node) {\n /** @type {Properties} */\n const properties = {}\n const results = state.all(node)\n let index = -1\n\n if (typeof node.start === 'number' && node.start !== 1) {\n properties.start = node.start\n }\n\n // Like GitHub, add a class for custom styling.\n while (++index < results.length) {\n const child = results[index]\n\n if (\n child.type === 'element' &&\n child.tagName === 'li' &&\n child.properties &&\n Array.isArray(child.properties.className) &&\n child.properties.className.includes('task-list-item')\n ) {\n properties.className = ['contains-task-list']\n break\n }\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: node.ordered ? 'ol' : 'ul',\n properties,\n children: state.wrap(results, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Paragraph} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function paragraph(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'p',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Parents} HastParents\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastRoot} node\n * mdast node.\n * @returns {HastParents}\n * hast node.\n */\nexport function root(state, node) {\n /** @type {HastRoot} */\n const result = {type: 'root', children: state.wrap(state.all(node))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Strong} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strong(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'strong',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Table} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function table(state, node) {\n const rows = state.all(node)\n const firstRow = rows.shift()\n /** @type {Array<Element>} */\n const tableContent = []\n\n if (firstRow) {\n /** @type {Element} */\n const head = {\n type: 'element',\n tagName: 'thead',\n properties: {},\n children: state.wrap([firstRow], true)\n }\n state.patch(node.children[0], head)\n tableContent.push(head)\n }\n\n if (rows.length > 0) {\n /** @type {Element} */\n const body = {\n type: 'element',\n tagName: 'tbody',\n properties: {},\n children: state.wrap(rows, true)\n }\n\n const start = pointStart(node.children[1])\n const end = pointEnd(node.children[node.children.length - 1])\n if (start && end) body.position = {start, end}\n tableContent.push(body)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'table',\n properties: {},\n children: state.wrap(tableContent, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableRow} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function tableRow(state, node, parent) {\n const siblings = parent ? parent.children : undefined\n // Generate a body row when without parent.\n const rowIndex = siblings ? siblings.indexOf(node) : 1\n const tagName = rowIndex === 0 ? 'th' : 'td'\n // To do: option to use `style`?\n const align = parent && parent.type === 'table' ? parent.align : undefined\n const length = align ? align.length : node.children.length\n let cellIndex = -1\n /** @type {Array<ElementContent>} */\n const cells = []\n\n while (++cellIndex < length) {\n // Note: can also be undefined.\n const cell = node.children[cellIndex]\n /** @type {Properties} */\n const properties = {}\n const alignValue = align ? align[cellIndex] : undefined\n\n if (alignValue) {\n properties.align = alignValue\n }\n\n /** @type {Element} */\n let result = {type: 'element', tagName, properties, children: []}\n\n if (cell) {\n result.children = state.all(cell)\n state.patch(cell, result)\n result = state.applyData(cell, result)\n }\n\n cells.push(result)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'tr',\n properties: {},\n children: state.wrap(cells, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableCell} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function tableCell(state, node) {\n // Note: this function is normally not called: see `table-row` for how rows\n // and their cells are compiled.\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'td', // Assume body cell.\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array<string>} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastText} node\n * mdast node.\n * @returns {HastElement | HastText}\n * hast node.\n */\nexport function text(state, node) {\n /** @type {HastText} */\n const result = {type: 'text', value: trimLines(String(node.value))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ThematicBreak} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function thematicBreak(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'hr',\n properties: {},\n children: []\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {import('../state.js').Handlers}\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n // @ts-expect-error: root is different, but hard to type.\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return undefined\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').RootContent} HastRootContent\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('mdast').Parents} MdastParents\n *\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {import('./footer.js').FootnoteBackContentTemplate} FootnoteBackContentTemplate\n * @typedef {import('./footer.js').FootnoteBackLabelTemplate} FootnoteBackLabelTemplate\n */\n\n/**\n * @callback Handler\n * Handle a node.\n * @param {State} state\n * Info passed around.\n * @param {any} node\n * mdast node to handle.\n * @param {MdastParents | undefined} parent\n * Parent of `node`.\n * @returns {Array<HastElementContent> | HastElementContent | undefined}\n * hast node.\n *\n * @typedef {Partial<Record<MdastNodes['type'], Handler>>} Handlers\n * Handle nodes.\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n * Whether to persist raw HTML in markdown in the hast tree (default:\n * `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n * Prefix to use before the `id` property on footnotes to prevent them from\n * *clobbering* (default: `'user-content-'`).\n *\n * Pass `''` for trusted markdown and when you are careful with\n * polyfilling.\n * You could pass a different prefix.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=\"x\"></p>\n * <script>alert(x) // `x` now refers to the `p#x` DOM element</script>\n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array<MdastNodes['type']> | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array<HastElementContent>} all\n * Transform the children of an mdast parent to hast.\n * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map<string, MdastDefinition>} definitionById\n * Definitions by their identifier.\n * @property {Map<string, MdastFootnoteDefinition>} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map<string, number>} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array<string>} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array<HastElementContent> | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {<Type extends HastRootContent>(nodes: Array<Type>, loose?: boolean | undefined) => Array<HastText | Type>} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map<string, MdastDefinition>} */\n const definitionById = new Map()\n /** @type {Map<string, MdastFootnoteDefinition>} */\n const footnoteById = new Map()\n /** @type {Map<string, number>} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/9032189/lib/index.js#L20-L21>.\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array<HastElementContent> | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array<HastElementContent>}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array<HastElementContent>} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array<HastElementContent>} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array<Type>} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array<HastText | Type>}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array<HastText | Type>} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('./state.js').Options} Options\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `<div>` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","/**\n * @import {Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {Options as ToHastOptions} from 'mdast-util-to-hast'\n * @import {Processor} from 'unified'\n * @import {VFile} from 'vfile'\n */\n\n/**\n * @typedef {Omit<ToHastOptions, 'file'>} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise<undefined>}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given,\n * runs the (rehype) plugins used on it with a hast tree,\n * then discards the result (*bridge mode*)\n * * otherwise,\n * returns a hast tree,\n * the plugins used after `remarkRehype` are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**:\n * > It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc);\n * this is a heavy task as it needs a full HTML parser,\n * but it is the only way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark,\n * which we follow by default.\n * They are supported by GitHub,\n * so footnotes can be enabled in markdown with `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes,\n * which is hidden for sighted users but shown to assistive technology.\n * When your page is not in English,\n * you must define translated values.\n *\n * Back references use ARIA attributes,\n * but the section label itself uses a heading that is hidden with an\n * `sr-only` class.\n * To show it to sighted users,\n * define different attributes in `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem,\n * as it links footnote calls to footnote definitions on the page through `id`\n * attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value`\n * (and doesn’t have `data.hName`, `data.hProperties`, or `data.hChildren`,\n * see later),\n * create a hast `text` node\n * * otherwise,\n * create a `<div>` element (which could be changed with `data.hName`),\n * with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @overload\n * @param {Readonly<Options> | Processor | null | undefined} [destination]\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformBridge | TransformMutate}\n *\n * @param {Readonly<Options> | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly<Options> | null | undefined} [options]\n * When a processor was given,\n * configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n // To do: in the future, disallow ` || options` fallback.\n // With `unified-engine`, `destination` can be `undefined` but\n // `options` will be the file set.\n // We should not pass that as `options`.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(destination || options)})\n )\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array<any>) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array<any>) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array<any>) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array<Middleware>} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array<any>} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array<any>} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const minpath = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [extname]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, extname) {\n if (extname !== undefined && typeof extname !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (\n extname === undefined ||\n extname.length === 0 ||\n extname.length > path.length\n ) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (extname === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extnameIndex = extname.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extnameIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === extname.codePointAt(extnameIndex--)) {\n if (extnameIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extnameIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array<string>} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const minproc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: <https://github.com/nodejs/node/blob/6a3403c/lib/internal/url.js#L720>\nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: <https://github.com/nodejs/node/blob/6a3403c/lib/internal/url.js>\n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n * @import {Options as MessageOptions} from 'vfile-message'\n * @import {Compatible, Data, Map, Options, Value} from 'vfile'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {minpath} from '#minpath'\nimport {minproc} from '#minproc'\nimport {urlToPath, isUrl} from '#minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n // Prevent calling `cwd` (which could be expensive) if it’s not needed;\n // the empty string will be overridden in the next block.\n this.cwd = 'cwd' in options ? '' : minproc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array<string>}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array<VFileMessage>}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const field = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n field in options &&\n options[field] !== undefined &&\n options[field] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[field] = field === 'history' ? [...options[field]] : options[field]\n }\n }\n\n /** @type {string} */\n let field\n\n // Set non-path related properties.\n for (field in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(field)) {\n // @ts-expect-error: fine to set other things.\n this[field] = options[field]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path)\n : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = minpath.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string'\n ? minpath.dirname(this.path)\n : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = minpath.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string'\n ? minpath.extname(this.path)\n : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = minpath.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = minpath.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > <https://nodejs.org/api/util.html#whatwg-supported-encodings>.\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(minpath.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new <Parameters extends Array<unknown>, Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array<unknown>) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record<string | symbol, Function>} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const value = proto[property]\n /** @type {(...parameters: Array<unknown>) => unknown} */\n const apply = function () {\n return value.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n // Not needed for us in `unified`: we only call this on the `copy`\n // function,\n // and we don't need to add its fields (`length`, `name`)\n // over.\n // See also: GH-246.\n // const names = Object.getOwnPropertyNames(value)\n //\n // for (const p of names) {\n // const descriptor = Object.getOwnPropertyDescriptor(value, p)\n // if (descriptor) Object.defineProperty(apply, p, descriptor)\n // }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@linkcode Node}\n * and {@linkcode VFile} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@linkcode VFile} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@linkcode Node}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin<Array<any>, any, any> |\n * PluginTuple<Array<any>, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array<Pluggable>} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// <https://github.com/microsoft/TypeScript/issues/55197>.\n/**\n * @template {Array<unknown>} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array<unknown>} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin<TupleParameters, Input, Output>,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback<Output>} next\n * Callback.\n * @returns {(\n * Promise<Output | undefined | void> |\n * Promise<never> | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise<undefined>` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise<Node>` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser<ParseTree extends undefined ? Node : ParseTree> |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array<PluginTuple<Array<unknown>>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser<ParseTree extends undefined ? Node : ParseTree> |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback<VFileWithOutput<CompileResult>>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise<VFileWithOutput<CompileResult>>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback<VFileWithOutput<CompileResult>> | undefined} [done]\n * Callback (optional).\n * @returns {Promise<VFile> | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput<CompileResult>) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput<CompileResult>} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput<CompileResult> | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput<CompileResult>}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput<CompileResult> | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback<VFileWithOutput<CompileResult>>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise<TailTree extends undefined ? Node : TailTree>}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback<TailTree extends undefined ? Node : TailTree> |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} [done]\n * Callback (optional).\n * @returns {Promise<TailTree extends undefined ? Node : TailTree> | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback<TailTree extends undefined ? Node : TailTree>}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array<unknown>} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Plugin<Parameters, Input, Output>} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin<ParseTree, HeadTree, TailTree, CompileTree, CompileResult, Input, Output>}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple<Array<unknown>>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array<unknown>} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","/**\n * @import {Element, Nodes, Parents, Root} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {ComponentType, JSX, ReactElement, ReactNode} from 'react'\n * @import {Options as RemarkRehypeOptions} from 'remark-rehype'\n * @import {BuildVisitor} from 'unist-util-visit'\n * @import {PluggableList, Processor} from 'unified'\n */\n\n/**\n * @callback AllowElement\n * Filter elements.\n * @param {Readonly<Element>} element\n * Element to check.\n * @param {number} index\n * Index of `element` in `parent`.\n * @param {Readonly<Parents> | undefined} parent\n * Parent of `element`.\n * @returns {boolean | null | undefined}\n * Whether to allow `element` (default: `false`).\n */\n\n/**\n * @typedef ExtraProps\n * Extra fields we pass.\n * @property {Element | undefined} [node]\n * passed when `passNode` is on.\n */\n\n/**\n * @typedef {{\n * [Key in keyof JSX.IntrinsicElements]?: ComponentType<JSX.IntrinsicElements[Key] & ExtraProps> | keyof JSX.IntrinsicElements\n * }} Components\n * Map tag names to components.\n */\n\n/**\n * @typedef Deprecation\n * Deprecation.\n * @property {string} from\n * Old field.\n * @property {string} id\n * ID in readme.\n * @property {keyof Options} [to]\n * New field.\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n * Filter elements (optional);\n * `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray<string> | null | undefined} [allowedElements]\n * Tag names to allow (default: all tag names);\n * cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n * Markdown.\n * @property {Components | null | undefined} [components]\n * Map tag names to components.\n * @property {ReadonlyArray<string> | null | undefined} [disallowedElements]\n * Tag names to disallow (default: `[]`);\n * cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n * List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n * List of remark plugins to use.\n * @property {Readonly<RemarkRehypeOptions> | null | undefined} [remarkRehypeOptions]\n * Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n * Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n * Extract (unwrap) what’s in disallowed elements (default: `false`);\n * normally when say `strong` is not allowed, it and it’s children are dropped,\n * with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n * Change URLs (default: `defaultUrlTransform`)\n */\n\n/**\n * @typedef HooksOptionsOnly\n * Configuration specifically for {@linkcode MarkdownHooks}.\n * @property {ReactNode | null | undefined} [fallback]\n * Content to render while the processor processing the markdown (optional).\n */\n\n/**\n * @typedef {Options & HooksOptionsOnly} HooksOptions\n * Configuration for {@linkcode MarkdownHooks};\n * extends the regular {@linkcode Options} with a `fallback` prop.\n */\n\n/**\n * @callback UrlTransform\n * Transform all URLs.\n * @param {string} url\n * URL.\n * @param {string} key\n * Property name (example: `'href'`).\n * @param {Readonly<Element>} node\n * Node.\n * @returns {string | null | undefined}\n * Transformed URL (optional).\n */\n\nimport {unreachable} from 'devlop'\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\nimport {urlAttributes} from 'html-url-attributes'\nimport {Fragment, jsx, jsxs} from 'react/jsx-runtime'\nimport {useEffect, useState} from 'react'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport {unified} from 'unified'\nimport {visit} from 'unist-util-visit'\nimport {VFile} from 'vfile'\n\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {PluggableList} */\nconst emptyPlugins = []\n/** @type {Readonly<RemarkRehypeOptions>} */\nconst emptyRemarkRehypeOptions = {allowDangerousHtml: true}\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i\n\n// Mutable because we `delete` any time it’s used and a message is sent.\n/** @type {ReadonlyArray<Readonly<Deprecation>>} */\nconst deprecations = [\n {from: 'astPlugins', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'allowDangerousHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {\n from: 'allowNode',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowElement'\n },\n {\n from: 'allowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowedElements'\n },\n {from: 'className', id: 'remove-classname'},\n {\n from: 'disallowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'disallowedElements'\n },\n {from: 'escapeHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'includeElementIndex', id: '#remove-includeelementindex'},\n {\n from: 'includeNodeIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n },\n {from: 'linkTarget', id: 'remove-linktarget'},\n {from: 'plugins', id: 'change-plugins-to-remarkplugins', to: 'remarkPlugins'},\n {from: 'rawSourcePos', id: '#remove-rawsourcepos'},\n {from: 'renderers', id: 'change-renderers-to-components', to: 'components'},\n {from: 'source', id: 'change-source-to-children', to: 'children'},\n {from: 'sourcePos', id: '#remove-sourcepos'},\n {from: 'transformImageUri', id: '#add-urltransform', to: 'urlTransform'},\n {from: 'transformLinkUri', id: '#add-urltransform', to: 'urlTransform'}\n]\n\n/**\n * Component to render markdown.\n *\n * This is a synchronous component.\n * When using async plugins,\n * see {@linkcode MarkdownAsync} or {@linkcode MarkdownHooks}.\n *\n * @param {Readonly<Options>} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nexport function Markdown(options) {\n const processor = createProcessor(options)\n const file = createFile(options)\n return post(processor.runSync(processor.parse(file), file), options)\n}\n\n/**\n * Component to render markdown with support for async plugins\n * through async/await.\n *\n * Components returning promises are supported on the server.\n * For async support on the client,\n * see {@linkcode MarkdownHooks}.\n *\n * @param {Readonly<Options>} options\n * Props.\n * @returns {Promise<ReactElement>}\n * Promise to a React element.\n */\nexport async function MarkdownAsync(options) {\n const processor = createProcessor(options)\n const file = createFile(options)\n const tree = await processor.run(processor.parse(file), file)\n return post(tree, options)\n}\n\n/**\n * Component to render markdown with support for async plugins through hooks.\n *\n * This uses `useEffect` and `useState` hooks.\n * Hooks run on the client and do not immediately render something.\n * For async support on the server,\n * see {@linkcode MarkdownAsync}.\n *\n * @param {Readonly<HooksOptions>} options\n * Props.\n * @returns {ReactNode}\n * React node.\n */\nexport function MarkdownHooks(options) {\n const processor = createProcessor(options)\n const [error, setError] = useState(\n /** @type {Error | undefined} */ (undefined)\n )\n const [tree, setTree] = useState(/** @type {Root | undefined} */ (undefined))\n\n useEffect(\n function () {\n let cancelled = false\n const file = createFile(options)\n\n processor.run(processor.parse(file), file, function (error, tree) {\n if (!cancelled) {\n setError(error)\n setTree(tree)\n }\n })\n\n /**\n * @returns {undefined}\n * Nothing.\n */\n return function () {\n cancelled = true\n }\n },\n [\n options.children,\n options.rehypePlugins,\n options.remarkPlugins,\n options.remarkRehypeOptions\n ]\n )\n\n if (error) throw error\n\n return tree ? post(tree, options) : options.fallback\n}\n\n/**\n * Set up the `unified` processor.\n *\n * @param {Readonly<Options>} options\n * Props.\n * @returns {Processor<MdastRoot, MdastRoot, Root, undefined, undefined>}\n * Result.\n */\nfunction createProcessor(options) {\n const rehypePlugins = options.rehypePlugins || emptyPlugins\n const remarkPlugins = options.remarkPlugins || emptyPlugins\n const remarkRehypeOptions = options.remarkRehypeOptions\n ? {...options.remarkRehypeOptions, ...emptyRemarkRehypeOptions}\n : emptyRemarkRehypeOptions\n\n const processor = unified()\n .use(remarkParse)\n .use(remarkPlugins)\n .use(remarkRehype, remarkRehypeOptions)\n .use(rehypePlugins)\n\n return processor\n}\n\n/**\n * Set up the virtual file.\n *\n * @param {Readonly<Options>} options\n * Props.\n * @returns {VFile}\n * Result.\n */\nfunction createFile(options) {\n const children = options.children || ''\n const file = new VFile()\n\n if (typeof children === 'string') {\n file.value = children\n } else {\n unreachable(\n 'Unexpected value `' +\n children +\n '` for `children` prop, expected `string`'\n )\n }\n\n return file\n}\n\n/**\n * Process the result from unified some more.\n *\n * @param {Nodes} tree\n * Tree.\n * @param {Readonly<Options>} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nfunction post(tree, options) {\n const allowedElements = options.allowedElements\n const allowElement = options.allowElement\n const components = options.components\n const disallowedElements = options.disallowedElements\n const skipHtml = options.skipHtml\n const unwrapDisallowed = options.unwrapDisallowed\n const urlTransform = options.urlTransform || defaultUrlTransform\n\n for (const deprecation of deprecations) {\n if (Object.hasOwn(options, deprecation.from)) {\n unreachable(\n 'Unexpected `' +\n deprecation.from +\n '` prop, ' +\n (deprecation.to\n ? 'use `' + deprecation.to + '` instead'\n : 'remove it') +\n ' (see <' +\n changelog +\n '#' +\n deprecation.id +\n '> for more info)'\n )\n }\n }\n\n if (allowedElements && disallowedElements) {\n unreachable(\n 'Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other'\n )\n }\n\n visit(tree, transform)\n\n return toJsxRuntime(tree, {\n Fragment,\n components,\n ignoreInvalidStyle: true,\n jsx,\n jsxs,\n passKeys: true,\n passNode: true\n })\n\n /** @type {BuildVisitor<Root>} */\n function transform(node, index, parent) {\n if (node.type === 'raw' && parent && typeof index === 'number') {\n if (skipHtml) {\n parent.children.splice(index, 1)\n } else {\n parent.children[index] = {type: 'text', value: node.value}\n }\n\n return index\n }\n\n if (node.type === 'element') {\n /** @type {string} */\n let key\n\n for (key in urlAttributes) {\n if (\n Object.hasOwn(urlAttributes, key) &&\n Object.hasOwn(node.properties, key)\n ) {\n const value = node.properties[key]\n const test = urlAttributes[key]\n if (test === null || test.includes(node.tagName)) {\n node.properties[key] = urlTransform(String(value || ''), key, node)\n }\n }\n }\n }\n\n if (node.type === 'element') {\n let remove = allowedElements\n ? !allowedElements.includes(node.tagName)\n : disallowedElements\n ? disallowedElements.includes(node.tagName)\n : false\n\n if (!remove && allowElement && typeof index === 'number') {\n remove = !allowElement(node, index, parent)\n }\n\n if (remove && parent && typeof index === 'number') {\n if (unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n }\n }\n}\n\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n * URL.\n * @returns {string}\n * Safe URL.\n */\nexport function defaultUrlTransform(value) {\n // Same as:\n // <https://github.com/micromark/micromark/blob/929275e/packages/micromark-util-sanitize-uri/dev/index.js#L34>\n // But without the `encode` part.\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it’s relative.\n colon === -1 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash !== -1 && colon > slash) ||\n (questionMark !== -1 && colon > questionMark) ||\n (numberSign !== -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n safeProtocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Captions\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTQiIHg9IjMiIHk9IjUiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNNyAxNWg0TTE1IDE1aDJNNyAxMWgyTTEzIDExaDQiIC8+Cjwvc3ZnPg==) - https://lucide.dev/icons/captions\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Captions = createLucideIcon('Captions', [\n ['rect', { width: '18', height: '14', x: '3', y: '5', rx: '2', ry: '2', key: '12ruh7' }],\n ['path', { d: 'M7 15h4M15 15h2M7 11h2M13 11h4', key: '1ueiar' }],\n]);\n\nexport default Captions;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name RefreshCw\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAwIDEgOS05IDkuNzUgOS43NSAwIDAgMSA2Ljc0IDIuNzRMMjEgOCIgLz4KICA8cGF0aCBkPSJNMjEgM3Y1aC01IiAvPgogIDxwYXRoIGQ9Ik0yMSAxMmE5IDkgMCAwIDEtOSA5IDkuNzUgOS43NSAwIDAgMS02Ljc0LTIuNzRMMyAxNiIgLz4KICA8cGF0aCBkPSJNOCAxNkgzdjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/refresh-cw\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst RefreshCw = createLucideIcon('RefreshCw', [\n ['path', { d: 'M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8', key: 'v9h5vc' }],\n ['path', { d: 'M21 3v5h-5', key: '1q7to0' }],\n ['path', { d: 'M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16', key: '3uifl3' }],\n ['path', { d: 'M8 16H3v5', key: '1cv678' }],\n]);\n\nexport default RefreshCw;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Video\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTYgMTMgNS4yMjMgMy40ODJhLjUuNSAwIDAgMCAuNzc3LS40MTZWNy44N2EuNS41IDAgMCAwLS43NTItLjQzMkwxNiAxMC41IiAvPgogIDxyZWN0IHg9IjIiIHk9IjYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMiIgcng9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/video\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Video = createLucideIcon('Video', [\n [\n 'path',\n {\n d: 'm16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5',\n key: 'ftymec',\n },\n ],\n ['rect', { x: '2', y: '6', width: '14', height: '12', rx: '2', key: '158x01' }],\n]);\n\nexport default Video;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ZoomIn\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSI4IiAvPgogIDxsaW5lIHgxPSIyMSIgeDI9IjE2LjY1IiB5MT0iMjEiIHkyPSIxNi42NSIgLz4KICA8bGluZSB4MT0iMTEiIHgyPSIxMSIgeTE9IjgiIHkyPSIxNCIgLz4KICA8bGluZSB4MT0iOCIgeDI9IjE0IiB5MT0iMTEiIHkyPSIxMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/zoom-in\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ZoomIn = createLucideIcon('ZoomIn', [\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n ['line', { x1: '21', x2: '16.65', y1: '21', y2: '16.65', key: '13gj7c' }],\n ['line', { x1: '11', x2: '11', y1: '8', y2: '14', key: '1vmskp' }],\n ['line', { x1: '8', x2: '14', y1: '11', y2: '11', key: 'durymu' }],\n]);\n\nexport default ZoomIn;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronUp\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTUtNi02LTYgNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-up\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronUp = createLucideIcon('ChevronUp', [['path', { d: 'm18 15-6-6-6 6', key: '153udz' }]]);\n\nexport default ChevronUp;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name X\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggNiA2IDE4IiAvPgogIDxwYXRoIGQ9Im02IDYgMTIgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst X = createLucideIcon('X', [\n ['path', { d: 'M18 6 6 18', key: '1bl5f8' }],\n ['path', { d: 'm6 6 12 12', key: 'd8bk6v' }],\n]);\n\nexport default X;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Pause\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIxNCIgeT0iNCIgd2lkdGg9IjQiIGhlaWdodD0iMTYiIHJ4PSIxIiAvPgogIDxyZWN0IHg9IjYiIHk9IjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjE2IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pause\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Pause = createLucideIcon('Pause', [\n ['rect', { x: '14', y: '4', width: '4', height: '16', rx: '1', key: 'zuxfzm' }],\n ['rect', { x: '6', y: '4', width: '4', height: '16', rx: '1', key: '1okwgv' }],\n]);\n\nexport default Pause;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Play\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWdvbiBwb2ludHM9IjYgMyAyMCAxMiA2IDIxIDYgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Play = createLucideIcon('Play', [\n ['polygon', { points: '6 3 20 12 6 21 6 3', key: '1oa8hb' }],\n]);\n\nexport default Play;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Music\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxOFY1bDEyLTJ2MTMiIC8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjE4IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTYiIHI9IjMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/music\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Music = createLucideIcon('Music', [\n ['path', { d: 'M9 18V5l12-2v13', key: '1jmyc2' }],\n ['circle', { cx: '6', cy: '18', r: '3', key: 'fqmcym' }],\n ['circle', { cx: '18', cy: '16', r: '3', key: '1hluhg' }],\n]);\n\nexport default Music;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'Comic Neue', 'Comic Neue Fallback'\",\"fontStyle\":\"normal\"},\"className\":\"__className_5f610d\"};","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name SquareSplitHorizontal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAxOUg1Yy0xIDAtMi0xLTItMlY3YzAtMSAxLTIgMi0yaDMiIC8+CiAgPHBhdGggZD0iTTE2IDVoM2MxIDAgMiAxIDIgMnYxMGMwIDEtMSAyLTIgMmgtMyIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjQiIHkyPSIyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/square-split-horizontal\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst SquareSplitHorizontal = createLucideIcon('SquareSplitHorizontal', [\n ['path', { d: 'M8 19H5c-1 0-2-1-2-2V7c0-1 1-2 2-2h3', key: 'lubmu8' }],\n ['path', { d: 'M16 5h3c1 0 2 1 2 2v10c0 1-1 2-2 2h-3', key: '1ag34g' }],\n ['line', { x1: '12', x2: '12', y1: '4', y2: '20', key: '1tx1rr' }],\n]);\n\nexport default SquareSplitHorizontal;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Grid2x2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM3YxOCIgLz4KICA8cGF0aCBkPSJNMyAxMmgxOCIgLz4KICA8cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHJ4PSIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/grid-2x2\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Grid2x2 = createLucideIcon('Grid2x2', [\n ['path', { d: 'M12 3v18', key: '108xh3' }],\n ['path', { d: 'M3 12h18', key: '1i2n21' }],\n ['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2', key: 'h1oib' }],\n]);\n\nexport default Grid2x2;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Circle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Circle = createLucideIcon('Circle', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n]);\n\nexport default Circle;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Check = createLucideIcon('Check', [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]]);\n\nexport default Check;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Download\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCIgLz4KICA8cG9seWxpbmUgcG9pbnRzPSI3IDEwIDEyIDE1IDE3IDEwIiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMTUiIHkyPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/download\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Download = createLucideIcon('Download', [\n ['path', { d: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4', key: 'ih7n3h' }],\n ['polyline', { points: '7 10 12 15 17 10', key: '2ggqvy' }],\n ['line', { x1: '12', x2: '12', y1: '15', y2: '3', key: '1vk2je' }],\n]);\n\nexport default Download;\n","export * from '../client/components/navigation';\n\n//# sourceMappingURL=navigation.js.map","\"use client\";import*as t from\"react\";var M=(e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=[\"light\",\"dark\"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y===\"class\",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia(\"(prefers-color-scheme: dark)\").matches?\"dark\":\"light\"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n===\"system\"?c():n;p(y)}catch(n){}};var b=[\"light\",\"dark\"],I=\"(prefers-color-scheme: dark)\",O=typeof window==\"undefined\",x=t.createContext(void 0),U={setTheme:e=>{},themes:[]},z=()=>{var e;return(e=t.useContext(x))!=null?e:U},J=e=>t.useContext(x)?t.createElement(t.Fragment,null,e.children):t.createElement(V,{...e}),N=[\"light\",\"dark\"],V=({forcedTheme:e,disableTransitionOnChange:i=!1,enableSystem:s=!0,enableColorScheme:u=!0,storageKey:m=\"theme\",themes:a=N,defaultTheme:l=s?\"system\":\"light\",attribute:h=\"data-theme\",value:d,children:w,nonce:p,scriptProps:R})=>{let[c,n]=t.useState(()=>H(m,l)),[T,y]=t.useState(()=>c===\"system\"?E():c),k=d?Object.values(d):a,S=t.useCallback(o=>{let r=o;if(!r)return;o===\"system\"&&s&&(r=E());let v=d?d[r]:r,C=i?W(p):null,P=document.documentElement,L=g=>{g===\"class\"?(P.classList.remove(...k),v&&P.classList.add(v)):g.startsWith(\"data-\")&&(v?P.setAttribute(g,v):P.removeAttribute(g))};if(Array.isArray(h)?h.forEach(L):L(h),u){let g=b.includes(l)?l:null,D=b.includes(r)?r:g;P.style.colorScheme=D}C==null||C()},[p]),f=t.useCallback(o=>{let r=typeof o==\"function\"?o(c):o;n(r);try{localStorage.setItem(m,r)}catch(v){}},[c]),A=t.useCallback(o=>{let r=E(o);y(r),c===\"system\"&&s&&!e&&S(\"system\")},[c,e]);t.useEffect(()=>{let o=window.matchMedia(I);return o.addListener(A),A(o),()=>o.removeListener(A)},[A]),t.useEffect(()=>{let o=r=>{r.key===m&&(r.newValue?n(r.newValue):f(l))};return window.addEventListener(\"storage\",o),()=>window.removeEventListener(\"storage\",o)},[f]),t.useEffect(()=>{S(e!=null?e:c)},[e,c]);let Q=t.useMemo(()=>({theme:c,setTheme:f,forcedTheme:e,resolvedTheme:c===\"system\"?T:c,themes:s?[...a,\"system\"]:a,systemTheme:s?T:void 0}),[c,f,e,T,s,a]);return t.createElement(x.Provider,{value:Q},t.createElement(_,{forcedTheme:e,storageKey:m,attribute:h,enableSystem:s,enableColorScheme:u,defaultTheme:l,value:d,themes:a,nonce:p,scriptProps:R}),w)},_=t.memo(({forcedTheme:e,storageKey:i,attribute:s,enableSystem:u,enableColorScheme:m,defaultTheme:a,value:l,themes:h,nonce:d,scriptProps:w})=>{let p=JSON.stringify([s,i,a,e,h,l,u,m]).slice(1,-1);return t.createElement(\"script\",{...w,suppressHydrationWarning:!0,nonce:typeof window==\"undefined\"?d:\"\",dangerouslySetInnerHTML:{__html:`(${M.toString()})(${p})`}})}),H=(e,i)=>{if(O)return;let s;try{s=localStorage.getItem(e)||void 0}catch(u){}return s||i},W=e=>{let i=document.createElement(\"style\");return e&&i.setAttribute(\"nonce\",e),i.appendChild(document.createTextNode(\"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\")),document.head.appendChild(i),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(i)},1)}},E=e=>(e||(e=window.matchMedia(I)),e.matches?\"dark\":\"light\");export{J as ThemeProvider,z as useTheme};\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name EyeOff\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuNzMzIDUuMDc2YTEwLjc0NCAxMC43NDQgMCAwIDEgMTEuMjA1IDYuNTc1IDEgMSAwIDAgMSAwIC42OTYgMTAuNzQ3IDEwLjc0NyAwIDAgMS0xLjQ0NCAyLjQ5IiAvPgogIDxwYXRoIGQ9Ik0xNC4wODQgMTQuMTU4YTMgMyAwIDAgMS00LjI0Mi00LjI0MiIgLz4KICA8cGF0aCBkPSJNMTcuNDc5IDE3LjQ5OWExMC43NSAxMC43NSAwIDAgMS0xNS40MTctNS4xNTEgMSAxIDAgMCAxIDAtLjY5NiAxMC43NSAxMC43NSAwIDAgMSA0LjQ0Ni01LjE0MyIgLz4KICA8cGF0aCBkPSJtMiAyIDIwIDIwIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eye-off\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst EyeOff = createLucideIcon('EyeOff', [\n [\n 'path',\n {\n d: 'M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49',\n key: 'ct8e1f',\n },\n ],\n ['path', { d: 'M14.084 14.158a3 3 0 0 1-4.242-4.242', key: '151rxh' }],\n [\n 'path',\n {\n d: 'M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143',\n key: '13bj9a',\n },\n ],\n ['path', { d: 'm2 2 20 20', key: '1ooewy' }],\n]);\n\nexport default EyeOff;\n","export var IconsManifest = [\n {\n \"id\": \"ci\",\n \"name\": \"Circum Icons\",\n \"projectUrl\": \"https://circumicons.com/\",\n \"license\": \"MPL-2.0 license\",\n \"licenseUrl\": \"https://github.com/Klarr-Agency/Circum-Icons/blob/main/LICENSE\"\n },\n {\n \"id\": \"fa\",\n \"name\": \"Font Awesome 5\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"fa6\",\n \"name\": \"Font Awesome 6\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"io\",\n \"name\": \"Ionicons 4\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"io5\",\n \"name\": \"Ionicons 5\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"md\",\n \"name\": \"Material Design icons\",\n \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"ti\",\n \"name\": \"Typicons\",\n \"projectUrl\": \"http://s-ings.com/typicons/\",\n \"license\": \"CC BY-SA 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n },\n {\n \"id\": \"go\",\n \"name\": \"Github Octicons icons\",\n \"projectUrl\": \"https://octicons.github.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"fi\",\n \"name\": \"Feather\",\n \"projectUrl\": \"https://feathericons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n },\n {\n \"id\": \"lu\",\n \"name\": \"Lucide\",\n \"projectUrl\": \"https://lucide.dev/\",\n \"license\": \"ISC\",\n \"licenseUrl\": \"https://github.com/lucide-icons/lucide/blob/main/LICENSE\"\n },\n {\n \"id\": \"gi\",\n \"name\": \"Game Icons\",\n \"projectUrl\": \"https://game-icons.net/\",\n \"license\": \"CC BY 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n },\n {\n \"id\": \"wi\",\n \"name\": \"Weather Icons\",\n \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n \"license\": \"SIL OFL 1.1\",\n \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n },\n {\n \"id\": \"di\",\n \"name\": \"Devicons\",\n \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ai\",\n \"name\": \"Ant Design Icons\",\n \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"bs\",\n \"name\": \"Bootstrap Icons\",\n \"projectUrl\": \"https://github.com/twbs/icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ri\",\n \"name\": \"Remix Icon\",\n \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"fc\",\n \"name\": \"Flat Color Icons\",\n \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"gr\",\n \"name\": \"Grommet-Icons\",\n \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"hi\",\n \"name\": \"Heroicons\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"hi2\",\n \"name\": \"Heroicons 2\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"si\",\n \"name\": \"Simple Icons\",\n \"projectUrl\": \"https://simpleicons.org/\",\n \"license\": \"CC0 1.0 Universal\",\n \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n },\n {\n \"id\": \"sl\",\n \"name\": \"Simple Line Icons\",\n \"projectUrl\": \"https://thesabbir.github.io/simple-line-icons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"im\",\n \"name\": \"IcoMoon Free\",\n \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://github.com/Keyamoon/IcoMoon-Free/blob/master/License.txt\"\n },\n {\n \"id\": \"bi\",\n \"name\": \"BoxIcons\",\n \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/atisawd/boxicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"cg\",\n \"name\": \"css.gg\",\n \"projectUrl\": \"https://github.com/astrit/css.gg\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"vsc\",\n \"name\": \"VS Code Icons\",\n \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n \"license\": \"CC BY 4.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"tb\",\n \"name\": \"Tabler Icons\",\n \"projectUrl\": \"https://github.com/tabler/tabler-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"tfi\",\n \"name\": \"Themify Icons\",\n \"projectUrl\": \"https://github.com/lykmapipo/themify-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/thecreation/standard-icons/blob/master/modules/themify-icons/LICENSE\"\n },\n {\n \"id\": \"rx\",\n \"name\": \"Radix Icons\",\n \"projectUrl\": \"https://icons.radix-ui.com\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/radix-ui/icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"pi\",\n \"name\": \"Phosphor Icons\",\n \"projectUrl\": \"https://github.com/phosphor-icons/core\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/phosphor-icons/core/blob/main/LICENSE\"\n },\n {\n \"id\": \"lia\",\n \"name\": \"Icons8 Line Awesome\",\n \"projectUrl\": \"https://icons8.com/line-awesome\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/icons8/line-awesome/blob/master/LICENSE.md\"\n }\n]","import React from \"react\";\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && /*#__PURE__*/React.createContext(DefaultContext);","var _excluded = [\"attr\", \"size\", \"title\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React from \"react\";\nimport { IconContext, DefaultContext } from \"./iconContext.mjs\";\nfunction Tree2Element(tree) {\n return tree && tree.map((node, i) => /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: i\n }, node.attr), Tree2Element(node.child)));\n}\nexport function GenIcon(data) {\n return props => /*#__PURE__*/React.createElement(IconBase, _extends({\n attr: _objectSpread({}, data.attr)\n }, props), Tree2Element(data.child));\n}\nexport function IconBase(props) {\n var elem = conf => {\n var {\n attr,\n size,\n title\n } = props,\n svgProps = _objectWithoutProperties(props, _excluded);\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + \" \" : \"\") + props.className;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: _objectSpread(_objectSpread({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && /*#__PURE__*/React.createElement(\"title\", null, title), props.children);\n };\n return IconContext !== undefined ? /*#__PURE__*/React.createElement(IconContext.Consumer, null, conf => elem(conf)) : elem(DefaultContext);\n}","export * from \"./iconsManifest.mjs\";\nexport * from \"./iconBase.mjs\";\nexport * from \"./iconContext.mjs\";","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name SkipBack\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWdvbiBwb2ludHM9IjE5IDIwIDkgMTIgMTkgNCAxOSAyMCIgLz4KICA8bGluZSB4MT0iNSIgeDI9IjUiIHkxPSIxOSIgeTI9IjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/skip-back\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst SkipBack = createLucideIcon('SkipBack', [\n ['polygon', { points: '19 20 9 12 19 4 19 20', key: 'o2sva' }],\n ['line', { x1: '5', x2: '5', y1: '19', y2: '5', key: '1ocqjk' }],\n]);\n\nexport default SkipBack;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name VolumeX\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoiIC8+CiAgPGxpbmUgeDE9IjIyIiB4Mj0iMTYiIHkxPSI5IiB5Mj0iMTUiIC8+CiAgPGxpbmUgeDE9IjE2IiB4Mj0iMjIiIHkxPSI5IiB5Mj0iMTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/volume-x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst VolumeX = createLucideIcon('VolumeX', [\n [\n 'path',\n {\n d: 'M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z',\n key: 'uqj9uw',\n },\n ],\n ['line', { x1: '22', x2: '16', y1: '9', y2: '15', key: '1ewh16' }],\n ['line', { x1: '16', x2: '22', y1: '9', y2: '15', key: '5ykzw1' }],\n]);\n\nexport default VolumeX;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowRightToLine\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgMTJIMyIgLz4KICA8cGF0aCBkPSJtMTEgMTggNi02LTYtNiIgLz4KICA8cGF0aCBkPSJNMjEgNXYxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-right-to-line\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowRightToLine = createLucideIcon('ArrowRightToLine', [\n ['path', { d: 'M17 12H3', key: '8awo09' }],\n ['path', { d: 'm11 18 6-6-6-6', key: '8c2y43' }],\n ['path', { d: 'M21 5v14', key: 'nzette' }],\n]);\n\nexport default ArrowRightToLine;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTIgMTktNy03IDctNyIgLz4KICA8cGF0aCBkPSJNMTkgMTJINSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowLeft = createLucideIcon('ArrowLeft', [\n ['path', { d: 'm12 19-7-7 7-7', key: '1l729n' }],\n ['path', { d: 'M19 12H5', key: 'x3x0zl' }],\n]);\n\nexport default ArrowLeft;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTgtNi02IDYtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronLeft = createLucideIcon('ChevronLeft', [\n ['path', { d: 'm15 18-6-6 6-6', key: '1wnfg3' }],\n]);\n\nexport default ChevronLeft;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar style_to_object_1 = __importDefault(require(\"style-to-object\"));\nvar utilities_1 = require(\"./utilities\");\n/**\n * Parses CSS inline style to JavaScript object (camelCased).\n */\nfunction StyleToJS(style, options) {\n var output = {};\n if (!style || typeof style !== 'string') {\n return output;\n }\n (0, style_to_object_1.default)(style, function (property, value) {\n // skip CSS comment\n if (property && value) {\n output[(0, utilities_1.camelCase)(property, options)] = value;\n }\n });\n return output;\n}\nStyleToJS.default = StyleToJS;\nmodule.exports = StyleToJS;\n//# sourceMappingURL=index.js.map","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Trash2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA2aDE4IiAvPgogIDxwYXRoIGQ9Ik0xOSA2djE0YzAgMS0xIDItMiAySDdjLTEgMC0yLTEtMi0yVjYiIC8+CiAgPHBhdGggZD0iTTggNlY0YzAtMSAxLTIgMi0yaDRjMSAwIDIgMSAyIDJ2MiIgLz4KICA8bGluZSB4MT0iMTAiIHgyPSIxMCIgeTE9IjExIiB5Mj0iMTciIC8+CiAgPGxpbmUgeDE9IjE0IiB4Mj0iMTQiIHkxPSIxMSIgeTI9IjE3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/trash-2\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Trash2 = createLucideIcon('Trash2', [\n ['path', { d: 'M3 6h18', key: 'd0wm0j' }],\n ['path', { d: 'M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6', key: '4alrt4' }],\n ['path', { d: 'M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2', key: 'v07s0e' }],\n ['line', { x1: '10', x2: '10', y1: '11', y2: '17', key: '1uufr5' }],\n ['line', { x1: '14', x2: '14', y1: '11', y2: '17', key: 'xtxkd' }],\n]);\n\nexport default Trash2;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name SkipForward\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWdvbiBwb2ludHM9IjUgNCAxNSAxMiA1IDIwIDUgNCIgLz4KICA8bGluZSB4MT0iMTkiIHgyPSIxOSIgeTE9IjUiIHkyPSIxOSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/skip-forward\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst SkipForward = createLucideIcon('SkipForward', [\n ['polygon', { points: '5 4 15 12 5 20 5 4', key: '16p6eg' }],\n ['line', { x1: '19', x2: '19', y1: '5', y2: '19', key: 'futhcm' }],\n]);\n\nexport default SkipForward;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowLeftRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAzIDQgN2w0IDQiIC8+CiAgPHBhdGggZD0iTTQgN2gxNiIgLz4KICA8cGF0aCBkPSJtMTYgMjEgNC00LTQtNCIgLz4KICA8cGF0aCBkPSJNMjAgMTdINCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-left-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowLeftRight = createLucideIcon('ArrowLeftRight', [\n ['path', { d: 'M8 3 4 7l4 4', key: '9rb6wj' }],\n ['path', { d: 'M4 7h16', key: '6tx8e3' }],\n ['path', { d: 'm16 21 4-4-4-4', key: 'siv7j2' }],\n ['path', { d: 'M20 17H4', key: 'h6l3hr' }],\n]);\n\nexport default ArrowLeftRight;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Sticker\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuNSAzSDVhMiAyIDAgMCAwLTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YTIgMiAwIDAgMCAyLTJWOC41TDE1LjUgM1oiIC8+CiAgPHBhdGggZD0iTTE0IDN2NGEyIDIgMCAwIDAgMiAyaDQiIC8+CiAgPHBhdGggZD0iTTggMTNoLjAxIiAvPgogIDxwYXRoIGQ9Ik0xNiAxM2guMDEiIC8+CiAgPHBhdGggZD0iTTEwIDE2cy44IDEgMiAxYzEuMyAwIDItMSAyLTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/sticker\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Sticker = createLucideIcon('Sticker', [\n [\n 'path',\n { d: 'M15.5 3H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14a2 2 0 0 0 2-2V8.5L15.5 3Z', key: '1wis1t' },\n ],\n ['path', { d: 'M14 3v4a2 2 0 0 0 2 2h4', key: '36rjfy' }],\n ['path', { d: 'M8 13h.01', key: '1sbv64' }],\n ['path', { d: 'M16 13h.01', key: 'wip0gl' }],\n ['path', { d: 'M10 16s.8 1 2 1c1.3 0 2-1 2-1', key: '1vvgv3' }],\n]);\n\nexport default Sticker;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Copy\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHg9IjgiIHk9IjgiIHJ4PSIyIiByeT0iMiIgLz4KICA8cGF0aCBkPSJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/copy\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Copy = createLucideIcon('Copy', [\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2', key: '17jyea' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2', key: 'zix9uf' }],\n]);\n\nexport default Copy;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name SquarePen\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgM0g1YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxNGEyIDIgMCAwIDAgMi0ydi03IiAvPgogIDxwYXRoIGQ9Ik0xOC4zNzUgMi42MjVhMSAxIDAgMCAxIDMgM2wtOS4wMTMgOS4wMTRhMiAyIDAgMCAxLS44NTMuNTA1bC0yLjg3My44NGEuNS41IDAgMCAxLS42Mi0uNjJsLjg0LTIuODczYTIgMiAwIDAgMSAuNTA2LS44NTJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-pen\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst SquarePen = createLucideIcon('SquarePen', [\n ['path', { d: 'M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7', key: '1m0v6g' }],\n [\n 'path',\n {\n d: 'M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z',\n key: 'ohrbg2',\n },\n ],\n]);\n\nexport default SquarePen;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowDown01\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMyAxNiA0IDQgNC00IiAvPgogIDxwYXRoIGQ9Ik03IDIwVjQiIC8+CiAgPHJlY3QgeD0iMTUiIHk9IjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjYiIHJ5PSIyIiAvPgogIDxwYXRoIGQ9Ik0xNyAyMHYtNmgtMiIgLz4KICA8cGF0aCBkPSJNMTUgMjBoNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/arrow-down-0-1\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowDown01 = createLucideIcon('ArrowDown01', [\n ['path', { d: 'm3 16 4 4 4-4', key: '1co6wj' }],\n ['path', { d: 'M7 20V4', key: '1yoxec' }],\n ['rect', { x: '15', y: '4', width: '4', height: '6', ry: '2', key: '1bwicg' }],\n ['path', { d: 'M17 20v-6h-2', key: '1qp1so' }],\n ['path', { d: 'M15 20h4', key: '1j968p' }],\n]);\n\nexport default ArrowDown01;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Type\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWxpbmUgcG9pbnRzPSI0IDcgNCA0IDIwIDQgMjAgNyIgLz4KICA8bGluZSB4MT0iOSIgeDI9IjE1IiB5MT0iMjAiIHkyPSIyMCIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjQiIHkyPSIyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/type\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Type = createLucideIcon('Type', [\n ['polyline', { points: '4 7 4 4 20 4 20 7', key: '1nosan' }],\n ['line', { x1: '9', x2: '15', y1: '20', y2: '20', key: 'swin9y' }],\n ['line', { x1: '12', x2: '12', y1: '4', y2: '20', key: '1tx1rr' }],\n]);\n\nexport default Type;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'Open Sans', 'Open Sans Fallback'\",\"fontStyle\":\"normal\"},\"className\":\"__className_2d07b8\"};","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Scissors\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI2IiBjeT0iNiIgcj0iMyIgLz4KICA8cGF0aCBkPSJNOC4xMiA4LjEyIDEyIDEyIiAvPgogIDxwYXRoIGQ9Ik0yMCA0IDguMTIgMTUuODgiIC8+CiAgPGNpcmNsZSBjeD0iNiIgY3k9IjE4IiByPSIzIiAvPgogIDxwYXRoIGQ9Ik0xNC44IDE0LjggMjAgMjAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/scissors\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Scissors = createLucideIcon('Scissors', [\n ['circle', { cx: '6', cy: '6', r: '3', key: '1lh9wr' }],\n ['path', { d: 'M8.12 8.12 12 12', key: '1alkpv' }],\n ['path', { d: 'M20 4 8.12 15.88', key: 'xgtan2' }],\n ['circle', { cx: '6', cy: '18', r: '3', key: 'fqmcym' }],\n ['path', { d: 'M14.8 14.8 20 20', key: 'ptml3r' }],\n]);\n\nexport default Scissors;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CloudUpload\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTN2OCIgLz4KICA8cGF0aCBkPSJNNCAxNC44OTlBNyA3IDAgMSAxIDE1LjcxIDhoMS43OWE0LjUgNC41IDAgMCAxIDIuNSA4LjI0MiIgLz4KICA8cGF0aCBkPSJtOCAxNyA0LTQgNCA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/cloud-upload\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CloudUpload = createLucideIcon('CloudUpload', [\n ['path', { d: 'M12 13v8', key: '1l5pq0' }],\n ['path', { d: 'M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242', key: '1pljnt' }],\n ['path', { d: 'm8 17 4-4 4 4', key: '1quai1' }],\n]);\n\nexport default CloudUpload;\n","export const ERROR_RESPONSE_BODY_READER = new Error(\"failed to get response body reader\");\nexport const ERROR_INCOMPLETED_DOWNLOAD = new Error(\"failed to complete download\");\n","export const HeaderContentLength = \"Content-Length\";\n","import { ERROR_RESPONSE_BODY_READER, ERROR_INCOMPLETED_DOWNLOAD, } from \"./errors.js\";\nimport { HeaderContentLength } from \"./const.js\";\nconst readFromBlobOrFile = (blob) => new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = () => {\n const { result } = fileReader;\n if (result instanceof ArrayBuffer) {\n resolve(new Uint8Array(result));\n }\n else {\n resolve(new Uint8Array());\n }\n };\n fileReader.onerror = (event) => {\n reject(Error(`File could not be read! Code=${event?.target?.error?.code || -1}`));\n };\n fileReader.readAsArrayBuffer(blob);\n});\n/**\n * An util function to fetch data from url string, base64, URL, File or Blob format.\n *\n * Examples:\n * ```ts\n * // URL\n * await fetchFile(\"http://localhost:3000/video.mp4\");\n * // base64\n * await fetchFile(\"data:<type>;base64,wL2dvYWwgbW9yZ...\");\n * // URL\n * await fetchFile(new URL(\"video.mp4\", import.meta.url));\n * // File\n * fileInput.addEventListener('change', (e) => {\n * await fetchFile(e.target.files[0]);\n * });\n * // Blob\n * const blob = new Blob(...);\n * await fetchFile(blob);\n * ```\n */\nexport const fetchFile = async (file) => {\n let data;\n if (typeof file === \"string\") {\n /* From base64 format */\n if (/data:_data\\/([a-zA-Z]*);base64,([^\"]*)/.test(file)) {\n data = atob(file.split(\",\")[1])\n .split(\"\")\n .map((c) => c.charCodeAt(0));\n /* From remote server/URL */\n }\n else {\n data = await (await fetch(file)).arrayBuffer();\n }\n }\n else if (file instanceof URL) {\n data = await (await fetch(file)).arrayBuffer();\n }\n else if (file instanceof File || file instanceof Blob) {\n data = await readFromBlobOrFile(file);\n }\n else {\n return new Uint8Array();\n }\n return new Uint8Array(data);\n};\n/**\n * importScript dynamically import a script, useful when you\n * want to use different versions of ffmpeg.wasm based on environment.\n *\n * Example:\n *\n * ```ts\n * await importScript(\"http://localhost:3000/ffmpeg.js\");\n * ```\n */\nexport const importScript = async (url) => new Promise((resolve) => {\n const script = document.createElement(\"script\");\n const eventHandler = () => {\n script.removeEventListener(\"load\", eventHandler);\n resolve();\n };\n script.src = url;\n script.type = \"text/javascript\";\n script.addEventListener(\"load\", eventHandler);\n document.getElementsByTagName(\"head\")[0].appendChild(script);\n});\n/**\n * Download content of a URL with progress.\n *\n * Progress only works when Content-Length is provided by the server.\n *\n */\nexport const downloadWithProgress = async (url, cb) => {\n const resp = await fetch(url);\n let buf;\n try {\n // Set total to -1 to indicate that there is not Content-Type Header.\n const total = parseInt(resp.headers.get(HeaderContentLength) || \"-1\");\n const reader = resp.body?.getReader();\n if (!reader)\n throw ERROR_RESPONSE_BODY_READER;\n const chunks = [];\n let received = 0;\n for (;;) {\n const { done, value } = await reader.read();\n const delta = value ? value.length : 0;\n if (done) {\n if (total != -1 && total !== received)\n throw ERROR_INCOMPLETED_DOWNLOAD;\n cb && cb({ url, total, received, delta, done });\n break;\n }\n chunks.push(value);\n received += delta;\n cb && cb({ url, total, received, delta, done });\n }\n const data = new Uint8Array(received);\n let position = 0;\n for (const chunk of chunks) {\n data.set(chunk, position);\n position += chunk.length;\n }\n buf = data.buffer;\n }\n catch (e) {\n console.log(`failed to send download progress event: `, e);\n // Fetch arrayBuffer directly when it is not possible to get progress.\n buf = await resp.arrayBuffer();\n cb &&\n cb({\n url,\n total: buf.byteLength,\n received: buf.byteLength,\n delta: 0,\n done: true,\n });\n }\n return buf;\n};\n/**\n * toBlobURL fetches data from an URL and return a blob URL.\n *\n * Example:\n *\n * ```ts\n * await toBlobURL(\"http://localhost:3000/ffmpeg.js\", \"text/javascript\");\n * ```\n */\nexport const toBlobURL = async (url, mimeType, progress = false, cb) => {\n const buf = progress\n ? await downloadWithProgress(url, cb)\n : await (await fetch(url)).arrayBuffer();\n const blob = new Blob([buf], { type: mimeType });\n return URL.createObjectURL(blob);\n};\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Volume2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNC43MDJhLjcwNS43MDUgMCAwIDAtMS4yMDMtLjQ5OEw2LjQxMyA3LjU4N0ExLjQgMS40IDAgMCAxIDUuNDE2IDhIM2ExIDEgMCAwIDAtMSAxdjZhMSAxIDAgMCAwIDEgMWgyLjQxNmExLjQgMS40IDAgMCAxIC45OTcuNDEzbDMuMzgzIDMuMzg0QS43MDUuNzA1IDAgMCAwIDExIDE5LjI5OHoiIC8+CiAgPHBhdGggZD0iTTE2IDlhNSA1IDAgMCAxIDAgNiIgLz4KICA8cGF0aCBkPSJNMTkuMzY0IDE4LjM2NGE5IDkgMCAwIDAgMC0xMi43MjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/volume-2\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Volume2 = createLucideIcon('Volume2', [\n [\n 'path',\n {\n d: 'M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z',\n key: 'uqj9uw',\n },\n ],\n ['path', { d: 'M16 9a5 5 0 0 1 0 6', key: '1q6k2b' }],\n ['path', { d: 'M19.364 18.364a9 9 0 0 0 0-12.728', key: 'ijwkga' }],\n]);\n\nexport default Volume2;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJNMTIgNXYxNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plus = createLucideIcon('Plus', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n]);\n\nexport default Plus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Snowflake\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMiIgeDI9IjIyIiB5MT0iMTIiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjIiIHkyPSIyMiIgLz4KICA8cGF0aCBkPSJtMjAgMTYtNC00IDQtNCIgLz4KICA8cGF0aCBkPSJtNCA4IDQgNC00IDQiIC8+CiAgPHBhdGggZD0ibTE2IDQtNCA0LTQtNCIgLz4KICA8cGF0aCBkPSJtOCAyMCA0LTQgNCA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/snowflake\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Snowflake = createLucideIcon('Snowflake', [\n ['line', { x1: '2', x2: '22', y1: '12', y2: '12', key: '1dnqot' }],\n ['line', { x1: '12', x2: '12', y1: '2', y2: '22', key: '7eqyqh' }],\n ['path', { d: 'm20 16-4-4 4-4', key: 'rquw4f' }],\n ['path', { d: 'm4 8 4 4-4 4', key: '12s3z9' }],\n ['path', { d: 'm16 4-4 4-4-4', key: '1tumq1' }],\n ['path', { d: 'm8 20 4-4 4 4', key: '9p200w' }],\n]);\n\nexport default Snowflake;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MicOff\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8bGluZSB4MT0iMiIgeDI9IjIyIiB5MT0iMiIgeTI9IjIyIiAvPgogIDxwYXRoIGQ9Ik0xOC44OSAxMy4yM0E3LjEyIDcuMTIgMCAwIDAgMTkgMTJ2LTIiIC8+CiAgPHBhdGggZD0iTTUgMTB2MmE3IDcgMCAwIDAgMTIgNSIgLz4KICA8cGF0aCBkPSJNMTUgOS4zNFY1YTMgMyAwIDAgMC01LjY4LTEuMzMiIC8+CiAgPHBhdGggZD0iTTkgOXYzYTMgMyAwIDAgMCA1LjEyIDIuMTIiIC8+CiAgPGxpbmUgeDE9IjEyIiB4Mj0iMTIiIHkxPSIxOSIgeTI9IjIyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/mic-off\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MicOff = createLucideIcon('MicOff', [\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22', key: 'a6p6uj' }],\n ['path', { d: 'M18.89 13.23A7.12 7.12 0 0 0 19 12v-2', key: '80xlxr' }],\n ['path', { d: 'M5 10v2a7 7 0 0 0 12 5', key: 'p2k8kg' }],\n ['path', { d: 'M15 9.34V5a3 3 0 0 0-5.68-1.33', key: '1gzdoj' }],\n ['path', { d: 'M9 9v3a3 3 0 0 0 5.12 2.12', key: 'r2i35w' }],\n ['line', { x1: '12', x2: '12', y1: '19', y2: '22', key: 'x3vr5v' }],\n]);\n\nexport default MicOff;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiA5IDYgNiA2LTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chevron-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronDown = createLucideIcon('ChevronDown', [\n ['path', { d: 'm6 9 6 6 6-6', key: 'qrunsl' }],\n]);\n\nexport default ChevronDown;\n","function t(t,e,i,s){return new(i||(i=Promise))((function(n,r){function o(t){try{h(s.next(t))}catch(t){r(t)}}function a(t){try{h(s.throw(t))}catch(t){r(t)}}function h(t){var e;t.done?n(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(o,a)}h((s=s.apply(t,e||[])).next())}))}\"function\"==typeof SuppressedError&&SuppressedError;class e{constructor(){this.listeners={}}on(t,e,i){if(this.listeners[t]||(this.listeners[t]=new Set),this.listeners[t].add(e),null==i?void 0:i.once){const i=()=>{this.un(t,i),this.un(t,e)};return this.on(t,i),i}return()=>this.un(t,e)}un(t,e){var i;null===(i=this.listeners[t])||void 0===i||i.delete(e)}once(t,e){return this.on(t,e,{once:!0})}unAll(){this.listeners={}}emit(t,...e){this.listeners[t]&&this.listeners[t].forEach((t=>t(...e)))}}const i={decode:function(e,i){return t(this,void 0,void 0,(function*(){const t=new AudioContext({sampleRate:i});return t.decodeAudioData(e).finally((()=>t.close()))}))},createBuffer:function(t,e){return\"number\"==typeof t[0]&&(t=[t]),function(t){const e=t[0];if(e.some((t=>t>1||t<-1))){const i=e.length;let s=0;for(let t=0;t<i;t++){const i=Math.abs(e[t]);i>s&&(s=i)}for(const e of t)for(let t=0;t<i;t++)e[t]/=s}}(t),{duration:e,length:t[0].length,sampleRate:t[0].length/e,numberOfChannels:t.length,getChannelData:e=>null==t?void 0:t[e],copyFromChannel:AudioBuffer.prototype.copyFromChannel,copyToChannel:AudioBuffer.prototype.copyToChannel}}};function s(t,e){const i=e.xmlns?document.createElementNS(e.xmlns,t):document.createElement(t);for(const[t,n]of Object.entries(e))if(\"children\"===t&&n)for(const[t,e]of Object.entries(n))e instanceof Node?i.appendChild(e):\"string\"==typeof e?i.appendChild(document.createTextNode(e)):i.appendChild(s(t,e));else\"style\"===t?Object.assign(i.style,n):\"textContent\"===t?i.textContent=n:i.setAttribute(t,n.toString());return i}function n(t,e,i){const n=s(t,e||{});return null==i||i.appendChild(n),n}var r=Object.freeze({__proto__:null,createElement:n,default:n});const o={fetchBlob:function(e,i,s){return t(this,void 0,void 0,(function*(){const n=yield fetch(e,s);if(n.status>=400)throw new Error(`Failed to fetch ${e}: ${n.status} (${n.statusText})`);return function(e,i){t(this,void 0,void 0,(function*(){if(!e.body||!e.headers)return;const s=e.body.getReader(),n=Number(e.headers.get(\"Content-Length\"))||0;let r=0;const o=e=>t(this,void 0,void 0,(function*(){r+=(null==e?void 0:e.length)||0;const t=Math.round(r/n*100);i(t)})),a=()=>t(this,void 0,void 0,(function*(){let t;try{t=yield s.read()}catch(t){return}t.done||(o(t.value),yield a())}));a()}))}(n.clone(),i),n.blob()}))}};class a extends e{constructor(t){super(),this.isExternalMedia=!1,t.media?(this.media=t.media,this.isExternalMedia=!0):this.media=document.createElement(\"audio\"),t.mediaControls&&(this.media.controls=!0),t.autoplay&&(this.media.autoplay=!0),null!=t.playbackRate&&this.onMediaEvent(\"canplay\",(()=>{null!=t.playbackRate&&(this.media.playbackRate=t.playbackRate)}),{once:!0})}onMediaEvent(t,e,i){return this.media.addEventListener(t,e,i),()=>this.media.removeEventListener(t,e,i)}getSrc(){return this.media.currentSrc||this.media.src||\"\"}revokeSrc(){const t=this.getSrc();t.startsWith(\"blob:\")&&URL.revokeObjectURL(t)}canPlayType(t){return\"\"!==this.media.canPlayType(t)}setSrc(t,e){const i=this.getSrc();if(t&&i===t)return;this.revokeSrc();const s=e instanceof Blob&&(this.canPlayType(e.type)||!t)?URL.createObjectURL(e):t;if(i&&this.media.removeAttribute(\"src\"),s||t)try{this.media.src=s}catch(e){this.media.src=t}}destroy(){this.isExternalMedia||(this.media.pause(),this.media.remove(),this.revokeSrc(),this.media.removeAttribute(\"src\"),this.media.load())}setMediaElement(t){this.media=t}play(){return t(this,void 0,void 0,(function*(){return this.media.play()}))}pause(){this.media.pause()}isPlaying(){return!this.media.paused&&!this.media.ended}setTime(t){this.media.currentTime=Math.max(0,Math.min(t,this.getDuration()))}getDuration(){return this.media.duration}getCurrentTime(){return this.media.currentTime}getVolume(){return this.media.volume}setVolume(t){this.media.volume=t}getMuted(){return this.media.muted}setMuted(t){this.media.muted=t}getPlaybackRate(){return this.media.playbackRate}isSeeking(){return this.media.seeking}setPlaybackRate(t,e){null!=e&&(this.media.preservesPitch=e),this.media.playbackRate=t}getMediaElement(){return this.media}setSinkId(t){return this.media.setSinkId(t)}}class h extends e{constructor(t,e){super(),this.timeouts=[],this.isScrollable=!1,this.audioData=null,this.resizeObserver=null,this.lastContainerWidth=0,this.isDragging=!1,this.subscriptions=[],this.unsubscribeOnScroll=[],this.subscriptions=[],this.options=t;const i=this.parentFromOptionsContainer(t.container);this.parent=i;const[s,n]=this.initHtml();i.appendChild(s),this.container=s,this.scrollContainer=n.querySelector(\".scroll\"),this.wrapper=n.querySelector(\".wrapper\"),this.canvasWrapper=n.querySelector(\".canvases\"),this.progressWrapper=n.querySelector(\".progress\"),this.cursor=n.querySelector(\".cursor\"),e&&n.appendChild(e),this.initEvents()}parentFromOptionsContainer(t){let e;if(\"string\"==typeof t?e=document.querySelector(t):t instanceof HTMLElement&&(e=t),!e)throw new Error(\"Container not found\");return e}initEvents(){const t=t=>{const e=this.wrapper.getBoundingClientRect(),i=t.clientX-e.left,s=t.clientY-e.top;return[i/e.width,s/e.height]};if(this.wrapper.addEventListener(\"click\",(e=>{const[i,s]=t(e);this.emit(\"click\",i,s)})),this.wrapper.addEventListener(\"dblclick\",(e=>{const[i,s]=t(e);this.emit(\"dblclick\",i,s)})),!0!==this.options.dragToSeek&&\"object\"!=typeof this.options.dragToSeek||this.initDrag(),this.scrollContainer.addEventListener(\"scroll\",(()=>{const{scrollLeft:t,scrollWidth:e,clientWidth:i}=this.scrollContainer,s=t/e,n=(t+i)/e;this.emit(\"scroll\",s,n,t,t+i)})),\"function\"==typeof ResizeObserver){const t=this.createDelay(100);this.resizeObserver=new ResizeObserver((()=>{t().then((()=>this.onContainerResize())).catch((()=>{}))})),this.resizeObserver.observe(this.scrollContainer)}}onContainerResize(){const t=this.parent.clientWidth;t===this.lastContainerWidth&&\"auto\"!==this.options.height||(this.lastContainerWidth=t,this.reRender())}initDrag(){this.subscriptions.push(function(t,e,i,s,n=3,r=0,o=100){if(!t)return()=>{};const a=matchMedia(\"(pointer: coarse)\").matches;let h=()=>{};const l=l=>{if(l.button!==r)return;l.preventDefault(),l.stopPropagation();let d=l.clientX,c=l.clientY,u=!1;const p=Date.now(),m=s=>{if(s.preventDefault(),s.stopPropagation(),a&&Date.now()-p<o)return;const r=s.clientX,h=s.clientY,l=r-d,m=h-c;if(u||Math.abs(l)>n||Math.abs(m)>n){const s=t.getBoundingClientRect(),{left:n,top:o}=s;u||(null==i||i(d-n,c-o),u=!0),e(l,m,r-n,h-o),d=r,c=h}},f=e=>{if(u){const i=e.clientX,n=e.clientY,r=t.getBoundingClientRect(),{left:o,top:a}=r;null==s||s(i-o,n-a)}h()},g=t=>{t.relatedTarget&&t.relatedTarget!==document.documentElement||f(t)},v=t=>{u&&(t.stopPropagation(),t.preventDefault())},b=t=>{u&&t.preventDefault()};document.addEventListener(\"pointermove\",m),document.addEventListener(\"pointerup\",f),document.addEventListener(\"pointerout\",g),document.addEventListener(\"pointercancel\",g),document.addEventListener(\"touchmove\",b,{passive:!1}),document.addEventListener(\"click\",v,{capture:!0}),h=()=>{document.removeEventListener(\"pointermove\",m),document.removeEventListener(\"pointerup\",f),document.removeEventListener(\"pointerout\",g),document.removeEventListener(\"pointercancel\",g),document.removeEventListener(\"touchmove\",b),setTimeout((()=>{document.removeEventListener(\"click\",v,{capture:!0})}),10)}};return t.addEventListener(\"pointerdown\",l),()=>{h(),t.removeEventListener(\"pointerdown\",l)}}(this.wrapper,((t,e,i)=>{this.emit(\"drag\",Math.max(0,Math.min(1,i/this.wrapper.getBoundingClientRect().width)))}),(t=>{this.isDragging=!0,this.emit(\"dragstart\",Math.max(0,Math.min(1,t/this.wrapper.getBoundingClientRect().width)))}),(t=>{this.isDragging=!1,this.emit(\"dragend\",Math.max(0,Math.min(1,t/this.wrapper.getBoundingClientRect().width)))})))}getHeight(t,e){var i;const s=(null===(i=this.audioData)||void 0===i?void 0:i.numberOfChannels)||1;if(null==t)return 128;if(!isNaN(Number(t)))return Number(t);if(\"auto\"===t){const t=this.parent.clientHeight||128;return(null==e?void 0:e.every((t=>!t.overlay)))?t/s:t}return 128}initHtml(){const t=document.createElement(\"div\"),e=t.attachShadow({mode:\"open\"}),i=this.options.cspNonce&&\"string\"==typeof this.options.cspNonce?this.options.cspNonce.replace(/\"/g,\"\"):\"\";return e.innerHTML=`\\n <style${i?` nonce=\"${i}\"`:\"\"}>\\n :host {\\n user-select: none;\\n min-width: 1px;\\n }\\n :host audio {\\n display: block;\\n width: 100%;\\n }\\n :host .scroll {\\n overflow-x: auto;\\n overflow-y: hidden;\\n width: 100%;\\n position: relative;\\n }\\n :host .noScrollbar {\\n scrollbar-color: transparent;\\n scrollbar-width: none;\\n }\\n :host .noScrollbar::-webkit-scrollbar {\\n display: none;\\n -webkit-appearance: none;\\n }\\n :host .wrapper {\\n position: relative;\\n overflow: visible;\\n z-index: 2;\\n }\\n :host .canvases {\\n min-height: ${this.getHeight(this.options.height,this.options.splitChannels)}px;\\n }\\n :host .canvases > div {\\n position: relative;\\n }\\n :host canvas {\\n display: block;\\n position: absolute;\\n top: 0;\\n image-rendering: pixelated;\\n }\\n :host .progress {\\n pointer-events: none;\\n position: absolute;\\n z-index: 2;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n overflow: hidden;\\n }\\n :host .progress > div {\\n position: relative;\\n }\\n :host .cursor {\\n pointer-events: none;\\n position: absolute;\\n z-index: 5;\\n top: 0;\\n left: 0;\\n height: 100%;\\n border-radius: 2px;\\n }\\n </style>\\n\\n <div class=\"scroll\" part=\"scroll\">\\n <div class=\"wrapper\" part=\"wrapper\">\\n <div class=\"canvases\" part=\"canvases\"></div>\\n <div class=\"progress\" part=\"progress\"></div>\\n <div class=\"cursor\" part=\"cursor\"></div>\\n </div>\\n </div>\\n `,[t,e]}setOptions(t){if(this.options.container!==t.container){const e=this.parentFromOptionsContainer(t.container);e.appendChild(this.container),this.parent=e}!0!==t.dragToSeek&&\"object\"!=typeof this.options.dragToSeek||this.initDrag(),this.options=t,this.reRender()}getWrapper(){return this.wrapper}getWidth(){return this.scrollContainer.clientWidth}getScroll(){return this.scrollContainer.scrollLeft}setScroll(t){this.scrollContainer.scrollLeft=t}setScrollPercentage(t){const{scrollWidth:e}=this.scrollContainer,i=e*t;this.setScroll(i)}destroy(){var t,e;this.subscriptions.forEach((t=>t())),this.container.remove(),null===(t=this.resizeObserver)||void 0===t||t.disconnect(),null===(e=this.unsubscribeOnScroll)||void 0===e||e.forEach((t=>t())),this.unsubscribeOnScroll=[]}createDelay(t=10){let e,i;const s=()=>{e&&clearTimeout(e),i&&i()};return this.timeouts.push(s),()=>new Promise(((n,r)=>{s(),i=r,e=setTimeout((()=>{e=void 0,i=void 0,n()}),t)}))}convertColorValues(t){if(!Array.isArray(t))return t||\"\";if(t.length<2)return t[0]||\"\";const e=document.createElement(\"canvas\"),i=e.getContext(\"2d\"),s=e.height*(window.devicePixelRatio||1),n=i.createLinearGradient(0,0,0,s),r=1/(t.length-1);return t.forEach(((t,e)=>{const i=e*r;n.addColorStop(i,t)})),n}getPixelRatio(){return Math.max(1,window.devicePixelRatio||1)}renderBarWaveform(t,e,i,s){const n=t[0],r=t[1]||t[0],o=n.length,{width:a,height:h}=i.canvas,l=h/2,d=this.getPixelRatio(),c=e.barWidth?e.barWidth*d:1,u=e.barGap?e.barGap*d:e.barWidth?c/2:0,p=e.barRadius||0,m=a/(c+u)/o,f=p&&\"roundRect\"in i?\"roundRect\":\"rect\";i.beginPath();let g=0,v=0,b=0;for(let t=0;t<=o;t++){const o=Math.round(t*m);if(o>g){const t=Math.round(v*l*s),n=t+Math.round(b*l*s)||1;let r=l-t;\"top\"===e.barAlign?r=0:\"bottom\"===e.barAlign&&(r=h-n),i[f](g*(c+u),r,c,n,p),g=o,v=0,b=0}const a=Math.abs(n[t]||0),d=Math.abs(r[t]||0);a>v&&(v=a),d>b&&(b=d)}i.fill(),i.closePath()}renderLineWaveform(t,e,i,s){const n=e=>{const n=t[e]||t[0],r=n.length,{height:o}=i.canvas,a=o/2,h=i.canvas.width/r;i.moveTo(0,a);let l=0,d=0;for(let t=0;t<=r;t++){const r=Math.round(t*h);if(r>l){const t=a+(Math.round(d*a*s)||1)*(0===e?-1:1);i.lineTo(l,t),l=r,d=0}const o=Math.abs(n[t]||0);o>d&&(d=o)}i.lineTo(l,a)};i.beginPath(),n(0),n(1),i.fill(),i.closePath()}renderWaveform(t,e,i){if(i.fillStyle=this.convertColorValues(e.waveColor),e.renderFunction)return void e.renderFunction(t,i);let s=e.barHeight||1;if(e.normalize){const e=Array.from(t[0]).reduce(((t,e)=>Math.max(t,Math.abs(e))),0);s=e?1/e:1}e.barWidth||e.barGap||e.barAlign?this.renderBarWaveform(t,e,i,s):this.renderLineWaveform(t,e,i,s)}renderSingleCanvas(t,e,i,s,n,r,o){const a=this.getPixelRatio(),h=document.createElement(\"canvas\");h.width=Math.round(i*a),h.height=Math.round(s*a),h.style.width=`${i}px`,h.style.height=`${s}px`,h.style.left=`${Math.round(n)}px`,r.appendChild(h);const l=h.getContext(\"2d\");if(this.renderWaveform(t,e,l),h.width>0&&h.height>0){const t=h.cloneNode(),i=t.getContext(\"2d\");i.drawImage(h,0,0),i.globalCompositeOperation=\"source-in\",i.fillStyle=this.convertColorValues(e.progressColor),i.fillRect(0,0,h.width,h.height),o.appendChild(t)}}renderMultiCanvas(t,e,i,s,n,r){const o=this.getPixelRatio(),{clientWidth:a}=this.scrollContainer,l=i/o;let d=Math.min(h.MAX_CANVAS_WIDTH,a,l),c={};if(e.barWidth||e.barGap){const t=e.barWidth||.5,i=t+(e.barGap||t/2);d%i!=0&&(d=Math.floor(d/i)*i)}if(0===d)return;const u=i=>{if(i<0||i>=p)return;if(c[i])return;c[i]=!0;const o=i*d;let a=Math.min(l-o,d);if(e.barWidth||e.barGap){const t=e.barWidth||.5,i=t+(e.barGap||t/2);a=Math.floor(a/i)*i}if(a<=0)return;const h=t.map((t=>{const e=Math.floor(o/l*t.length),i=Math.floor((o+a)/l*t.length);return t.slice(e,i)}));this.renderSingleCanvas(h,e,a,s,o,n,r)},p=Math.ceil(l/d);if(!this.isScrollable){for(let t=0;t<p;t++)u(t);return}const m=this.scrollContainer.scrollLeft/l,f=Math.floor(m*p);if(u(f-1),u(f),u(f+1),p>1){const t=this.on(\"scroll\",(()=>{const{scrollLeft:t}=this.scrollContainer,e=Math.floor(t/l*p);Object.keys(c).length>h.MAX_NODES&&(n.innerHTML=\"\",r.innerHTML=\"\",c={}),u(e-1),u(e),u(e+1)}));this.unsubscribeOnScroll.push(t)}}renderChannel(t,e,i,s){var{overlay:n}=e,r=function(t,e){var i={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.indexOf(s)<0&&(i[s]=t[s]);if(null!=t&&\"function\"==typeof Object.getOwnPropertySymbols){var n=0;for(s=Object.getOwnPropertySymbols(t);n<s.length;n++)e.indexOf(s[n])<0&&Object.prototype.propertyIsEnumerable.call(t,s[n])&&(i[s[n]]=t[s[n]])}return i}(e,[\"overlay\"]);const o=document.createElement(\"div\"),a=this.getHeight(r.height,r.splitChannels);o.style.height=`${a}px`,n&&s>0&&(o.style.marginTop=`-${a}px`),this.canvasWrapper.style.minHeight=`${a}px`,this.canvasWrapper.appendChild(o);const h=o.cloneNode();this.progressWrapper.appendChild(h),this.renderMultiCanvas(t,r,i,a,o,h)}render(e){return t(this,void 0,void 0,(function*(){var t;this.timeouts.forEach((t=>t())),this.timeouts=[],this.canvasWrapper.innerHTML=\"\",this.progressWrapper.innerHTML=\"\",null!=this.options.width&&(this.scrollContainer.style.width=\"number\"==typeof this.options.width?`${this.options.width}px`:this.options.width);const i=this.getPixelRatio(),s=this.scrollContainer.clientWidth,n=Math.ceil(e.duration*(this.options.minPxPerSec||0));this.isScrollable=n>s;const r=this.options.fillParent&&!this.isScrollable,o=(r?s:n)*i;if(this.wrapper.style.width=r?\"100%\":`${n}px`,this.scrollContainer.style.overflowX=this.isScrollable?\"auto\":\"hidden\",this.scrollContainer.classList.toggle(\"noScrollbar\",!!this.options.hideScrollbar),this.cursor.style.backgroundColor=`${this.options.cursorColor||this.options.progressColor}`,this.cursor.style.width=`${this.options.cursorWidth}px`,this.audioData=e,this.emit(\"render\"),this.options.splitChannels)for(let i=0;i<e.numberOfChannels;i++){const s=Object.assign(Object.assign({},this.options),null===(t=this.options.splitChannels)||void 0===t?void 0:t[i]);this.renderChannel([e.getChannelData(i)],s,o,i)}else{const t=[e.getChannelData(0)];e.numberOfChannels>1&&t.push(e.getChannelData(1)),this.renderChannel(t,this.options,o,0)}Promise.resolve().then((()=>this.emit(\"rendered\")))}))}reRender(){if(this.unsubscribeOnScroll.forEach((t=>t())),this.unsubscribeOnScroll=[],!this.audioData)return;const{scrollWidth:t}=this.scrollContainer,{right:e}=this.progressWrapper.getBoundingClientRect();if(this.render(this.audioData),this.isScrollable&&t!==this.scrollContainer.scrollWidth){const{right:t}=this.progressWrapper.getBoundingClientRect();let i=t-e;i*=2,i=i<0?Math.floor(i):Math.ceil(i),i/=2,this.scrollContainer.scrollLeft+=i}}zoom(t){this.options.minPxPerSec=t,this.reRender()}scrollIntoView(t,e=!1){const{scrollLeft:i,scrollWidth:s,clientWidth:n}=this.scrollContainer,r=t*s,o=i,a=i+n,h=n/2;if(this.isDragging){const t=30;r+t>a?this.scrollContainer.scrollLeft+=t:r-t<o&&(this.scrollContainer.scrollLeft-=t)}else{(r<o||r>a)&&(this.scrollContainer.scrollLeft=r-(this.options.autoCenter?h:0));const t=r-i-h;e&&this.options.autoCenter&&t>0&&(this.scrollContainer.scrollLeft+=Math.min(t,10))}{const t=this.scrollContainer.scrollLeft,e=t/s,i=(t+n)/s;this.emit(\"scroll\",e,i,t,t+n)}}renderProgress(t,e){if(isNaN(t))return;const i=100*t;this.canvasWrapper.style.clipPath=`polygon(${i}% 0%, 100% 0%, 100% 100%, ${i}% 100%)`,this.progressWrapper.style.width=`${i}%`,this.cursor.style.left=`${i}%`,this.cursor.style.transform=`translateX(-${100===Math.round(i)?this.options.cursorWidth:0}px)`,this.isScrollable&&this.options.autoScroll&&this.scrollIntoView(t,e)}exportImage(e,i,s){return t(this,void 0,void 0,(function*(){const t=this.canvasWrapper.querySelectorAll(\"canvas\");if(!t.length)throw new Error(\"No waveform data\");if(\"dataURL\"===s){const s=Array.from(t).map((t=>t.toDataURL(e,i)));return Promise.resolve(s)}return Promise.all(Array.from(t).map((t=>new Promise(((s,n)=>{t.toBlob((t=>{t?s(t):n(new Error(\"Could not export image\"))}),e,i)})))))}))}}h.MAX_CANVAS_WIDTH=8e3,h.MAX_NODES=10;class l extends e{constructor(){super(...arguments),this.unsubscribe=()=>{}}start(){this.unsubscribe=this.on(\"tick\",(()=>{requestAnimationFrame((()=>{this.emit(\"tick\")}))})),this.emit(\"tick\")}stop(){this.unsubscribe()}destroy(){this.unsubscribe()}}class d extends e{constructor(t=new AudioContext){super(),this.bufferNode=null,this.playStartTime=0,this.playedDuration=0,this._muted=!1,this._playbackRate=1,this._duration=void 0,this.buffer=null,this.currentSrc=\"\",this.paused=!0,this.crossOrigin=null,this.seeking=!1,this.autoplay=!1,this.addEventListener=this.on,this.removeEventListener=this.un,this.audioContext=t,this.gainNode=this.audioContext.createGain(),this.gainNode.connect(this.audioContext.destination)}load(){return t(this,void 0,void 0,(function*(){}))}get src(){return this.currentSrc}set src(t){if(this.currentSrc=t,this._duration=void 0,!t)return this.buffer=null,void this.emit(\"emptied\");fetch(t).then((e=>{if(e.status>=400)throw new Error(`Failed to fetch ${t}: ${e.status} (${e.statusText})`);return e.arrayBuffer()})).then((e=>this.currentSrc!==t?null:this.audioContext.decodeAudioData(e))).then((e=>{this.currentSrc===t&&(this.buffer=e,this.emit(\"loadedmetadata\"),this.emit(\"canplay\"),this.autoplay&&this.play())}))}_play(){var t;if(!this.paused)return;this.paused=!1,null===(t=this.bufferNode)||void 0===t||t.disconnect(),this.bufferNode=this.audioContext.createBufferSource(),this.buffer&&(this.bufferNode.buffer=this.buffer),this.bufferNode.playbackRate.value=this._playbackRate,this.bufferNode.connect(this.gainNode);let e=this.playedDuration*this._playbackRate;(e>=this.duration||e<0)&&(e=0,this.playedDuration=0),this.bufferNode.start(this.audioContext.currentTime,e),this.playStartTime=this.audioContext.currentTime,this.bufferNode.onended=()=>{this.currentTime>=this.duration&&(this.pause(),this.emit(\"ended\"))}}_pause(){var t;this.paused=!0,null===(t=this.bufferNode)||void 0===t||t.stop(),this.playedDuration+=this.audioContext.currentTime-this.playStartTime}play(){return t(this,void 0,void 0,(function*(){this.paused&&(this._play(),this.emit(\"play\"))}))}pause(){this.paused||(this._pause(),this.emit(\"pause\"))}stopAt(t){const e=t-this.currentTime,i=this.bufferNode;null==i||i.stop(this.audioContext.currentTime+e),null==i||i.addEventListener(\"ended\",(()=>{i===this.bufferNode&&(this.bufferNode=null,this.pause())}),{once:!0})}setSinkId(e){return t(this,void 0,void 0,(function*(){return this.audioContext.setSinkId(e)}))}get playbackRate(){return this._playbackRate}set playbackRate(t){this._playbackRate=t,this.bufferNode&&(this.bufferNode.playbackRate.value=t)}get currentTime(){return(this.paused?this.playedDuration:this.playedDuration+(this.audioContext.currentTime-this.playStartTime))*this._playbackRate}set currentTime(t){const e=!this.paused;e&&this._pause(),this.playedDuration=t/this._playbackRate,e&&this._play(),this.emit(\"seeking\"),this.emit(\"timeupdate\")}get duration(){var t,e;return null!==(t=this._duration)&&void 0!==t?t:(null===(e=this.buffer)||void 0===e?void 0:e.duration)||0}set duration(t){this._duration=t}get volume(){return this.gainNode.gain.value}set volume(t){this.gainNode.gain.value=t,this.emit(\"volumechange\")}get muted(){return this._muted}set muted(t){this._muted!==t&&(this._muted=t,this._muted?this.gainNode.disconnect():this.gainNode.connect(this.audioContext.destination))}canPlayType(t){return/^(audio|video)\\//.test(t)}getGainNode(){return this.gainNode}getChannelData(){const t=[];if(!this.buffer)return t;const e=this.buffer.numberOfChannels;for(let i=0;i<e;i++)t.push(this.buffer.getChannelData(i));return t}}const c={waveColor:\"#999\",progressColor:\"#555\",cursorWidth:1,minPxPerSec:0,fillParent:!0,interact:!0,dragToSeek:!1,autoScroll:!0,autoCenter:!0,sampleRate:8e3};class u extends a{static create(t){return new u(t)}constructor(t){const e=t.media||(\"WebAudio\"===t.backend?new d:void 0);super({media:e,mediaControls:t.mediaControls,autoplay:t.autoplay,playbackRate:t.audioRate}),this.plugins=[],this.decodedData=null,this.stopAtPosition=null,this.subscriptions=[],this.mediaSubscriptions=[],this.abortController=null,this.options=Object.assign({},c,t),this.timer=new l;const i=e?void 0:this.getMediaElement();this.renderer=new h(this.options,i),this.initPlayerEvents(),this.initRendererEvents(),this.initTimerEvents(),this.initPlugins();const s=this.options.url||this.getSrc()||\"\";Promise.resolve().then((()=>{this.emit(\"init\");const{peaks:t,duration:e}=this.options;(s||t&&e)&&this.load(s,t,e).catch((()=>null))}))}updateProgress(t=this.getCurrentTime()){return this.renderer.renderProgress(t/this.getDuration(),this.isPlaying()),t}initTimerEvents(){this.subscriptions.push(this.timer.on(\"tick\",(()=>{if(!this.isSeeking()){const t=this.updateProgress();this.emit(\"timeupdate\",t),this.emit(\"audioprocess\",t),null!=this.stopAtPosition&&this.isPlaying()&&t>=this.stopAtPosition&&this.pause()}})))}initPlayerEvents(){this.isPlaying()&&(this.emit(\"play\"),this.timer.start()),this.mediaSubscriptions.push(this.onMediaEvent(\"timeupdate\",(()=>{const t=this.updateProgress();this.emit(\"timeupdate\",t)})),this.onMediaEvent(\"play\",(()=>{this.emit(\"play\"),this.timer.start()})),this.onMediaEvent(\"pause\",(()=>{this.emit(\"pause\"),this.timer.stop(),this.stopAtPosition=null})),this.onMediaEvent(\"emptied\",(()=>{this.timer.stop(),this.stopAtPosition=null})),this.onMediaEvent(\"ended\",(()=>{this.emit(\"timeupdate\",this.getDuration()),this.emit(\"finish\"),this.stopAtPosition=null})),this.onMediaEvent(\"seeking\",(()=>{this.emit(\"seeking\",this.getCurrentTime())})),this.onMediaEvent(\"error\",(()=>{var t;this.emit(\"error\",null!==(t=this.getMediaElement().error)&&void 0!==t?t:new Error(\"Media error\")),this.stopAtPosition=null})))}initRendererEvents(){this.subscriptions.push(this.renderer.on(\"click\",((t,e)=>{this.options.interact&&(this.seekTo(t),this.emit(\"interaction\",t*this.getDuration()),this.emit(\"click\",t,e))})),this.renderer.on(\"dblclick\",((t,e)=>{this.emit(\"dblclick\",t,e)})),this.renderer.on(\"scroll\",((t,e,i,s)=>{const n=this.getDuration();this.emit(\"scroll\",t*n,e*n,i,s)})),this.renderer.on(\"render\",(()=>{this.emit(\"redraw\")})),this.renderer.on(\"rendered\",(()=>{this.emit(\"redrawcomplete\")})),this.renderer.on(\"dragstart\",(t=>{this.emit(\"dragstart\",t)})),this.renderer.on(\"dragend\",(t=>{this.emit(\"dragend\",t)})));{let t;this.subscriptions.push(this.renderer.on(\"drag\",(e=>{if(!this.options.interact)return;let i;this.renderer.renderProgress(e),clearTimeout(t),this.isPlaying()?i=0:!0===this.options.dragToSeek?i=200:\"object\"==typeof this.options.dragToSeek&&void 0!==this.options.dragToSeek&&(i=this.options.dragToSeek.debounceTime),t=setTimeout((()=>{this.seekTo(e)}),i),this.emit(\"interaction\",e*this.getDuration()),this.emit(\"drag\",e)})))}}initPlugins(){var t;(null===(t=this.options.plugins)||void 0===t?void 0:t.length)&&this.options.plugins.forEach((t=>{this.registerPlugin(t)}))}unsubscribePlayerEvents(){this.mediaSubscriptions.forEach((t=>t())),this.mediaSubscriptions=[]}setOptions(t){this.options=Object.assign({},this.options,t),t.duration&&!t.peaks&&(this.decodedData=i.createBuffer(this.exportPeaks(),t.duration)),t.peaks&&t.duration&&(this.decodedData=i.createBuffer(t.peaks,t.duration)),this.renderer.setOptions(this.options),t.audioRate&&this.setPlaybackRate(t.audioRate),null!=t.mediaControls&&(this.getMediaElement().controls=t.mediaControls)}registerPlugin(t){if(this.plugins.includes(t))return t;t._init(this),this.plugins.push(t);const e=t.once(\"destroy\",(()=>{this.plugins=this.plugins.filter((e=>e!==t)),this.subscriptions=this.subscriptions.filter((t=>t!==e))}));return this.subscriptions.push(e),t}unregisterPlugin(t){this.plugins=this.plugins.filter((e=>e!==t)),t.destroy()}getWrapper(){return this.renderer.getWrapper()}getWidth(){return this.renderer.getWidth()}getScroll(){return this.renderer.getScroll()}setScroll(t){return this.renderer.setScroll(t)}setScrollTime(t){const e=t/this.getDuration();this.renderer.setScrollPercentage(e)}getActivePlugins(){return this.plugins}loadAudio(e,s,n,r){return t(this,void 0,void 0,(function*(){var t;if(this.emit(\"load\",e),!this.options.media&&this.isPlaying()&&this.pause(),this.decodedData=null,this.stopAtPosition=null,!s&&!n){const i=this.options.fetchParams||{};window.AbortController&&!i.signal&&(this.abortController=new AbortController,i.signal=null===(t=this.abortController)||void 0===t?void 0:t.signal);const n=t=>this.emit(\"loading\",t);s=yield o.fetchBlob(e,n,i);const r=this.options.blobMimeType;r&&(s=new Blob([s],{type:r}))}this.setSrc(e,s);const a=yield new Promise((t=>{const e=r||this.getDuration();e?t(e):this.mediaSubscriptions.push(this.onMediaEvent(\"loadedmetadata\",(()=>t(this.getDuration())),{once:!0}))}));if(!e&&!s){const t=this.getMediaElement();t instanceof d&&(t.duration=a)}if(n)this.decodedData=i.createBuffer(n,a||0);else if(s){const t=yield s.arrayBuffer();this.decodedData=yield i.decode(t,this.options.sampleRate)}this.decodedData&&(this.emit(\"decode\",this.getDuration()),this.renderer.render(this.decodedData)),this.emit(\"ready\",this.getDuration())}))}load(e,i,s){return t(this,void 0,void 0,(function*(){try{return yield this.loadAudio(e,void 0,i,s)}catch(t){throw this.emit(\"error\",t),t}}))}loadBlob(e,i,s){return t(this,void 0,void 0,(function*(){try{return yield this.loadAudio(\"\",e,i,s)}catch(t){throw this.emit(\"error\",t),t}}))}zoom(t){if(!this.decodedData)throw new Error(\"No audio loaded\");this.renderer.zoom(t),this.emit(\"zoom\",t)}getDecodedData(){return this.decodedData}exportPeaks({channels:t=2,maxLength:e=8e3,precision:i=1e4}={}){if(!this.decodedData)throw new Error(\"The audio has not been decoded yet\");const s=Math.min(t,this.decodedData.numberOfChannels),n=[];for(let t=0;t<s;t++){const s=this.decodedData.getChannelData(t),r=[],o=s.length/e;for(let t=0;t<e;t++){const e=s.slice(Math.floor(t*o),Math.ceil((t+1)*o));let n=0;for(let t=0;t<e.length;t++){const i=e[t];Math.abs(i)>Math.abs(n)&&(n=i)}r.push(Math.round(n*i)/i)}n.push(r)}return n}getDuration(){let t=super.getDuration()||0;return 0!==t&&t!==1/0||!this.decodedData||(t=this.decodedData.duration),t}toggleInteraction(t){this.options.interact=t}setTime(t){this.stopAtPosition=null,super.setTime(t),this.updateProgress(t),this.emit(\"timeupdate\",t)}seekTo(t){const e=this.getDuration()*t;this.setTime(e)}play(e,i){const s=Object.create(null,{play:{get:()=>super.play}});return t(this,void 0,void 0,(function*(){null!=e&&this.setTime(e);const t=yield s.play.call(this);return null!=i&&(this.media instanceof d?this.media.stopAt(i):this.stopAtPosition=i),t}))}playPause(){return t(this,void 0,void 0,(function*(){return this.isPlaying()?this.pause():this.play()}))}stop(){this.pause(),this.setTime(0)}skip(t){this.setTime(this.getCurrentTime()+t)}empty(){this.load(\"\",[[0]],.001)}setMediaElement(t){this.unsubscribePlayerEvents(),super.setMediaElement(t),this.initPlayerEvents()}exportImage(){return t(this,arguments,void 0,(function*(t=\"image/png\",e=1,i=\"dataURL\"){return this.renderer.exportImage(t,e,i)}))}destroy(){var t;this.emit(\"destroy\"),null===(t=this.abortController)||void 0===t||t.abort(),this.plugins.forEach((t=>t.destroy())),this.subscriptions.forEach((t=>t())),this.unsubscribePlayerEvents(),this.timer.destroy(),this.renderer.destroy(),super.destroy()}}u.BasePlugin=class extends e{constructor(t){super(),this.subscriptions=[],this.isDestroyed=!1,this.options=t}onInit(){}_init(t){this.isDestroyed&&(this.subscriptions=[],this.isDestroyed=!1),this.wavesurfer=t,this.onInit()}destroy(){this.emit(\"destroy\"),this.subscriptions.forEach((t=>t())),this.subscriptions=[],this.isDestroyed=!0,this.wavesurfer=void 0}},u.dom=r;export{u as default};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'Playfair Display', 'Playfair Display Fallback'\",\"fontStyle\":\"normal\"},\"className\":\"__className_17d9d3\"};","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.camelCase = void 0;\nvar CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9_-]+$/;\nvar HYPHEN_REGEX = /-([a-z])/g;\nvar NO_HYPHEN_REGEX = /^[^-]+$/;\nvar VENDOR_PREFIX_REGEX = /^-(webkit|moz|ms|o|khtml)-/;\nvar MS_VENDOR_PREFIX_REGEX = /^-(ms)-/;\n/**\n * Checks whether to skip camelCase.\n */\nvar skipCamelCase = function (property) {\n return !property ||\n NO_HYPHEN_REGEX.test(property) ||\n CUSTOM_PROPERTY_REGEX.test(property);\n};\n/**\n * Replacer that capitalizes first character.\n */\nvar capitalize = function (match, character) {\n return character.toUpperCase();\n};\n/**\n * Replacer that removes beginning hyphen of vendor prefix property.\n */\nvar trimHyphen = function (match, prefix) { return \"\".concat(prefix, \"-\"); };\n/**\n * CamelCases a CSS property.\n */\nvar camelCase = function (property, options) {\n if (options === void 0) { options = {}; }\n if (skipCamelCase(property)) {\n return property;\n }\n property = property.toLowerCase();\n if (options.reactCompat) {\n // `-ms` vendor prefix should not be capitalized\n property = property.replace(MS_VENDOR_PREFIX_REGEX, trimHyphen);\n }\n else {\n // for non-React, remove first hyphen so vendor prefix is not capitalized\n property = property.replace(VENDOR_PREFIX_REGEX, trimHyphen);\n }\n return property.replace(HYPHEN_REGEX, capitalize);\n};\nexports.camelCase = camelCase;\n//# sourceMappingURL=utilities.js.map","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Image\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iMiIgLz4KICA8cGF0aCBkPSJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/image\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Image = createLucideIcon('Image', [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2', key: '1m3agn' }],\n ['circle', { cx: '9', cy: '9', r: '2', key: 'af1f0g' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21', key: '1xmnt7' }],\n]);\n\nexport default Image;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Upload\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCIgLz4KICA8cG9seWxpbmUgcG9pbnRzPSIxNyA4IDEyIDMgNyA4IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMyIgeTI9IjE1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/upload\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Upload = createLucideIcon('Upload', [\n ['path', { d: 'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4', key: 'ih7n3h' }],\n ['polyline', { points: '17 8 12 3 7 8', key: 't8dd8p' }],\n ['line', { x1: '12', x2: '12', y1: '3', y2: '15', key: 'widbto' }],\n]);\n\nexport default Upload;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name List\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmguMDEiIC8+CiAgPHBhdGggZD0iTTMgMThoLjAxIiAvPgogIDxwYXRoIGQ9Ik0zIDZoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDEyaDEzIiAvPgogIDxwYXRoIGQ9Ik04IDE4aDEzIiAvPgogIDxwYXRoIGQ9Ik04IDZoMTMiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/list\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst List = createLucideIcon('List', [\n ['path', { d: 'M3 12h.01', key: 'nlz23k' }],\n ['path', { d: 'M3 18h.01', key: '1tta3j' }],\n ['path', { d: 'M3 6h.01', key: '1rqtza' }],\n ['path', { d: 'M8 12h13', key: '1za7za' }],\n ['path', { d: 'M8 18h13', key: '1lx6n3' }],\n ['path', { d: 'M8 6h13', key: 'ik3vkj' }],\n]);\n\nexport default List;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Blend\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iNyIgLz4KICA8Y2lyY2xlIGN4PSIxNSIgY3k9IjE1IiByPSI3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/blend\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Blend = createLucideIcon('Blend', [\n ['circle', { cx: '9', cy: '9', r: '7', key: 'p2h5vp' }],\n ['circle', { cx: '15', cy: '15', r: '7', key: '19ennj' }],\n]);\n\nexport default Blend;\n"],"names":["M","e","i","s","u","m","a","l","h","d","document","documentElement","w","p","n","Array","isArray","forEach","y","k","S","map","f","classList","remove","add","setAttribute","R","includes","style","colorScheme","localStorage","getItem","window","matchMedia","matches","b","I","O","x","t","U","setTheme","themes","z","J","children","V","N","forcedTheme","disableTransitionOnChange","enableSystem","enableColorScheme","storageKey","defaultTheme","attribute","value","nonce","scriptProps","c","H","T","E","Object","values","o","r","v","C","W","P","L","g","startsWith","removeAttribute","D","setItem","A","addListener","removeListener","key","newValue","addEventListener","removeEventListener","Q","theme","resolvedTheme","systemTheme","Provider","_","JSON","stringify","slice","suppressHydrationWarning","dangerouslySetInnerHTML","__html","toString","createElement","appendChild","createTextNode","head","getComputedStyle","body","setTimeout","removeChild","DefaultContext","color","undefined","size","className","attr","React","_excluded","_extends","assign","bind","target","arguments","length","source","prototype","hasOwnProperty","call","apply","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","obj","_toPropertyKey","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","defineProperty","configurable","writable","getOwnPropertyDescriptors","defineProperties","GenIcon","data","props","Tree2Element","tree","node","tag","child","IconBase","elem","conf","title","svgProps","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","indexOf","sourceSymbolKeys","propertyIsEnumerable","computedSize","stroke","fill","strokeWidth","height","width","xmlns","IconContext","Consumer"],"sourceRoot":"","ignoreList":[3,4,6,9,10,11,12,13,14,16,17,22,28,30,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,172,178,179,181,182,183,184,190,199,202,203,204,210,211,212]} \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/5-d74d62a078a36605.js b/opencut-ui/_next/static/chunks/5-d74d62a078a36605.js new file mode 100644 index 0000000..02557c5 --- /dev/null +++ b/opencut-ui/_next/static/chunks/5-d74d62a078a36605.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5],{1005:(e,t,r)=>{r.r(t),r.d(t,{Arrow:()=>K,Content:()=>J,Portal:()=>W,Provider:()=>z,Root:()=>G,Tooltip:()=>L,TooltipArrow:()=>q,TooltipContent:()=>I,TooltipPortal:()=>O,TooltipProvider:()=>E,TooltipTrigger:()=>_,Trigger:()=>U,createTooltipScope:()=>y});var n=r(74188),o=r(48841),l=r(89607),i=r(68533),a=r(98370),s=r(39636),u=r(59078),c=r(58496),p=r(24847),d=r(98765),f=r(8059),x=r(14392),h=r(85965),g=r(28064),[v,y]=(0,i.A)("Tooltip",[u.Bk]),m=(0,u.Bk)(),b="TooltipProvider",w="tooltip.open",[T,C]=v(b),E=e=>{let{__scopeTooltip:t,delayDuration:r=700,skipDelayDuration:o=300,disableHoverableContent:l=!1,children:i}=e,a=n.useRef(!0),s=n.useRef(!1),u=n.useRef(0);return n.useEffect(()=>{let e=u.current;return()=>window.clearTimeout(e)},[]),(0,g.jsx)(T,{scope:t,isOpenDelayedRef:a,delayDuration:r,onOpen:n.useCallback(()=>{window.clearTimeout(u.current),a.current=!1},[]),onClose:n.useCallback(()=>{window.clearTimeout(u.current),u.current=window.setTimeout(()=>a.current=!0,o)},[o]),isPointerInTransitRef:s,onPointerInTransitChange:n.useCallback(e=>{s.current=e},[]),disableHoverableContent:l,children:i})};E.displayName=b;var k="Tooltip",[R,j]=v(k),L=e=>{let{__scopeTooltip:t,children:r,open:o,defaultOpen:l,onOpenChange:i,disableHoverableContent:a,delayDuration:c}=e,p=C(k,e.__scopeTooltip),d=m(t),[f,h]=n.useState(null),v=(0,s.B)(),y=n.useRef(0),b=null!=a?a:p.disableHoverableContent,T=null!=c?c:p.delayDuration,E=n.useRef(!1),[j,L]=(0,x.i)({prop:o,defaultProp:null!=l&&l,onChange:e=>{e?(p.onOpen(),document.dispatchEvent(new CustomEvent(w))):p.onClose(),null==i||i(e)},caller:k}),P=n.useMemo(()=>j?E.current?"delayed-open":"instant-open":"closed",[j]),_=n.useCallback(()=>{window.clearTimeout(y.current),y.current=0,E.current=!1,L(!0)},[L]),M=n.useCallback(()=>{window.clearTimeout(y.current),y.current=0,L(!1)},[L]),D=n.useCallback(()=>{window.clearTimeout(y.current),y.current=window.setTimeout(()=>{E.current=!0,L(!0),y.current=0},T)},[T,L]);return n.useEffect(()=>()=>{y.current&&(window.clearTimeout(y.current),y.current=0)},[]),(0,g.jsx)(u.bL,{...d,children:(0,g.jsx)(R,{scope:t,contentId:v,open:j,stateAttribute:P,trigger:f,onTriggerChange:h,onTriggerEnter:n.useCallback(()=>{p.isOpenDelayedRef.current?D():_()},[p.isOpenDelayedRef,D,_]),onTriggerLeave:n.useCallback(()=>{b?M():(window.clearTimeout(y.current),y.current=0)},[M,b]),onOpen:_,onClose:M,disableHoverableContent:b,children:r})})};L.displayName=k;var P="TooltipTrigger",_=n.forwardRef((e,t)=>{let{__scopeTooltip:r,...i}=e,a=j(P,r),s=C(P,r),c=m(r),p=n.useRef(null),f=(0,l.s)(t,p,a.onTriggerChange),x=n.useRef(!1),h=n.useRef(!1),v=n.useCallback(()=>x.current=!1,[]);return n.useEffect(()=>()=>document.removeEventListener("pointerup",v),[v]),(0,g.jsx)(u.Mz,{asChild:!0,...c,children:(0,g.jsx)(d.sG.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...i,ref:f,onPointerMove:(0,o.m)(e.onPointerMove,e=>{"touch"!==e.pointerType&&(h.current||s.isPointerInTransitRef.current||(a.onTriggerEnter(),h.current=!0))}),onPointerLeave:(0,o.m)(e.onPointerLeave,()=>{a.onTriggerLeave(),h.current=!1}),onPointerDown:(0,o.m)(e.onPointerDown,()=>{a.open&&a.onClose(),x.current=!0,document.addEventListener("pointerup",v,{once:!0})}),onFocus:(0,o.m)(e.onFocus,()=>{x.current||a.onOpen()}),onBlur:(0,o.m)(e.onBlur,a.onClose),onClick:(0,o.m)(e.onClick,a.onClose)})})});_.displayName=P;var M="TooltipPortal",[D,N]=v(M,{forceMount:void 0}),O=e=>{let{__scopeTooltip:t,forceMount:r,children:n,container:o}=e,l=j(M,t);return(0,g.jsx)(D,{scope:t,forceMount:r,children:(0,g.jsx)(p.C,{present:r||l.open,children:(0,g.jsx)(c.Portal,{asChild:!0,container:o,children:n})})})};O.displayName=M;var B="TooltipContent",I=n.forwardRef((e,t)=>{let r=N(B,e.__scopeTooltip),{forceMount:n=r.forceMount,side:o="top",...l}=e,i=j(B,e.__scopeTooltip);return(0,g.jsx)(p.C,{present:n||i.open,children:i.disableHoverableContent?(0,g.jsx)(X,{side:o,...l,ref:t}):(0,g.jsx)(A,{side:o,...l,ref:t})})}),A=n.forwardRef((e,t)=>{let r=j(B,e.__scopeTooltip),o=C(B,e.__scopeTooltip),i=n.useRef(null),a=(0,l.s)(t,i),[s,u]=n.useState(null),{trigger:c,onClose:p}=r,d=i.current,{onPointerInTransitChange:f}=o,x=n.useCallback(()=>{u(null),f(!1)},[f]),h=n.useCallback((e,t)=>{let r=e.currentTarget,n={x:e.clientX,y:e.clientY},o=function(e,t){let r=Math.abs(t.top-e.y),n=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),l=Math.abs(t.left-e.x);switch(Math.min(r,n,o,l)){case l:return"left";case o:return"right";case r:return"top";case n:return"bottom";default:throw Error("unreachable")}}(n,r.getBoundingClientRect());u(function(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:1*!!(e.y>t.y)),function(e){if(e.length<=1)return e.slice();let t=[];for(let r=0;r<e.length;r++){let n=e[r];for(;t.length>=2;){let e=t[t.length-1],r=t[t.length-2];if((e.x-r.x)*(n.y-r.y)>=(e.y-r.y)*(n.x-r.x))t.pop();else break}t.push(n)}t.pop();let r=[];for(let t=e.length-1;t>=0;t--){let n=e[t];for(;r.length>=2;){let e=r[r.length-1],t=r[r.length-2];if((e.x-t.x)*(n.y-t.y)>=(e.y-t.y)*(n.x-t.x))r.pop();else break}r.push(n)}return(r.pop(),1===t.length&&1===r.length&&t[0].x===r[0].x&&t[0].y===r[0].y)?t:t.concat(r)}(t)}([...function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5,n=[];switch(t){case"top":n.push({x:e.x-r,y:e.y+r},{x:e.x+r,y:e.y+r});break;case"bottom":n.push({x:e.x-r,y:e.y-r},{x:e.x+r,y:e.y-r});break;case"left":n.push({x:e.x+r,y:e.y-r},{x:e.x+r,y:e.y+r});break;case"right":n.push({x:e.x-r,y:e.y-r},{x:e.x-r,y:e.y+r})}return n}(n,o),...function(e){let{top:t,right:r,bottom:n,left:o}=e;return[{x:o,y:t},{x:r,y:t},{x:r,y:n},{x:o,y:n}]}(t.getBoundingClientRect())])),f(!0)},[f]);return n.useEffect(()=>()=>x(),[x]),n.useEffect(()=>{if(c&&d){let e=e=>h(e,d),t=e=>h(e,c);return c.addEventListener("pointerleave",e),d.addEventListener("pointerleave",t),()=>{c.removeEventListener("pointerleave",e),d.removeEventListener("pointerleave",t)}}},[c,d,h,x]),n.useEffect(()=>{if(s){let e=e=>{let t=e.target,r={x:e.clientX,y:e.clientY},n=(null==c?void 0:c.contains(t))||(null==d?void 0:d.contains(t)),o=!function(e,t){let{x:r,y:n}=e,o=!1;for(let e=0,l=t.length-1;e<t.length;l=e++){let i=t[e],a=t[l],s=i.x,u=i.y,c=a.x,p=a.y;u>n!=p>n&&r<(c-s)*(n-u)/(p-u)+s&&(o=!o)}return o}(r,s);n?x():o&&(x(),p())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}},[c,d,s,p,x]),(0,g.jsx)(X,{...e,ref:a})}),[F,H]=v(k,{isInside:!1}),S=(0,f.Dc)("TooltipContent"),X=n.forwardRef((e,t)=>{let{__scopeTooltip:r,children:o,"aria-label":l,onEscapeKeyDown:i,onPointerDownOutside:s,...c}=e,p=j(B,r),d=m(r),{onClose:f}=p;return n.useEffect(()=>(document.addEventListener(w,f),()=>document.removeEventListener(w,f)),[f]),n.useEffect(()=>{if(p.trigger){let e=e=>{let t=e.target;(null==t?void 0:t.contains(p.trigger))&&f()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}},[p.trigger,f]),(0,g.jsx)(a.qW,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:i,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:f,children:(0,g.jsxs)(u.UC,{"data-state":p.stateAttribute,...d,...c,ref:t,style:{...c.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,g.jsx)(S,{children:o}),(0,g.jsx)(F,{scope:r,isInside:!0,children:(0,g.jsx)(h.bL,{id:p.contentId,role:"tooltip",children:l||o})})]})})});I.displayName=B;var Y="TooltipArrow",q=n.forwardRef((e,t)=>{let{__scopeTooltip:r,...n}=e,o=m(r);return H(Y,r).isInside?null:(0,g.jsx)(u.i3,{...o,...n,ref:t})});q.displayName=Y;var z=E,G=L,U=_,W=O,J=I,K=q}}]); +//# sourceMappingURL=5-d74d62a078a36605.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/5-d74d62a078a36605.js.map b/opencut-ui/_next/static/chunks/5-d74d62a078a36605.js.map new file mode 100644 index 0000000..9a41066 --- /dev/null +++ b/opencut-ui/_next/static/chunks/5-d74d62a078a36605.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/5-d74d62a078a36605.js","mappings":"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","sources":["webpack://_N_E/../src/tooltip.tsx"],"sourcesContent":["import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { useId } from '@radix-ui/react-id';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { createSlottable } from '@radix-ui/react-slot';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as VisuallyHiddenPrimitive from '@radix-ui/react-visually-hidden';\n\nimport type { Scope } from '@radix-ui/react-context';\n\ntype ScopedProps<P = {}> = P & { __scopeTooltip?: Scope };\nconst [createTooltipContext, createTooltipScope] = createContextScope('Tooltip', [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipProvider\n * -----------------------------------------------------------------------------------------------*/\n\nconst PROVIDER_NAME = 'TooltipProvider';\nconst DEFAULT_DELAY_DURATION = 700;\nconst TOOLTIP_OPEN = 'tooltip.open';\n\ntype TooltipProviderContextValue = {\n isOpenDelayedRef: React.MutableRefObject<boolean>;\n delayDuration: number;\n onOpen(): void;\n onClose(): void;\n onPointerInTransitChange(inTransit: boolean): void;\n isPointerInTransitRef: React.MutableRefObject<boolean>;\n disableHoverableContent: boolean;\n};\n\nconst [TooltipProviderContextProvider, useTooltipProviderContext] =\n createTooltipContext<TooltipProviderContextValue>(PROVIDER_NAME);\n\ninterface TooltipProviderProps {\n children: React.ReactNode;\n /**\n * The duration from when the pointer enters the trigger until the tooltip gets opened.\n * @defaultValue 700\n */\n delayDuration?: number;\n /**\n * How much time a user has to enter another trigger without incurring a delay again.\n * @defaultValue 300\n */\n skipDelayDuration?: number;\n /**\n * When `true`, trying to hover the content will result in the tooltip closing as the pointer leaves the trigger.\n * @defaultValue false\n */\n disableHoverableContent?: boolean;\n}\n\nconst TooltipProvider: React.FC<TooltipProviderProps> = (\n props: ScopedProps<TooltipProviderProps>\n) => {\n const {\n __scopeTooltip,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n disableHoverableContent = false,\n children,\n } = props;\n const isOpenDelayedRef = React.useRef(true);\n const isPointerInTransitRef = React.useRef(false);\n const skipDelayTimerRef = React.useRef(0);\n\n React.useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n\n return (\n <TooltipProviderContextProvider\n scope={__scopeTooltip}\n isOpenDelayedRef={isOpenDelayedRef}\n delayDuration={delayDuration}\n onOpen={React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n isOpenDelayedRef.current = false;\n }, [])}\n onClose={React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => (isOpenDelayedRef.current = true),\n skipDelayDuration\n );\n }, [skipDelayDuration])}\n isPointerInTransitRef={isPointerInTransitRef}\n onPointerInTransitChange={React.useCallback((inTransit: boolean) => {\n isPointerInTransitRef.current = inTransit;\n }, [])}\n disableHoverableContent={disableHoverableContent}\n >\n {children}\n </TooltipProviderContextProvider>\n );\n};\n\nTooltipProvider.displayName = PROVIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Tooltip\n * -----------------------------------------------------------------------------------------------*/\n\nconst TOOLTIP_NAME = 'Tooltip';\n\ntype TooltipContextValue = {\n contentId: string;\n open: boolean;\n stateAttribute: 'closed' | 'delayed-open' | 'instant-open';\n trigger: TooltipTriggerElement | null;\n onTriggerChange(trigger: TooltipTriggerElement | null): void;\n onTriggerEnter(): void;\n onTriggerLeave(): void;\n onOpen(): void;\n onClose(): void;\n disableHoverableContent: boolean;\n};\n\nconst [TooltipContextProvider, useTooltipContext] =\n createTooltipContext<TooltipContextValue>(TOOLTIP_NAME);\n\ninterface TooltipProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n /**\n * The duration from when the pointer enters the trigger until the tooltip gets opened. This will\n * override the prop with the same name passed to Provider.\n * @defaultValue 700\n */\n delayDuration?: number;\n /**\n * When `true`, trying to hover the content will result in the tooltip closing as the pointer leaves the trigger.\n * @defaultValue false\n */\n disableHoverableContent?: boolean;\n}\n\nconst Tooltip: React.FC<TooltipProps> = (props: ScopedProps<TooltipProps>) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n disableHoverableContent: disableHoverableContentProp,\n delayDuration: delayDurationProp,\n } = props;\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = React.useState<HTMLButtonElement | null>(null);\n const contentId = useId();\n const openTimerRef = React.useRef(0);\n const disableHoverableContent =\n disableHoverableContentProp ?? providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n const wasOpenDelayedRef = React.useRef(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: (open) => {\n if (open) {\n providerContext.onOpen();\n\n // as `onChange` is called within a lifecycle method we\n // avoid dispatching via `dispatchDiscreteCustomEvent`.\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open);\n },\n caller: TOOLTIP_NAME,\n });\n const stateAttribute = React.useMemo(() => {\n return open ? (wasOpenDelayedRef.current ? 'delayed-open' : 'instant-open') : 'closed';\n }, [open]);\n\n const handleOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n\n const handleClose = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n setOpen(false);\n }, [setOpen]);\n\n const handleDelayedOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n openTimerRef.current = 0;\n }, delayDuration);\n }, [delayDuration, setOpen]);\n\n React.useEffect(() => {\n return () => {\n if (openTimerRef.current) {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n };\n }, []);\n\n return (\n <PopperPrimitive.Root {...popperScope}>\n <TooltipContextProvider\n scope={__scopeTooltip}\n contentId={contentId}\n open={open}\n stateAttribute={stateAttribute}\n trigger={trigger}\n onTriggerChange={setTrigger}\n onTriggerEnter={React.useCallback(() => {\n if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();\n else handleOpen();\n }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen])}\n onTriggerLeave={React.useCallback(() => {\n if (disableHoverableContent) {\n handleClose();\n } else {\n // Clear the timer in case the pointer leaves the trigger before the tooltip is opened.\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }, [handleClose, disableHoverableContent])}\n onOpen={handleOpen}\n onClose={handleClose}\n disableHoverableContent={disableHoverableContent}\n >\n {children}\n </TooltipContextProvider>\n </PopperPrimitive.Root>\n );\n};\n\nTooltip.displayName = TOOLTIP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'TooltipTrigger';\n\ntype TooltipTriggerElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface TooltipTriggerProps extends PrimitiveButtonProps {}\n\nconst TooltipTrigger = React.forwardRef<TooltipTriggerElement, TooltipTriggerProps>(\n (props: ScopedProps<TooltipTriggerProps>, forwardedRef) => {\n const { __scopeTooltip, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const ref = React.useRef<TooltipTriggerElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = React.useRef(false);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const handlePointerUp = React.useCallback(() => (isPointerDownRef.current = false), []);\n\n React.useEffect(() => {\n return () => document.removeEventListener('pointerup', handlePointerUp);\n }, [handlePointerUp]);\n\n return (\n <PopperPrimitive.Anchor asChild {...popperScope}>\n <Primitive.button\n // We purposefully avoid adding `type=button` here because tooltip triggers are also\n // commonly anchors and the anchor `type` attribute signifies MIME type.\n aria-describedby={context.open ? context.contentId : undefined}\n data-state={context.stateAttribute}\n {...triggerProps}\n ref={composedRefs}\n onPointerMove={composeEventHandlers(props.onPointerMove, (event) => {\n if (event.pointerType === 'touch') return;\n if (\n !hasPointerMoveOpenedRef.current &&\n !providerContext.isPointerInTransitRef.current\n ) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n })}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, () => {\n if (context.open) {\n context.onClose();\n }\n isPointerDownRef.current = true;\n document.addEventListener('pointerup', handlePointerUp, { once: true });\n })}\n onFocus={composeEventHandlers(props.onFocus, () => {\n if (!isPointerDownRef.current) context.onOpen();\n })}\n onBlur={composeEventHandlers(props.onBlur, context.onClose)}\n onClick={composeEventHandlers(props.onClick, context.onClose)}\n />\n </PopperPrimitive.Anchor>\n );\n }\n);\n\nTooltipTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'TooltipPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createTooltipContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface TooltipPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst TooltipPortal: React.FC<TooltipPortalProps> = (props: ScopedProps<TooltipPortalProps>) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return (\n <PortalProvider scope={__scopeTooltip} forceMount={forceMount}>\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {children}\n </PortalPrimitive>\n </Presence>\n </PortalProvider>\n );\n};\n\nTooltipPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'TooltipContent';\n\ntype TooltipContentElement = TooltipContentImplElement;\ninterface TooltipContentProps extends TooltipContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst TooltipContent = React.forwardRef<TooltipContentElement, TooltipContentProps>(\n (props: ScopedProps<TooltipContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = 'top', ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n\n return (\n <Presence present={forceMount || context.open}>\n {context.disableHoverableContent ? (\n <TooltipContentImpl side={side} {...contentProps} ref={forwardedRef} />\n ) : (\n <TooltipContentHoverable side={side} {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n }\n);\n\ntype Point = { x: number; y: number };\ntype Polygon = Point[];\n\ntype TooltipContentHoverableElement = TooltipContentImplElement;\ninterface TooltipContentHoverableProps extends TooltipContentImplProps {}\n\nconst TooltipContentHoverable = React.forwardRef<\n TooltipContentHoverableElement,\n TooltipContentHoverableProps\n>((props: ScopedProps<TooltipContentHoverableProps>, forwardedRef) => {\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = React.useRef<TooltipContentHoverableElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = React.useState<Polygon | null>(null);\n\n const { trigger, onClose } = context;\n const content = ref.current;\n\n const { onPointerInTransitChange } = providerContext;\n\n const handleRemoveGraceArea = React.useCallback(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [onPointerInTransitChange]);\n\n const handleCreateGraceArea = React.useCallback(\n (event: PointerEvent, hoverTarget: HTMLElement) => {\n const currentTarget = event.currentTarget as HTMLElement;\n const exitPoint = { x: event.clientX, y: event.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n },\n [onPointerInTransitChange]\n );\n\n React.useEffect(() => {\n return () => handleRemoveGraceArea();\n }, [handleRemoveGraceArea]);\n\n React.useEffect(() => {\n if (trigger && content) {\n const handleTriggerLeave = (event: PointerEvent) => handleCreateGraceArea(event, content);\n const handleContentLeave = (event: PointerEvent) => handleCreateGraceArea(event, trigger);\n\n trigger.addEventListener('pointerleave', handleTriggerLeave);\n content.addEventListener('pointerleave', handleContentLeave);\n return () => {\n trigger.removeEventListener('pointerleave', handleTriggerLeave);\n content.removeEventListener('pointerleave', handleContentLeave);\n };\n }\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n\n React.useEffect(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = (event: PointerEvent) => {\n const target = event.target as HTMLElement;\n const pointerPosition = { x: event.clientX, y: event.clientY };\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n };\n document.addEventListener('pointermove', handleTrackPointerGrace);\n return () => document.removeEventListener('pointermove', handleTrackPointerGrace);\n }\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n\n return <TooltipContentImpl {...props} ref={composedRefs} />;\n});\n\nconst [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] =\n createTooltipContext(TOOLTIP_NAME, { isInside: false });\n\ntype TooltipContentImplElement = React.ComponentRef<typeof PopperPrimitive.Content>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype PopperContentProps = React.ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;\ninterface TooltipContentImplProps extends Omit<PopperContentProps, 'onPlaced'> {\n /**\n * A more descriptive label for accessibility purpose\n */\n 'aria-label'?: string;\n\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n onEscapeKeyDown?: DismissableLayerProps['onEscapeKeyDown'];\n /**\n * Event handler called when the a `pointerdown` event happens outside of the `Tooltip`.\n * Can be prevented.\n */\n onPointerDownOutside?: DismissableLayerProps['onPointerDownOutside'];\n}\n\nconst Slottable = createSlottable('TooltipContent');\n\nconst TooltipContentImpl = React.forwardRef<TooltipContentImplElement, TooltipContentImplProps>(\n (props: ScopedProps<TooltipContentImplProps>, forwardedRef) => {\n const {\n __scopeTooltip,\n children,\n 'aria-label': ariaLabel,\n onEscapeKeyDown,\n onPointerDownOutside,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n\n // Close this tooltip if another one opens\n React.useEffect(() => {\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n\n // Close the tooltip if the trigger is scrolled\n React.useEffect(() => {\n if (context.trigger) {\n const handleScroll = (event: Event) => {\n const target = event.target as HTMLElement;\n if (target?.contains(context.trigger)) onClose();\n };\n window.addEventListener('scroll', handleScroll, { capture: true });\n return () => window.removeEventListener('scroll', handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n\n return (\n <DismissableLayer\n asChild\n disableOutsidePointerEvents={false}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={(event) => event.preventDefault()}\n onDismiss={onClose}\n >\n <PopperPrimitive.Content\n data-state={context.stateAttribute}\n {...popperScope}\n {...contentProps}\n ref={forwardedRef}\n style={{\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n '--radix-tooltip-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-tooltip-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-tooltip-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-tooltip-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-tooltip-trigger-height': 'var(--radix-popper-anchor-height)',\n },\n }}\n >\n <Slottable>{children}</Slottable>\n <VisuallyHiddenContentContextProvider scope={__scopeTooltip} isInside={true}>\n <VisuallyHiddenPrimitive.Root id={context.contentId} role=\"tooltip\">\n {ariaLabel || children}\n </VisuallyHiddenPrimitive.Root>\n </VisuallyHiddenContentContextProvider>\n </PopperPrimitive.Content>\n </DismissableLayer>\n );\n }\n);\n\nTooltipContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TooltipArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'TooltipArrow';\n\ntype TooltipArrowElement = React.ComponentRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = React.ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;\ninterface TooltipArrowProps extends PopperArrowProps {}\n\nconst TooltipArrow = React.forwardRef<TooltipArrowElement, TooltipArrowProps>(\n (props: ScopedProps<TooltipArrowProps>, forwardedRef) => {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = useVisuallyHiddenContentContext(\n ARROW_NAME,\n __scopeTooltip\n );\n // if the arrow is inside the `VisuallyHidden`, we don't want to render it all to\n // prevent issues in positioning the arrow due to the duplicate\n return visuallyHiddenContentContext.isInside ? null : (\n <PopperPrimitive.Arrow {...popperScope} {...arrowProps} ref={forwardedRef} />\n );\n }\n);\n\nTooltipArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype Side = NonNullable<TooltipContentProps['side']>;\n\nfunction getExitSideFromRect(point: Point, rect: DOMRect): Side {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return 'left';\n case right:\n return 'right';\n case top:\n return 'top';\n case bottom:\n return 'bottom';\n default:\n throw new Error('unreachable');\n }\n}\n\nfunction getPaddedExitPoints(exitPoint: Point, exitSide: Side, padding = 5) {\n const paddedExitPoints: Point[] = [];\n switch (exitSide) {\n case 'top':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case 'bottom':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding }\n );\n break;\n case 'left':\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case 'right':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding }\n );\n break;\n }\n return paddedExitPoints;\n}\n\nfunction getPointsFromRect(rect: DOMRect) {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom },\n ];\n}\n\n// Determine if a point is inside of a polygon.\n// Based on https://github.com/substack/point-in-polygon\nfunction isPointInPolygon(point: Point, polygon: Polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i]!;\n const jj = polygon[j]!;\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n\n // prettier-ignore\n const intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);\n if (intersect) inside = !inside;\n }\n\n return inside;\n}\n\n// Returns a new array of points representing the convex hull of the given set of points.\n// https://www.nayuki.io/page/convex-hull-algorithm\nfunction getHull<P extends Point>(points: Readonly<Array<P>>): Array<P> {\n const newPoints: Array<P> = points.slice();\n newPoints.sort((a: Point, b: Point) => {\n if (a.x < b.x) return -1;\n else if (a.x > b.x) return +1;\n else if (a.y < b.y) return -1;\n else if (a.y > b.y) return +1;\n else return 0;\n });\n return getHullPresorted(newPoints);\n}\n\n// Returns the convex hull, assuming that each points[i] <= points[i + 1]. Runs in O(n) time.\nfunction getHullPresorted<P extends Point>(points: Readonly<Array<P>>): Array<P> {\n if (points.length <= 1) return points.slice();\n\n const upperHull: Array<P> = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i]!;\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1]!;\n const r = upperHull[upperHull.length - 2]!;\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n else break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n\n const lowerHull: Array<P> = [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i]!;\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1]!;\n const r = lowerHull[lowerHull.length - 2]!;\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n else break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n\n if (\n upperHull.length === 1 &&\n lowerHull.length === 1 &&\n upperHull[0]!.x === lowerHull[0]!.x &&\n upperHull[0]!.y === lowerHull[0]!.y\n ) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n}\n\nconst Provider = TooltipProvider;\nconst Root = Tooltip;\nconst Trigger = TooltipTrigger;\nconst Portal = TooltipPortal;\nconst Content = TooltipContent;\nconst Arrow = TooltipArrow;\n\nexport {\n createTooltipScope,\n //\n TooltipProvider,\n Tooltip,\n TooltipTrigger,\n TooltipPortal,\n TooltipContent,\n TooltipArrow,\n //\n Provider,\n Root,\n Trigger,\n Portal,\n Content,\n Arrow,\n};\nexport type {\n TooltipProviderProps,\n TooltipProps,\n TooltipTriggerProps,\n TooltipPortalProps,\n TooltipContentProps,\n TooltipArrowProps,\n};\n"],"names":["open","Root","Content","Arrow"],"sourceRoot":"","ignoreList":[]} \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/5da1b801-f0f919478419f676.js b/opencut-ui/_next/static/chunks/5da1b801-f0f919478419f676.js new file mode 100644 index 0000000..992d2a9 --- /dev/null +++ b/opencut-ui/_next/static/chunks/5da1b801-f0f919478419f676.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[673],{67411:(e,n,t)=>{var r,l=t(52578),a=t(17779),o=t(74188),u=t(82749);function i(e){var n="https://react.dev/errors/"+e;if(1<arguments.length){n+="?args[]="+encodeURIComponent(arguments[1]);for(var t=2;t<arguments.length;t++)n+="&args[]="+encodeURIComponent(arguments[t])}return"Minified React error #"+e+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function s(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function c(e){var n=e,t=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do 0!=(4098&(n=e).flags)&&(t=n.return),e=n.return;while(e)}return 3===n.tag?t:null}function f(e){if(13===e.tag){var n=e.memoizedState;if(null===n&&null!==(e=e.alternate)&&(n=e.memoizedState),null!==n)return n.dehydrated}return null}function d(e){if(31===e.tag){var n=e.memoizedState;if(null===n&&null!==(e=e.alternate)&&(n=e.memoizedState),null!==n)return n.dehydrated}return null}function p(e){if(c(e)!==e)throw Error(i(188))}var m=Object.assign,h=Symbol.for("react.element"),g=Symbol.for("react.transitional.element"),y=Symbol.for("react.portal"),v=Symbol.for("react.fragment"),b=Symbol.for("react.strict_mode"),k=Symbol.for("react.profiler"),w=Symbol.for("react.consumer"),S=Symbol.for("react.context"),x=Symbol.for("react.forward_ref"),E=Symbol.for("react.suspense"),z=Symbol.for("react.suspense_list"),C=Symbol.for("react.memo"),P=Symbol.for("react.lazy");Symbol.for("react.scope");var N=Symbol.for("react.activity");Symbol.for("react.legacy_hidden"),Symbol.for("react.tracing_marker");var L=Symbol.for("react.memo_cache_sentinel");Symbol.for("react.view_transition");var T=Symbol.iterator;function _(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=T&&e[T]||e["@@iterator"])?e:null}var F=Symbol.for("react.client.reference"),D=Array.isArray,O=o.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,M=u.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,A={pending:!1,data:null,method:null,action:null},R=[],I=-1;function U(e){return{current:e}}function $(e){0>I||(e.current=R[I],R[I]=null,I--)}function j(e,n){R[++I]=e.current,e.current=n}var V=U(null),H=U(null),Q=U(null),B=U(null);function W(e,n){switch(j(Q,n),j(H,e),j(V,null),n.nodeType){case 9:case 11:e=(e=n.documentElement)&&(e=e.namespaceURI)?sh(e):0;break;default:if(e=n.tagName,n=n.namespaceURI)e=sg(n=sh(n),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}$(V),j(V,e)}function q(){$(V),$(H),$(Q)}function K(e){null!==e.memoizedState&&j(B,e);var n=V.current,t=sg(n,e.type);n!==t&&(j(H,e),j(V,t))}function Y(e){H.current===e&&($(V),$(H)),B.current===e&&($(B),s9._currentValue=A)}function X(e){if(void 0===nI)try{throw Error()}catch(e){var n=e.stack.trim().match(/\n( *(at )?)/);nI=n&&n[1]||"",nU=-1<e.stack.indexOf("\n at")?" (<anonymous>)":-1<e.stack.indexOf("@")?"@unknown:0:0":""}return"\n"+nI+e+nU}var G=!1;function Z(e,n){if(!e||G)return"";G=!0;var t=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(n){var t=function(){throw Error()};if(Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){var r=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){r=e}e.call(t.prototype)}}else{try{throw Error()}catch(e){r=e}(t=e())&&"function"==typeof t.catch&&t.catch(function(){})}}catch(e){if(e&&r&&"string"==typeof e.stack)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var l=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,"name");l&&l.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var a=r.DetermineComponentFrameRoot(),o=a[0],u=a[1];if(o&&u){var i=o.split("\n"),s=u.split("\n");for(l=r=0;r<i.length&&!i[r].includes("DetermineComponentFrameRoot");)r++;for(;l<s.length&&!s[l].includes("DetermineComponentFrameRoot");)l++;if(r===i.length||l===s.length)for(r=i.length-1,l=s.length-1;1<=r&&0<=l&&i[r]!==s[l];)l--;for(;1<=r&&0<=l;r--,l--)if(i[r]!==s[l]){if(1!==r||1!==l)do if(r--,l--,0>l||i[r]!==s[l]){var c="\n"+i[r].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=r&&0<=l);break}}}finally{G=!1,Error.prepareStackTrace=t}return(t=e?e.displayName||e.name:"")?X(t):""}function J(e){try{var n="",t=null;do n+=function(e,n){switch(e.tag){case 26:case 27:case 5:return X(e.type);case 16:return X("Lazy");case 13:return e.child!==n&&null!==n?X("Suspense Fallback"):X("Suspense");case 19:return X("SuspenseList");case 0:case 15:return Z(e.type,!1);case 11:return Z(e.type.render,!1);case 1:return Z(e.type,!0);case 31:return X("Activity");default:return""}}(e,t),t=e,e=e.return;while(e);return n}catch(e){return"\nError generating stack: "+e.message+"\n"+e.stack}}var ee=Object.prototype.hasOwnProperty,en=a.unstable_scheduleCallback,et=a.unstable_cancelCallback,er=a.unstable_shouldYield,el=a.unstable_requestPaint,ea=a.unstable_now,eo=a.unstable_getCurrentPriorityLevel,eu=a.unstable_ImmediatePriority,ei=a.unstable_UserBlockingPriority,es=a.unstable_NormalPriority,ec=a.unstable_LowPriority,ef=a.unstable_IdlePriority,ed=a.log,ep=a.unstable_setDisableYieldValue,em=null,eh=null;function eg(e){if("function"==typeof ed&&ep(e),eh&&"function"==typeof eh.setStrictMode)try{eh.setStrictMode(em,e)}catch(e){}}var ey=Math.clz32?Math.clz32:function(e){return 0==(e>>>=0)?32:31-(ev(e)/eb|0)|0},ev=Math.log,eb=Math.LN2,ek=256,ew=4194304;function eS(e){var n=42&e;if(0!==n)return n;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194048&e;case 4194304:case 8388608:case 0x1000000:case 0x2000000:return 0x3c00000&e;case 0x4000000:return 0x4000000;case 0x8000000:return 0x8000000;case 0x10000000:return 0x10000000;case 0x20000000:return 0x20000000;case 0x40000000:return 0;default:return e}}function ex(e,n,t){var r=e.pendingLanes;if(0===r)return 0;var l=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var u=0x7ffffff&r;return 0!==u?0!=(r=u&~a)?l=eS(r):0!=(o&=u)?l=eS(o):t||0!=(t=u&~e)&&(l=eS(t)):0!=(u=r&~a)?l=eS(u):0!==o?l=eS(o):t||0!=(t=r&~e)&&(l=eS(t)),0===l?0:0!==n&&n!==l&&0==(n&a)&&((a=l&-l)>=(t=n&-n)||32===a&&0!=(4194048&t))?n:l}function eE(e,n){return 0==(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&n)}function ez(){var e=ek;return 0==(4194048&(ek<<=1))&&(ek=256),e}function eC(){var e=ew;return 0==(0x3c00000&(ew<<=1))&&(ew=4194304),e}function eP(e){for(var n=[],t=0;31>t;t++)n.push(e);return n}function eN(e,n){e.pendingLanes|=n,0x10000000!==n&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function eL(e,n,t){e.pendingLanes|=n,e.suspendedLanes&=~n;var r=31-ey(n);e.entangledLanes|=n,e.entanglements[r]=0x40000000|e.entanglements[r]|4194090&t}function eT(e,n){var t=e.entangledLanes|=n;for(e=e.entanglements;t;){var r=31-ey(t),l=1<<r;l&n|e[r]&n&&(e[r]|=n),t&=~l}}function e_(e,n){var t=n&-n;return 0!=((t=0!=(42&t)?1:eF(t))&(e.suspendedLanes|n))?0:t}function eF(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 0x1000000:case 0x2000000:e=128;break;case 0x10000000:e=0x8000000;break;default:e=0}return e}function eD(e){return 2<(e&=-e)?8<e?0!=(0x7ffffff&e)?32:0x10000000:8:2}function eO(){var e=M.p;return 0!==e?e:void 0===(e=window.event)?32:cp(e.type)}function eM(e,n){var t=M.p;try{return M.p=e,n()}finally{M.p=t}}var eA=Math.random().toString(36).slice(2),eR="__reactFiber$"+eA,eI="__reactProps$"+eA,eU="__reactContainer$"+eA,e$="__reactEvents$"+eA,ej="__reactListeners$"+eA,eV="__reactHandles$"+eA,eH="__reactResources$"+eA,eQ="__reactMarker$"+eA;function eB(e){delete e[eR],delete e[eI],delete e[e$],delete e[ej],delete e[eV]}function eW(e){var n=e[eR];if(n)return n;for(var t=e.parentNode;t;){if(n=t[eU]||t[eR]){if(t=n.alternate,null!==n.child||null!==t&&null!==t.child)for(e=sO(e);null!==e;){if(t=e[eR])return t;e=sO(e)}return n}t=(e=t).parentNode}return null}function eq(e){if(e=e[eR]||e[eU]){var n=e.tag;if(5===n||6===n||13===n||31===n||26===n||27===n||3===n)return e}return null}function eK(e){var n=e.tag;if(5===n||26===n||27===n||6===n)return e.stateNode;throw Error(i(33))}function eY(e){var n=e[eH];return n||(n=e[eH]={hoistableStyles:new Map,hoistableScripts:new Map}),n}function eX(e){e[eQ]=!0}var eG=new Set,eZ={};function eJ(e,n){e0(e,n),e0(e+"Capture",n)}function e0(e,n){for(eZ[e]=n,e=0;e<n.length;e++)eG.add(n[e])}var e1=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),e2={},e3={};function e4(e,n,t){if(ee.call(e3,n)||!ee.call(e2,n)&&(e1.test(n)?e3[n]=!0:(e2[n]=!0,!1)))if(null===t)e.removeAttribute(n);else{switch(typeof t){case"undefined":case"function":case"symbol":e.removeAttribute(n);return;case"boolean":var r=n.toLowerCase().slice(0,5);if("data-"!==r&&"aria-"!==r)return void e.removeAttribute(n)}e.setAttribute(n,""+t)}}function e8(e,n,t){if(null===t)e.removeAttribute(n);else{switch(typeof t){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttribute(n,""+t)}}function e5(e,n,t,r){if(null===r)e.removeAttribute(t);else{switch(typeof r){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttributeNS(n,t,""+r)}}function e6(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function e9(e){var n=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===n||"radio"===n)}function e7(e){if(!e._valueTracker){var n=e9(e)?"checked":"value";e._valueTracker=function(e,n,t){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,n);if(!e.hasOwnProperty(n)&&void 0!==r&&"function"==typeof r.get&&"function"==typeof r.set){var l=r.get,a=r.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return l.call(this)},set:function(e){t=""+e,a.call(this,e)}}),Object.defineProperty(e,n,{enumerable:r.enumerable}),{getValue:function(){return t},setValue:function(e){t=""+e},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}(e,n,""+e[n])}}function ne(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var t=n.getValue(),r="";return e&&(r=e9(e)?e.checked?"true":"false":e.value),(e=r)!==t&&(n.setValue(e),!0)}function nn(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(n){return e.body}}var nt=/[\n"\\]/g;function nr(e){return e.replace(nt,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function nl(e,n,t,r,l,a,o,u){e.name="",null!=o&&"function"!=typeof o&&"symbol"!=typeof o&&"boolean"!=typeof o?e.type=o:e.removeAttribute("type"),null!=n?"number"===o?(0===n&&""===e.value||e.value!=n)&&(e.value=""+e6(n)):e.value!==""+e6(n)&&(e.value=""+e6(n)):"submit"!==o&&"reset"!==o||e.removeAttribute("value"),null!=n?no(e,o,e6(n)):null!=t?no(e,o,e6(t)):null!=r&&e.removeAttribute("value"),null==l&&null!=a&&(e.defaultChecked=!!a),null!=l&&(e.checked=l&&"function"!=typeof l&&"symbol"!=typeof l),null!=u&&"function"!=typeof u&&"symbol"!=typeof u&&"boolean"!=typeof u?e.name=""+e6(u):e.removeAttribute("name")}function na(e,n,t,r,l,a,o,u){if(null!=a&&"function"!=typeof a&&"symbol"!=typeof a&&"boolean"!=typeof a&&(e.type=a),null!=n||null!=t){if(("submit"===a||"reset"===a)&&null==n)return void e7(e);t=null!=t?""+e6(t):"",n=null!=n?""+e6(n):t,u||n===e.value||(e.value=n),e.defaultValue=n}r="function"!=typeof(r=null!=r?r:l)&&"symbol"!=typeof r&&!!r,e.checked=u?e.checked:!!r,e.defaultChecked=!!r,null!=o&&"function"!=typeof o&&"symbol"!=typeof o&&"boolean"!=typeof o&&(e.name=o),e7(e)}function no(e,n,t){"number"===n&&nn(e.ownerDocument)===e||e.defaultValue===""+t||(e.defaultValue=""+t)}function nu(e,n,t,r){if(e=e.options,n){n={};for(var l=0;l<t.length;l++)n["$"+t[l]]=!0;for(t=0;t<e.length;t++)l=n.hasOwnProperty("$"+e[t].value),e[t].selected!==l&&(e[t].selected=l),l&&r&&(e[t].defaultSelected=!0)}else{for(l=0,t=""+e6(t),n=null;l<e.length;l++){if(e[l].value===t){e[l].selected=!0,r&&(e[l].defaultSelected=!0);return}null!==n||e[l].disabled||(n=e[l])}null!==n&&(n.selected=!0)}}function ni(e,n,t){if(null!=n&&((n=""+e6(n))!==e.value&&(e.value=n),null==t)){e.defaultValue!==n&&(e.defaultValue=n);return}e.defaultValue=null!=t?""+e6(t):""}function ns(e,n,t,r){if(null==n){if(null!=r){if(null!=t)throw Error(i(92));if(D(r)){if(1<r.length)throw Error(i(93));r=r[0]}t=r}null==t&&(t=""),n=t}e.defaultValue=t=e6(n),(r=e.textContent)===t&&""!==r&&null!==r&&(e.value=r),e7(e)}function nc(e,n){if(n){var t=e.firstChild;if(t&&t===e.lastChild&&3===t.nodeType){t.nodeValue=n;return}}e.textContent=n}var nf=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function nd(e,n,t){var r=0===n.indexOf("--");null==t||"boolean"==typeof t||""===t?r?e.setProperty(n,""):"float"===n?e.cssFloat="":e[n]="":r?e.setProperty(n,t):"number"!=typeof t||0===t||nf.has(n)?"float"===n?e.cssFloat=t:e[n]=(""+t).trim():e[n]=t+"px"}function np(e,n,t){if(null!=n&&"object"!=typeof n)throw Error(i(62));if(e=e.style,null!=t){for(var r in t)!t.hasOwnProperty(r)||null!=n&&n.hasOwnProperty(r)||(0===r.indexOf("--")?e.setProperty(r,""):"float"===r?e.cssFloat="":e[r]="");for(var l in n)r=n[l],n.hasOwnProperty(l)&&t[l]!==r&&nd(e,l,r)}else for(var a in n)n.hasOwnProperty(a)&&nd(e,a,n[a])}function nm(e){if(-1===e.indexOf("-"))return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var nh=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),ng=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function ny(e){return ng.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function nv(){}var nb=null;function nk(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var nw=null,nS=null;function nx(e){var n=eq(e);if(n&&(e=n.stateNode)){var t=e[eI]||null;switch(e=n.stateNode,n.type){case"input":if(nl(e,t.value,t.defaultValue,t.defaultValue,t.checked,t.defaultChecked,t.type,t.name),n=t.name,"radio"===t.type&&null!=n){for(t=e;t.parentNode;)t=t.parentNode;for(t=t.querySelectorAll('input[name="'+nr(""+n)+'"][type="radio"]'),n=0;n<t.length;n++){var r=t[n];if(r!==e&&r.form===e.form){var l=r[eI]||null;if(!l)throw Error(i(90));nl(r,l.value,l.defaultValue,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name)}}for(n=0;n<t.length;n++)(r=t[n]).form===e.form&&ne(r)}break;case"textarea":ni(e,t.value,t.defaultValue);break;case"select":null!=(n=t.value)&&nu(e,!!t.multiple,n,!1)}}}var nE=!1;function nz(e,n,t){if(nE)return e(n,t);nE=!0;try{return e(n)}finally{if(nE=!1,(null!==nw||null!==nS)&&(is(),nw&&(n=nw,e=nS,nS=nw=null,nx(n),e)))for(n=0;n<e.length;n++)nx(e[n])}}function nC(e,n){var t=e.stateNode;if(null===t)return null;var r=t[eI]||null;if(null===r)return null;switch(t=r[n],n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r="button"!==(e=e.type)&&"input"!==e&&"select"!==e&&"textarea"!==e),e=!r;break;default:e=!1}if(e)return null;if(t&&"function"!=typeof t)throw Error(i(231,n,typeof t));return t}var nP="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,nN=!1;if(nP)try{var nL={};Object.defineProperty(nL,"passive",{get:function(){nN=!0}}),window.addEventListener("test",nL,nL),window.removeEventListener("test",nL,nL)}catch(e){nN=!1}var nT=null,n_=null,nF=null;function nD(){if(nF)return nF;var e,n,t=n_,r=t.length,l="value"in nT?nT.value:nT.textContent,a=l.length;for(e=0;e<r&&t[e]===l[e];e++);var o=r-e;for(n=1;n<=o&&t[r-n]===l[a-n];n++);return nF=l.slice(e,1<n?1-n:void 0)}function nO(e){var n=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===n&&(e=13):e=n,10===e&&(e=13),32<=e||13===e?e:0}function nM(){return!0}function nA(){return!1}function nR(e){function n(n,t,r,l,a){for(var o in this._reactName=n,this._targetInst=r,this.type=t,this.nativeEvent=l,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(n=e[o],this[o]=n?n(l):l[o]);return this.isDefaultPrevented=(null!=l.defaultPrevented?l.defaultPrevented:!1===l.returnValue)?nM:nA,this.isPropagationStopped=nA,this}return m(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nM)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nM)},persist:function(){},isPersistent:nM}),n}var nI,nU,n$,nj,nV,nH={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},nQ=nR(nH),nB=m({},nH,{view:0,detail:0}),nW=nR(nB),nq=m({},nB,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:n4,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==nV&&(nV&&"mousemove"===e.type?(n$=e.screenX-nV.screenX,nj=e.screenY-nV.screenY):nj=n$=0,nV=e),n$)},movementY:function(e){return"movementY"in e?e.movementY:nj}}),nK=nR(nq),nY=nR(m({},nq,{dataTransfer:0})),nX=nR(m({},nB,{relatedTarget:0})),nG=nR(m({},nH,{animationName:0,elapsedTime:0,pseudoElement:0})),nZ=nR(m({},nH,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}})),nJ=nR(m({},nH,{data:0})),n0={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},n1={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},n2={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function n3(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):!!(e=n2[e])&&!!n[e]}function n4(){return n3}var n8=nR(m({},nB,{key:function(e){if(e.key){var n=n0[e.key]||e.key;if("Unidentified"!==n)return n}return"keypress"===e.type?13===(e=nO(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?n1[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:n4,charCode:function(e){return"keypress"===e.type?nO(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?nO(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}})),n5=nR(m({},nq,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),n6=nR(m({},nB,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:n4})),n9=nR(m({},nH,{propertyName:0,elapsedTime:0,pseudoElement:0})),n7=nR(m({},nq,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),te=nR(m({},nH,{newState:0,oldState:0})),tn=[9,13,27,32],tt=nP&&"CompositionEvent"in window,tr=null;nP&&"documentMode"in document&&(tr=document.documentMode);var tl=nP&&"TextEvent"in window&&!tr,ta=nP&&(!tt||tr&&8<tr&&11>=tr),to=!1;function tu(e,n){switch(e){case"keyup":return -1!==tn.indexOf(n.keyCode);case"keydown":return 229!==n.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ti(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var ts=!1,tc={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function tf(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===n?!!tc[e.type]:"textarea"===n}function td(e,n,t,r){nw?nS?nS.push(r):nS=[r]:nw=r,0<(n=st(n,"onChange")).length&&(t=new nQ("onChange","change",null,t,r),e.push({event:t,listeners:n}))}var tp=null,tm=null;function th(e){i4(e,0)}function tg(e){if(ne(eK(e)))return e}function ty(e,n){if("change"===e)return n}var tv=!1;if(nP){if(nP){var tb="oninput"in document;if(!tb){var tk=document.createElement("div");tk.setAttribute("oninput","return;"),tb="function"==typeof tk.oninput}r=tb}else r=!1;tv=r&&(!document.documentMode||9<document.documentMode)}function tw(){tp&&(tp.detachEvent("onpropertychange",tS),tm=tp=null)}function tS(e){if("value"===e.propertyName&&tg(tm)){var n=[];td(n,tm,e,nk(e)),nz(th,n)}}function tx(e,n,t){"focusin"===e?(tw(),tp=n,tm=t,tp.attachEvent("onpropertychange",tS)):"focusout"===e&&tw()}function tE(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return tg(tm)}function tz(e,n){if("click"===e)return tg(n)}function tC(e,n){if("input"===e||"change"===e)return tg(n)}var tP="function"==typeof Object.is?Object.is:function(e,n){return e===n&&(0!==e||1/e==1/n)||e!=e&&n!=n};function tN(e,n){if(tP(e,n))return!0;if("object"!=typeof e||null===e||"object"!=typeof n||null===n)return!1;var t=Object.keys(e),r=Object.keys(n);if(t.length!==r.length)return!1;for(r=0;r<t.length;r++){var l=t[r];if(!ee.call(n,l)||!tP(e[l],n[l]))return!1}return!0}function tL(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function tT(e,n){var t,r=tL(e);for(e=0;r;){if(3===r.nodeType){if(t=e+r.textContent.length,e<=n&&t>=n)return{node:r,offset:n-e};e=t}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=tL(r)}}function t_(e){e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window;for(var n=nn(e.document);n instanceof e.HTMLIFrameElement;){try{var t="string"==typeof n.contentWindow.location.href}catch(e){t=!1}if(t)e=n.contentWindow;else break;n=nn(e.document)}return n}function tF(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&("input"===n&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===n||"true"===e.contentEditable)}var tD=nP&&"documentMode"in document&&11>=document.documentMode,tO=null,tM=null,tA=null,tR=!1;function tI(e,n,t){var r=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;tR||null==tO||tO!==nn(r)||(r="selectionStart"in(r=tO)&&tF(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},tA&&tN(tA,r)||(tA=r,0<(r=st(tM,"onSelect")).length&&(n=new nQ("onSelect","select",null,n,t),e.push({event:n,listeners:r}),n.target=tO)))}function tU(e,n){var t={};return t[e.toLowerCase()]=n.toLowerCase(),t["Webkit"+e]="webkit"+n,t["Moz"+e]="moz"+n,t}var t$={animationend:tU("Animation","AnimationEnd"),animationiteration:tU("Animation","AnimationIteration"),animationstart:tU("Animation","AnimationStart"),transitionrun:tU("Transition","TransitionRun"),transitionstart:tU("Transition","TransitionStart"),transitioncancel:tU("Transition","TransitionCancel"),transitionend:tU("Transition","TransitionEnd")},tj={},tV={};function tH(e){if(tj[e])return tj[e];if(!t$[e])return e;var n,t=t$[e];for(n in t)if(t.hasOwnProperty(n)&&n in tV)return tj[e]=t[n];return e}nP&&(tV=document.createElement("div").style,"AnimationEvent"in window||(delete t$.animationend.animation,delete t$.animationiteration.animation,delete t$.animationstart.animation),"TransitionEvent"in window||delete t$.transitionend.transition);var tQ=tH("animationend"),tB=tH("animationiteration"),tW=tH("animationstart"),tq=tH("transitionrun"),tK=tH("transitionstart"),tY=tH("transitioncancel"),tX=tH("transitionend"),tG=new Map,tZ="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function tJ(e,n){tG.set(e,n),eJ(n,[e])}tZ.push("scrollEnd");var t0="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var n=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(n))return}else if("object"==typeof l&&"function"==typeof l.emit)return void l.emit("uncaughtException",e);console.error(e)},t1=[],t2=0,t3=0;function t4(){for(var e=t2,n=t3=t2=0;n<e;){var t=t1[n];t1[n++]=null;var r=t1[n];t1[n++]=null;var l=t1[n];t1[n++]=null;var a=t1[n];if(t1[n++]=null,null!==r&&null!==l){var o=r.pending;null===o?l.next=l:(l.next=o.next,o.next=l),r.pending=l}0!==a&&t9(t,l,a)}}function t8(e,n,t,r){t1[t2++]=e,t1[t2++]=n,t1[t2++]=t,t1[t2++]=r,t3|=r,e.lanes|=r,null!==(e=e.alternate)&&(e.lanes|=r)}function t5(e,n,t,r){return t8(e,n,t,r),t7(e)}function t6(e,n){return t8(e,null,null,n),t7(e)}function t9(e,n,t){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t);for(var l=!1,a=e.return;null!==a;)a.childLanes|=t,null!==(r=a.alternate)&&(r.childLanes|=t),22===a.tag&&(null===(e=a.stateNode)||1&e._visibility||(l=!0)),e=a,a=a.return;return 3===e.tag?(a=e.stateNode,l&&null!==n&&(l=31-ey(t),null===(r=(e=a.hiddenUpdates)[l])?e[l]=[n]:r.push(n),n.lane=0x20000000|t),a):null}function t7(e){if(50<ie)throw ie=0,it=null,Error(i(185));for(var n=e.return;null!==n;)n=(e=n).return;return 3===e.tag?e.stateNode:null}var re={};function rn(e,n,t,r){this.tag=e,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function rt(e,n,t,r){return new rn(e,n,t,r)}function rr(e){return!(!(e=e.prototype)||!e.isReactComponent)}function rl(e,n){var t=e.alternate;return null===t?((t=rt(e.tag,n,e.key,e.mode)).elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=n,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=0x3e00000&e.flags,t.childLanes=e.childLanes,t.lanes=e.lanes,t.child=e.child,t.memoizedProps=e.memoizedProps,t.memoizedState=e.memoizedState,t.updateQueue=e.updateQueue,n=e.dependencies,t.dependencies=null===n?null:{lanes:n.lanes,firstContext:n.firstContext},t.sibling=e.sibling,t.index=e.index,t.ref=e.ref,t.refCleanup=e.refCleanup,t}function ra(e,n){e.flags&=0x3e00002;var t=e.alternate;return null===t?(e.childLanes=0,e.lanes=n,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=t.childLanes,e.lanes=t.lanes,e.child=t.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=t.memoizedProps,e.memoizedState=t.memoizedState,e.updateQueue=t.updateQueue,e.type=t.type,e.dependencies=null===(n=t.dependencies)?null:{lanes:n.lanes,firstContext:n.firstContext}),e}function ro(e,n,t,r,l,a){var o=0;if(r=e,"function"==typeof e)rr(e)&&(o=1);else if("string"==typeof e)o=!function(e,n,t){if(1===t||null!=n.itemProp)return!1;switch(e){case"meta":case"title":return!0;case"style":if("string"!=typeof n.precedence||"string"!=typeof n.href||""===n.href)break;return!0;case"link":if("string"!=typeof n.rel||"string"!=typeof n.href||""===n.href||n.onLoad||n.onError)break;if("stylesheet"===n.rel)return e=n.disabled,"string"==typeof n.precedence&&null==e;return!0;case"script":if(n.async&&"function"!=typeof n.async&&"symbol"!=typeof n.async&&!n.onLoad&&!n.onError&&n.src&&"string"==typeof n.src)return!0}return!1}(e,t,V.current)?"html"===e||"head"===e||"body"===e?27:5:26;else e:switch(e){case N:return(e=rt(31,t,n,l)).elementType=N,e.lanes=a,e;case v:return ru(t.children,l,a,n);case b:o=8,l|=24;break;case k:return(e=rt(12,t,n,2|l)).elementType=k,e.lanes=a,e;case E:return(e=rt(13,t,n,l)).elementType=E,e.lanes=a,e;case z:return(e=rt(19,t,n,l)).elementType=z,e.lanes=a,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case S:o=10;break e;case w:o=9;break e;case x:o=11;break e;case C:o=14;break e;case P:o=16,r=null;break e}o=29,t=Error(i(130,null===e?"null":typeof e,"")),r=null}return(n=rt(o,t,n,l)).elementType=e,n.type=r,n.lanes=a,n}function ru(e,n,t,r){return(e=rt(7,e,r,n)).lanes=t,e}function ri(e,n,t){return(e=rt(6,e,null,n)).lanes=t,e}function rs(e){var n=rt(18,null,null,0);return n.stateNode=e,n}function rc(e,n,t){return(n=rt(4,null!==e.children?e.children:[],e.key,n)).lanes=t,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}var rf=new WeakMap;function rd(e,n){if("object"==typeof e&&null!==e){var t=rf.get(e);return void 0!==t?t:(n={value:e,source:n,stack:J(n)},rf.set(e,n),n)}return{value:e,source:n,stack:J(n)}}var rp=[],rm=0,rh=null,rg=0,ry=[],rv=0,rb=null,rk=1,rw="";function rS(e,n){rp[rm++]=rg,rp[rm++]=rh,rh=e,rg=n}function rx(e,n,t){ry[rv++]=rk,ry[rv++]=rw,ry[rv++]=rb,rb=e;var r=rk;e=rw;var l=32-ey(r)-1;r&=~(1<<l),t+=1;var a=32-ey(n)+l;if(30<a){var o=l-l%5;a=(r&(1<<o)-1).toString(32),r>>=o,l-=o,rk=1<<32-ey(n)+l|t<<l|r,rw=a+e}else rk=1<<a|t<<l|r,rw=e}function rE(e){null!==e.return&&(rS(e,1),rx(e,1,0))}function rz(e){for(;e===rh;)rh=rp[--rm],rp[rm]=null,rg=rp[--rm],rp[rm]=null;for(;e===rb;)rb=ry[--rv],ry[rv]=null,rw=ry[--rv],ry[rv]=null,rk=ry[--rv],ry[rv]=null}function rC(e,n){ry[rv++]=rk,ry[rv++]=rw,ry[rv++]=rb,rk=n.id,rw=n.overflow,rb=e}var rP=null,rN=null,rL=!1,rT=null,r_=!1,rF=Error(i(519));function rD(e){var n=Error(i(418,1<arguments.length&&void 0!==arguments[1]&&arguments[1]?"text":"HTML",""));throw rU(rd(n,e)),rF}function rO(e){var n=e.stateNode,t=e.type,r=e.memoizedProps;switch(n[eR]=e,n[eI]=r,t){case"dialog":i8("cancel",n),i8("close",n);break;case"iframe":case"object":case"embed":i8("load",n);break;case"video":case"audio":for(t=0;t<i2.length;t++)i8(i2[t],n);break;case"source":i8("error",n);break;case"img":case"image":case"link":i8("error",n),i8("load",n);break;case"details":i8("toggle",n);break;case"input":i8("invalid",n),na(n,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case"select":i8("invalid",n);break;case"textarea":i8("invalid",n),ns(n,r.value,r.defaultValue,r.children)}"string"!=typeof(t=r.children)&&"number"!=typeof t&&"bigint"!=typeof t||n.textContent===""+t||!0===r.suppressHydrationWarning||si(n.textContent,t)?(null!=r.popover&&(i8("beforetoggle",n),i8("toggle",n)),null!=r.onScroll&&i8("scroll",n),null!=r.onScrollEnd&&i8("scrollend",n),null!=r.onClick&&(n.onclick=nv),n=!0):n=!1,n||rD(e,!0)}function rM(e){for(rP=e.return;rP;)switch(rP.tag){case 5:case 31:case 13:r_=!1;return;case 27:case 3:r_=!0;return;default:rP=rP.return}}function rA(e){if(e!==rP)return!1;if(!rL)return rM(e),rL=!0,!1;var n,t=e.tag;if((n=3!==t&&27!==t)&&((n=5===t)&&(n="form"===(n=e.type)||"button"===n||sy(e.type,e.memoizedProps)),n=!n),n&&rN&&rD(e),rM(e),13===t){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));rN=sD(e)}else if(31===t){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));rN=sD(e)}else 27===t?(t=rN,sE(e.type)?(e=sF,sF=null,rN=e):rN=t):rN=rP?s_(e.stateNode.nextSibling):null;return!0}function rR(){rN=rP=null,rL=!1}function rI(){var e=rT;return null!==e&&(null===uG?uG=e:uG.push.apply(uG,e),rT=null),e}function rU(e){null===rT?rT=[e]:rT.push(e)}var r$=U(null),rj=null,rV=null;function rH(e,n,t){j(r$,n._currentValue),n._currentValue=t}function rQ(e){e._currentValue=r$.current,$(r$)}function rB(e,n,t){for(;null!==e;){var r=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,null!==r&&(r.childLanes|=n)):null!==r&&(r.childLanes&n)!==n&&(r.childLanes|=n),e===t)break;e=e.return}}function rW(e,n,t,r){var l=e.child;for(null!==l&&(l.return=e);null!==l;){var a=l.dependencies;if(null!==a){var o=l.child;a=a.firstContext;e:for(;null!==a;){var u=a;a=l;for(var s=0;s<n.length;s++)if(u.context===n[s]){a.lanes|=t,null!==(u=a.alternate)&&(u.lanes|=t),rB(a.return,t,e),r||(o=null);break e}a=u.next}}else if(18===l.tag){if(null===(o=l.return))throw Error(i(341));o.lanes|=t,null!==(a=o.alternate)&&(a.lanes|=t),rB(o,t,e),o=null}else o=l.child;if(null!==o)o.return=l;else for(o=l;null!==o;){if(o===e){o=null;break}if(null!==(l=o.sibling)){l.return=o.return,o=l;break}o=o.return}l=o}}function rq(e,n,t,r){e=null;for(var l=n,a=!1;null!==l;){if(!a){if(0!=(524288&l.flags))a=!0;else if(0!=(262144&l.flags))break}if(10===l.tag){var o=l.alternate;if(null===o)throw Error(i(387));if(null!==(o=o.memoizedProps)){var u=l.type;tP(l.pendingProps.value,o.value)||(null!==e?e.push(u):e=[u])}}else if(l===B.current){if(null===(o=l.alternate))throw Error(i(387));o.memoizedState.memoizedState!==l.memoizedState.memoizedState&&(null!==e?e.push(s9):e=[s9])}l=l.return}null!==e&&rW(n,e,t,r),n.flags|=262144}function rK(e){for(e=e.firstContext;null!==e;){if(!tP(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function rY(e){rj=e,rV=null,null!==(e=e.dependencies)&&(e.firstContext=null)}function rX(e){return rZ(rj,e)}function rG(e,n){return null===rj&&rY(e),rZ(e,n)}function rZ(e,n){var t=n._currentValue;if(n={context:n,memoizedValue:t,next:null},null===rV){if(null===e)throw Error(i(308));rV=n,e.dependencies={lanes:0,firstContext:n},e.flags|=524288}else rV=rV.next=n;return t}var rJ="undefined"!=typeof AbortController?AbortController:function(){var e=[],n=this.signal={aborted:!1,addEventListener:function(n,t){e.push(t)}};this.abort=function(){n.aborted=!0,e.forEach(function(e){return e()})}},r0=a.unstable_scheduleCallback,r1=a.unstable_NormalPriority,r2={$$typeof:S,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function r3(){return{controller:new rJ,data:new Map,refCount:0}}function r4(e){e.refCount--,0===e.refCount&&r0(r1,function(){e.controller.abort()})}var r8=null,r5=0,r6=0,r9=null;function r7(){if(0==--r5&&null!==r8){null!==r9&&(r9.status="fulfilled");var e=r8;r8=null,r6=0,r9=null;for(var n=0;n<e.length;n++)(0,e[n])()}}var le=O.S;O.S=function(e,n){"object"==typeof n&&null!==n&&"function"==typeof n.then&&function(e,n){if(null===r8){var t=r8=[];r5=0,r6=iG(),r9={status:"pending",value:void 0,then:function(e){t.push(e)}}}r5++,n.then(r7,r7)}(0,n),null!==le&&le(e,n)};var ln=U(null);function lt(){var e=ln.current;return null!==e?e:uM.pooledCache}function lr(e,n){null===n?j(ln,ln.current):j(ln,n.pool)}function ll(){var e=lt();return null===e?null:{parent:r2._currentValue,pool:e}}var la=Error(i(460)),lo=Error(i(474)),lu=Error(i(542)),li={then:function(){}};function ls(e){return"fulfilled"===(e=e.status)||"rejected"===e}function lc(e,n,t){switch(void 0===(t=e[t])?e.push(n):t!==n&&(n.then(nv,nv),n=t),n.status){case"fulfilled":return n.value;case"rejected":throw lp(e=n.reason),e;default:if("string"==typeof n.status)n.then(nv,nv);else{if(null!==(e=uM)&&100<e.shellSuspendCounter)throw Error(i(482));(e=n).status="pending",e.then(function(e){if("pending"===n.status){var t=n;t.status="fulfilled",t.value=e}},function(e){if("pending"===n.status){var t=n;t.status="rejected",t.reason=e}})}switch(n.status){case"fulfilled":return n.value;case"rejected":throw lp(e=n.reason),e}throw lf=n,la}}var lf=null;function ld(){if(null===lf)throw Error(i(459));var e=lf;return lf=null,e}function lp(e){if(e===la||e===lu)throw Error(i(483))}var lm=null,lh=0;function lg(e){var n=lh;return lh+=1,null===lm&&(lm=[]),lc(lm,e,n)}function ly(e,n){e.ref=void 0!==(n=n.props.ref)?n:null}function lv(e,n){if(n.$$typeof===h)throw Error(i(525));throw Error(i(31,"[object Object]"===(e=Object.prototype.toString.call(n))?"object with keys {"+Object.keys(n).join(", ")+"}":e))}function lb(e){return(0,e._init)(e._payload)}function lk(e){function n(n,t){if(e){var r=n.deletions;null===r?(n.deletions=[t],n.flags|=16):r.push(t)}}function t(t,r){if(!e)return null;for(;null!==r;)n(t,r),r=r.sibling;return null}function r(e){for(var n=new Map;null!==e;)null!==e.key?n.set(e.key,e):n.set(e.index,e),e=e.sibling;return n}function l(e,n){return(e=rl(e,n)).index=0,e.sibling=null,e}function a(n,t,r){return(n.index=r,e)?null!==(r=n.alternate)?(r=r.index)<t?(n.flags|=0x4000002,t):r:(n.flags|=0x4000002,t):(n.flags|=1048576,t)}function o(n){return e&&null===n.alternate&&(n.flags|=0x4000002),n}function u(e,n,t,r){return null===n||6!==n.tag?(n=ri(t,e.mode,r)).return=e:(n=l(n,t)).return=e,n}function s(e,n,t,r){var a=t.type;return a===v?f(e,n,t.props.children,r,t.key):(null!==n&&(n.elementType===a||"object"==typeof a&&null!==a&&a.$$typeof===P&&lb(a)===n.type)?ly(n=l(n,t.props),t):ly(n=ro(t.type,t.key,t.props,null,e.mode,r),t),n.return=e,n)}function c(e,n,t,r){return null===n||4!==n.tag||n.stateNode.containerInfo!==t.containerInfo||n.stateNode.implementation!==t.implementation?(n=rc(t,e.mode,r)).return=e:(n=l(n,t.children||[])).return=e,n}function f(e,n,t,r,a){return null===n||7!==n.tag?(n=ru(t,e.mode,r,a)).return=e:(n=l(n,t)).return=e,n}function d(e,n,t){if("string"==typeof n&&""!==n||"number"==typeof n||"bigint"==typeof n)return(n=ri(""+n,e.mode,t)).return=e,n;if("object"==typeof n&&null!==n){switch(n.$$typeof){case g:return ly(t=ro(n.type,n.key,n.props,null,e.mode,t),n),t.return=e,t;case y:return(n=rc(n,e.mode,t)).return=e,n;case P:return d(e,n=(0,n._init)(n._payload),t)}if(D(n)||_(n))return(n=ru(n,e.mode,t,null)).return=e,n;if("function"==typeof n.then)return d(e,lg(n),t);if(n.$$typeof===S)return d(e,rG(e,n),t);lv(e,n)}return null}function p(e,n,t,r){var l=null!==n?n.key:null;if("string"==typeof t&&""!==t||"number"==typeof t||"bigint"==typeof t)return null!==l?null:u(e,n,""+t,r);if("object"==typeof t&&null!==t){switch(t.$$typeof){case g:return t.key===l?s(e,n,t,r):null;case y:return t.key===l?c(e,n,t,r):null;case P:return p(e,n,t=(l=t._init)(t._payload),r)}if(D(t)||_(t))return null!==l?null:f(e,n,t,r,null);if("function"==typeof t.then)return p(e,n,lg(t),r);if(t.$$typeof===S)return p(e,n,rG(e,t),r);lv(e,t)}return null}function m(e,n,t,r,l){if("string"==typeof r&&""!==r||"number"==typeof r||"bigint"==typeof r)return u(n,e=e.get(t)||null,""+r,l);if("object"==typeof r&&null!==r){switch(r.$$typeof){case g:return s(n,e=e.get(null===r.key?t:r.key)||null,r,l);case y:return c(n,e=e.get(null===r.key?t:r.key)||null,r,l);case P:return m(e,n,t,r=(0,r._init)(r._payload),l)}if(D(r)||_(r))return f(n,e=e.get(t)||null,r,l,null);if("function"==typeof r.then)return m(e,n,t,lg(r),l);if(r.$$typeof===S)return m(e,n,t,rG(n,r),l);lv(n,r)}return null}return function(u,s,c,f){try{lh=0;var h=function u(s,c,f,h){if("object"==typeof f&&null!==f&&f.type===v&&null===f.key&&(f=f.props.children),"object"==typeof f&&null!==f){switch(f.$$typeof){case g:e:{for(var b=f.key;null!==c;){if(c.key===b){if((b=f.type)===v){if(7===c.tag){t(s,c.sibling),(h=l(c,f.props.children)).return=s,s=h;break e}}else if(c.elementType===b||"object"==typeof b&&null!==b&&b.$$typeof===P&&lb(b)===c.type){t(s,c.sibling),ly(h=l(c,f.props),f),h.return=s,s=h;break e}t(s,c);break}n(s,c),c=c.sibling}f.type===v?(h=ru(f.props.children,s.mode,h,f.key)).return=s:(ly(h=ro(f.type,f.key,f.props,null,s.mode,h),f),h.return=s),s=h}return o(s);case y:e:{for(b=f.key;null!==c;){if(c.key===b)if(4===c.tag&&c.stateNode.containerInfo===f.containerInfo&&c.stateNode.implementation===f.implementation){t(s,c.sibling),(h=l(c,f.children||[])).return=s,s=h;break e}else{t(s,c);break}n(s,c),c=c.sibling}(h=rc(f,s.mode,h)).return=s,s=h}return o(s);case P:return u(s,c,f=(b=f._init)(f._payload),h)}if(D(f))return function(l,o,u,i){for(var s=null,c=null,f=o,h=o=0,g=null;null!==f&&h<u.length;h++){f.index>h?(g=f,f=null):g=f.sibling;var y=p(l,f,u[h],i);if(null===y){null===f&&(f=g);break}e&&f&&null===y.alternate&&n(l,f),o=a(y,o,h),null===c?s=y:c.sibling=y,c=y,f=g}if(h===u.length)return t(l,f),rL&&rS(l,h),s;if(null===f){for(;h<u.length;h++)null!==(f=d(l,u[h],i))&&(o=a(f,o,h),null===c?s=f:c.sibling=f,c=f);return rL&&rS(l,h),s}for(f=r(f);h<u.length;h++)null!==(g=m(f,l,h,u[h],i))&&(e&&null!==g.alternate&&f.delete(null===g.key?h:g.key),o=a(g,o,h),null===c?s=g:c.sibling=g,c=g);return e&&f.forEach(function(e){return n(l,e)}),rL&&rS(l,h),s}(s,c,f,h);if(_(f)){if("function"!=typeof(b=_(f)))throw Error(i(150));return function(l,o,u,s){if(null==u)throw Error(i(151));for(var c=null,f=null,h=o,g=o=0,y=null,v=u.next();null!==h&&!v.done;g++,v=u.next()){h.index>g?(y=h,h=null):y=h.sibling;var b=p(l,h,v.value,s);if(null===b){null===h&&(h=y);break}e&&h&&null===b.alternate&&n(l,h),o=a(b,o,g),null===f?c=b:f.sibling=b,f=b,h=y}if(v.done)return t(l,h),rL&&rS(l,g),c;if(null===h){for(;!v.done;g++,v=u.next())null!==(v=d(l,v.value,s))&&(o=a(v,o,g),null===f?c=v:f.sibling=v,f=v);return rL&&rS(l,g),c}for(h=r(h);!v.done;g++,v=u.next())null!==(v=m(h,l,g,v.value,s))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),o=a(v,o,g),null===f?c=v:f.sibling=v,f=v);return e&&h.forEach(function(e){return n(l,e)}),rL&&rS(l,g),c}(s,c,f=b.call(f),h)}if("function"==typeof f.then)return u(s,c,lg(f),h);if(f.$$typeof===S)return u(s,c,rG(s,f),h);lv(s,f)}return"string"==typeof f&&""!==f||"number"==typeof f||"bigint"==typeof f?(f=""+f,null!==c&&6===c.tag?(t(s,c.sibling),(h=l(c,f)).return=s):(t(s,c),(h=ri(f,s.mode,h)).return=s),o(s=h)):t(s,c)}(u,s,c,f);return lm=null,h}catch(e){if(e===la||e===lu)throw e;var b=rt(29,e,null,u.mode);return b.lanes=f,b.return=u,b}finally{}}}var lw=lk(!0),lS=lk(!1),lx=!1;function lE(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function lz(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function lC(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function lP(e,n,t){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&uO)){var l=r.pending;return null===l?n.next=n:(n.next=l.next,l.next=n),r.pending=n,n=t7(e),t9(e,null,t),n}return t8(e,r,n,t),t7(e)}function lN(e,n,t){if(null!==(n=n.updateQueue)&&(n=n.shared,0!=(4194048&t))){var r=n.lanes;r&=e.pendingLanes,t|=r,n.lanes=t,eT(e,t)}}function lL(e,n){var t=e.updateQueue,r=e.alternate;if(null!==r&&t===(r=r.updateQueue)){var l=null,a=null;if(null!==(t=t.firstBaseUpdate)){do{var o={lane:t.lane,tag:t.tag,payload:t.payload,callback:null,next:null};null===a?l=a=o:a=a.next=o,t=t.next}while(null!==t);null===a?l=a=n:a=a.next=n}else l=a=n;t={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=t;return}null===(e=t.lastBaseUpdate)?t.firstBaseUpdate=n:e.next=n,t.lastBaseUpdate=n}var lT=!1;function l_(){if(lT){var e=r9;if(null!==e)throw e}}function lF(e,n,t,r){lT=!1;var l=e.updateQueue;lx=!1;var a=l.firstBaseUpdate,o=l.lastBaseUpdate,u=l.shared.pending;if(null!==u){l.shared.pending=null;var i=u,s=i.next;i.next=null,null===o?a=s:o.next=s,o=i;var c=e.alternate;null!==c&&(u=(c=c.updateQueue).lastBaseUpdate)!==o&&(null===u?c.firstBaseUpdate=s:u.next=s,c.lastBaseUpdate=i)}if(null!==a){var f=l.baseState;for(o=0,c=s=i=null,u=a;;){var d=-0x20000001&u.lane,p=d!==u.lane;if(p?(uR&d)===d:(r&d)===d){0!==d&&d===r6&&(lT=!0),null!==c&&(c=c.next={lane:0,tag:u.tag,payload:u.payload,callback:null,next:null});e:{var h=e,g=u;switch(d=n,g.tag){case 1:if("function"==typeof(h=g.payload)){f=h.call(t,f,d);break e}f=h;break e;case 3:h.flags=-65537&h.flags|128;case 0:if(null==(d="function"==typeof(h=g.payload)?h.call(t,f,d):h))break e;f=m({},f,d);break e;case 2:lx=!0}}null!==(d=u.callback)&&(e.flags|=64,p&&(e.flags|=8192),null===(p=l.callbacks)?l.callbacks=[d]:p.push(d))}else p={lane:d,tag:u.tag,payload:u.payload,callback:u.callback,next:null},null===c?(s=c=p,i=f):c=c.next=p,o|=d;if(null===(u=u.next))if(null===(u=l.shared.pending))break;else u=(p=u).next,p.next=null,l.lastBaseUpdate=p,l.shared.pending=null}null===c&&(i=f),l.baseState=i,l.firstBaseUpdate=s,l.lastBaseUpdate=c,null===a&&(l.shared.lanes=0),uB|=o,e.lanes=o,e.memoizedState=f}}function lD(e,n){if("function"!=typeof e)throw Error(i(191,e));e.call(n)}function lO(e,n){var t=e.callbacks;if(null!==t)for(e.callbacks=null,e=0;e<t.length;e++)lD(t[e],n)}var lM=U(null),lA=U(0);function lR(e,n){j(lA,e=uH),j(lM,n),uH=e|n.baseLanes}function lI(){j(lA,uH),j(lM,lM.current)}function lU(){uH=lA.current,$(lM),$(lA)}var l$=U(null),lj=null;function lV(e){var n=e.alternate;j(lq,1&lq.current),j(l$,e),null===lj&&(null===n||null!==lM.current?lj=e:null!==n.memoizedState&&(lj=e))}function lH(e){j(lq,lq.current),j(l$,e),null===lj&&(lj=e)}function lQ(e){22===e.tag?(j(lq,lq.current),j(l$,e),null===lj&&(lj=e)):lB(e)}function lB(){j(lq,lq.current),j(l$,l$.current)}function lW(e){$(l$),lj===e&&(lj=null),$(lq)}var lq=U(0);function lK(e){for(var n=e;null!==n;){if(13===n.tag){var t=n.memoizedState;if(null!==t&&(null===(t=t.dehydrated)||sL(t)||sT(t)))return n}else if(19===n.tag&&("forwards"===n.memoizedProps.revealOrder||"backwards"===n.memoizedProps.revealOrder||"unstable_legacy-backwards"===n.memoizedProps.revealOrder||"together"===n.memoizedProps.revealOrder)){if(0!=(128&n.flags))return n}else if(null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var lY=0,lX=null,lG=null,lZ=null,lJ=!1,l0=!1,l1=!1,l2=0,l3=0,l4=null,l8=0;function l5(){throw Error(i(321))}function l6(e,n){if(null===n)return!1;for(var t=0;t<n.length&&t<e.length;t++)if(!tP(e[t],n[t]))return!1;return!0}function l9(e,n,t,r,l,a){return lY=a,lX=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,O.H=null===e||null===e.memoizedState?or:ol,l1=!1,a=t(r,l),l1=!1,l0&&(a=ae(n,t,r,l)),l7(e),a}function l7(e){O.H=ot;var n=null!==lG&&null!==lG.next;if(lY=0,lZ=lG=lX=null,lJ=!1,l3=0,l4=null,n)throw Error(i(300));null===e||ok||null!==(e=e.dependencies)&&rK(e)&&(ok=!0)}function ae(e,n,t,r){lX=e;var l=0;do{if(l0&&(l4=null),l3=0,l0=!1,25<=l)throw Error(i(301));if(l+=1,lZ=lG=null,null!=e.updateQueue){var a=e.updateQueue;a.lastEffect=null,a.events=null,a.stores=null,null!=a.memoCache&&(a.memoCache.index=0)}O.H=oa,a=n(t,r)}while(l0);return a}function an(){var e=O.H,n=e.useState()[0];return n="function"==typeof n.then?ai(n):n,e=e.useState()[0],(null!==lG?lG.memoizedState:null)!==e&&(lX.flags|=1024),n}function at(){var e=0!==l2;return l2=0,e}function ar(e,n,t){n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~t}function al(e){if(lJ){for(e=e.memoizedState;null!==e;){var n=e.queue;null!==n&&(n.pending=null),e=e.next}lJ=!1}lY=0,lZ=lG=lX=null,l0=!1,l3=l2=0,l4=null}function aa(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===lZ?lX.memoizedState=lZ=e:lZ=lZ.next=e,lZ}function ao(){if(null===lG){var e=lX.alternate;e=null!==e?e.memoizedState:null}else e=lG.next;var n=null===lZ?lX.memoizedState:lZ.next;if(null!==n)lZ=n,lG=e;else{if(null===e){if(null===lX.alternate)throw Error(i(467));throw Error(i(310))}e={memoizedState:(lG=e).memoizedState,baseState:lG.baseState,baseQueue:lG.baseQueue,queue:lG.queue,next:null},null===lZ?lX.memoizedState=lZ=e:lZ=lZ.next=e}return lZ}function au(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function ai(e){var n=l3;return l3+=1,null===l4&&(l4=[]),e=lc(l4,e,n),n=lX,null===(null===lZ?n.memoizedState:lZ.next)&&(O.H=null===(n=n.alternate)||null===n.memoizedState?or:ol),e}function as(e){if(null!==e&&"object"==typeof e){if("function"==typeof e.then)return ai(e);if(e.$$typeof===S)return rX(e)}throw Error(i(438,String(e)))}function ac(e){var n=null,t=lX.updateQueue;if(null!==t&&(n=t.memoCache),null==n){var r=lX.alternate;null!==r&&null!==(r=r.updateQueue)&&null!=(r=r.memoCache)&&(n={data:r.data.map(function(e){return e.slice()}),index:0})}if(null==n&&(n={data:[],index:0}),null===t&&(t=au(),lX.updateQueue=t),t.memoCache=n,void 0===(t=n.data[n.index]))for(t=n.data[n.index]=Array(e),r=0;r<e;r++)t[r]=L;return n.index++,t}function af(e,n){return"function"==typeof n?n(e):n}function ad(e){return ap(ao(),lG,e)}function ap(e,n,t){var r=e.queue;if(null===r)throw Error(i(311));r.lastRenderedReducer=t;var l=e.baseQueue,a=r.pending;if(null!==a){if(null!==l){var o=l.next;l.next=a.next,a.next=o}n.baseQueue=l=a,r.pending=null}if(a=e.baseState,null===l)e.memoizedState=a;else{n=l.next;var u=o=null,s=null,c=n,f=!1;do{var d=-0x20000001&c.lane;if(d!==c.lane?(uR&d)===d:(lY&d)===d){var p=c.revertLane;if(0===p)null!==s&&(s=s.next={lane:0,revertLane:0,gesture:null,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),d===r6&&(f=!0);else if((lY&p)===p){c=c.next,p===r6&&(f=!0);continue}else d={lane:0,revertLane:c.revertLane,gesture:null,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null},null===s?(u=s=d,o=a):s=s.next=d,lX.lanes|=p,uB|=p;d=c.action,l1&&t(a,d),a=c.hasEagerState?c.eagerState:t(a,d)}else p={lane:d,revertLane:c.revertLane,gesture:c.gesture,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null},null===s?(u=s=p,o=a):s=s.next=p,lX.lanes|=d,uB|=d;c=c.next}while(null!==c&&c!==n);if(null===s?o=a:s.next=u,!tP(a,e.memoizedState)&&(ok=!0,f&&null!==(t=r9)))throw t;e.memoizedState=a,e.baseState=o,e.baseQueue=s,r.lastRenderedState=a}return null===l&&(r.lanes=0),[e.memoizedState,r.dispatch]}function am(e){var n=ao(),t=n.queue;if(null===t)throw Error(i(311));t.lastRenderedReducer=e;var r=t.dispatch,l=t.pending,a=n.memoizedState;if(null!==l){t.pending=null;var o=l=l.next;do a=e(a,o.action),o=o.next;while(o!==l);tP(a,n.memoizedState)||(ok=!0),n.memoizedState=a,null===n.baseQueue&&(n.baseState=a),t.lastRenderedState=a}return[a,r]}function ah(e,n,t){var r=lX,l=ao(),a=rL;if(a){if(void 0===t)throw Error(i(407));t=t()}else t=n();var o=!tP((lG||l).memoizedState,t);if(o&&(l.memoizedState=t,ok=!0),l=l.queue,a$(av.bind(null,r,l,e),[e]),l.getSnapshot!==n||o||null!==lZ&&1&lZ.memoizedState.tag){if(r.flags|=2048,aM(9,{destroy:void 0},ay.bind(null,r,l,t,n),null),null===uM)throw Error(i(349));a||0!=(124&lY)||ag(r,n,t)}return t}function ag(e,n,t){e.flags|=16384,e={getSnapshot:n,value:t},null===(n=lX.updateQueue)?(n=au(),lX.updateQueue=n,n.stores=[e]):null===(t=n.stores)?n.stores=[e]:t.push(e)}function ay(e,n,t,r){n.value=t,n.getSnapshot=r,ab(n)&&ak(e)}function av(e,n,t){return t(function(){ab(n)&&ak(e)})}function ab(e){var n=e.getSnapshot;e=e.value;try{var t=n();return!tP(e,t)}catch(e){return!0}}function ak(e){var n=t6(e,2);null!==n&&ia(n,e,2)}function aw(e){var n=aa();if("function"==typeof e){var t=e;if(e=t(),l1){eg(!0);try{t()}finally{eg(!1)}}}return n.memoizedState=n.baseState=e,n.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:af,lastRenderedState:e},n}function aS(e,n,t,r){return e.baseState=t,ap(e,lG,"function"==typeof r?r:af)}function ax(e,n,t,r,l){if(a7(e))throw Error(i(485));if(null!==(e=n.action)){var a={payload:l,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(e){a.listeners.push(e)}};null!==O.T?t(!0):a.isTransition=!1,r(a),null===(t=n.pending)?(a.next=n.pending=a,aE(n,a)):(a.next=t.next,n.pending=t.next=a)}}function aE(e,n){var t=n.action,r=n.payload,l=e.state;if(n.isTransition){var a=O.T,o={};O.T=o;try{var u=t(l,r),i=O.S;null!==i&&i(o,u),az(e,n,u)}catch(t){aP(e,n,t)}finally{null!==a&&null!==o.types&&(a.types=o.types),O.T=a}}else try{a=t(l,r),az(e,n,a)}catch(t){aP(e,n,t)}}function az(e,n,t){null!==t&&"object"==typeof t&&"function"==typeof t.then?t.then(function(t){aC(e,n,t)},function(t){return aP(e,n,t)}):aC(e,n,t)}function aC(e,n,t){n.status="fulfilled",n.value=t,aN(n),e.state=t,null!==(n=e.pending)&&((t=n.next)===n?e.pending=null:(t=t.next,n.next=t,aE(e,t)))}function aP(e,n,t){var r=e.pending;if(e.pending=null,null!==r){r=r.next;do n.status="rejected",n.reason=t,aN(n),n=n.next;while(n!==r)}e.action=null}function aN(e){e=e.listeners;for(var n=0;n<e.length;n++)(0,e[n])()}function aL(e,n){return n}function aT(e,n){if(rL){var t=uM.formState;if(null!==t){e:{var r=lX;if(rL){if(rN){n:{for(var l=rN,a=r_;8!==l.nodeType;)if(!a||null===(l=s_(l.nextSibling))){l=null;break n}l="F!"===(a=l.data)||"F"===a?l:null}if(l){rN=s_(l.nextSibling),r="F!"===l.data;break e}}rD(r)}r=!1}r&&(n=t[0])}}return(t=aa()).memoizedState=t.baseState=n,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:aL,lastRenderedState:n},t.queue=r,t=a5.bind(null,lX,r),r.dispatch=t,r=aw(!1),a=a9.bind(null,lX,!1,r.queue),r=aa(),l={state:n,dispatch:null,action:e,pending:null},r.queue=l,t=ax.bind(null,lX,l,a,t),l.dispatch=t,r.memoizedState=e,[n,t,!1]}function a_(e){return aF(ao(),lG,e)}function aF(e,n,t){if(n=ap(e,n,aL)[0],e=ad(af)[0],"object"==typeof n&&null!==n&&"function"==typeof n.then)try{var r=ai(n)}catch(e){if(e===la)throw lu;throw e}else r=n;var l=(n=ao()).queue,a=l.dispatch;return t!==n.memoizedState&&(lX.flags|=2048,aM(9,{destroy:void 0},aD.bind(null,l,t),null)),[r,a,e]}function aD(e,n){e.action=n}function aO(e){var n=ao(),t=lG;if(null!==t)return aF(n,t,e);ao(),n=n.memoizedState;var r=(t=ao()).queue.dispatch;return t.memoizedState=e,[n,r,!1]}function aM(e,n,t,r){return e={tag:e,create:t,deps:r,inst:n,next:null},null===(n=lX.updateQueue)&&(n=au(),lX.updateQueue=n),null===(t=n.lastEffect)?n.lastEffect=e.next=e:(r=t.next,t.next=e,e.next=r,n.lastEffect=e),e}function aA(){return ao().memoizedState}function aR(e,n,t,r){var l=aa();lX.flags|=e,l.memoizedState=aM(1|n,{destroy:void 0},t,void 0===r?null:r)}function aI(e,n,t,r){var l=ao();r=void 0===r?null:r;var a=l.memoizedState.inst;null!==lG&&null!==r&&l6(r,lG.memoizedState.deps)?l.memoizedState=aM(n,a,t,r):(lX.flags|=e,l.memoizedState=aM(1|n,a,t,r))}function aU(e,n){aR(8390656,8,e,n)}function a$(e,n){aI(2048,8,e,n)}function aj(e,n){return aI(4,2,e,n)}function aV(e,n){return aI(4,4,e,n)}function aH(e,n){if("function"==typeof n){var t=n(e=e());return function(){"function"==typeof t?t():n(null)}}if(null!=n)return n.current=e=e(),function(){n.current=null}}function aQ(e,n,t){t=null!=t?t.concat([e]):null,aI(4,4,aH.bind(null,n,e),t)}function aB(){}function aW(e,n){var t=ao();n=void 0===n?null:n;var r=t.memoizedState;return null!==n&&l6(n,r[1])?r[0]:(t.memoizedState=[e,n],e)}function aq(e,n){var t=ao();n=void 0===n?null:n;var r=t.memoizedState;if(null!==n&&l6(n,r[1]))return r[0];if(r=e(),l1){eg(!0);try{e()}finally{eg(!1)}}return t.memoizedState=[r,n],r}function aK(e,n,t){return void 0===t||0!=(0x40000000&lY)?e.memoizedState=n:(e.memoizedState=t,e=il(),lX.lanes|=e,uB|=e,t)}function aY(e,n,t,r){return tP(t,n)?t:null!==lM.current?(tP(e=aK(e,t,r),n)||(ok=!0),e):0==(42&lY)||0!=(0x40000000&lY)?(ok=!0,e.memoizedState=t):(e=il(),lX.lanes|=e,uB|=e,n)}function aX(e,n,t,r,l){var a=M.p;M.p=0!==a&&8>a?a:8;var o=O.T,u={};O.T=u,a9(e,!1,n,t);try{var i=l(),s=O.S;if(null!==s&&s(u,i),null!==i&&"object"==typeof i&&"function"==typeof i.then){var c,f,d=(c=[],f={status:"pending",value:null,reason:null,then:function(e){c.push(e)}},i.then(function(){f.status="fulfilled",f.value=r;for(var e=0;e<c.length;e++)(0,c[e])(r)},function(e){for(f.status="rejected",f.reason=e,e=0;e<c.length;e++)(0,c[e])(void 0)}),f);a6(e,n,d,ir(e))}else a6(e,n,r,ir(e))}catch(t){a6(e,n,{then:function(){},status:"rejected",reason:t},ir())}finally{M.p=a,null!==o&&null!==u.types&&(o.types=u.types),O.T=o}}function aG(){}function aZ(e,n,t,r){if(5!==e.tag)throw Error(i(476));var l=aJ(e).queue;aX(e,l,n,A,null===t?aG:function(){return a0(e),t(r)})}function aJ(e){var n=e.memoizedState;if(null!==n)return n;var t={};return(n={memoizedState:A,baseState:A,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:af,lastRenderedState:A},next:null}).next={memoizedState:t,baseState:t,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:af,lastRenderedState:t},next:null},e.memoizedState=n,null!==(e=e.alternate)&&(e.memoizedState=n),n}function a0(e){var n=aJ(e);null===n.next&&(n=e.alternate.memoizedState),a6(e,n.next.queue,{},ir())}function a1(){return rX(s9)}function a2(){return ao().memoizedState}function a3(){return ao().memoizedState}function a4(e){for(var n=e.return;null!==n;){switch(n.tag){case 24:case 3:var t=ir(),r=lP(n,e=lC(t),t);null!==r&&(ia(r,n,t),lN(r,n,t)),n={cache:r3()},e.payload=n;return}n=n.return}}function a8(e,n,t){var r=ir();t={lane:r,revertLane:0,gesture:null,action:t,hasEagerState:!1,eagerState:null,next:null},a7(e)?oe(n,t):null!==(t=t5(e,n,t,r))&&(ia(t,e,r),on(t,n,r))}function a5(e,n,t){a6(e,n,t,ir())}function a6(e,n,t,r){var l={lane:r,revertLane:0,gesture:null,action:t,hasEagerState:!1,eagerState:null,next:null};if(a7(e))oe(n,l);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=n.lastRenderedReducer))try{var o=n.lastRenderedState,u=a(o,t);if(l.hasEagerState=!0,l.eagerState=u,tP(u,o))return t8(e,n,l,0),null===uM&&t4(),!1}catch(e){}finally{}if(null!==(t=t5(e,n,l,r)))return ia(t,e,r),on(t,n,r),!0}return!1}function a9(e,n,t,r){if(r={lane:2,revertLane:iG(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},a7(e)){if(n)throw Error(i(479))}else null!==(n=t5(e,t,r,2))&&ia(n,e,2)}function a7(e){var n=e.alternate;return e===lX||null!==n&&n===lX}function oe(e,n){l0=lJ=!0;var t=e.pending;null===t?n.next=n:(n.next=t.next,t.next=n),e.pending=n}function on(e,n,t){if(0!=(4194048&t)){var r=n.lanes;r&=e.pendingLanes,n.lanes=t|=r,eT(e,t)}}var ot={readContext:rX,use:as,useCallback:l5,useContext:l5,useEffect:l5,useImperativeHandle:l5,useLayoutEffect:l5,useInsertionEffect:l5,useMemo:l5,useReducer:l5,useRef:l5,useState:l5,useDebugValue:l5,useDeferredValue:l5,useTransition:l5,useSyncExternalStore:l5,useId:l5,useHostTransitionStatus:l5,useFormState:l5,useActionState:l5,useOptimistic:l5,useMemoCache:l5,useCacheRefresh:l5},or={readContext:rX,use:as,useCallback:function(e,n){return aa().memoizedState=[e,void 0===n?null:n],e},useContext:rX,useEffect:aU,useImperativeHandle:function(e,n,t){t=null!=t?t.concat([e]):null,aR(4194308,4,aH.bind(null,n,e),t)},useLayoutEffect:function(e,n){return aR(4194308,4,e,n)},useInsertionEffect:function(e,n){aR(4,2,e,n)},useMemo:function(e,n){var t=aa();n=void 0===n?null:n;var r=e();if(l1){eg(!0);try{e()}finally{eg(!1)}}return t.memoizedState=[r,n],r},useReducer:function(e,n,t){var r=aa();if(void 0!==t){var l=t(n);if(l1){eg(!0);try{t(n)}finally{eg(!1)}}}else l=n;return r.memoizedState=r.baseState=l,r.queue=e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:l},e=e.dispatch=a8.bind(null,lX,e),[r.memoizedState,e]},useRef:function(e){return aa().memoizedState=e={current:e}},useState:function(e){var n=(e=aw(e)).queue,t=a5.bind(null,lX,n);return n.dispatch=t,[e.memoizedState,t]},useDebugValue:aB,useDeferredValue:function(e,n){return aK(aa(),e,n)},useTransition:function(){var e=aw(!1);return e=aX.bind(null,lX,e.queue,!0,!1),aa().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,n,t){var r=lX,l=aa();if(rL){if(void 0===t)throw Error(i(407));t=t()}else{if(t=n(),null===uM)throw Error(i(349));0!=(124&uR)||ag(r,n,t)}l.memoizedState=t;var a={value:t,getSnapshot:n};return l.queue=a,aU(av.bind(null,r,a,e),[e]),r.flags|=2048,aM(9,{destroy:void 0},ay.bind(null,r,a,t,n),null),t},useId:function(){var e=aa(),n=uM.identifierPrefix;if(rL){var t=rw,r=rk;n="_"+n+"R_"+(t=(r&~(1<<32-ey(r)-1)).toString(32)+t),0<(t=l2++)&&(n+="H"+t.toString(32)),n+="_"}else n="_"+n+"r_"+(t=l8++).toString(32)+"_";return e.memoizedState=n},useHostTransitionStatus:a1,useFormState:aT,useActionState:aT,useOptimistic:function(e){var n=aa();n.memoizedState=n.baseState=e;var t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return n.queue=t,n=a9.bind(null,lX,!0,t),t.dispatch=n,[e,n]},useMemoCache:ac,useCacheRefresh:function(){return aa().memoizedState=a4.bind(null,lX)}},ol={readContext:rX,use:as,useCallback:aW,useContext:rX,useEffect:a$,useImperativeHandle:aQ,useInsertionEffect:aj,useLayoutEffect:aV,useMemo:aq,useReducer:ad,useRef:aA,useState:function(){return ad(af)},useDebugValue:aB,useDeferredValue:function(e,n){return aY(ao(),lG.memoizedState,e,n)},useTransition:function(){var e=ad(af)[0],n=ao().memoizedState;return["boolean"==typeof e?e:ai(e),n]},useSyncExternalStore:ah,useId:a2,useHostTransitionStatus:a1,useFormState:a_,useActionState:a_,useOptimistic:function(e,n){return aS(ao(),lG,e,n)},useMemoCache:ac,useCacheRefresh:a3},oa={readContext:rX,use:as,useCallback:aW,useContext:rX,useEffect:a$,useImperativeHandle:aQ,useInsertionEffect:aj,useLayoutEffect:aV,useMemo:aq,useReducer:am,useRef:aA,useState:function(){return am(af)},useDebugValue:aB,useDeferredValue:function(e,n){var t=ao();return null===lG?aK(t,e,n):aY(t,lG.memoizedState,e,n)},useTransition:function(){var e=am(af)[0],n=ao().memoizedState;return["boolean"==typeof e?e:ai(e),n]},useSyncExternalStore:ah,useId:a2,useHostTransitionStatus:a1,useFormState:aO,useActionState:aO,useOptimistic:function(e,n){var t=ao();return null!==lG?aS(t,lG,e,n):(t.baseState=e,[e,t.queue.dispatch])},useMemoCache:ac,useCacheRefresh:a3};function oo(e,n,t,r){t=null==(t=t(r,n=e.memoizedState))?n:m({},n,t),e.memoizedState=t,0===e.lanes&&(e.updateQueue.baseState=t)}var ou={enqueueSetState:function(e,n,t){e=e._reactInternals;var r=ir(),l=lC(r);l.payload=n,null!=t&&(l.callback=t),null!==(n=lP(e,l,r))&&(ia(n,e,r),lN(n,e,r))},enqueueReplaceState:function(e,n,t){e=e._reactInternals;var r=ir(),l=lC(r);l.tag=1,l.payload=n,null!=t&&(l.callback=t),null!==(n=lP(e,l,r))&&(ia(n,e,r),lN(n,e,r))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var t=ir(),r=lC(t);r.tag=2,null!=n&&(r.callback=n),null!==(n=lP(e,r,t))&&(ia(n,e,t),lN(n,e,t))}};function oi(e,n,t,r,l,a,o){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,o):!n.prototype||!n.prototype.isPureReactComponent||!tN(t,r)||!tN(l,a)}function os(e,n,t,r){e=n.state,"function"==typeof n.componentWillReceiveProps&&n.componentWillReceiveProps(t,r),"function"==typeof n.UNSAFE_componentWillReceiveProps&&n.UNSAFE_componentWillReceiveProps(t,r),n.state!==e&&ou.enqueueReplaceState(n,n.state,null)}function oc(e,n){var t=n;if("ref"in n)for(var r in t={},n)"ref"!==r&&(t[r]=n[r]);if(e=e.defaultProps)for(var l in t===n&&(t=m({},t)),e)void 0===t[l]&&(t[l]=e[l]);return t}function of(e){t0(e)}function od(e){console.error(e)}function op(e){t0(e)}function om(e,n){try{(0,e.onUncaughtError)(n.value,{componentStack:n.stack})}catch(e){setTimeout(function(){throw e})}}function oh(e,n,t){try{(0,e.onCaughtError)(t.value,{componentStack:t.stack,errorBoundary:1===n.tag?n.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function og(e,n,t){return(t=lC(t)).tag=3,t.payload={element:null},t.callback=function(){om(e,n)},t}function oy(e){return(e=lC(e)).tag=3,e}function ov(e,n,t,r){var l=t.type.getDerivedStateFromError;if("function"==typeof l){var a=r.value;e.payload=function(){return l(a)},e.callback=function(){oh(n,t,r)}}var o=t.stateNode;null!==o&&"function"==typeof o.componentDidCatch&&(e.callback=function(){oh(n,t,r),"function"!=typeof l&&(null===u2?u2=new Set([this]):u2.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:null!==e?e:""})})}var ob=Error(i(461)),ok=!1;function ow(e,n,t,r){n.child=null===e?lS(n,null,t,r):lw(n,e.child,t,r)}function oS(e,n,t,r,l){t=t.render;var a=n.ref;if("ref"in r){var o={};for(var u in r)"ref"!==u&&(o[u]=r[u])}else o=r;return(rY(n),r=l9(e,n,t,o,a,l),u=at(),null===e||ok)?(rL&&u&&rE(n),n.flags|=1,ow(e,n,r,l),n.child):(ar(e,n,l),oQ(e,n,l))}function ox(e,n,t,r,l){if(null===e){var a=t.type;return"function"!=typeof a||rr(a)||void 0!==a.defaultProps||null!==t.compare?((e=ro(t.type,null,r,n,n.mode,l)).ref=n.ref,e.return=n,n.child=e):(n.tag=15,n.type=a,oE(e,n,a,r,l))}if(a=e.child,!oB(e,l)){var o=a.memoizedProps;if((t=null!==(t=t.compare)?t:tN)(o,r)&&e.ref===n.ref)return oQ(e,n,l)}return n.flags|=1,(e=rl(a,r)).ref=n.ref,e.return=n,n.child=e}function oE(e,n,t,r,l){if(null!==e){var a=e.memoizedProps;if(tN(a,r)&&e.ref===n.ref)if(ok=!1,n.pendingProps=r=a,!oB(e,l))return n.lanes=e.lanes,oQ(e,n,l);else 0!=(131072&e.flags)&&(ok=!0)}return oT(e,n,t,r,l)}function oz(e,n,t,r){var l=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode){if(0!=(128&n.flags)){if(r=null!==a?a.baseLanes|t:t,null!==e){for(a=0,l=n.child=e.child;null!==l;)a=a|l.lanes|l.childLanes,l=l.sibling;n.childLanes=a&~r}else n.childLanes=0,n.child=null;return oC(e,n,r,t)}if(0==(0x20000000&t))return n.lanes=n.childLanes=0x20000000,oC(e,n,null!==a?a.baseLanes|t:t,t);n.memoizedState={baseLanes:0,cachePool:null},null!==e&&lr(n,null!==a?a.cachePool:null),null!==a?lR(n,a):lI(),lQ(n)}else null!==a?(lr(n,a.cachePool),lR(n,a),lB(n),n.memoizedState=null):(null!==e&&lr(n,null),lI(),lB(n));return ow(e,n,l,t),n.child}function oC(e,n,t,r){var l=lt();return n.memoizedState={baseLanes:t,cachePool:l=null===l?null:{parent:r2._currentValue,pool:l}},null!==e&&lr(n,null),lI(),lQ(n),null!==e&&rq(e,n,r,!0),null}function oP(e,n){return(n=oU({mode:n.mode,children:n.children},e.mode)).ref=e.ref,e.child=n,n.return=e,n}function oN(e,n,t){return lw(n,e.child,null,t),e=oP(n,n.pendingProps),e.flags|=2,lW(n),n.memoizedState=null,e}function oL(e,n){var t=n.ref;if(null===t)null!==e&&null!==e.ref&&(n.flags|=4194816);else{if("function"!=typeof t&&"object"!=typeof t)throw Error(i(284));(null===e||e.ref!==t)&&(n.flags|=4194816)}}function oT(e,n,t,r,l){return(rY(n),t=l9(e,n,t,r,void 0,l),r=at(),null===e||ok)?(rL&&r&&rE(n),n.flags|=1,ow(e,n,t,l),n.child):(ar(e,n,l),oQ(e,n,l))}function o_(e,n,t,r,l,a){return(rY(n),n.updateQueue=null,t=ae(n,r,t,l),l7(e),r=at(),null===e||ok)?(rL&&r&&rE(n),n.flags|=1,ow(e,n,t,a),n.child):(ar(e,n,a),oQ(e,n,a))}function oF(e,n,t,r,l){if(rY(n),null===n.stateNode){var a=re,o=t.contextType;"object"==typeof o&&null!==o&&(a=rX(o)),n.memoizedState=null!==(a=new t(r,a)).state&&void 0!==a.state?a.state:null,a.updater=ou,n.stateNode=a,a._reactInternals=n,(a=n.stateNode).props=r,a.state=n.memoizedState,a.refs={},lE(n),o=t.contextType,a.context="object"==typeof o&&null!==o?rX(o):re,a.state=n.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(oo(n,t,o,r),a.state=n.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(o=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),o!==a.state&&ou.enqueueReplaceState(a,a.state,null),lF(n,r,a,l),l_(),a.state=n.memoizedState),"function"==typeof a.componentDidMount&&(n.flags|=4194308),r=!0}else if(null===e){a=n.stateNode;var u=n.memoizedProps,i=oc(t,u);a.props=i;var s=a.context,c=t.contextType;o=re,"object"==typeof c&&null!==c&&(o=rX(c));var f=t.getDerivedStateFromProps;c="function"==typeof f||"function"==typeof a.getSnapshotBeforeUpdate,u=n.pendingProps!==u,c||"function"!=typeof a.UNSAFE_componentWillReceiveProps&&"function"!=typeof a.componentWillReceiveProps||(u||s!==o)&&os(n,a,r,o),lx=!1;var d=n.memoizedState;a.state=d,lF(n,r,a,l),l_(),s=n.memoizedState,u||d!==s||lx?("function"==typeof f&&(oo(n,t,f,r),s=n.memoizedState),(i=lx||oi(n,t,i,r,d,s,o))?(c||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||("function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount()),"function"==typeof a.componentDidMount&&(n.flags|=4194308)):("function"==typeof a.componentDidMount&&(n.flags|=4194308),n.memoizedProps=r,n.memoizedState=s),a.props=r,a.state=s,a.context=o,r=i):("function"==typeof a.componentDidMount&&(n.flags|=4194308),r=!1)}else{a=n.stateNode,lz(e,n),c=oc(t,o=n.memoizedProps),a.props=c,f=n.pendingProps,d=a.context,s=t.contextType,i=re,"object"==typeof s&&null!==s&&(i=rX(s)),(s="function"==typeof(u=t.getDerivedStateFromProps)||"function"==typeof a.getSnapshotBeforeUpdate)||"function"!=typeof a.UNSAFE_componentWillReceiveProps&&"function"!=typeof a.componentWillReceiveProps||(o!==f||d!==i)&&os(n,a,r,i),lx=!1,d=n.memoizedState,a.state=d,lF(n,r,a,l),l_();var p=n.memoizedState;o!==f||d!==p||lx||null!==e&&null!==e.dependencies&&rK(e.dependencies)?("function"==typeof u&&(oo(n,t,u,r),p=n.memoizedState),(c=lx||oi(n,t,c,r,d,p,i)||null!==e&&null!==e.dependencies&&rK(e.dependencies))?(s||"function"!=typeof a.UNSAFE_componentWillUpdate&&"function"!=typeof a.componentWillUpdate||("function"==typeof a.componentWillUpdate&&a.componentWillUpdate(r,p,i),"function"==typeof a.UNSAFE_componentWillUpdate&&a.UNSAFE_componentWillUpdate(r,p,i)),"function"==typeof a.componentDidUpdate&&(n.flags|=4),"function"==typeof a.getSnapshotBeforeUpdate&&(n.flags|=1024)):("function"!=typeof a.componentDidUpdate||o===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!=typeof a.getSnapshotBeforeUpdate||o===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),n.memoizedProps=r,n.memoizedState=p),a.props=r,a.state=p,a.context=i,r=c):("function"!=typeof a.componentDidUpdate||o===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!=typeof a.getSnapshotBeforeUpdate||o===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),r=!1)}return a=r,oL(e,n),r=0!=(128&n.flags),a||r?(a=n.stateNode,t=r&&"function"!=typeof t.getDerivedStateFromError?null:a.render(),n.flags|=1,null!==e&&r?(n.child=lw(n,e.child,null,l),n.child=lw(n,null,t,l)):ow(e,n,t,l),n.memoizedState=a.state,e=n.child):e=oQ(e,n,l),e}function oD(e,n,t,r){return rR(),n.flags|=256,ow(e,n,t,r),n.child}var oO={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function oM(e){return{baseLanes:e,cachePool:ll()}}function oA(e,n,t){return e=null!==e?e.childLanes&~t:0,n&&(e|=uK),e}function oR(e,n,t){var r,l=n.pendingProps,a=!1,o=0!=(128&n.flags);if((r=o)||(r=(null===e||null!==e.memoizedState)&&0!=(2&lq.current)),r&&(a=!0,n.flags&=-129),r=0!=(32&n.flags),n.flags&=-33,null===e){if(rL){if(a?lV(n):lB(n),(e=rN)?null!==(e=null!==(e=sN(e,r_))&&"&"!==e.data?e:null)&&(n.memoizedState={dehydrated:e,treeContext:null!==rb?{id:rk,overflow:rw}:null,retryLane:0x20000000,hydrationErrors:null},(t=rs(e)).return=n,n.child=t,rP=n,rN=null):e=null,null===e)throw rD(n);return sT(e)?n.lanes=32:n.lanes=0x20000000,null}var u=l.children;return(l=l.fallback,a)?(lB(n),u=oU({mode:"hidden",children:u},a=n.mode),l=ru(l,a,t,null),u.return=n,l.return=n,u.sibling=l,n.child=u,(u=n.child).memoizedState=oM(t),u.childLanes=oA(e,r,t),n.memoizedState=oO,l):(lV(n),oI(n,u))}var s=e.memoizedState;if(null!==s&&null!==(u=s.dehydrated)){if(o)256&n.flags?(lV(n),n.flags&=-257,n=o$(e,n,t)):null!==n.memoizedState?(lB(n),n.child=e.child,n.flags|=128,n=null):(lB(n),u=l.fallback,a=n.mode,l=oU({mode:"visible",children:l.children},a),u=ru(u,a,t,null),u.flags|=2,l.return=n,u.return=n,l.sibling=u,n.child=l,lw(n,e.child,null,t),(l=n.child).memoizedState=oM(t),l.childLanes=oA(e,r,t),n.memoizedState=oO,n=u);else if(lV(n),sT(u)){if(r=u.nextSibling&&u.nextSibling.dataset)var c=r.dgst;r=c,(l=Error(i(419))).stack="",l.digest=r,rU({value:l,source:null,stack:null}),n=o$(e,n,t)}else if(ok||rq(e,n,t,!1),r=0!=(t&e.childLanes),ok||r){if(null!==(r=uM)&&0!==(l=e_(r,t))&&l!==s.retryLane)throw s.retryLane=l,t6(e,l),ia(r,e,l),ob;sL(u)||iy(),n=o$(e,n,t)}else sL(u)?(n.flags|=192,n.child=e.child,n=null):(e=s.treeContext,rN=s_(u.nextSibling),rP=n,rL=!0,rT=null,r_=!1,null!==e&&rC(n,e),n=oI(n,l.children),n.flags|=4096);return n}return a?(lB(n),u=l.fallback,a=n.mode,c=(s=e.child).sibling,(l=rl(s,{mode:"hidden",children:l.children})).subtreeFlags=0x3e00000&s.subtreeFlags,null!==c?u=rl(c,u):(u=ru(u,a,t,null),u.flags|=2),u.return=n,l.return=n,l.sibling=u,n.child=l,l=u,u=n.child,null===(a=e.child.memoizedState)?a=oM(t):(null!==(s=a.cachePool)?(c=r2._currentValue,s=s.parent!==c?{parent:c,pool:c}:s):s=ll(),a={baseLanes:a.baseLanes|t,cachePool:s}),u.memoizedState=a,u.childLanes=oA(e,r,t),n.memoizedState=oO,l):(lV(n),e=(t=e.child).sibling,(t=rl(t,{mode:"visible",children:l.children})).return=n,t.sibling=null,null!==e&&(null===(r=n.deletions)?(n.deletions=[e],n.flags|=16):r.push(e)),n.child=t,n.memoizedState=null,t)}function oI(e,n){return(n=oU({mode:"visible",children:n},e.mode)).return=e,e.child=n}function oU(e,n){return(e=rt(22,e,null,n)).lanes=0,e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},e}function o$(e,n,t){return lw(n,e.child,null,t),e=oI(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function oj(e,n,t){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n),rB(e.return,n,t)}function oV(e,n,t,r,l,a){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:r,tail:t,tailMode:l,treeForkCount:a}:(o.isBackwards=n,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=t,o.tailMode=l,o.treeForkCount=a)}function oH(e,n,t){var r=n.pendingProps,l=r.revealOrder,a=r.tail;r=r.children;var o=lq.current,u=0!=(2&o);if(u?(o=1&o|2,n.flags|=128):o&=1,j(lq,o),ow(e,n,r,t),r=rL?rg:0,!u&&null!==e&&0!=(128&e.flags))e:for(e=n.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&oj(e,t,n);else if(19===e.tag)oj(e,t,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===n)break;for(;null===e.sibling;){if(null===e.return||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(l){case"forwards":for(l=null,t=n.child;null!==t;)null!==(e=t.alternate)&&null===lK(e)&&(l=t),t=t.sibling;null===(t=l)?(l=n.child,n.child=null):(l=t.sibling,t.sibling=null),oV(n,!1,l,t,a,r);break;case"backwards":case"unstable_legacy-backwards":for(t=null,l=n.child,n.child=null;null!==l;){if(null!==(e=l.alternate)&&null===lK(e)){n.child=l;break}e=l.sibling,l.sibling=t,t=l,l=e}oV(n,!0,t,null,a,r);break;case"together":oV(n,!1,null,null,void 0,r);break;default:n.memoizedState=null}return n.child}function oQ(e,n,t){if(null!==e&&(n.dependencies=e.dependencies),uB|=n.lanes,0==(t&n.childLanes)){if(null===e)return null;else if(rq(e,n,t,!1),0==(t&n.childLanes))return null}if(null!==e&&n.child!==e.child)throw Error(i(153));if(null!==n.child){for(t=rl(e=n.child,e.pendingProps),n.child=t,t.return=n;null!==e.sibling;)e=e.sibling,(t=t.sibling=rl(e,e.pendingProps)).return=n;t.sibling=null}return n.child}function oB(e,n){return 0!=(e.lanes&n)||!!(null!==(e=e.dependencies)&&rK(e))}function oW(e,n,t){if(null!==e)if(e.memoizedProps!==n.pendingProps)ok=!0;else{if(!oB(e,t)&&0==(128&n.flags))return ok=!1,function(e,n,t){switch(n.tag){case 3:W(n,n.stateNode.containerInfo),rH(n,r2,e.memoizedState.cache),rR();break;case 27:case 5:K(n);break;case 4:W(n,n.stateNode.containerInfo);break;case 10:rH(n,n.type,n.memoizedProps.value);break;case 31:if(null!==n.memoizedState)return n.flags|=128,lH(n),null;break;case 13:var r=n.memoizedState;if(null!==r){if(null!==r.dehydrated)return lV(n),n.flags|=128,null;if(0!=(t&n.child.childLanes))return oR(e,n,t);return lV(n),null!==(e=oQ(e,n,t))?e.sibling:null}lV(n);break;case 19:var l=0!=(128&e.flags);if((r=0!=(t&n.childLanes))||(rq(e,n,t,!1),r=0!=(t&n.childLanes)),l){if(r)return oH(e,n,t);n.flags|=128}if(null!==(l=n.memoizedState)&&(l.rendering=null,l.tail=null,l.lastEffect=null),j(lq,lq.current),!r)return null;break;case 22:return n.lanes=0,oz(e,n,t,n.pendingProps);case 24:rH(n,r2,e.memoizedState.cache)}return oQ(e,n,t)}(e,n,t);ok=0!=(131072&e.flags)}else ok=!1,rL&&0!=(1048576&n.flags)&&rx(n,rg,n.index);switch(n.lanes=0,n.tag){case 16:e:{e=n.pendingProps;var r=n.elementType,l=r._init;if(r=l(r._payload),n.type=r,"function"==typeof r)rr(r)?(e=oc(r,e),n.tag=1,n=oF(null,n,r,e,t)):(n.tag=0,n=oT(null,n,r,e,t));else{if(null!=r){if((l=r.$$typeof)===x){n.tag=11,n=oS(null,n,r,e,t);break e}else if(l===C){n.tag=14,n=ox(null,n,r,e,t);break e}}throw Error(i(306,n=function e(n){if(null==n)return null;if("function"==typeof n)return n.$$typeof===F?null:n.displayName||n.name||null;if("string"==typeof n)return n;switch(n){case v:return"Fragment";case k:return"Profiler";case b:return"StrictMode";case E:return"Suspense";case z:return"SuspenseList";case N:return"Activity"}if("object"==typeof n)switch(n.$$typeof){case y:return"Portal";case S:return n.displayName||"Context";case w:return(n._context.displayName||"Context")+".Consumer";case x:var t=n.render;return(n=n.displayName)||(n=""!==(n=t.displayName||t.name||"")?"ForwardRef("+n+")":"ForwardRef"),n;case C:return null!==(t=n.displayName||null)?t:e(n.type)||"Memo";case P:t=n._payload,n=n._init;try{return e(n(t))}catch(e){}}return null}(r)||r,""))}}return n;case 0:return oT(e,n,n.type,n.pendingProps,t);case 1:return l=oc(r=n.type,n.pendingProps),oF(e,n,r,l,t);case 3:e:{if(W(n,n.stateNode.containerInfo),null===e)throw Error(i(387));r=n.pendingProps;var a=n.memoizedState;l=a.element,lz(e,n),lF(n,r,null,t);var o=n.memoizedState;if(rH(n,r2,r=o.cache),r!==a.cache&&rW(n,[r2],t,!0),l_(),r=o.element,a.isDehydrated)if(a={element:r,isDehydrated:!1,cache:o.cache},n.updateQueue.baseState=a,n.memoizedState=a,256&n.flags){n=oD(e,n,r,t);break e}else if(r!==l){rU(l=rd(Error(i(424)),n)),n=oD(e,n,r,t);break e}else for(rN=s_((e=9===(e=n.stateNode.containerInfo).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e).firstChild),rP=n,rL=!0,rT=null,r_=!0,t=lS(n,null,r,t),n.child=t;t;)t.flags=-3&t.flags|4096,t=t.sibling;else{if(rR(),r===l){n=oQ(e,n,t);break e}ow(e,n,r,t)}n=n.child}return n;case 26:return oL(e,n),null===e?(t=sH(n.type,null,n.pendingProps,null))?n.memoizedState=t:rL||(t=n.type,e=n.pendingProps,(r=sm(Q.current).createElement(t))[eR]=n,r[eI]=e,sf(r,t,e),eX(r),n.stateNode=r):n.memoizedState=sH(n.type,e.memoizedProps,n.pendingProps,e.memoizedState),null;case 27:return K(n),null===e&&rL&&(r=n.stateNode=sM(n.type,n.pendingProps,Q.current),rP=n,r_=!0,l=rN,sE(n.type)?(sF=l,rN=s_(r.firstChild)):rN=l),ow(e,n,n.pendingProps.children,t),oL(e,n),null===e&&(n.flags|=4194304),n.child;case 5:return null===e&&rL&&((l=r=rN)&&(null!==(r=function(e,n,t,r){for(;1===e.nodeType;){if(e.nodeName.toLowerCase()!==n.toLowerCase()){if(!r&&("INPUT"!==e.nodeName||"hidden"!==e.type))break}else if(r){if(!e[eQ])switch(n){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if("stylesheet"===(l=e.getAttribute("rel"))&&e.hasAttribute("data-precedence")||l!==t.rel||e.getAttribute("href")!==(null==t.href||""===t.href?null:t.href)||e.getAttribute("crossorigin")!==(null==t.crossOrigin?null:t.crossOrigin)||e.getAttribute("title")!==(null==t.title?null:t.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(((l=e.getAttribute("src"))!==(null==t.src?null:t.src)||e.getAttribute("type")!==(null==t.type?null:t.type)||e.getAttribute("crossorigin")!==(null==t.crossOrigin?null:t.crossOrigin))&&l&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else{if("input"!==n||"hidden"!==e.type)return e;var l=null==t.name?null:""+t.name;if("hidden"===t.type&&e.getAttribute("name")===l)return e}if(null===(e=s_(e.nextSibling)))break}return null}(r,n.type,n.pendingProps,r_))?(n.stateNode=r,rP=n,rN=s_(r.firstChild),r_=!1,l=!0):l=!1),l||rD(n)),K(n),l=n.type,a=n.pendingProps,o=null!==e?e.memoizedProps:null,r=a.children,sy(l,a)?r=null:null!==o&&sy(l,o)&&(n.flags|=32),null!==n.memoizedState&&(s9._currentValue=l=l9(e,n,an,null,null,t)),oL(e,n),ow(e,n,r,t),n.child;case 6:return null===e&&rL&&((e=t=rN)&&(null!==(t=function(e,n,t){if(""===n)return null;for(;3!==e.nodeType;)if((1!==e.nodeType||"INPUT"!==e.nodeName||"hidden"!==e.type)&&!t||null===(e=s_(e.nextSibling)))return null;return e}(t,n.pendingProps,r_))?(n.stateNode=t,rP=n,rN=null,e=!0):e=!1),e||rD(n)),null;case 13:return oR(e,n,t);case 4:return W(n,n.stateNode.containerInfo),r=n.pendingProps,null===e?n.child=lw(n,null,r,t):ow(e,n,r,t),n.child;case 11:return oS(e,n,n.type,n.pendingProps,t);case 7:return ow(e,n,n.pendingProps,t),n.child;case 8:case 12:return ow(e,n,n.pendingProps.children,t),n.child;case 10:return r=n.pendingProps,rH(n,n.type,r.value),ow(e,n,r.children,t),n.child;case 9:return l=n.type._context,r=n.pendingProps.children,rY(n),r=r(l=rX(l)),n.flags|=1,ow(e,n,r,t),n.child;case 14:return ox(e,n,n.type,n.pendingProps,t);case 15:return oE(e,n,n.type,n.pendingProps,t);case 19:return oH(e,n,t);case 31:if(l=n.pendingProps,o=0!=(128&n.flags),n.flags&=-129,null===e)if(rL){if("hidden"===l.mode)oP(n,l);else if(lH(n),(t=rN)?null!==(t=null!==(t=sN(t,r_))&&"&"===t.data?t:null)&&(n.memoizedState={dehydrated:t,treeContext:null!==rb?{id:rk,overflow:rw}:null,retryLane:0x20000000,hydrationErrors:null},(e=rs(t)).return=n,n.child=e,rP=n,rN=null):t=null,null===t)throw rD(n);n.lanes=0x20000000,n=null}else n=oP(n,l);else if(null!==(r=e.memoizedState))if(a=r.dehydrated,lH(n),o)if(256&n.flags)n.flags&=-257,n=oN(e,n,t);else if(null!==n.memoizedState)n.child=e.child,n.flags|=128,n=null;else throw Error(i(558));else if(ok||rq(e,n,t,!1),o=0!=(t&e.childLanes),ok||o){if(null!==(l=uM)&&0!==(a=e_(l,t))&&a!==r.retryLane)throw r.retryLane=a,t6(e,a),ia(l,e,a),ob;iy(),n=oN(e,n,t)}else t=r.treeContext,rN=s_(a.nextSibling),rP=n,rL=!0,rT=null,r_=!1,null!==t&&rC(n,t),n=oP(n,l),n.flags|=4096;else(t=rl(e.child,{mode:l.mode,children:l.children})).ref=n.ref,n.child=t,t.return=n,n=t;return n;case 22:return oz(e,n,t,n.pendingProps);case 24:return rY(n),r=rX(r2),null===e?(null===(l=lt())&&(l=uM,a=r3(),l.pooledCache=a,a.refCount++,null!==a&&(l.pooledCacheLanes|=t),l=a),n.memoizedState={parent:r,cache:l},lE(n),rH(n,r2,l)):(0!=(e.lanes&t)&&(lz(e,n),lF(n,null,null,t),l_()),l=e.memoizedState,a=n.memoizedState,l.parent!==r?(l={parent:r,cache:r},n.memoizedState=l,0===n.lanes&&(n.memoizedState=n.updateQueue.baseState=l),rH(n,r2,r)):(rH(n,r2,r=a.cache),r!==l.cache&&rW(n,[r2],t,!0))),ow(e,n,n.pendingProps.children,t),n.child;case 29:throw n.pendingProps}throw Error(i(156,n.tag))}function oq(e){e.flags|=4}function oK(e,n,t,r,l){if((n=0!=(32&e.mode))&&(n=!1),n){if(e.flags|=0x1000000,(0x13ffff40&l)===l)if(e.stateNode.complete)e.flags|=8192;else if(im())e.flags|=8192;else throw lf=li,lo}else e.flags&=-0x1000001}function oY(e,n){if("stylesheet"!==n.type||0!=(4&n.state.loading))e.flags&=-0x1000001;else if(e.flags|=0x1000000,!s2(n))if(im())e.flags|=8192;else throw lf=li,lo}function oX(e,n){null!==n&&(e.flags|=4),16384&e.flags&&(n=22!==e.tag?eC():0x20000000,e.lanes|=n,uY|=n)}function oG(e,n){if(!rL)switch(e.tailMode){case"hidden":n=e.tail;for(var t=null;null!==n;)null!==n.alternate&&(t=n),n=n.sibling;null===t?e.tail=null:t.sibling=null;break;case"collapsed":t=e.tail;for(var r=null;null!==t;)null!==t.alternate&&(r=t),t=t.sibling;null===r?n||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function oZ(e){var n=null!==e.alternate&&e.alternate.child===e.child,t=0,r=0;if(n)for(var l=e.child;null!==l;)t|=l.lanes|l.childLanes,r|=0x3e00000&l.subtreeFlags,r|=0x3e00000&l.flags,l.return=e,l=l.sibling;else for(l=e.child;null!==l;)t|=l.lanes|l.childLanes,r|=l.subtreeFlags,r|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=r,e.childLanes=t,n}function oJ(e,n){switch(rz(n),n.tag){case 3:rQ(r2),q();break;case 26:case 27:case 5:Y(n);break;case 4:q();break;case 31:null!==n.memoizedState&&lW(n);break;case 13:lW(n);break;case 19:$(lq);break;case 10:rQ(n.type);break;case 22:case 23:lW(n),lU(),null!==e&&$(ln);break;case 24:rQ(r2)}}function o0(e,n){try{var t=n.updateQueue,r=null!==t?t.lastEffect:null;if(null!==r){var l=r.next;t=l;do{if((t.tag&e)===e){r=void 0;var a=t.create;t.inst.destroy=r=a()}t=t.next}while(t!==l)}}catch(e){iF(n,n.return,e)}}function o1(e,n,t){try{var r=n.updateQueue,l=null!==r?r.lastEffect:null;if(null!==l){var a=l.next;r=a;do{if((r.tag&e)===e){var o=r.inst,u=o.destroy;if(void 0!==u){o.destroy=void 0,l=n;try{u()}catch(e){iF(l,t,e)}}}r=r.next}while(r!==a)}}catch(e){iF(n,n.return,e)}}function o2(e){var n=e.updateQueue;if(null!==n){var t=e.stateNode;try{lO(n,t)}catch(n){iF(e,e.return,n)}}}function o3(e,n,t){t.props=oc(e.type,e.memoizedProps),t.state=e.memoizedState;try{t.componentWillUnmount()}catch(t){iF(e,n,t)}}function o4(e,n){try{var t=e.ref;if(null!==t){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;default:r=e.stateNode}"function"==typeof t?e.refCleanup=t(r):t.current=r}}catch(t){iF(e,n,t)}}function o8(e,n){var t=e.ref,r=e.refCleanup;if(null!==t)if("function"==typeof r)try{r()}catch(t){iF(e,n,t)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if("function"==typeof t)try{t(null)}catch(t){iF(e,n,t)}else t.current=null}function o5(e){var n=e.type,t=e.memoizedProps,r=e.stateNode;try{switch(n){case"button":case"input":case"select":case"textarea":t.autoFocus&&r.focus();break;case"img":t.src?r.src=t.src:t.srcSet&&(r.srcset=t.srcSet)}}catch(n){iF(e,e.return,n)}}function o6(e,n,t){try{var r=e.stateNode;(function(e,n,t,r){switch(n){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var l=null,a=null,o=null,u=null,s=null,c=null,f=null;for(m in t){var d=t[m];if(t.hasOwnProperty(m)&&null!=d)switch(m){case"checked":case"value":break;case"defaultValue":s=d;default:r.hasOwnProperty(m)||ss(e,n,m,null,r,d)}}for(var p in r){var m=r[p];if(d=t[p],r.hasOwnProperty(p)&&(null!=m||null!=d))switch(p){case"type":a=m;break;case"name":l=m;break;case"checked":c=m;break;case"defaultChecked":f=m;break;case"value":o=m;break;case"defaultValue":u=m;break;case"children":case"dangerouslySetInnerHTML":if(null!=m)throw Error(i(137,n));break;default:m!==d&&ss(e,n,p,m,r,d)}}nl(e,o,u,s,c,f,a,l);return;case"select":for(a in m=o=u=p=null,t)if(s=t[a],t.hasOwnProperty(a)&&null!=s)switch(a){case"value":break;case"multiple":m=s;default:r.hasOwnProperty(a)||ss(e,n,a,null,r,s)}for(l in r)if(a=r[l],s=t[l],r.hasOwnProperty(l)&&(null!=a||null!=s))switch(l){case"value":p=a;break;case"defaultValue":u=a;break;case"multiple":o=a;default:a!==s&&ss(e,n,l,a,r,s)}n=u,t=o,r=m,null!=p?nu(e,!!t,p,!1):!!r!=!!t&&(null!=n?nu(e,!!t,n,!0):nu(e,!!t,t?[]:"",!1));return;case"textarea":for(u in m=p=null,t)if(l=t[u],t.hasOwnProperty(u)&&null!=l&&!r.hasOwnProperty(u))switch(u){case"value":case"children":break;default:ss(e,n,u,null,r,l)}for(o in r)if(l=r[o],a=t[o],r.hasOwnProperty(o)&&(null!=l||null!=a))switch(o){case"value":p=l;break;case"defaultValue":m=l;break;case"children":break;case"dangerouslySetInnerHTML":if(null!=l)throw Error(i(91));break;default:l!==a&&ss(e,n,o,l,r,a)}ni(e,p,m);return;case"option":for(var h in t)p=t[h],t.hasOwnProperty(h)&&null!=p&&!r.hasOwnProperty(h)&&("selected"===h?e.selected=!1:ss(e,n,h,null,r,p));for(s in r)p=r[s],m=t[s],r.hasOwnProperty(s)&&p!==m&&(null!=p||null!=m)&&("selected"===s?e.selected=p&&"function"!=typeof p&&"symbol"!=typeof p:ss(e,n,s,p,r,m));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var g in t)p=t[g],t.hasOwnProperty(g)&&null!=p&&!r.hasOwnProperty(g)&&ss(e,n,g,null,r,p);for(c in r)if(p=r[c],m=t[c],r.hasOwnProperty(c)&&p!==m&&(null!=p||null!=m))switch(c){case"children":case"dangerouslySetInnerHTML":if(null!=p)throw Error(i(137,n));break;default:ss(e,n,c,p,r,m)}return;default:if(nm(n)){for(var y in t)p=t[y],t.hasOwnProperty(y)&&void 0!==p&&!r.hasOwnProperty(y)&&sc(e,n,y,void 0,r,p);for(f in r)p=r[f],m=t[f],r.hasOwnProperty(f)&&p!==m&&(void 0!==p||void 0!==m)&&sc(e,n,f,p,r,m);return}}for(var v in t)p=t[v],t.hasOwnProperty(v)&&null!=p&&!r.hasOwnProperty(v)&&ss(e,n,v,null,r,p);for(d in r)p=r[d],m=t[d],r.hasOwnProperty(d)&&p!==m&&(null!=p||null!=m)&&ss(e,n,d,p,r,m)})(r,e.type,t,n),r[eI]=n}catch(n){iF(e,e.return,n)}}function o9(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&sE(e.type)||4===e.tag}function o7(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||o9(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&sE(e.type)||2&e.flags||null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function ue(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?t.insertBefore(e,n):t.appendChild(e);else if(4!==r&&(27===r&&sE(e.type)&&(t=e.stateNode),null!==(e=e.child)))for(ue(e,n,t),e=e.sibling;null!==e;)ue(e,n,t),e=e.sibling}function un(e){var n=e.stateNode,t=e.memoizedProps;try{for(var r=e.type,l=n.attributes;l.length;)n.removeAttributeNode(l[0]);sf(n,r,t),n[eR]=e,n[eI]=t}catch(n){iF(e,e.return,n)}}var ut=!1,ur=!1,ul=!1,ua="function"==typeof WeakSet?WeakSet:Set,uo=null;function uu(e,n,t){var r=t.flags;switch(t.tag){case 0:case 11:case 15:ub(e,t),4&r&&o0(5,t);break;case 1:if(ub(e,t),4&r)if(e=t.stateNode,null===n)try{e.componentDidMount()}catch(e){iF(t,t.return,e)}else{var l=oc(t.type,n.memoizedProps);n=n.memoizedState;try{e.componentDidUpdate(l,n,e.__reactInternalSnapshotBeforeUpdate)}catch(e){iF(t,t.return,e)}}64&r&&o2(t),512&r&&o4(t,t.return);break;case 3:if(ub(e,t),64&r&&null!==(e=t.updateQueue)){if(n=null,null!==t.child)switch(t.child.tag){case 27:case 5:case 1:n=t.child.stateNode}try{lO(e,n)}catch(e){iF(t,t.return,e)}}break;case 27:null===n&&4&r&&un(t);case 26:case 5:ub(e,t),null===n&&4&r&&o5(t),512&r&&o4(t,t.return);break;case 12:default:ub(e,t);break;case 31:ub(e,t),4&r&&ud(e,t);break;case 13:ub(e,t),4&r&&up(e,t),64&r&&null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)&&function(e,n){var t=e.ownerDocument;if("$~"===e.data)e._reactRetry=n;else if("$?"!==e.data||"loading"!==t.readyState)n();else{var r=function(){n(),t.removeEventListener("DOMContentLoaded",r)};t.addEventListener("DOMContentLoaded",r),e._reactRetry=r}}(e,t=iA.bind(null,t));break;case 22:if(!(r=null!==t.memoizedState||ut)){n=null!==n&&null!==n.memoizedState||ur,l=ut;var a=ur;ut=r,(ur=n)&&!a?function e(n,t,r){for(r=r&&0!=(8772&t.subtreeFlags),t=t.child;null!==t;){var l=t.alternate,a=n,o=t,u=o.flags;switch(o.tag){case 0:case 11:case 15:e(a,o,r),o0(4,o);break;case 1:if(e(a,o,r),"function"==typeof(a=(l=o).stateNode).componentDidMount)try{a.componentDidMount()}catch(e){iF(l,l.return,e)}if(null!==(a=(l=o).updateQueue)){var i=l.stateNode;try{var s=a.shared.hiddenCallbacks;if(null!==s)for(a.shared.hiddenCallbacks=null,a=0;a<s.length;a++)lD(s[a],i)}catch(e){iF(l,l.return,e)}}r&&64&u&&o2(o),o4(o,o.return);break;case 27:un(o);case 26:case 5:e(a,o,r),r&&null===l&&4&u&&o5(o),o4(o,o.return);break;case 12:default:e(a,o,r);break;case 31:e(a,o,r),r&&4&u&&ud(a,o);break;case 13:e(a,o,r),r&&4&u&&up(a,o);break;case 22:null===o.memoizedState&&e(a,o,r),o4(o,o.return);case 30:}t=t.sibling}}(e,t,0!=(8772&t.subtreeFlags)):ub(e,t),ut=l,ur=a}case 30:}}var ui=null,us=!1;function uc(e,n,t){for(t=t.child;null!==t;)uf(e,n,t),t=t.sibling}function uf(e,n,t){if(eh&&"function"==typeof eh.onCommitFiberUnmount)try{eh.onCommitFiberUnmount(em,t)}catch(e){}switch(t.tag){case 26:ur||o8(t,n),uc(e,n,t),t.memoizedState?t.memoizedState.count--:t.stateNode&&(t=t.stateNode).parentNode.removeChild(t);break;case 27:ur||o8(t,n);var r=ui,l=us;sE(t.type)&&(ui=t.stateNode,us=!1),uc(e,n,t),sA(t.stateNode),ui=r,us=l;break;case 5:ur||o8(t,n);case 6:if(r=ui,l=us,ui=null,uc(e,n,t),ui=r,us=l,null!==ui)if(us)try{(9===ui.nodeType?ui.body:"HTML"===ui.nodeName?ui.ownerDocument.body:ui).removeChild(t.stateNode)}catch(e){iF(t,n,e)}else try{ui.removeChild(t.stateNode)}catch(e){iF(t,n,e)}break;case 18:null!==ui&&(us?(sz(9===(e=ui).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e,t.stateNode),c_(e)):sz(ui,t.stateNode));break;case 4:r=ui,l=us,ui=t.stateNode.containerInfo,us=!0,uc(e,n,t),ui=r,us=l;break;case 0:case 11:case 14:case 15:ur||o1(2,t,n),ur||o1(4,t,n),uc(e,n,t);break;case 1:ur||(o8(t,n),"function"==typeof(r=t.stateNode).componentWillUnmount&&o3(t,n,r)),uc(e,n,t);break;case 21:default:uc(e,n,t);break;case 22:ur=(r=ur)||null!==t.memoizedState,uc(e,n,t),ur=r}}function ud(e,n){if(null===n.memoizedState&&null!==(e=n.alternate)&&null!==(e=e.memoizedState)){e=e.dehydrated;try{c_(e)}catch(e){iF(n,n.return,e)}}}function up(e,n){if(null===n.memoizedState&&null!==(e=n.alternate)&&null!==(e=e.memoizedState)&&null!==(e=e.dehydrated))try{c_(e)}catch(e){iF(n,n.return,e)}}function um(e,n){var t=function(e){switch(e.tag){case 31:case 13:case 19:var n=e.stateNode;return null===n&&(n=e.stateNode=new ua),n;case 22:return null===(n=(e=e.stateNode)._retryCache)&&(n=e._retryCache=new ua),n;default:throw Error(i(435,e.tag))}}(e);n.forEach(function(n){var r=iR.bind(null,e,n);t.has(n)||(t.add(n),n.then(r,r))})}function uh(e,n){var t=n.deletions;if(null!==t)for(var r=0;r<t.length;r++){var l=t[r],a=e,o=n,u=o;e:for(;null!==u;){switch(u.tag){case 27:if(sE(u.type)){ui=u.stateNode,us=!1;break e}break;case 5:ui=u.stateNode,us=!1;break e;case 3:case 4:ui=u.stateNode.containerInfo,us=!0;break e}u=u.return}if(null===ui)throw Error(i(160));uf(a,o,l),ui=null,us=!1,null!==(a=l.alternate)&&(a.return=null),l.return=null}if(13878&n.subtreeFlags)for(n=n.child;null!==n;)uy(n,e),n=n.sibling}var ug=null;function uy(e,n){var t=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:uh(n,e),uv(e),4&r&&(o1(3,e,e.return),o0(3,e),o1(5,e,e.return));break;case 1:uh(n,e),uv(e),512&r&&(ur||null===t||o8(t,t.return)),64&r&&ut&&null!==(e=e.updateQueue)&&null!==(r=e.callbacks)&&(t=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=null===t?r:t.concat(r));break;case 26:var l=ug;if(uh(n,e),uv(e),512&r&&(ur||null===t||o8(t,t.return)),4&r){var a=null!==t?t.memoizedState:null;if(r=e.memoizedState,null===t)if(null===r)if(null===e.stateNode){e:{r=e.type,t=e.memoizedProps,l=l.ownerDocument||l;n:switch(r){case"title":(!(a=l.getElementsByTagName("title")[0])||a[eQ]||a[eR]||"http://www.w3.org/2000/svg"===a.namespaceURI||a.hasAttribute("itemprop"))&&(a=l.createElement(r),l.head.insertBefore(a,l.querySelector("head > title"))),sf(a,r,t),a[eR]=e,eX(a),r=a;break e;case"link":var o=s0("link","href",l).get(r+(t.href||""));if(o){for(var u=0;u<o.length;u++)if((a=o[u]).getAttribute("href")===(null==t.href||""===t.href?null:t.href)&&a.getAttribute("rel")===(null==t.rel?null:t.rel)&&a.getAttribute("title")===(null==t.title?null:t.title)&&a.getAttribute("crossorigin")===(null==t.crossOrigin?null:t.crossOrigin)){o.splice(u,1);break n}}sf(a=l.createElement(r),r,t),l.head.appendChild(a);break;case"meta":if(o=s0("meta","content",l).get(r+(t.content||""))){for(u=0;u<o.length;u++)if((a=o[u]).getAttribute("content")===(null==t.content?null:""+t.content)&&a.getAttribute("name")===(null==t.name?null:t.name)&&a.getAttribute("property")===(null==t.property?null:t.property)&&a.getAttribute("http-equiv")===(null==t.httpEquiv?null:t.httpEquiv)&&a.getAttribute("charset")===(null==t.charSet?null:t.charSet)){o.splice(u,1);break n}}sf(a=l.createElement(r),r,t),l.head.appendChild(a);break;default:throw Error(i(468,r))}a[eR]=e,eX(a),r=a}e.stateNode=r}else s1(l,e.type,e.stateNode);else e.stateNode=sY(l,r,e.memoizedProps);else a!==r?(null===a?null!==t.stateNode&&(t=t.stateNode).parentNode.removeChild(t):a.count--,null===r?s1(l,e.type,e.stateNode):sY(l,r,e.memoizedProps)):null===r&&null!==e.stateNode&&o6(e,e.memoizedProps,t.memoizedProps)}break;case 27:uh(n,e),uv(e),512&r&&(ur||null===t||o8(t,t.return)),null!==t&&4&r&&o6(e,e.memoizedProps,t.memoizedProps);break;case 5:if(uh(n,e),uv(e),512&r&&(ur||null===t||o8(t,t.return)),32&e.flags){l=e.stateNode;try{nc(l,"")}catch(n){iF(e,e.return,n)}}4&r&&null!=e.stateNode&&(l=e.memoizedProps,o6(e,l,null!==t?t.memoizedProps:l)),1024&r&&(ul=!0);break;case 6:if(uh(n,e),uv(e),4&r){if(null===e.stateNode)throw Error(i(162));r=e.memoizedProps,t=e.stateNode;try{t.nodeValue=r}catch(n){iF(e,e.return,n)}}break;case 3:if(sJ=null,l=ug,ug=sU(n.containerInfo),uh(n,e),ug=l,uv(e),4&r&&null!==t&&t.memoizedState.isDehydrated)try{c_(n.containerInfo)}catch(n){iF(e,e.return,n)}ul&&(ul=!1,function e(n){if(1024&n.subtreeFlags)for(n=n.child;null!==n;){var t=n;e(t),5===t.tag&&1024&t.flags&&t.stateNode.reset(),n=n.sibling}}(e));break;case 4:r=ug,ug=sU(e.stateNode.containerInfo),uh(n,e),uv(e),ug=r;break;case 12:default:uh(n,e),uv(e);break;case 31:case 19:uh(n,e),uv(e),4&r&&null!==(r=e.updateQueue)&&(e.updateQueue=null,um(e,r));break;case 13:uh(n,e),uv(e),8192&e.child.flags&&null!==e.memoizedState!=(null!==t&&null!==t.memoizedState)&&(uJ=ea()),4&r&&null!==(r=e.updateQueue)&&(e.updateQueue=null,um(e,r));break;case 22:l=null!==e.memoizedState;var s=null!==t&&null!==t.memoizedState,c=ut,f=ur;if(ut=c||l,ur=f||s,uh(n,e),ur=f,ut=c,uv(e),8192&r)e:for((n=e.stateNode)._visibility=l?-2&n._visibility:1|n._visibility,l&&(null===t||s||ut||ur||function e(n){for(n=n.child;null!==n;){var t=n;switch(t.tag){case 0:case 11:case 14:case 15:o1(4,t,t.return),e(t);break;case 1:o8(t,t.return);var r=t.stateNode;"function"==typeof r.componentWillUnmount&&o3(t,t.return,r),e(t);break;case 27:sA(t.stateNode);case 26:case 5:o8(t,t.return),e(t);break;case 22:null===t.memoizedState&&e(t);break;default:e(t)}n=n.sibling}}(e)),t=null,n=e;;){if(5===n.tag||26===n.tag){if(null===t){s=t=n;try{if(a=s.stateNode,l)o=a.style,"function"==typeof o.setProperty?o.setProperty("display","none","important"):o.display="none";else{u=s.stateNode;var d=s.memoizedProps.style,p=null!=d&&d.hasOwnProperty("display")?d.display:null;u.style.display=null==p||"boolean"==typeof p?"":(""+p).trim()}}catch(e){iF(s,s.return,e)}}}else if(6===n.tag){if(null===t){s=n;try{s.stateNode.nodeValue=l?"":s.memoizedProps}catch(e){iF(s,s.return,e)}}}else if(18===n.tag){if(null===t){s=n;try{var m=s.stateNode;l?sC(m,!0):sC(s.stateNode,!1)}catch(e){iF(s,s.return,e)}}}else if((22!==n.tag&&23!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)break e;t===n&&(t=null),n=n.return}t===n&&(t=null),n.sibling.return=n.return,n=n.sibling}4&r&&null!==(r=e.updateQueue)&&null!==(t=r.retryQueue)&&(r.retryQueue=null,um(e,t));case 30:case 21:}}function uv(e){var n=e.flags;if(2&n){try{for(var t,r=e.return;null!==r;){if(o9(r)){t=r;break}r=r.return}if(null==t)throw Error(i(160));switch(t.tag){case 27:var l=t.stateNode,a=o7(e);ue(e,a,l);break;case 5:var o=t.stateNode;32&t.flags&&(nc(o,""),t.flags&=-33);var u=o7(e);ue(e,u,o);break;case 3:case 4:var s=t.stateNode.containerInfo,c=o7(e);!function e(n,t,r){var l=n.tag;if(5===l||6===l)n=n.stateNode,t?(9===r.nodeType?r.body:"HTML"===r.nodeName?r.ownerDocument.body:r).insertBefore(n,t):((t=9===r.nodeType?r.body:"HTML"===r.nodeName?r.ownerDocument.body:r).appendChild(n),null!=(r=r._reactRootContainer)||null!==t.onclick||(t.onclick=nv));else if(4!==l&&(27===l&&sE(n.type)&&(r=n.stateNode,t=null),null!==(n=n.child)))for(e(n,t,r),n=n.sibling;null!==n;)e(n,t,r),n=n.sibling}(e,c,s);break;default:throw Error(i(161))}}catch(n){iF(e,e.return,n)}e.flags&=-3}4096&n&&(e.flags&=-4097)}function ub(e,n){if(8772&n.subtreeFlags)for(n=n.child;null!==n;)uu(e,n.alternate,n),n=n.sibling}function uk(e,n){var t=null;null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(t=e.memoizedState.cachePool.pool),e=null,null!==n.memoizedState&&null!==n.memoizedState.cachePool&&(e=n.memoizedState.cachePool.pool),e!==t&&(null!=e&&e.refCount++,null!=t&&r4(t))}function uw(e,n){e=null,null!==n.alternate&&(e=n.alternate.memoizedState.cache),(n=n.memoizedState.cache)!==e&&(n.refCount++,null!=e&&r4(e))}function uS(e,n,t,r){if(10256&n.subtreeFlags)for(n=n.child;null!==n;)ux(e,n,t,r),n=n.sibling}function ux(e,n,t,r){var l=n.flags;switch(n.tag){case 0:case 11:case 15:uS(e,n,t,r),2048&l&&o0(9,n);break;case 1:case 31:case 13:default:uS(e,n,t,r);break;case 3:uS(e,n,t,r),2048&l&&(e=null,null!==n.alternate&&(e=n.alternate.memoizedState.cache),(n=n.memoizedState.cache)!==e&&(n.refCount++,null!=e&&r4(e)));break;case 12:if(2048&l){uS(e,n,t,r),e=n.stateNode;try{var a=n.memoizedProps,o=a.id,u=a.onPostCommit;"function"==typeof u&&u(o,null===n.alternate?"mount":"update",e.passiveEffectDuration,-0)}catch(e){iF(n,n.return,e)}}else uS(e,n,t,r);break;case 23:break;case 22:a=n.stateNode,o=n.alternate,null!==n.memoizedState?2&a._visibility?uS(e,n,t,r):uE(e,n):2&a._visibility?uS(e,n,t,r):(a._visibility|=2,function e(n,t,r,l,a){for(a=a&&0!=(10256&t.subtreeFlags),t=t.child;null!==t;){var o=t,u=o.flags;switch(o.tag){case 0:case 11:case 15:e(n,o,r,l,a),o0(8,o);break;case 23:break;case 22:var i=o.stateNode;null!==o.memoizedState?2&i._visibility?e(n,o,r,l,a):uE(n,o):(i._visibility|=2,e(n,o,r,l,a)),a&&2048&u&&uk(o.alternate,o);break;case 24:e(n,o,r,l,a),a&&2048&u&&uw(o.alternate,o);break;default:e(n,o,r,l,a)}t=t.sibling}}(e,n,t,r,0!=(10256&n.subtreeFlags))),2048&l&&uk(o,n);break;case 24:uS(e,n,t,r),2048&l&&uw(n.alternate,n)}}function uE(e,n){if(10256&n.subtreeFlags)for(n=n.child;null!==n;){var t=n,r=t.flags;switch(t.tag){case 22:uE(e,t),2048&r&&uk(t.alternate,t);break;case 24:uE(e,t),2048&r&&uw(t.alternate,t);break;default:uE(e,t)}n=n.sibling}}var uz=8192;function uC(e){if(e.subtreeFlags&uz)for(e=e.child;null!==e;)uP(e),e=e.sibling}function uP(e){switch(e.tag){case 26:uC(e),e.flags&uz&&null!==e.memoizedState&&function(e,n,t){if(null===s3)throw Error(i(475));var r=s3;if("stylesheet"===n.type&&("string"!=typeof t.media||!1!==matchMedia(t.media).matches)&&0==(4&n.state.loading)){if(null===n.instance){var l=sQ(t.href),a=e.querySelector(sB(l));if(a){null!==(e=a._p)&&"object"==typeof e&&"function"==typeof e.then&&(r.count++,r=s4.bind(r),e.then(r,r)),n.state.loading|=4,n.instance=a,eX(a);return}a=e.ownerDocument||e,t=sW(t),(l=sR.get(l))&&sG(t,l),eX(a=a.createElement("link"));var o=a;o._p=new Promise(function(e,n){o.onload=e,o.onerror=n}),sf(a,"link",t),n.instance=a}null===r.stylesheets&&(r.stylesheets=new Map),r.stylesheets.set(n,e),(e=n.state.preload)&&0==(3&n.state.loading)&&(r.count++,n=s4.bind(r),e.addEventListener("load",n),e.addEventListener("error",n))}}(ug,e.memoizedState,e.memoizedProps);break;case 5:default:uC(e);break;case 3:case 4:var n=ug;ug=sU(e.stateNode.containerInfo),uC(e),ug=n;break;case 22:null===e.memoizedState&&(null!==(n=e.alternate)&&null!==n.memoizedState?(n=uz,uz=0x1000000,uC(e),uz=n):uC(e))}}function uN(e){var n=e.alternate;if(null!==n&&null!==(e=n.child)){n.child=null;do n=e.sibling,e.sibling=null,e=n;while(null!==e)}}function uL(e){var n=e.deletions;if(0!=(16&e.flags)){if(null!==n)for(var t=0;t<n.length;t++){var r=n[t];uo=r,u_(r,e)}uN(e)}if(10256&e.subtreeFlags)for(e=e.child;null!==e;)uT(e),e=e.sibling}function uT(e){switch(e.tag){case 0:case 11:case 15:uL(e),2048&e.flags&&o1(9,e,e.return);break;case 3:case 12:default:uL(e);break;case 22:var n=e.stateNode;null!==e.memoizedState&&2&n._visibility&&(null===e.return||13!==e.return.tag)?(n._visibility&=-3,function e(n){var t=n.deletions;if(0!=(16&n.flags)){if(null!==t)for(var r=0;r<t.length;r++){var l=t[r];uo=l,u_(l,n)}uN(n)}for(n=n.child;null!==n;){switch((t=n).tag){case 0:case 11:case 15:o1(8,t,t.return),e(t);break;case 22:2&(r=t.stateNode)._visibility&&(r._visibility&=-3,e(t));break;default:e(t)}n=n.sibling}}(e)):uL(e)}}function u_(e,n){for(;null!==uo;){var t=uo;switch(t.tag){case 0:case 11:case 15:o1(8,t,n);break;case 23:case 22:if(null!==t.memoizedState&&null!==t.memoizedState.cachePool){var r=t.memoizedState.cachePool.pool;null!=r&&r.refCount++}break;case 24:r4(t.memoizedState.cache)}if(null!==(r=t.child))r.return=t,uo=r;else for(t=e;null!==uo;){var l=(r=uo).sibling,a=r.return;if(!function e(n){var t=n.alternate;null!==t&&(n.alternate=null,e(t)),n.child=null,n.deletions=null,n.sibling=null,5===n.tag&&null!==(t=n.stateNode)&&eB(t),n.stateNode=null,n.return=null,n.dependencies=null,n.memoizedProps=null,n.memoizedState=null,n.pendingProps=null,n.stateNode=null,n.updateQueue=null}(r),r===t){uo=null;break}if(null!==l){l.return=a,uo=l;break}uo=a}}}var uF={getCacheForType:function(e){var n=rX(r2),t=n.data.get(e);return void 0===t&&(t=e(),n.data.set(e,t)),t},cacheSignal:function(){return rX(r2).controller.signal}},uD="function"==typeof WeakMap?WeakMap:Map,uO=0,uM=null,uA=null,uR=0,uI=0,uU=null,u$=!1,uj=!1,uV=!1,uH=0,uQ=0,uB=0,uW=0,uq=0,uK=0,uY=0,uX=null,uG=null,uZ=!1,uJ=0,u0=1/0,u1=null,u2=null,u3=0,u4=null,u8=null,u5=0,u6=0,u9=null,u7=null,ie=0,it=null;function ir(){return 0!=(2&uO)&&0!==uR?uR&-uR:null!==O.T?iG():eO()}function il(){0===uK&&(uK=0==(0x20000000&uR)||rL?ez():0x20000000);var e=l$.current;return null!==e&&(e.flags|=32),uK}function ia(e,n,t){(e===uM&&(2===uI||9===uI)||null!==e.cancelPendingCommit)&&(id(e,0),ii(e,uR,uK,!1)),eN(e,t),(0==(2&uO)||e!==uM)&&(e===uM&&(0==(2&uO)&&(uW|=t),4===uQ&&ii(e,uR,uK,!1)),iQ(e))}function io(e,n,t){if(0!=(6&uO))throw Error(i(327));for(var r=!t&&0==(124&n)&&0==(n&e.expiredLanes)||eE(e,n),l=r?function(e,n){var t=uO;uO|=2;var r=ih(),l=ig();uM!==e||uR!==n?(u1=null,u0=ea()+500,id(e,n)):uj=eE(e,n);e:for(;;)try{if(0!==uI&&null!==uA){n=uA;var a=uU;n:switch(uI){case 1:uI=0,uU=null,iw(e,n,a,1);break;case 2:case 9:if(ls(a)){uI=0,uU=null,ik(n);break}n=function(){2!==uI&&9!==uI||uM!==e||(uI=7),iQ(e)},a.then(n,n);break e;case 3:uI=7;break e;case 4:uI=5;break e;case 7:ls(a)?(uI=0,uU=null,ik(n)):(uI=0,uU=null,iw(e,n,a,7));break;case 5:var o=null;switch(uA.tag){case 26:o=uA.memoizedState;case 5:case 27:var u=uA;if(o?s2(o):u.stateNode.complete){uI=0,uU=null;var s=u.sibling;if(null!==s)uA=s;else{var c=u.return;null!==c?(uA=c,iS(c)):uA=null}break n}}uI=0,uU=null,iw(e,n,a,5);break;case 6:uI=0,uU=null,iw(e,n,a,6);break;case 8:ic(),uQ=6;break e;default:throw Error(i(462))}}for(;null!==uA&&!er();)ib(uA);break}catch(n){ip(e,n)}return(rV=rj=null,O.H=r,O.A=l,uO=t,null!==uA)?0:(uM=null,uR=0,t4(),uQ)}(e,n):iv(e,n,!0),a=r;;){if(0===l)uj&&!r&&ii(e,n,0,!1);else{if(t=e.current.alternate,a&&!function(e){for(var n=e;;){var t=n.tag;if((0===t||11===t||15===t)&&16384&n.flags&&null!==(t=n.updateQueue)&&null!==(t=t.stores))for(var r=0;r<t.length;r++){var l=t[r],a=l.getSnapshot;l=l.value;try{if(!tP(a(),l))return!1}catch(e){return!1}}if(t=n.child,16384&n.subtreeFlags&&null!==t)t.return=n,n=t;else{if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}(t)){l=iv(e,n,!1),a=!1;continue}if(2===l){if(a=n,e.errorRecoveryDisabledLanes&a)var o=0;else o=0!=(o=-0x20000001&e.pendingLanes)?o:0x20000000&o?0x20000000:0;if(0!==o){n=o;e:{l=uX;var u=e.current.memoizedState.isDehydrated;if(u&&(id(e,o).flags|=256),2!==(o=iv(e,o,!1))){if(uV&&!u){e.errorRecoveryDisabledLanes|=a,uW|=a,l=4;break e}a=uG,uG=l,null!==a&&(null===uG?uG=a:uG.push.apply(uG,a))}l=o}if(a=!1,2!==l)continue}}if(1===l){id(e,0),ii(e,n,0,!0);break}e:{switch(r=e,a=l){case 0:case 1:throw Error(i(345));case 4:if((4194048&n)!==n)break;case 6:ii(r,n,uK,!u$);break e;case 2:uG=null;break;case 3:case 5:break;default:throw Error(i(329))}if((0x3c00000&n)===n&&10<(l=uJ+300-ea())){if(ii(r,n,uK,!u$),0!==ex(r,0,!0))break e;r.timeoutHandle=sb(iu.bind(null,r,t,uG,u1,uZ,n,uK,uW,uY,u$,a,2,-0,0),l);break e}iu(r,t,uG,u1,uZ,n,uK,uW,uY,u$,a,0,-0,0)}}break}iQ(e)}function iu(e,n,t,r,l,a,o,u,s,c,f,d,p,m){if(e.timeoutHandle=-1,(8192&(d=n.subtreeFlags)||0x1002000==(0x1002000&d))&&(s3={stylesheets:null,count:0,unsuspend:nv},uP(n),null!==(d=function(){if(null===s3)throw Error(i(475));var e=s3;return e.stylesheets&&0===e.count&&s5(e,e.stylesheets),0<e.count?function(n){var t=setTimeout(function(){if(e.stylesheets&&s5(e,e.stylesheets),e.unsuspend){var n=e.unsuspend;e.unsuspend=null,n()}},6e4);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(t)}}:null}()))){e.cancelPendingCommit=d(iE.bind(null,e,n,a,t,r,l,o,u,s,f,1,p,m)),ii(e,a,o,!c);return}iE(e,n,a,t,r,l,o,u,s)}function ii(e,n,t,r){n&=~uq,n&=~uW,e.suspendedLanes|=n,e.pingedLanes&=~n,r&&(e.warmLanes|=n),r=e.expirationTimes;for(var l=n;0<l;){var a=31-ey(l),o=1<<a;r[a]=-1,l&=~o}0!==t&&eL(e,t,n)}function is(){return 0!=(6&uO)||(iB(0,!1),!1)}function ic(){if(null!==uA){if(0===uI)var e=uA.return;else e=uA,rV=rj=null,al(e),lm=null,lh=0,e=uA;for(;null!==e;)oJ(e.alternate,e),e=e.return;uA=null}}function id(e,n){var t=e.timeoutHandle;-1!==t&&(e.timeoutHandle=-1,sk(t)),null!==(t=e.cancelPendingCommit)&&(e.cancelPendingCommit=null,t()),ic(),uM=e,uA=t=rl(e.current,null),uR=n,uI=0,uU=null,u$=!1,uj=eE(e,n),uV=!1,uY=uK=uq=uW=uB=uQ=0,uG=uX=null,uZ=!1,0!=(8&n)&&(n|=32&n);var r=e.entangledLanes;if(0!==r)for(e=e.entanglements,r&=n;0<r;){var l=31-ey(r),a=1<<l;n|=e[l],r&=~a}return uH=n,t4(),t}function ip(e,n){lX=null,O.H=ot,n===la||n===lu?(n=ld(),uI=3):n===lo?(n=ld(),uI=4):uI=n===ob?8:null!==n&&"object"==typeof n&&"function"==typeof n.then?6:1,uU=n,null===uA&&(uQ=1,om(e,rd(n,e.current)))}function im(){var e=l$.current;return null===e||((4194048&uR)===uR?null===lj:((0x3c00000&uR)===uR||0!=(0x20000000&uR))&&e===lj)}function ih(){var e=O.H;return O.H=ot,null===e?ot:e}function ig(){var e=O.A;return O.A=uF,e}function iy(){uQ=4,u$||(4194048&uR)!==uR&&null!==l$.current||(uj=!0),0==(0x7ffffff&uB)&&0==(0x7ffffff&uW)||null===uM||ii(uM,uR,uK,!1)}function iv(e,n,t){var r=uO;uO|=2;var l=ih(),a=ig();(uM!==e||uR!==n)&&(u1=null,id(e,n)),n=!1;var o=uQ;e:for(;;)try{if(0!==uI&&null!==uA){var u=uA,i=uU;switch(uI){case 8:ic(),o=6;break e;case 3:case 2:case 9:case 6:null===l$.current&&(n=!0);var s=uI;if(uI=0,uU=null,iw(e,u,i,s),t&&uj){o=0;break e}break;default:s=uI,uI=0,uU=null,iw(e,u,i,s)}}(function(){for(;null!==uA;)ib(uA)})(),o=uQ;break}catch(n){ip(e,n)}return n&&e.shellSuspendCounter++,rV=rj=null,uO=r,O.H=l,O.A=a,null===uA&&(uM=null,uR=0,t4()),o}function ib(e){var n=oW(e.alternate,e,uH);e.memoizedProps=e.pendingProps,null===n?iS(e):uA=n}function ik(e){var n=e,t=n.alternate;switch(n.tag){case 15:case 0:n=o_(t,n,n.pendingProps,n.type,void 0,uR);break;case 11:n=o_(t,n,n.pendingProps,n.type.render,n.ref,uR);break;case 5:al(n);default:oJ(t,n),n=oW(t,n=uA=ra(n,uH),uH)}e.memoizedProps=e.pendingProps,null===n?iS(e):uA=n}function iw(e,n,t,r){rV=rj=null,al(n),lm=null,lh=0;var l=n.return;try{if(function(e,n,t,r,l){if(t.flags|=32768,null!==r&&"object"==typeof r&&"function"==typeof r.then){if(null!==(n=t.alternate)&&rq(n,t,l,!0),null!==(t=l$.current)){switch(t.tag){case 31:case 13:return null===lj?iy():null===t.alternate&&0===uQ&&(uQ=3),t.flags&=-257,t.flags|=65536,t.lanes=l,r===li?t.flags|=16384:(null===(n=t.updateQueue)?t.updateQueue=new Set([r]):n.add(r),iD(e,r,l)),!1;case 22:return t.flags|=65536,r===li?t.flags|=16384:(null===(n=t.updateQueue)?(n={transitions:null,markerInstances:null,retryQueue:new Set([r])},t.updateQueue=n):null===(t=n.retryQueue)?n.retryQueue=new Set([r]):t.add(r),iD(e,r,l)),!1}throw Error(i(435,t.tag))}return iD(e,r,l),iy(),!1}if(rL)return null!==(n=l$.current)?(0==(65536&n.flags)&&(n.flags|=256),n.flags|=65536,n.lanes=l,r!==rF&&rU(rd(e=Error(i(422),{cause:r}),t))):(r!==rF&&rU(rd(n=Error(i(423),{cause:r}),t)),e=e.current.alternate,e.flags|=65536,l&=-l,e.lanes|=l,r=rd(r,t),l=og(e.stateNode,r,l),lL(e,l),4!==uQ&&(uQ=2)),!1;var a=Error(i(520),{cause:r});if(a=rd(a,t),null===uX?uX=[a]:uX.push(a),4!==uQ&&(uQ=2),null===n)return!0;r=rd(r,t),t=n;do{switch(t.tag){case 3:return t.flags|=65536,e=l&-l,t.lanes|=e,e=og(t.stateNode,r,e),lL(t,e),!1;case 1:if(n=t.type,a=t.stateNode,0==(128&t.flags)&&("function"==typeof n.getDerivedStateFromError||null!==a&&"function"==typeof a.componentDidCatch&&(null===u2||!u2.has(a))))return t.flags|=65536,l&=-l,t.lanes|=l,ov(l=oy(l),e,t,r),lL(t,l),!1}t=t.return}while(null!==t);return!1}(e,l,n,t,uR)){uQ=1,om(e,rd(t,e.current)),uA=null;return}}catch(n){if(null!==l)throw uA=l,n;uQ=1,om(e,rd(t,e.current)),uA=null;return}32768&n.flags?(rL||1===r?e=!0:uj||0!=(0x20000000&uR)?e=!1:(u$=e=!0,(2===r||9===r||3===r||6===r)&&null!==(r=l$.current)&&13===r.tag&&(r.flags|=16384)),ix(n,e)):iS(n)}function iS(e){var n=e;do{if(0!=(32768&n.flags))return void ix(n,u$);e=n.return;var t=function(e,n,t){var r=n.pendingProps;switch(rz(n),n.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:case 1:return oZ(n),null;case 3:return t=n.stateNode,r=null,null!==e&&(r=e.memoizedState.cache),n.memoizedState.cache!==r&&(n.flags|=2048),rQ(r2),q(),t.pendingContext&&(t.context=t.pendingContext,t.pendingContext=null),(null===e||null===e.child)&&(rA(n)?oq(n):null===e||e.memoizedState.isDehydrated&&0==(256&n.flags)||(n.flags|=1024,rI())),oZ(n),null;case 26:var l=n.type,a=n.memoizedState;return null===e?(oq(n),null!==a?(oZ(n),oY(n,a)):(oZ(n),oK(n,l,null,r,t))):a?a!==e.memoizedState?(oq(n),oZ(n),oY(n,a)):(oZ(n),n.flags&=-0x1000001):((e=e.memoizedProps)!==r&&oq(n),oZ(n),oK(n,l,e,r,t)),null;case 27:if(Y(n),t=Q.current,l=n.type,null!==e&&null!=n.stateNode)e.memoizedProps!==r&&oq(n);else{if(!r){if(null===n.stateNode)throw Error(i(166));return oZ(n),null}e=V.current,rA(n)?rO(n,e):(n.stateNode=e=sM(l,r,t),oq(n))}return oZ(n),null;case 5:if(Y(n),l=n.type,null!==e&&null!=n.stateNode)e.memoizedProps!==r&&oq(n);else{if(!r){if(null===n.stateNode)throw Error(i(166));return oZ(n),null}if(a=V.current,rA(n))rO(n,a);else{var o=sm(Q.current);switch(a){case 1:a=o.createElementNS("http://www.w3.org/2000/svg",l);break;case 2:a=o.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;default:switch(l){case"svg":a=o.createElementNS("http://www.w3.org/2000/svg",l);break;case"math":a=o.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;case"script":(a=o.createElement("div")).innerHTML="<script><\/script>",a=a.removeChild(a.firstChild);break;case"select":a="string"==typeof r.is?o.createElement("select",{is:r.is}):o.createElement("select"),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a="string"==typeof r.is?o.createElement(l,{is:r.is}):o.createElement(l)}}a[eR]=n,a[eI]=r;e:for(o=n.child;null!==o;){if(5===o.tag||6===o.tag)a.appendChild(o.stateNode);else if(4!==o.tag&&27!==o.tag&&null!==o.child){o.child.return=o,o=o.child;continue}if(o===n)break;for(;null===o.sibling;){if(null===o.return||o.return===n)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}switch(n.stateNode=a,sf(a,l,r),l){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break;case"img":r=!0;break;default:r=!1}r&&oq(n)}}return oZ(n),oK(n,n.type,null===e?null:e.memoizedProps,n.pendingProps,t),null;case 6:if(e&&null!=n.stateNode)e.memoizedProps!==r&&oq(n);else{if("string"!=typeof r&&null===n.stateNode)throw Error(i(166));if(e=Q.current,rA(n)){if(e=n.stateNode,t=n.memoizedProps,r=null,null!==(l=rP))switch(l.tag){case 27:case 5:r=l.memoizedProps}e[eR]=n,(e=!!(e.nodeValue===t||null!==r&&!0===r.suppressHydrationWarning||si(e.nodeValue,t)))||rD(n,!0)}else(e=sm(e).createTextNode(r))[eR]=n,n.stateNode=e}return oZ(n),null;case 31:if(t=n.memoizedState,null===e||null!==e.memoizedState){if(r=rA(n),null!==t){if(null===e){if(!r)throw Error(i(318));if(!(e=null!==(e=n.memoizedState)?e.dehydrated:null))throw Error(i(557));e[eR]=n}else rR(),0==(128&n.flags)&&(n.memoizedState=null),n.flags|=4;oZ(n),e=!1}else t=rI(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=t),e=!0;if(!e){if(256&n.flags)return lW(n),n;return lW(n),null}if(0!=(128&n.flags))throw Error(i(558))}return oZ(n),null;case 13:if(r=n.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(l=rA(n),null!==r&&null!==r.dehydrated){if(null===e){if(!l)throw Error(i(318));if(!(l=null!==(l=n.memoizedState)?l.dehydrated:null))throw Error(i(317));l[eR]=n}else rR(),0==(128&n.flags)&&(n.memoizedState=null),n.flags|=4;oZ(n),l=!1}else l=rI(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l){if(256&n.flags)return lW(n),n;return lW(n),null}}if(lW(n),0!=(128&n.flags))return n.lanes=t,n;return t=null!==r,e=null!==e&&null!==e.memoizedState,t&&(r=n.child,l=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(l=r.alternate.memoizedState.cachePool.pool),a=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(a=r.memoizedState.cachePool.pool),a!==l&&(r.flags|=2048)),t!==e&&t&&(n.child.flags|=8192),oX(n,n.updateQueue),oZ(n),null;case 4:return q(),null===e&&i9(n.stateNode.containerInfo),oZ(n),null;case 10:return rQ(n.type),oZ(n),null;case 19:if($(lq),null===(r=n.memoizedState))return oZ(n),null;if(l=0!=(128&n.flags),null===(a=r.rendering))if(l)oG(r,!1);else{if(0!==uQ||null!==e&&0!=(128&e.flags))for(e=n.child;null!==e;){if(null!==(a=lK(e))){for(n.flags|=128,oG(r,!1),n.updateQueue=e=a.updateQueue,oX(n,e),n.subtreeFlags=0,e=t,t=n.child;null!==t;)ra(t,e),t=t.sibling;return j(lq,1&lq.current|2),rL&&rS(n,r.treeForkCount),n.child}e=e.sibling}null!==r.tail&&ea()>u0&&(n.flags|=128,l=!0,oG(r,!1),n.lanes=4194304)}else{if(!l)if(null!==(e=lK(a))){if(n.flags|=128,l=!0,n.updateQueue=e=e.updateQueue,oX(n,e),oG(r,!0),null===r.tail&&"hidden"===r.tailMode&&!a.alternate&&!rL)return oZ(n),null}else 2*ea()-r.renderingStartTime>u0&&0x20000000!==t&&(n.flags|=128,l=!0,oG(r,!1),n.lanes=4194304);r.isBackwards?(a.sibling=n.child,n.child=a):(null!==(e=r.last)?e.sibling=a:n.child=a,r.last=a)}if(null!==r.tail)return e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ea(),e.sibling=null,t=lq.current,j(lq,l?1&t|2:1&t),rL&&rS(n,r.treeForkCount),e;return oZ(n),null;case 22:case 23:return lW(n),lU(),r=null!==n.memoizedState,null!==e?null!==e.memoizedState!==r&&(n.flags|=8192):r&&(n.flags|=8192),r?0!=(0x20000000&t)&&0==(128&n.flags)&&(oZ(n),6&n.subtreeFlags&&(n.flags|=8192)):oZ(n),null!==(t=n.updateQueue)&&oX(n,t.retryQueue),t=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(t=e.memoizedState.cachePool.pool),r=null,null!==n.memoizedState&&null!==n.memoizedState.cachePool&&(r=n.memoizedState.cachePool.pool),r!==t&&(n.flags|=2048),null!==e&&$(ln),null;case 24:return t=null,null!==e&&(t=e.memoizedState.cache),n.memoizedState.cache!==t&&(n.flags|=2048),rQ(r2),oZ(n),null;case 25:case 30:return null}throw Error(i(156,n.tag))}(n.alternate,n,uH);if(null!==t){uA=t;return}if(null!==(n=n.sibling)){uA=n;return}uA=n=e}while(null!==n);0===uQ&&(uQ=5)}function ix(e,n){do{var t=function(e,n){switch(rz(n),n.tag){case 1:return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 3:return rQ(r2),q(),0!=(65536&(e=n.flags))&&0==(128&e)?(n.flags=-65537&e|128,n):null;case 26:case 27:case 5:return Y(n),null;case 31:if(null!==n.memoizedState){if(lW(n),null===n.alternate)throw Error(i(340));rR()}return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 13:if(lW(n),null!==(e=n.memoizedState)&&null!==e.dehydrated){if(null===n.alternate)throw Error(i(340));rR()}return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 19:return $(lq),null;case 4:return q(),null;case 10:return rQ(n.type),null;case 22:case 23:return lW(n),lU(),null!==e&&$(ln),65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 24:return rQ(r2),null;default:return null}}(e.alternate,e);if(null!==t){t.flags&=32767,uA=t;return}if(null!==(t=e.return)&&(t.flags|=32768,t.subtreeFlags=0,t.deletions=null),!n&&null!==(e=e.sibling)){uA=e;return}uA=e=t}while(null!==e);uQ=6,uA=null}function iE(e,n,t,r,l,a,o,u,s){e.cancelPendingCommit=null;do iL();while(0!==u3);if(0!=(6&uO))throw Error(i(327));if(null!==n){if(n===e.current)throw Error(i(177));if(!function(e,n,t,r,l,a){var o=e.pendingLanes;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=t,e.entangledLanes&=t,e.errorRecoveryDisabledLanes&=t,e.shellSuspendCounter=0;var u=e.entanglements,i=e.expirationTimes,s=e.hiddenUpdates;for(t=o&~t;0<t;){var c=31-ey(t),f=1<<c;u[c]=0,i[c]=-1;var d=s[c];if(null!==d)for(s[c]=null,c=0;c<d.length;c++){var p=d[c];null!==p&&(p.lane&=-0x20000001)}t&=~f}0!==r&&eL(e,r,0),0!==a&&0===l&&0!==e.tag&&(e.suspendedLanes|=a&~(o&~n))}(e,t,a=n.lanes|n.childLanes|t3,o,u,s),e===uM&&(uA=uM=null,uR=0),u8=n,u4=e,u5=t,u6=a,u9=l,u7=r,0!=(10256&n.subtreeFlags)||0!=(10256&n.flags)?(e.callbackNode=null,e.callbackPriority=0,en(es,function(){return iT(!0),null})):(e.callbackNode=null,e.callbackPriority=0),r=0!=(13878&n.flags),0!=(13878&n.subtreeFlags)||r){r=O.T,O.T=null,l=M.p,M.p=2,o=uO,uO|=4;try{!function(e,n){if(e=e.containerInfo,sd=co,tF(e=t_(e))){if("selectionStart"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(t=(t=e.ownerDocument)&&t.defaultView||window).getSelection&&t.getSelection();if(r&&0!==r.rangeCount){t=r.anchorNode;var l,a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{t.nodeType,o.nodeType}catch(e){t=null;break e}var u=0,s=-1,c=-1,f=0,d=0,p=e,m=null;n:for(;;){for(;p!==t||0!==a&&3!==p.nodeType||(s=u+a),p!==o||0!==r&&3!==p.nodeType||(c=u+r),3===p.nodeType&&(u+=p.nodeValue.length),null!==(l=p.firstChild);)m=p,p=l;for(;;){if(p===e)break n;if(m===t&&++f===a&&(s=u),m===o&&++d===r&&(c=u),null!==(l=p.nextSibling))break;m=(p=m).parentNode}p=l}t=-1===s||-1===c?null:{start:s,end:c}}else t=null}t=t||{start:0,end:0}}else t=null;for(sp={focusedElem:e,selectionRange:t},co=!1,uo=n;null!==uo;)if(e=(n=uo).child,0!=(1024&n.subtreeFlags)&&null!==e)e.return=n,uo=e;else for(;null!==uo;){switch(o=(n=uo).alternate,e=n.flags,n.tag){case 0:case 11:case 15:case 5:case 26:case 27:case 6:case 4:case 17:break;case 1:if(0!=(1024&e)&&null!==o){e=void 0,t=n,a=o.memoizedProps,o=o.memoizedState,r=t.stateNode;try{var h=oc(t.type,a);e=r.getSnapshotBeforeUpdate(h,o),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){iF(t,t.return,e)}}break;case 3:if(0!=(1024&e)){if(9===(t=(e=n.stateNode.containerInfo).nodeType))sP(e);else if(1===t)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":sP(e);break;default:e.textContent=""}}break;default:if(0!=(1024&e))throw Error(i(163))}if(null!==(e=n.sibling)){e.return=n.return,uo=e;break}uo=n.return}}(e,n,t)}finally{uO=o,M.p=l,O.T=r}}u3=1,iz(),iC(),iP()}}function iz(){if(1===u3){u3=0;var e=u4,n=u8,t=0!=(13878&n.flags);if(0!=(13878&n.subtreeFlags)||t){t=O.T,O.T=null;var r=M.p;M.p=2;var l=uO;uO|=4;try{uy(n,e);var a=sp,o=t_(e.containerInfo),u=a.focusedElem,i=a.selectionRange;if(o!==u&&u&&u.ownerDocument&&function e(n,t){return!!n&&!!t&&(n===t||(!n||3!==n.nodeType)&&(t&&3===t.nodeType?e(n,t.parentNode):"contains"in n?n.contains(t):!!n.compareDocumentPosition&&!!(16&n.compareDocumentPosition(t))))}(u.ownerDocument.documentElement,u)){if(null!==i&&tF(u)){var s=i.start,c=i.end;if(void 0===c&&(c=s),"selectionStart"in u)u.selectionStart=s,u.selectionEnd=Math.min(c,u.value.length);else{var f=u.ownerDocument||document,d=f&&f.defaultView||window;if(d.getSelection){var p=d.getSelection(),m=u.textContent.length,h=Math.min(i.start,m),g=void 0===i.end?h:Math.min(i.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var y=tT(u,h),v=tT(u,g);if(y&&v&&(1!==p.rangeCount||p.anchorNode!==y.node||p.anchorOffset!==y.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var b=f.createRange();b.setStart(y.node,y.offset),p.removeAllRanges(),h>g?(p.addRange(b),p.extend(v.node,v.offset)):(b.setEnd(v.node,v.offset),p.addRange(b))}}}}for(f=[],p=u;p=p.parentNode;)1===p.nodeType&&f.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof u.focus&&u.focus(),u=0;u<f.length;u++){var k=f[u];k.element.scrollLeft=k.left,k.element.scrollTop=k.top}}co=!!sd,sp=sd=null}finally{uO=l,M.p=r,O.T=t}}e.current=n,u3=2}}function iC(){if(2===u3){u3=0;var e=u4,n=u8,t=0!=(8772&n.flags);if(0!=(8772&n.subtreeFlags)||t){t=O.T,O.T=null;var r=M.p;M.p=2;var l=uO;uO|=4;try{uu(e,n.alternate,n)}finally{uO=l,M.p=r,O.T=t}}u3=3}}function iP(){if(4===u3||3===u3){u3=0,el();var e=u4,n=u8,t=u5,r=u7;0!=(10256&n.subtreeFlags)||0!=(10256&n.flags)?u3=5:(u3=0,u8=u4=null,iN(e,e.pendingLanes));var l=e.pendingLanes;if(0===l&&(u2=null),eD(t),n=n.stateNode,eh&&"function"==typeof eh.onCommitFiberRoot)try{eh.onCommitFiberRoot(em,n,void 0,128==(128&n.current.flags))}catch(e){}if(null!==r){n=O.T,l=M.p,M.p=2,O.T=null;try{for(var a=e.onRecoverableError,o=0;o<r.length;o++){var u=r[o];a(u.value,{componentStack:u.stack})}}finally{O.T=n,M.p=l}}0!=(3&u5)&&iL(),iQ(e),l=e.pendingLanes,0!=(4194090&t)&&0!=(42&l)?e===it?ie++:(ie=0,it=e):ie=0,iB(0,!1)}}function iN(e,n){0==(e.pooledCacheLanes&=n)&&null!=(n=e.pooledCache)&&(e.pooledCache=null,r4(n))}function iL(e){return iz(),iC(),iP(),iT(e)}function iT(){if(5!==u3)return!1;var e=u4,n=u6;u6=0;var t=eD(u5),r=O.T,l=M.p;try{M.p=32>t?32:t,O.T=null,t=u9,u9=null;var a=u4,o=u5;if(u3=0,u8=u4=null,u5=0,0!=(6&uO))throw Error(i(331));var u=uO;if(uO|=4,uT(a.current),ux(a,a.current,o,t),uO=u,iB(0,!1),eh&&"function"==typeof eh.onPostCommitFiberRoot)try{eh.onPostCommitFiberRoot(em,a)}catch(e){}return!0}finally{M.p=l,O.T=r,iN(e,n)}}function i_(e,n,t){n=rd(t,n),n=og(e.stateNode,n,2),null!==(e=lP(e,n,2))&&(eN(e,2),iQ(e))}function iF(e,n,t){if(3===e.tag)i_(e,e,t);else for(;null!==n;){if(3===n.tag){i_(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===u2||!u2.has(r))){e=rd(t,e),null!==(r=lP(n,t=oy(2),2))&&(ov(t,r,n,e),eN(r,2),iQ(r));break}}n=n.return}}function iD(e,n,t){var r=e.pingCache;if(null===r){r=e.pingCache=new uD;var l=new Set;r.set(n,l)}else void 0===(l=r.get(n))&&(l=new Set,r.set(n,l));l.has(t)||(uV=!0,l.add(t),e=iO.bind(null,e,n,t),n.then(e,e))}function iO(e,n,t){var r=e.pingCache;null!==r&&r.delete(n),e.pingedLanes|=e.suspendedLanes&t,e.warmLanes&=~t,uM===e&&(uR&t)===t&&(4===uQ||3===uQ&&(0x3c00000&uR)===uR&&300>ea()-uJ?0==(2&uO)&&id(e,0):uq|=t,uY===uR&&(uY=0)),iQ(e)}function iM(e,n){0===n&&(n=eC()),null!==(e=t6(e,n))&&(eN(e,n),iQ(e))}function iA(e){var n=e.memoizedState,t=0;null!==n&&(t=n.retryLane),iM(e,t)}function iR(e,n){var t=0;switch(e.tag){case 31:case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(t=l.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}null!==r&&r.delete(n),iM(e,t)}var iI=null,iU=null,i$=!1,ij=!1,iV=!1,iH=0;function iQ(e){e!==iU&&null===e.next&&(null===iU?iI=iU=e:iU=iU.next=e),ij=!0,i$||(i$=!0,sS(function(){0!=(6&uO)?en(eu,iW):iq()}))}function iB(e,n){if(!iV&&ij){iV=!0;do for(var t=!1,r=iI;null!==r;){if(!n)if(0!==e){var l=r.pendingLanes;if(0===l)var a=0;else{var o=r.suspendedLanes,u=r.pingedLanes;a=0xc000095&(a=(1<<31-ey(42|e)+1)-1&(l&~(o&~u)))?0xc000095&a|1:a?2|a:0}0!==a&&(t=!0,iX(r,a))}else a=uR,0==(3&(a=ex(r,r===uM?a:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||eE(r,a)||(t=!0,iX(r,a));r=r.next}while(t);iV=!1}}function iW(){iq()}function iq(){ij=i$=!1;var e,n=0;0===iH||((e=window.event)&&"popstate"===e.type?e===sv||(sv=e,0):(sv=null,1))||(n=iH);for(var t=ea(),r=null,l=iI;null!==l;){var a=l.next,o=iK(l,t);0===o?(l.next=null,null===r?iI=a:r.next=a,null===a&&(iU=r)):(r=l,(0!==n||0!=(3&o))&&(ij=!0)),l=a}0!==u3&&5!==u3||iB(n,!1),0!==iH&&(iH=0)}function iK(e,n){for(var t=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,a=-0x3c00001&e.pendingLanes;0<a;){var o=31-ey(a),u=1<<o,i=l[o];-1===i?(0==(u&t)||0!=(u&r))&&(l[o]=function(e,n){switch(e){case 1:case 2:case 4:case 8:case 64:return n+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;default:return -1}}(u,n)):i<=n&&(e.expiredLanes|=u),a&=~u}if(n=uM,t=uR,t=ex(e,e===n?t:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle),r=e.callbackNode,0===t||e===n&&(2===uI||9===uI)||null!==e.cancelPendingCommit)return null!==r&&null!==r&&et(r),e.callbackNode=null,e.callbackPriority=0;if(0==(3&t)||eE(e,t)){if((n=t&-t)===e.callbackPriority)return n;switch(null!==r&&et(r),eD(t)){case 2:case 8:t=ei;break;case 32:default:t=es;break;case 0x10000000:t=ef}return t=en(t,r=iY.bind(null,e)),e.callbackPriority=n,e.callbackNode=t,n}return null!==r&&null!==r&&et(r),e.callbackPriority=2,e.callbackNode=null,2}function iY(e,n){if(0!==u3&&5!==u3)return e.callbackNode=null,e.callbackPriority=0,null;var t=e.callbackNode;if(iL(!0)&&e.callbackNode!==t)return null;var r=uR;return 0===(r=ex(e,e===uM?r:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle))?null:(io(e,r,n),iK(e,ea()),null!=e.callbackNode&&e.callbackNode===t?iY.bind(null,e):null)}function iX(e,n){if(iL())return null;io(e,n,!0)}function iG(){if(0===iH){var e=r6;iH=0!==e?e:ez()}return iH}function iZ(e){return null==e||"symbol"==typeof e||"boolean"==typeof e?null:"function"==typeof e?e:ny(""+e)}function iJ(e,n){var t=n.ownerDocument.createElement("input");return t.name=n.name,t.value=n.value,e.id&&t.setAttribute("form",e.id),n.parentNode.insertBefore(t,n),e=new FormData(e),t.parentNode.removeChild(t),e}for(var i0=0;i0<tZ.length;i0++){var i1=tZ[i0];tJ(i1.toLowerCase(),"on"+(i1[0].toUpperCase()+i1.slice(1)))}tJ(tQ,"onAnimationEnd"),tJ(tB,"onAnimationIteration"),tJ(tW,"onAnimationStart"),tJ("dblclick","onDoubleClick"),tJ("focusin","onFocus"),tJ("focusout","onBlur"),tJ(tq,"onTransitionRun"),tJ(tK,"onTransitionStart"),tJ(tY,"onTransitionCancel"),tJ(tX,"onTransitionEnd"),e0("onMouseEnter",["mouseout","mouseover"]),e0("onMouseLeave",["mouseout","mouseover"]),e0("onPointerEnter",["pointerout","pointerover"]),e0("onPointerLeave",["pointerout","pointerover"]),eJ("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),eJ("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),eJ("onBeforeInput",["compositionend","keypress","textInput","paste"]),eJ("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),eJ("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),eJ("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var i2="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),i3=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(i2));function i4(e,n){n=0!=(4&n);for(var t=0;t<e.length;t++){var r=e[t],l=r.event;r=r.listeners;e:{var a=void 0;if(n)for(var o=r.length-1;0<=o;o--){var u=r[o],i=u.instance,s=u.currentTarget;if(u=u.listener,i!==a&&l.isPropagationStopped())break e;a=u,l.currentTarget=s;try{a(l)}catch(e){t0(e)}l.currentTarget=null,a=i}else for(o=0;o<r.length;o++){if(i=(u=r[o]).instance,s=u.currentTarget,u=u.listener,i!==a&&l.isPropagationStopped())break e;a=u,l.currentTarget=s;try{a(l)}catch(e){t0(e)}l.currentTarget=null,a=i}}}}function i8(e,n){var t=n[e$];void 0===t&&(t=n[e$]=new Set);var r=e+"__bubble";t.has(r)||(i7(n,e,2,!1),t.add(r))}function i5(e,n,t){var r=0;n&&(r|=4),i7(t,e,r,n)}var i6="_reactListening"+Math.random().toString(36).slice(2);function i9(e){if(!e[i6]){e[i6]=!0,eG.forEach(function(n){"selectionchange"!==n&&(i3.has(n)||i5(n,!1,e),i5(n,!0,e))});var n=9===e.nodeType?e:e.ownerDocument;null===n||n[i6]||(n[i6]=!0,i5("selectionchange",!1,n))}}function i7(e,n,t,r){switch(cp(n)){case 2:var l=cu;break;case 8:l=ci;break;default:l=cs}t=l.bind(null,n,t,e),l=void 0,nN&&("touchstart"===n||"touchmove"===n||"wheel"===n)&&(l=!0),r?void 0!==l?e.addEventListener(n,t,{capture:!0,passive:l}):e.addEventListener(n,t,!0):void 0!==l?e.addEventListener(n,t,{passive:l}):e.addEventListener(n,t,!1)}function se(e,n,t,r,l){var a=r;if(0==(1&n)&&0==(2&n)&&null!==r)e:for(;;){if(null===r)return;var o=r.tag;if(3===o||4===o){var u=r.stateNode.containerInfo;if(u===l)break;if(4===o)for(o=r.return;null!==o;){var i=o.tag;if((3===i||4===i)&&o.stateNode.containerInfo===l)return;o=o.return}for(;null!==u;){if(null===(o=eW(u)))return;if(5===(i=o.tag)||6===i||26===i||27===i){r=a=o;continue e}u=u.parentNode}}r=r.return}nz(function(){var r=a,l=nk(t),o=[];e:{var u=tG.get(e);if(void 0!==u){var i=nQ,s=e;switch(e){case"keypress":if(0===nO(t))break e;case"keydown":case"keyup":i=n8;break;case"focusin":s="focus",i=nX;break;case"focusout":s="blur",i=nX;break;case"beforeblur":case"afterblur":i=nX;break;case"click":if(2===t.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":i=nK;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":i=nY;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":i=n6;break;case tQ:case tB:case tW:i=nG;break;case tX:i=n9;break;case"scroll":case"scrollend":i=nW;break;case"wheel":i=n7;break;case"copy":case"cut":case"paste":i=nZ;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":i=n5;break;case"toggle":case"beforetoggle":i=te}var f=0!=(4&n),d=!f&&("scroll"===e||"scrollend"===e),p=f?null!==u?u+"Capture":null:u;f=[];for(var m,h=r;null!==h;){var g=h;if(m=g.stateNode,5!==(g=g.tag)&&26!==g&&27!==g||null===m||null===p||null!=(g=nC(h,p))&&f.push(sn(h,g,m)),d)break;h=h.return}0<f.length&&(u=new i(u,s,null,t,l),o.push({event:u,listeners:f}))}}if(0==(7&n)){if((u="mouseover"===e||"pointerover"===e,i="mouseout"===e||"pointerout"===e,!(u&&t!==nb&&(s=t.relatedTarget||t.fromElement)&&(eW(s)||s[eU])))&&(i||u)&&(u=l.window===l?l:(u=l.ownerDocument)?u.defaultView||u.parentWindow:window,i?(s=t.relatedTarget||t.toElement,i=r,null!==(s=s?eW(s):null)&&(d=c(s),f=s.tag,s!==d||5!==f&&27!==f&&6!==f)&&(s=null)):(i=null,s=r),i!==s)){if(f=nK,g="onMouseLeave",p="onMouseEnter",h="mouse",("pointerout"===e||"pointerover"===e)&&(f=n5,g="onPointerLeave",p="onPointerEnter",h="pointer"),d=null==i?u:eK(i),m=null==s?u:eK(s),(u=new f(g,h+"leave",i,t,l)).target=d,u.relatedTarget=m,g=null,eW(l)===r&&((f=new f(p,h+"enter",s,t,l)).target=m,f.relatedTarget=d,g=f),d=g,i&&s)n:{for(f=sr,p=i,h=s,m=0,g=p;g;g=f(g))m++;g=0;for(var y,v=h;v;v=f(v))g++;for(;0<m-g;)p=f(p),m--;for(;0<g-m;)h=f(h),g--;for(;m--;){if(p===h||null!==h&&p===h.alternate){f=p;break n}p=f(p),h=f(h)}f=null}else f=null;null!==i&&sl(o,u,i,f,!1),null!==s&&null!==d&&sl(o,d,s,f,!0)}e:{if("select"===(i=(u=r?eK(r):window).nodeName&&u.nodeName.toLowerCase())||"input"===i&&"file"===u.type)var b=ty;else if(tf(u))if(tv)b=tC;else{b=tE;var k=tx}else(i=u.nodeName)&&"input"===i.toLowerCase()&&("checkbox"===u.type||"radio"===u.type)?b=tz:r&&nm(r.elementType)&&(b=ty);if(b&&(b=b(e,r))){td(o,b,t,l);break e}k&&k(e,u,r),"focusout"===e&&r&&"number"===u.type&&null!=r.memoizedProps.value&&no(u,"number",u.value)}switch(k=r?eK(r):window,e){case"focusin":(tf(k)||"true"===k.contentEditable)&&(tO=k,tM=r,tA=null);break;case"focusout":tA=tM=tO=null;break;case"mousedown":tR=!0;break;case"contextmenu":case"mouseup":case"dragend":tR=!1,tI(o,t,l);break;case"selectionchange":if(tD)break;case"keydown":case"keyup":tI(o,t,l)}if(tt)n:{switch(e){case"compositionstart":var w="onCompositionStart";break n;case"compositionend":w="onCompositionEnd";break n;case"compositionupdate":w="onCompositionUpdate";break n}w=void 0}else ts?tu(e,t)&&(w="onCompositionEnd"):"keydown"===e&&229===t.keyCode&&(w="onCompositionStart");w&&(ta&&"ko"!==t.locale&&(ts||"onCompositionStart"!==w?"onCompositionEnd"===w&&ts&&(y=nD()):(n_="value"in(nT=l)?nT.value:nT.textContent,ts=!0)),0<(k=st(r,w)).length&&(w=new nJ(w,e,null,t,l),o.push({event:w,listeners:k}),y?w.data=y:null!==(y=ti(t))&&(w.data=y))),(y=tl?function(e,n){switch(e){case"compositionend":return ti(n);case"keypress":if(32!==n.which)return null;return to=!0," ";case"textInput":return" "===(e=n.data)&&to?null:e;default:return null}}(e,t):function(e,n){if(ts)return"compositionend"===e||!tt&&tu(e,n)?(e=nD(),nF=n_=nT=null,ts=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return ta&&"ko"!==n.locale?null:n.data}}(e,t))&&0<(w=st(r,"onBeforeInput")).length&&(k=new nJ("onBeforeInput","beforeinput",null,t,l),o.push({event:k,listeners:w}),k.data=y);var S=e;if("submit"===S&&r&&r.stateNode===l){var x=iZ((l[eI]||null).action),E=t.submitter;E&&null!==(S=(S=E[eI]||null)?iZ(S.formAction):E.getAttribute("formAction"))&&(x=S,E=null);var z=new nQ("action","action",null,t,l);o.push({event:z,listeners:[{instance:null,listener:function(){if(t.defaultPrevented){if(0!==iH){var e=E?iJ(l,E):new FormData(l);aZ(r,{pending:!0,data:e,method:l.method,action:x},null,e)}}else"function"==typeof x&&(z.preventDefault(),aZ(r,{pending:!0,data:e=E?iJ(l,E):new FormData(l),method:l.method,action:x},x,e))},currentTarget:l}]})}}i4(o,n)})}function sn(e,n,t){return{instance:e,listener:n,currentTarget:t}}function st(e,n){for(var t=n+"Capture",r=[];null!==e;){var l=e,a=l.stateNode;if(5!==(l=l.tag)&&26!==l&&27!==l||null===a||(null!=(l=nC(e,t))&&r.unshift(sn(e,l,a)),null!=(l=nC(e,n))&&r.push(sn(e,l,a))),3===e.tag)return r;e=e.return}return[]}function sr(e){if(null===e)return null;do e=e.return;while(e&&5!==e.tag&&27!==e.tag);return e||null}function sl(e,n,t,r,l){for(var a=n._reactName,o=[];null!==t&&t!==r;){var u=t,i=u.alternate,s=u.stateNode;if(u=u.tag,null!==i&&i===r)break;5!==u&&26!==u&&27!==u||null===s||(i=s,l?null!=(s=nC(t,a))&&o.unshift(sn(t,s,i)):l||null!=(s=nC(t,a))&&o.push(sn(t,s,i))),t=t.return}0!==o.length&&e.push({event:n,listeners:o})}var sa=/\r\n?/g,so=/\u0000|\uFFFD/g;function su(e){return("string"==typeof e?e:""+e).replace(sa,"\n").replace(so,"")}function si(e,n){return n=su(n),su(e)===n}function ss(e,n,t,r,l,a){switch(t){case"children":"string"==typeof r?"body"===n||"textarea"===n&&""===r||nc(e,r):("number"==typeof r||"bigint"==typeof r)&&"body"!==n&&nc(e,""+r);break;case"className":e8(e,"class",r);break;case"tabIndex":e8(e,"tabindex",r);break;case"dir":case"role":case"viewBox":case"width":case"height":e8(e,t,r);break;case"style":np(e,r,a);break;case"data":if("object"!==n){e8(e,"data",r);break}case"src":case"href":if(""===r&&("a"!==n||"href"!==t)||null==r||"function"==typeof r||"symbol"==typeof r||"boolean"==typeof r){e.removeAttribute(t);break}r=ny(""+r),e.setAttribute(t,r);break;case"action":case"formAction":if("function"==typeof r){e.setAttribute(t,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}if("function"==typeof a&&("formAction"===t?("input"!==n&&ss(e,n,"name",l.name,l,null),ss(e,n,"formEncType",l.formEncType,l,null),ss(e,n,"formMethod",l.formMethod,l,null),ss(e,n,"formTarget",l.formTarget,l,null)):(ss(e,n,"encType",l.encType,l,null),ss(e,n,"method",l.method,l,null),ss(e,n,"target",l.target,l,null))),null==r||"symbol"==typeof r||"boolean"==typeof r){e.removeAttribute(t);break}r=ny(""+r),e.setAttribute(t,r);break;case"onClick":null!=r&&(e.onclick=nv);break;case"onScroll":null!=r&&i8("scroll",e);break;case"onScrollEnd":null!=r&&i8("scrollend",e);break;case"dangerouslySetInnerHTML":if(null!=r){if("object"!=typeof r||!("__html"in r))throw Error(i(61));if(null!=(t=r.__html)){if(null!=l.children)throw Error(i(60));e.innerHTML=t}}break;case"multiple":e.multiple=r&&"function"!=typeof r&&"symbol"!=typeof r;break;case"muted":e.muted=r&&"function"!=typeof r&&"symbol"!=typeof r;break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":case"autoFocus":case"innerText":case"textContent":break;case"xlinkHref":if(null==r||"function"==typeof r||"boolean"==typeof r||"symbol"==typeof r){e.removeAttribute("xlink:href");break}t=ny(""+r),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":null!=r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(t,""+r):e.removeAttribute(t);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(t,""):e.removeAttribute(t);break;case"capture":case"download":!0===r?e.setAttribute(t,""):!1!==r&&null!=r&&"function"!=typeof r&&"symbol"!=typeof r?e.setAttribute(t,r):e.removeAttribute(t);break;case"cols":case"rows":case"size":case"span":null!=r&&"function"!=typeof r&&"symbol"!=typeof r&&!isNaN(r)&&1<=r?e.setAttribute(t,r):e.removeAttribute(t);break;case"rowSpan":case"start":null==r||"function"==typeof r||"symbol"==typeof r||isNaN(r)?e.removeAttribute(t):e.setAttribute(t,r);break;case"popover":i8("beforetoggle",e),i8("toggle",e),e4(e,"popover",r);break;case"xlinkActuate":e5(e,"http://www.w3.org/1999/xlink","xlink:actuate",r);break;case"xlinkArcrole":e5(e,"http://www.w3.org/1999/xlink","xlink:arcrole",r);break;case"xlinkRole":e5(e,"http://www.w3.org/1999/xlink","xlink:role",r);break;case"xlinkShow":e5(e,"http://www.w3.org/1999/xlink","xlink:show",r);break;case"xlinkTitle":e5(e,"http://www.w3.org/1999/xlink","xlink:title",r);break;case"xlinkType":e5(e,"http://www.w3.org/1999/xlink","xlink:type",r);break;case"xmlBase":e5(e,"http://www.w3.org/XML/1998/namespace","xml:base",r);break;case"xmlLang":e5(e,"http://www.w3.org/XML/1998/namespace","xml:lang",r);break;case"xmlSpace":e5(e,"http://www.w3.org/XML/1998/namespace","xml:space",r);break;case"is":e4(e,"is",r);break;default:2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])||e4(e,t=nh.get(t)||t,r)}}function sc(e,n,t,r,l,a){switch(t){case"style":np(e,r,a);break;case"dangerouslySetInnerHTML":if(null!=r){if("object"!=typeof r||!("__html"in r))throw Error(i(61));if(null!=(t=r.__html)){if(null!=l.children)throw Error(i(60));e.innerHTML=t}}break;case"children":"string"==typeof r?nc(e,r):("number"==typeof r||"bigint"==typeof r)&&nc(e,""+r);break;case"onScroll":null!=r&&i8("scroll",e);break;case"onScrollEnd":null!=r&&i8("scrollend",e);break;case"onClick":null!=r&&(e.onclick=nv);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":case"innerText":case"textContent":break;default:if(!eZ.hasOwnProperty(t))e:{if("o"===t[0]&&"n"===t[1]&&(l=t.endsWith("Capture"),n=t.slice(2,l?t.length-7:void 0),"function"==typeof(a=null!=(a=e[eI]||null)?a[t]:null)&&e.removeEventListener(n,a,l),"function"==typeof r)){"function"!=typeof a&&null!==a&&(t in e?e[t]=null:e.hasAttribute(t)&&e.removeAttribute(t)),e.addEventListener(n,r,l);break e}t in e?e[t]=r:!0===r?e.setAttribute(t,""):e4(e,t,r)}}}function sf(e,n,t){switch(n){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":i8("error",e),i8("load",e);var r,l=!1,a=!1;for(r in t)if(t.hasOwnProperty(r)){var o=t[r];if(null!=o)switch(r){case"src":l=!0;break;case"srcSet":a=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(i(137,n));default:ss(e,n,r,o,t,null)}}a&&ss(e,n,"srcSet",t.srcSet,t,null),l&&ss(e,n,"src",t.src,t,null);return;case"input":i8("invalid",e);var u=r=o=a=null,s=null,c=null;for(l in t)if(t.hasOwnProperty(l)){var f=t[l];if(null!=f)switch(l){case"name":a=f;break;case"type":o=f;break;case"checked":s=f;break;case"defaultChecked":c=f;break;case"value":r=f;break;case"defaultValue":u=f;break;case"children":case"dangerouslySetInnerHTML":if(null!=f)throw Error(i(137,n));break;default:ss(e,n,l,f,t,null)}}na(e,r,u,s,c,o,a,!1);return;case"select":for(a in i8("invalid",e),l=o=r=null,t)if(t.hasOwnProperty(a)&&null!=(u=t[a]))switch(a){case"value":r=u;break;case"defaultValue":o=u;break;case"multiple":l=u;default:ss(e,n,a,u,t,null)}n=r,t=o,e.multiple=!!l,null!=n?nu(e,!!l,n,!1):null!=t&&nu(e,!!l,t,!0);return;case"textarea":for(o in i8("invalid",e),r=a=l=null,t)if(t.hasOwnProperty(o)&&null!=(u=t[o]))switch(o){case"value":l=u;break;case"defaultValue":a=u;break;case"children":r=u;break;case"dangerouslySetInnerHTML":if(null!=u)throw Error(i(91));break;default:ss(e,n,o,u,t,null)}ns(e,l,a,r);return;case"option":for(s in t)t.hasOwnProperty(s)&&null!=(l=t[s])&&("selected"===s?e.selected=l&&"function"!=typeof l&&"symbol"!=typeof l:ss(e,n,s,l,t,null));return;case"dialog":i8("beforetoggle",e),i8("toggle",e),i8("cancel",e),i8("close",e);break;case"iframe":case"object":i8("load",e);break;case"video":case"audio":for(l=0;l<i2.length;l++)i8(i2[l],e);break;case"image":i8("error",e),i8("load",e);break;case"details":i8("toggle",e);break;case"embed":case"source":case"link":i8("error",e),i8("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(c in t)if(t.hasOwnProperty(c)&&null!=(l=t[c]))switch(c){case"children":case"dangerouslySetInnerHTML":throw Error(i(137,n));default:ss(e,n,c,l,t,null)}return;default:if(nm(n)){for(f in t)t.hasOwnProperty(f)&&void 0!==(l=t[f])&&sc(e,n,f,l,t,void 0);return}}for(u in t)t.hasOwnProperty(u)&&null!=(l=t[u])&&ss(e,n,u,l,t,null)}var sd=null,sp=null;function sm(e){return 9===e.nodeType?e:e.ownerDocument}function sh(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function sg(e,n){if(0===e)switch(n){case"svg":return 1;case"math":return 2;default:return 0}return 1===e&&"foreignObject"===n?0:e}function sy(e,n){return"textarea"===e||"noscript"===e||"string"==typeof n.children||"number"==typeof n.children||"bigint"==typeof n.children||"object"==typeof n.dangerouslySetInnerHTML&&null!==n.dangerouslySetInnerHTML&&null!=n.dangerouslySetInnerHTML.__html}var sv=null,sb="function"==typeof setTimeout?setTimeout:void 0,sk="function"==typeof clearTimeout?clearTimeout:void 0,sw="function"==typeof Promise?Promise:void 0,sS="function"==typeof queueMicrotask?queueMicrotask:void 0!==sw?function(e){return sw.resolve(null).then(e).catch(sx)}:sb;function sx(e){setTimeout(function(){throw e})}function sE(e){return"head"===e}function sz(e,n){var t=n,r=0;do{var l=t.nextSibling;if(e.removeChild(t),l&&8===l.nodeType)if("/$"===(t=l.data)||"/&"===t){if(0===r){e.removeChild(l),c_(n);return}r--}else if("$"===t||"$?"===t||"$~"===t||"$!"===t||"&"===t)r++;else if("html"===t)sA(e.ownerDocument.documentElement);else if("head"===t){sA(t=e.ownerDocument.head);for(var a=t.firstChild;a;){var o=a.nextSibling,u=a.nodeName;a[eQ]||"SCRIPT"===u||"STYLE"===u||"LINK"===u&&"stylesheet"===a.rel.toLowerCase()||t.removeChild(a),a=o}}else"body"===t&&sA(e.ownerDocument.body);t=l}while(t);c_(n)}function sC(e,n){var t=e;e=0;do{var r=t.nextSibling;if(1===t.nodeType?n?(t._stashedDisplay=t.style.display,t.style.display="none"):(t.style.display=t._stashedDisplay||"",""===t.getAttribute("style")&&t.removeAttribute("style")):3===t.nodeType&&(n?(t._stashedText=t.nodeValue,t.nodeValue=""):t.nodeValue=t._stashedText||""),r&&8===r.nodeType)if("/$"===(t=r.data))if(0===e)break;else e--;else"$"!==t&&"$?"!==t&&"$~"!==t&&"$!"!==t||e++;t=r}while(t)}function sP(e){var n=e.firstChild;for(n&&10===n.nodeType&&(n=n.nextSibling);n;){var t=n;switch(n=n.nextSibling,t.nodeName){case"HTML":case"HEAD":case"BODY":sP(t),eB(t);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if("stylesheet"===t.rel.toLowerCase())continue}e.removeChild(t)}}function sN(e,n){for(;8!==e.nodeType;)if(!n||null===(e=s_(e.nextSibling)))return null;return e}function sL(e){return"$?"===e.data||"$~"===e.data}function sT(e){return"$!"===e.data||"$?"===e.data&&"loading"!==e.ownerDocument.readyState}function s_(e){for(;null!=e;e=e.nextSibling){var n=e.nodeType;if(1===n||3===n)break;if(8===n){if("$"===(n=e.data)||"$!"===n||"$?"===n||"$~"===n||"&"===n||"F!"===n||"F"===n)break;if("/$"===n||"/&"===n)return null}}return e}var sF=null;function sD(e){e=e.nextSibling;for(var n=0;e;){if(8===e.nodeType){var t=e.data;if("/$"===t||"/&"===t){if(0===n)return s_(e.nextSibling);n--}else"$"!==t&&"$!"!==t&&"$?"!==t&&"$~"!==t&&"&"!==t||n++}e=e.nextSibling}return null}function sO(e){e=e.previousSibling;for(var n=0;e;){if(8===e.nodeType){var t=e.data;if("$"===t||"$!"===t||"$?"===t||"$~"===t||"&"===t){if(0===n)return e;n--}else"/$"!==t&&"/&"!==t||n++}e=e.previousSibling}return null}function sM(e,n,t){switch(n=sm(t),e){case"html":if(!(e=n.documentElement))throw Error(i(452));return e;case"head":if(!(e=n.head))throw Error(i(453));return e;case"body":if(!(e=n.body))throw Error(i(454));return e;default:throw Error(i(451))}}function sA(e){for(var n=e.attributes;n.length;)e.removeAttributeNode(n[0]);eB(e)}var sR=new Map,sI=new Set;function sU(e){return"function"==typeof e.getRootNode?e.getRootNode():9===e.nodeType?e:e.ownerDocument}var s$=M.d;M.d={f:function(){var e=s$.f(),n=is();return e||n},r:function(e){var n=eq(e);null!==n&&5===n.tag&&"form"===n.type?a0(n):s$.r(e)},D:function(e){s$.D(e),sV("dns-prefetch",e,null)},C:function(e,n){s$.C(e,n),sV("preconnect",e,n)},L:function(e,n,t){if(s$.L(e,n,t),sj&&e&&n){var r='link[rel="preload"][as="'+nr(n)+'"]';"image"===n&&t&&t.imageSrcSet?(r+='[imagesrcset="'+nr(t.imageSrcSet)+'"]',"string"==typeof t.imageSizes&&(r+='[imagesizes="'+nr(t.imageSizes)+'"]')):r+='[href="'+nr(e)+'"]';var l=r;switch(n){case"style":l=sQ(e);break;case"script":l=sq(e)}sR.has(l)||(e=m({rel:"preload",href:"image"===n&&t&&t.imageSrcSet?void 0:e,as:n},t),sR.set(l,e),null!==sj.querySelector(r)||"style"===n&&sj.querySelector(sB(l))||"script"===n&&sj.querySelector(sK(l))||(sf(n=sj.createElement("link"),"link",e),eX(n),sj.head.appendChild(n)))}},m:function(e,n){if(s$.m(e,n),sj&&e){var t=n&&"string"==typeof n.as?n.as:"script",r='link[rel="modulepreload"][as="'+nr(t)+'"][href="'+nr(e)+'"]',l=r;switch(t){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":l=sq(e)}if(!sR.has(l)&&(e=m({rel:"modulepreload",href:e},n),sR.set(l,e),null===sj.querySelector(r))){switch(t){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(sj.querySelector(sK(l)))return}sf(t=sj.createElement("link"),"link",e),eX(t),sj.head.appendChild(t)}}},X:function(e,n){if(s$.X(e,n),sj&&e){var t=eY(sj).hoistableScripts,r=sq(e),l=t.get(r);l||((l=sj.querySelector(sK(r)))||(e=m({src:e,async:!0},n),(n=sR.get(r))&&sZ(e,n),eX(l=sj.createElement("script")),sf(l,"link",e),sj.head.appendChild(l)),l={type:"script",instance:l,count:1,state:null},t.set(r,l))}},S:function(e,n,t){if(s$.S(e,n,t),sj&&e){var r=eY(sj).hoistableStyles,l=sQ(e);n=n||"default";var a=r.get(l);if(!a){var o={loading:0,preload:null};if(a=sj.querySelector(sB(l)))o.loading=5;else{e=m({rel:"stylesheet",href:e,"data-precedence":n},t),(t=sR.get(l))&&sG(e,t);var u=a=sj.createElement("link");eX(u),sf(u,"link",e),u._p=new Promise(function(e,n){u.onload=e,u.onerror=n}),u.addEventListener("load",function(){o.loading|=1}),u.addEventListener("error",function(){o.loading|=2}),o.loading|=4,sX(a,n,sj)}a={type:"stylesheet",instance:a,count:1,state:o},r.set(l,a)}}},M:function(e,n){if(s$.M(e,n),sj&&e){var t=eY(sj).hoistableScripts,r=sq(e),l=t.get(r);l||((l=sj.querySelector(sK(r)))||(e=m({src:e,async:!0,type:"module"},n),(n=sR.get(r))&&sZ(e,n),eX(l=sj.createElement("script")),sf(l,"link",e),sj.head.appendChild(l)),l={type:"script",instance:l,count:1,state:null},t.set(r,l))}}};var sj="undefined"==typeof document?null:document;function sV(e,n,t){if(sj&&"string"==typeof n&&n){var r=nr(n);r='link[rel="'+e+'"][href="'+r+'"]',"string"==typeof t&&(r+='[crossorigin="'+t+'"]'),sI.has(r)||(sI.add(r),e={rel:e,crossOrigin:t,href:n},null===sj.querySelector(r)&&(sf(n=sj.createElement("link"),"link",e),eX(n),sj.head.appendChild(n)))}}function sH(e,n,t,r){var l=(l=Q.current)?sU(l):null;if(!l)throw Error(i(446));switch(e){case"meta":case"title":return null;case"style":return"string"==typeof t.precedence&&"string"==typeof t.href?(n=sQ(t.href),(r=(t=eY(l).hoistableStyles).get(n))||(r={type:"style",instance:null,count:0,state:null},t.set(n,r)),r):{type:"void",instance:null,count:0,state:null};case"link":if("stylesheet"===t.rel&&"string"==typeof t.href&&"string"==typeof t.precedence){e=sQ(t.href);var a,o,u,s,c=eY(l).hoistableStyles,f=c.get(e);if(f||(l=l.ownerDocument||l,f={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},c.set(e,f),(c=l.querySelector(sB(e)))&&!c._p&&(f.instance=c,f.state.loading=5),sR.has(e)||(t={rel:"preload",as:"style",href:t.href,crossOrigin:t.crossOrigin,integrity:t.integrity,media:t.media,hrefLang:t.hrefLang,referrerPolicy:t.referrerPolicy},sR.set(e,t),c||(a=l,o=e,u=t,s=f.state,a.querySelector('link[rel="preload"][as="style"]['+o+"]")?s.loading=1:(s.preload=o=a.createElement("link"),o.addEventListener("load",function(){return s.loading|=1}),o.addEventListener("error",function(){return s.loading|=2}),sf(o,"link",u),eX(o),a.head.appendChild(o))))),n&&null===r)throw Error(i(528,""));return f}if(n&&null!==r)throw Error(i(529,""));return null;case"script":return n=t.async,"string"==typeof(t=t.src)&&n&&"function"!=typeof n&&"symbol"!=typeof n?(n=sq(t),(r=(t=eY(l).hoistableScripts).get(n))||(r={type:"script",instance:null,count:0,state:null},t.set(n,r)),r):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,e))}}function sQ(e){return'href="'+nr(e)+'"'}function sB(e){return'link[rel="stylesheet"]['+e+"]"}function sW(e){return m({},e,{"data-precedence":e.precedence,precedence:null})}function sq(e){return'[src="'+nr(e)+'"]'}function sK(e){return"script[async]"+e}function sY(e,n,t){if(n.count++,null===n.instance)switch(n.type){case"style":var r=e.querySelector('style[data-href~="'+nr(t.href)+'"]');if(r)return n.instance=r,eX(r),r;var l=m({},t,{"data-href":t.href,"data-precedence":t.precedence,href:null,precedence:null});return eX(r=(e.ownerDocument||e).createElement("style")),sf(r,"style",l),sX(r,t.precedence,e),n.instance=r;case"stylesheet":l=sQ(t.href);var a=e.querySelector(sB(l));if(a)return n.state.loading|=4,n.instance=a,eX(a),a;r=sW(t),(l=sR.get(l))&&sG(r,l),eX(a=(e.ownerDocument||e).createElement("link"));var o=a;return o._p=new Promise(function(e,n){o.onload=e,o.onerror=n}),sf(a,"link",r),n.state.loading|=4,sX(a,t.precedence,e),n.instance=a;case"script":if(a=sq(t.src),l=e.querySelector(sK(a)))return n.instance=l,eX(l),l;return r=t,(l=sR.get(a))&&sZ(r=m({},t),l),eX(l=(e=e.ownerDocument||e).createElement("script")),sf(l,"link",r),e.head.appendChild(l),n.instance=l;case"void":return null;default:throw Error(i(443,n.type))}return"stylesheet"===n.type&&0==(4&n.state.loading)&&(r=n.instance,n.state.loading|=4,sX(r,t.precedence,e)),n.instance}function sX(e,n,t){for(var r=t.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),l=r.length?r[r.length-1]:null,a=l,o=0;o<r.length;o++){var u=r[o];if(u.dataset.precedence===n)a=u;else if(a!==l)break}a?a.parentNode.insertBefore(e,a.nextSibling):(n=9===t.nodeType?t.head:t).insertBefore(e,n.firstChild)}function sG(e,n){null==e.crossOrigin&&(e.crossOrigin=n.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=n.referrerPolicy),null==e.title&&(e.title=n.title)}function sZ(e,n){null==e.crossOrigin&&(e.crossOrigin=n.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=n.referrerPolicy),null==e.integrity&&(e.integrity=n.integrity)}var sJ=null;function s0(e,n,t){if(null===sJ){var r=new Map,l=sJ=new Map;l.set(t,r)}else(r=(l=sJ).get(t))||(r=new Map,l.set(t,r));if(r.has(e))return r;for(r.set(e,null),t=t.getElementsByTagName(e),l=0;l<t.length;l++){var a=t[l];if(!(a[eQ]||a[eR]||"link"===e&&"stylesheet"===a.getAttribute("rel"))&&"http://www.w3.org/2000/svg"!==a.namespaceURI){var o=a.getAttribute(n)||"";o=e+o;var u=r.get(o);u?u.push(a):r.set(o,[a])}}return r}function s1(e,n,t){(e=e.ownerDocument||e).head.insertBefore(t,"title"===n?e.querySelector("head > title"):null)}function s2(e){return"stylesheet"!==e.type||0!=(3&e.state.loading)}var s3=null;function s4(){if(this.count--,0===this.count){if(this.stylesheets)s5(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var s8=null;function s5(e,n){e.stylesheets=null,null!==e.unsuspend&&(e.count++,s8=new Map,n.forEach(s6,e),s8=null,s4.call(e))}function s6(e,n){if(!(4&n.state.loading)){var t=s8.get(e);if(t)var r=t.get(null);else{t=new Map,s8.set(e,t);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;a<l.length;a++){var o=l[a];("LINK"===o.nodeName||"not all"!==o.getAttribute("media"))&&(t.set(o.dataset.precedence,o),r=o)}r&&t.set(null,r)}o=(l=n.instance).getAttribute("data-precedence"),(a=t.get(o)||r)===r&&t.set(null,l),t.set(o,l),this.count++,r=s4.bind(this),l.addEventListener("load",r),l.addEventListener("error",r),a?a.parentNode.insertBefore(l,a.nextSibling):(e=9===e.nodeType?e.head:e).insertBefore(l,e.firstChild),n.state.loading|=4}}var s9={$$typeof:S,Provider:null,Consumer:null,_currentValue:A,_currentValue2:A,_threadCount:0};function s7(e,n,t,r,l,a,o,u,i){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=eP(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=eP(0),this.hiddenUpdates=eP(null),this.identifierPrefix=r,this.onUncaughtError=l,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=i,this.incompleteTransitions=new Map}function ce(e,n,t,r,l,a,o,u,i,s,c,f){return e=new s7(e,n,t,o,i,s,c,f,u),n=1,!0===a&&(n|=24),a=rt(3,null,null,n),e.current=a,a.stateNode=e,n=r3(),n.refCount++,e.pooledCache=n,n.refCount++,a.memoizedState={element:r,isDehydrated:t,cache:n},lE(a),e}function cn(e,n,t,r,l,a){l=l?re:re,null===r.context?r.context=l:r.pendingContext=l,(r=lC(n)).payload={element:t},null!==(a=void 0===a?null:a)&&(r.callback=a),null!==(t=lP(e,r,n))&&(ia(t,e,n),lN(t,e,n))}function ct(e,n){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var t=e.retryLane;e.retryLane=0!==t&&t<n?t:n}}function cr(e,n){ct(e,n),(e=e.alternate)&&ct(e,n)}function cl(e){if(13===e.tag||31===e.tag){var n=t6(e,0x4000000);null!==n&&ia(n,e,0x4000000),cr(e,0x4000000)}}function ca(e){if(13===e.tag||31===e.tag){var n=ir(),t=t6(e,n=eF(n));null!==t&&ia(t,e,n),cr(e,n)}}var co=!0;function cu(e,n,t,r){var l=O.T;O.T=null;var a=M.p;try{M.p=2,cs(e,n,t,r)}finally{M.p=a,O.T=l}}function ci(e,n,t,r){var l=O.T;O.T=null;var a=M.p;try{M.p=8,cs(e,n,t,r)}finally{M.p=a,O.T=l}}function cs(e,n,t,r){if(co){var l=cc(r);if(null===l)se(e,n,r,cf,t),cS(e,r);else if(function(e,n,t,r,l){switch(n){case"focusin":return ch=cx(ch,e,n,t,r,l),!0;case"dragenter":return cg=cx(cg,e,n,t,r,l),!0;case"mouseover":return cy=cx(cy,e,n,t,r,l),!0;case"pointerover":var a=l.pointerId;return cv.set(a,cx(cv.get(a)||null,e,n,t,r,l)),!0;case"gotpointercapture":return a=l.pointerId,cb.set(a,cx(cb.get(a)||null,e,n,t,r,l)),!0}return!1}(l,e,n,t,r))r.stopPropagation();else if(cS(e,r),4&n&&-1<cw.indexOf(e)){for(;null!==l;){var a=eq(l);if(null!==a)switch(a.tag){case 3:if((a=a.stateNode).current.memoizedState.isDehydrated){var o=eS(a.pendingLanes);if(0!==o){var u=a;for(u.pendingLanes|=2,u.entangledLanes|=2;o;){var i=1<<31-ey(o);u.entanglements[1]|=i,o&=~i}iQ(a),0==(6&uO)&&(u0=ea()+500,iB(0,!1))}}break;case 31:case 13:null!==(u=t6(a,2))&&ia(u,a,2),is(),cr(a,2)}if(null===(a=cc(r))&&se(e,n,r,cf,t),a===l)break;l=a}null!==l&&r.stopPropagation()}else se(e,n,r,null,t)}}function cc(e){return cd(e=nk(e))}var cf=null;function cd(e){if(cf=null,null!==(e=eW(e))){var n=c(e);if(null===n)e=null;else{var t=n.tag;if(13===t){if(null!==(e=f(n)))return e;e=null}else if(31===t){if(null!==(e=d(n)))return e;e=null}else if(3===t){if(n.stateNode.current.memoizedState.isDehydrated)return 3===n.tag?n.stateNode.containerInfo:null;e=null}else n!==e&&(e=null)}}return cf=e,null}function cp(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(eo()){case eu:return 2;case ei:return 8;case es:case ec:return 32;case ef:return 0x10000000;default:return 32}default:return 32}}var cm=!1,ch=null,cg=null,cy=null,cv=new Map,cb=new Map,ck=[],cw="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function cS(e,n){switch(e){case"focusin":case"focusout":ch=null;break;case"dragenter":case"dragleave":cg=null;break;case"mouseover":case"mouseout":cy=null;break;case"pointerover":case"pointerout":cv.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":cb.delete(n.pointerId)}}function cx(e,n,t,r,l,a){return null===e||e.nativeEvent!==a?(e={blockedOn:n,domEventName:t,eventSystemFlags:r,nativeEvent:a,targetContainers:[l]},null!==n&&null!==(n=eq(n))&&cl(n)):(e.eventSystemFlags|=r,n=e.targetContainers,null!==l&&-1===n.indexOf(l)&&n.push(l)),e}function cE(e){var n=eW(e.target);if(null!==n){var t=c(n);if(null!==t){if(13===(n=t.tag)){if(null!==(n=f(t))){e.blockedOn=n,eM(e.priority,function(){ca(t)});return}}else if(31===n){if(null!==(n=d(t))){e.blockedOn=n,eM(e.priority,function(){ca(t)});return}}else if(3===n&&t.stateNode.current.memoizedState.isDehydrated){e.blockedOn=3===t.tag?t.stateNode.containerInfo:null;return}}}e.blockedOn=null}function cz(e){if(null!==e.blockedOn)return!1;for(var n=e.targetContainers;0<n.length;){var t=cc(e.nativeEvent);if(null!==t)return null!==(n=eq(t))&&cl(n),e.blockedOn=t,!1;var r=new(t=e.nativeEvent).constructor(t.type,t);nb=r,t.target.dispatchEvent(r),nb=null,n.shift()}return!0}function cC(e,n,t){cz(e)&&t.delete(n)}function cP(){cm=!1,null!==ch&&cz(ch)&&(ch=null),null!==cg&&cz(cg)&&(cg=null),null!==cy&&cz(cy)&&(cy=null),cv.forEach(cC),cb.forEach(cC)}function cN(e,n){e.blockedOn===n&&(e.blockedOn=null,cm||(cm=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,cP)))}var cL=null;function cT(e){cL!==e&&(cL=e,a.unstable_scheduleCallback(a.unstable_NormalPriority,function(){cL===e&&(cL=null);for(var n=0;n<e.length;n+=3){var t=e[n],r=e[n+1],l=e[n+2];if("function"!=typeof r)if(null===cd(r||t))continue;else break;var a=eq(t);null!==a&&(e.splice(n,3),n-=3,aZ(a,{pending:!0,data:l,method:t.method,action:r},r,l))}}))}function c_(e){function n(n){return cN(n,e)}null!==ch&&cN(ch,e),null!==cg&&cN(cg,e),null!==cy&&cN(cy,e),cv.forEach(n),cb.forEach(n);for(var t=0;t<ck.length;t++){var r=ck[t];r.blockedOn===e&&(r.blockedOn=null)}for(;0<ck.length&&null===(t=ck[0]).blockedOn;)cE(t),null===t.blockedOn&&ck.shift();if(null!=(t=(e.ownerDocument||e).$$reactFormReplay))for(r=0;r<t.length;r+=3){var l=t[r],a=t[r+1],o=l[eI]||null;if("function"==typeof a)o||cT(t);else if(o){var u=null;if(a&&a.hasAttribute("formAction")){if(l=a,o=a[eI]||null)u=o.formAction;else if(null!==cd(l))continue}else u=o.action;"function"==typeof u?t[r+1]=u:(t.splice(r,3),r-=3),cT(t)}}}function cF(){function e(e){e.canIntercept&&"react-transition"===e.info&&e.intercept({handler:function(){return new Promise(function(e){return l=e})},focusReset:"manual",scroll:"manual"})}function n(){null!==l&&(l(),l=null),r||setTimeout(t,20)}function t(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&null!=e.url&&navigation.navigate(e.url,{state:e.getState(),info:"react-transition",history:"replace"})}}if("object"==typeof navigation){var r=!1,l=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",n),navigation.addEventListener("navigateerror",n),setTimeout(t,100),function(){r=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",n),navigation.removeEventListener("navigateerror",n),null!==l&&(l(),l=null)}}}function cD(e){this._internalRoot=e}function cO(e){this._internalRoot=e}cO.prototype.render=cD.prototype.render=function(e){var n=this._internalRoot;if(null===n)throw Error(i(409));cn(n.current,ir(),e,n,null,null)},cO.prototype.unmount=cD.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var n=e.containerInfo;cn(e.current,2,null,e,null,null),is(),n[eU]=null}},cO.prototype.unstable_scheduleHydration=function(e){if(e){var n=eO();e={blockedOn:null,target:e,priority:n};for(var t=0;t<ck.length&&0!==n&&n<ck[t].priority;t++);ck.splice(t,0,e),0===t&&cE(e)}};var cM=o.version;if("19.2.0-canary-97cdd5d3-20250710"!==cM)throw Error(i(527,cM,"19.2.0-canary-97cdd5d3-20250710"));if(M.findDOMNode=function(e){var n=e._reactInternals;if(void 0===n){if("function"==typeof e.render)throw Error(i(188));throw Error(i(268,e=Object.keys(e).join(",")))}return e=null===(e=null!==(e=function(e){var n=e.alternate;if(!n){if(null===(n=c(e)))throw Error(i(188));return n!==e?null:e}for(var t=e,r=n;;){var l=t.return;if(null===l)break;var a=l.alternate;if(null===a){if(null!==(r=l.return)){t=r;continue}break}if(l.child===a.child){for(a=l.child;a;){if(a===t)return p(l),e;if(a===r)return p(l),n;a=a.sibling}throw Error(i(188))}if(t.return!==r.return)t=l,r=a;else{for(var o=!1,u=l.child;u;){if(u===t){o=!0,t=l,r=a;break}if(u===r){o=!0,r=l,t=a;break}u=u.sibling}if(!o){for(u=a.child;u;){if(u===t){o=!0,t=a,r=l;break}if(u===r){o=!0,r=a,t=l;break}u=u.sibling}if(!o)throw Error(i(189))}}if(t.alternate!==r)throw Error(i(190))}if(3!==t.tag)throw Error(i(188));return t.stateNode.current===t?e:n}(n))?function e(n){var t=n.tag;if(5===t||26===t||27===t||6===t)return n;for(n=n.child;null!==n;){if(null!==(t=e(n)))return t;n=n.sibling}return null}(e):null)?null:e.stateNode},"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cA=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cA.isDisabled&&cA.supportsFiber)try{em=cA.inject({bundleType:0,version:"19.2.0-canary-97cdd5d3-20250710",rendererPackageName:"react-dom",currentDispatcherRef:O,reconcilerVersion:"19.2.0-canary-97cdd5d3-20250710"}),eh=cA}catch(e){}}n.createRoot=function(e,n){if(!s(e))throw Error(i(299));var t=!1,r="",l=of,a=od,o=op;return null!=n&&(!0===n.unstable_strictMode&&(t=!0),void 0!==n.identifierPrefix&&(r=n.identifierPrefix),void 0!==n.onUncaughtError&&(l=n.onUncaughtError),void 0!==n.onCaughtError&&(a=n.onCaughtError),void 0!==n.onRecoverableError&&(o=n.onRecoverableError)),n=ce(e,1,!1,null,null,t,r,null,l,a,o,cF),e[eU]=n.current,i9(e),new cD(n)},n.hydrateRoot=function(e,n,t){if(!s(e))throw Error(i(299));var r,l=!1,a="",o=of,u=od,c=op,f=null;return null!=t&&(!0===t.unstable_strictMode&&(l=!0),void 0!==t.identifierPrefix&&(a=t.identifierPrefix),void 0!==t.onUncaughtError&&(o=t.onUncaughtError),void 0!==t.onCaughtError&&(u=t.onCaughtError),void 0!==t.onRecoverableError&&(c=t.onRecoverableError),void 0!==t.formState&&(f=t.formState)),(n=ce(e,1,!0,n,null!=t?t:null,l,a,f,o,u,c,cF)).context=(r=null,re),t=n.current,(a=lC(l=eF(l=ir()))).callback=null,lP(t,a,l),t=l,n.current.lanes=t,eN(n,t),iQ(n),e[eU]=n.current,i9(e),new cO(n)},n.version="19.2.0-canary-97cdd5d3-20250710"}}]); +//# sourceMappingURL=5da1b801-f0f919478419f676.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/5da1b801-f0f919478419f676.js.map b/opencut-ui/_next/static/chunks/5da1b801-f0f919478419f676.js.map new file mode 100644 index 0000000..2931fb2 --- /dev/null +++ b/opencut-ui/_next/static/chunks/5da1b801-f0f919478419f676.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/5da1b801-f0f919478419f676.js","mappings":"gGAkgEA,aAp/DA,EAAgB,EAAQ,KAA8B,EACtD,EAAU,EAAQ,KAA0B,CADrB,CAEvB,EAAa,EAAQ,KAA8B,CADlC,CAEjB,UADoB,CACpB,GACA,oCACA,uBACA,+CACA,YAAoB,mBAAsB,IAC1C,8CACA,CACA,MACA,yBACA,EACA,GAAO,QACP,EACA,gHAEA,CACA,cACA,OACA,KACA,gDAEA,CACA,cACA,QACA,IACA,oBAA8B,UAAa,eAC3C,CACA,IACA,GACA,GACA,OADA,KACA,qBACA,iBACA,GAEA,uBACA,CACA,cACA,eACA,sBAIA,GAHA,UAEA,OADA,iBACA,oBACA,6BAEA,WACA,CACA,cACA,eACA,sBAIA,GAHA,UAEA,OADA,iBACA,oBACA,6BAEA,WACA,CACA,cACA,YACA,mBACA,CA+EA,oBACA,8BACA,2CACA,6BACA,+BACA,kCACA,+BACA,+BACA,8BACA,kCACA,+BACA,oCACA,2BACA,2BACA,0BACA,mCACA,kCACA,mCACA,8CACA,oCACA,sBACA,qBACA,kCAIA,kBAHA,GACA,SACA,iBACA,MACA,CACA,2CAqDA,gBACA,EACA,kEACA,EACA,+DACA,GACA,WACA,UACA,YACA,WACA,CAAG,CACH,KACA,KACA,cACA,OAAW,UACX,CACA,cACA,KACA,8BACA,CACA,gBAEA,iBACA,WACA,CACA,cACA,UACA,UACA,UACA,gBAIA,OAHA,OACA,OACA,UACA,YACA,OACA,QACA,yBACA,mBACA,MACA,EAEA,KACA,SACA,GACA,YACA,iBAGA,KADA,QACA,QAEA,UACA,UACA,IACA,KACA,YACA,IACA,KACA,SACA,GACA,CACA,CACA,KACA,MACA,CACA,aACA,KACA,KACA,IACA,CACA,cACA,+BACA,gBACA,cACA,QACA,QACA,OACA,CACA,cACA,eACA,YACA,eACA,MACA,mBACA,CAEA,cACA,eACA,IACA,aACA,CAAM,SACN,2CACA,eACA,GACA,+BACA,iBACA,wBACA,eACA,EACA,CACA,kBACA,CACA,SACA,gBACA,kBACA,KACA,6BACA,gCACA,IACA,OACA,uCACA,IACA,MACA,iBACA,aACA,EAMA,GALA,2CACA,eACA,aACA,CACA,CAAa,EACb,6CACA,IACA,uBACA,CAAgB,SAChB,OACA,CACA,yBACA,EAAc,IACd,IACA,QACA,CAAgB,SAChB,GACA,CACA,mBACA,CACA,EAAY,IACZ,IACA,aACA,CAAc,SACd,GACA,CACA,SACA,4BACA,oBAAuC,CACvC,CACA,CAAU,SACV,kCACA,wBAEA,kBAEA,CACA,2CACA,8BACA,sCACA,8BACA,OAEA,IACA,gBACA,sBACA,8BACA,OACA,CAAU,sCAEV,sCACA,OACA,OACA,SACA,oBACA,gBACA,IACA,MACA,YACA,+CAGA,IACA,KAEA,YACA,eACA,gCAIA,IACA,GACA,cACA,aAEA,IACA,aACA,aACA,MACA,MACA,aAGA,IACA,KAEA,WACA,QAEA,gBACA,gBACA,GACA,GACA,IACA,IACA,KACA,OACA,KACA,CACA,MACA,KACA,gCAIA,OAHA,eACA,2BACA,2CACA,CACA,OACA,YAEA,KACA,CACA,CACA,EAAI,OACJ,8BACA,CACA,qCACA,KACA,EACA,CA4BA,cACA,IACA,SACA,OACA,GACA,GAhCA,cACA,cACA,QACA,QACA,OACA,gBACA,SACA,gBACA,SACA,6BACA,uBACA,aACA,SACA,wBACA,QACA,QACA,mBACA,SACA,0BACA,QACA,mBACA,SACA,oBACA,SACA,QACA,CACA,EAMA,KACA,IACA,iBACA,GACA,QACA,CAAI,SACJ,0DAEA,CACA,uCACA,+BACA,6BACA,0BACA,2BACA,kBACA,sCACA,gCACA,mCACA,6BACA,0BACA,2BACA,SACA,mCACA,QACA,QACA,eAEA,GADA,6BACA,wCACA,IACA,sBACA,CAAM,UACN,CACA,6BAGA,YAEA,UADA,SACA,oBACA,EALA,YACA,YAKA,OACA,WACA,eACA,WACA,kBACA,aACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,UACA,UACA,SACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,YACA,YACA,YACA,aACA,aACA,gBACA,cACA,aACA,eACA,eACA,kBACA,gBACA,gBACA,gBACA,gBACA,iBACA,iBACA,iBACA,iBACA,iBACA,QACA,SACA,QACA,CACA,CACA,mBACA,qBACA,kBACA,QACA,mBACA,gBACA,cACA,kBAqBA,OApBA,MAEA,GADA,SAEA,QAEA,GADA,OAEA,QACA,GACA,aAEA,UAEA,GADA,SAEA,QACA,MACA,QACA,GAEA,GADA,UAEA,UACA,MACA,EACA,OACA,OACA,UACA,WACA,UAEA,wBACA,EACA,CACA,CACA,iBACA,OACA,GACA,gBACA,mCACA,EAEA,CA0CA,cACA,SAGA,OADA,YADA,QACA,YACA,CACA,CACA,cACA,SAGA,OADA,cADA,QACA,gBACA,CACA,CACA,eACA,iBAAgC,KAAQ,cACxC,QACA,CACA,iBACA,kBACA,gBACA,kDACA,CAiDA,mBACA,kBACA,qBACA,cACA,qBACA,mBACA,8BAEA,SACA,CACA,iBACA,0BACA,sBAAkC,GAAoB,CACtD,eACA,CAFsD,CAEtD,IACA,aACA,UACA,KACA,CACA,CACA,iBACA,WAGA,YAFA,EACA,mBACA,sBACA,EACA,CACA,CACA,eACA,UACA,OACA,IACA,KACA,QACA,IACA,KACA,SACA,KACA,KACA,UACA,SACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,YACA,YACA,YACA,aACA,aACA,aACA,aACA,eACA,eACA,MACA,KACA,iBACA,YACA,KACA,SACA,GACA,CACA,QACA,CACA,eAEA,SADA,QAEA,IACA,iBACA,GACA,WACA,EACA,CACA,CACA,cACA,iBACA,QAEA,SADA,iBACA,aACA,CACA,iBACA,UACA,IACA,gBACA,EAAI,OACJ,KACA,CACA,CACA,2CACA,sBACA,sBACA,0BACA,uBACA,0BACA,wBACA,0BACA,uBACA,eACA,aACA,aACA,aACA,aACA,YACA,CACA,eACA,YACA,cACA,uBAA+C,GAAY,CAC3D,GACA,EACA,GAH2D,EAG3D,EACA,MACA,CAEA,GADA,cAEA,gBACA,yBAEA,IACA,QACA,UAEA,CACA,oBACA,OACA,CACA,QACA,CAEA,EADA,MACA,WAEA,WACA,CACA,eACA,GACA,eACA,CACA,YACA,GACA,OACA,OACA,QACA,QACA,QACA,QACA,MAEA,QACA,CACA,WACA,CACA,eACA,YACA,yDACA,YACA,CACA,eACA,YAIA,OAHA,GACA,SACA,CAAQ,kDAAyD,CACjE,CACA,CACA,eACA,QACA,CACA,eACA,MACA,iBACA,QACA,iBACA,CACA,iBAEA,IADA,QAEA,IACA,WACA,IAEA,YACA,CACA,cACA,iZAEA,KAAgC,CAChC,MAUA,mBACA,GATA,WASA,KAPA,WAOA,KANA,QAMA,GALA,GAKA,EALA,KACA,GAIA,EAJA,IACA,KAIA,qCACA,CACA,iBACA,gBACA,eACA,aACA,qBACA,MACA,eACA,iCACA,wCACA,oBAGA,CACA,sBACA,CACA,CACA,mBACA,qCACA,CACA,iBACA,gBACA,eACA,aACA,cACA,qBACA,MACA,CACA,sBACA,CACA,CACA,qBACA,qCACA,CACA,iBACA,gBACA,eACA,aACA,cACA,qBACA,MACA,CACA,0BACA,CACA,CACA,eACA,iBACA,aACA,cACA,aACA,aACA,gBAEA,aADA,QAGA,SACA,QACA,CACA,CACA,eACA,aACA,MACA,gBACA,2BACA,6BAEA,CAyCA,eACA,qBACA,6BACA,iBA3CA,gBACA,sCACA,wBACA,GAEA,GACA,sBACA,YACA,0BACA,yBACA,CACA,YACA,QAcA,OAbA,2BACA,gBACA,eACA,mBACA,CAAO,CACP,gBACA,OACA,cACA,CACA,CAAK,EACL,2BACA,wBACK,EACL,CACA,oBACA,QACA,CAAO,CACP,qBACA,MACA,CAAO,CACP,wBACA,qBACA,YAEA,CACA,CACA,EAKA,EACA,EACA,QAEA,CACA,CACA,eACA,eACA,sBACA,eACA,mBACA,KAQA,OAPA,GACA,SACA,UACA,OACA,QACA,SACA,QACA,qBACA,CACA,eAEA,YADA,sDACA,YACA,IACA,+BACI,SACJ,cAEA,CACA,kBACA,eACA,iBACA,GACA,YACA,2CACA,EAEA,CACA,YACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEA,UACA,SACA,sBACA,oBACA,oBACA,SACA,0BACA,QACA,aACA,mCACA,mBAEA,oBACA,mBAEA,sDACA,QACA,cACA,QACA,cACA,oCACA,SACA,SACA,uBACA,SACA,WACA,6CACA,SACA,sBACA,oBACA,oBACA,gBACA,yBACA,CACA,YACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAOA,GALA,SACA,sBACA,oBACA,qBACA,WACA,kBACA,GAEA,6BACA,QAEA,YACA,MAGA,EACA,oBACA,qBACA,4BACA,gBACA,CAEA,EACA,kBAFA,iBAEA,wBACA,0BACA,qBACA,SACA,sBACA,oBACA,qBACA,WACA,KACA,CACA,mBACA,uCACA,uBACA,qBACA,CACA,qBAEA,GADA,YACA,GACA,KACA,YAAoB,WAAsB,IAC1C,eACA,QAAwB,WAAyB,IACjD,mCACA,qCACA,+BACA,EAAI,IAGJ,QAFA,WACA,OACgB,WAAiB,KACjC,mBACA,iBACA,6BACA,MACA,CACA,iCACA,CACA,yBACA,CACA,CACA,mBACA,GACA,SACA,gBACA,qBACA,SACA,CACA,uCACA,MACA,CACA,eACA,mBACA,CACA,qBACA,YACA,YACA,8BACA,SACA,iCACA,OAEA,GACA,CACA,gBACA,GACA,CAEA,eADA,QAEA,oBACA,GACA,QACA,UACA,YACA,KACA,CACA,iBACA,MACA,mBACA,GACA,GACA,iBACA,eACA,CACA,cACA,MACA,CACA,CACA,eACA,CACA,eACA,i7BACA,MAGA,mBACA,yBACA,sCACA,EACA,oBACA,YACA,cACA,QACA,EACA,mBACA,oBACA,OACA,UACA,YACA,aACA,mBACA,WACA,CACA,mBACA,+BACA,mBAEA,GADA,UACA,SACA,eACA,sBACA,8BACA,qBACA,oBACA,YACA,cACA,SACA,eACA,OACA,qBACA,UACA,SACA,EAAI,IACJ,eACA,qBACA,YACA,CACA,eACA,gCACA,UACA,qBACA,oBACA,gBACA,oBACA,oBACA,uBACA,qBACA,oBACA,QACA,SACA,QACA,CACA,CACA,gBACA,mCACA,kBACA,2BACA,8BACA,iCACA,2CACA,6BACA,mCACA,2BACA,yBACA,yBACA,6CACA,4DACA,iCACA,qCACA,yCACA,yCACA,+BACA,yBACA,6BACA,iCACA,6BACA,yBACA,sCACA,+BACA,2BACA,+BACA,6BACA,2BACA,8DACA,0DACA,4BACA,kCACA,qCACA,mCACA,mCACA,2BACA,2BACA,+BACA,yCACA,2CACA,6BACA,wBACA,mCACA,uCACA,qCACA,2BACA,+BACA,mDACA,qDACA,uCACA,yCACA,mCACA,qCACA,yCACA,mCACA,+BACA,6BACA,qCACA,mCACA,uCACA,2CACA,6CACA,+BACA,iCACA,8BACA,+BACA,yBACA,iCACA,mCACA,iCACA,0BACA,gCACA,gCACA,+BACA,+BACA,6BACA,uBACA,EACA,GACA,2HACA,eACA,qBACA,8FACA,CACA,CACA,eACA,YACA,eAIA,MAHA,mCACA,yBACA,8BACA,6BACA,CACA,YACA,QACA,eACA,YACA,uBACA,kBACA,6BACA,YAYA,GAXA,GACA,EACA,QACA,eACA,eACA,UACA,iBACA,OACA,QAEA,SACA,2BACA,QAA+B,cAAkB,eAQjD,IAPA,qBACA,eACA,GACA,MAEA,oBAGA,IACA,WACA,IACA,CACA,WACA,2BACA,kBACA,yBACA,GACA,EACA,QACA,eACA,eACA,UACA,iBACA,OACA,OAEA,CACA,CACA,IACA,IACA,WACA,IAGA,CADA,QACA,oBACA,CACA,KACA,gBACA,6BACA,KACA,cAEA,MADA,aAEA,uBACA,CACA,CACA,CACA,UACA,mBACA,oBACA,MACA,IAEA,OADA,IAEA,EAAI,OACJ,GACA,MACA,wBAGA,MACA,IACA,MACA,KACA,WACA,MACA,IAEA,QAAoB,WAAe,YACnC,CACA,CACA,iBACA,kBACA,wBACA,kBACA,wBAEA,OADA,OACA,GACA,cACA,qBACA,oBACA,2BACA,kBACA,yBACA,kBACA,yBACA,gBACA,uBACA,mBACA,iBACA,CACA,EACA,WAFA,YAGA,aACA,cACA,cACA,EACA,KACA,KACA,SACA,IACA,CACA,iBACA,2BACA,YACA,mBAEA,QACA,CACA,OACA,4BACA,0BACA,uCAEA,MACA,MACA,IACA,UACA,oCACA,eACA,KACA,CACA,CAAK,EACL,sCACA,wCACA,CAAI,SACJ,KACA,CACA,YACA,QACA,QACA,cACA,gBACA,MAGA,EAFA,KACA,WAEA,uCACA,WACA,IACA,IACA,iBACA,KAEA,UACA,IACA,IACA,MACA,gBACA,KAEA,mCACA,CACA,eACA,gBAMA,MALA,eACA,oBACA,eACA,IACA,eACA,iBACA,CACA,cACA,QACA,CACA,cACA,QACA,CACA,eACA,WACA,EACA,EACA,EACA,EACA,GAQA,aANA,kBACA,mBACA,YACA,mBACA,cACA,wBACA,EACA,qBACA,QACA,UACA,KACA,MASA,OARA,yBACA,yBACA,mBACA,oBAEA,GACA,GACA,6BACA,KAwBA,OAtBA,eACA,0BACA,yBACA,sBACA,IACA,kBACA,mBACA,oDACA,2BACA,CAAK,CACL,2BACA,uBACA,GACA,mBACA,oBACA,kCACA,oBACA,6BACA,CAAK,CACL,oBAA2B,CAC3B,eACA,CAAG,EACH,CACA,CACA,IAx0CA,MAq1CA,GACA,GACA,GAfA,IACA,aACA,UACA,aACA,sBACA,8BACA,CAAK,CACL,mBACA,WACA,CAAG,CACH,UACA,OAA8B,KAAoB,gBAAoB,EACtE,UAIA,OAAiC,KACjC,UACA,UACA,UACA,UACA,QACA,QACA,UACA,WACA,SACA,UACA,oBACA,SACA,UACA,0BACA,gCACA,6BACA,YACA,cACA,gBACK,CACL,4BACA,6BACA,QACA,0BACA,yBACA,yBACA,QACA,MACA,GACA,CAAK,CACL,sBACA,oCACA,CACA,CAAG,EACH,UAEA,MADA,IAAgC,KAAyB,eAAiB,GAG1E,MADA,IAAiC,KAAsB,gBAAkB,GAOzE,MALA,IAAqC,KACrC,gBACA,cACA,eACA,CAAG,GASH,MAPA,IAAqC,KACrC,0BACA,0BACA,gBACA,oBACA,CACA,CAAG,GAGH,MADA,IAAuC,KAAoB,OAAS,GAEpE,IACA,aACA,aACA,iBACA,aACA,mBACA,iBACA,aACA,SACA,mBACA,mBACA,oBACA,8BACA,CAAG,CACH,IACA,cACA,QACA,WACA,WACA,WACA,aACA,SACA,WACA,cACA,YACA,OACA,YACA,cACA,SACA,UACA,eACA,aACA,gBACA,eACA,YACA,YACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,UACA,UACA,cACA,iBACA,UACA,CAAG,CACH,IACA,aACA,kBACA,eACA,gBACA,EACA,eACA,uBACA,0BACA,sBACA,aACA,OAGA,cACA,SACA,CACA,IAsCA,MAtCA,IAAsC,KACtC,gBACA,UACA,uBACA,8BACA,CACA,0BAEA,KADA,UACA,+BACA,qCACA,8BACA,EACA,CAAK,CACL,OACA,WACA,UACA,WACA,SACA,UACA,SACA,SACA,oBACA,qBACA,iCACA,CAAK,CACL,oBACA,2CACA,UACA,CACA,CAAK,CACL,kBACA,0BACA,MACA,qCACA,UACA,CACA,CACA,CAAG,GAcH,MAZA,IAAmC,KACnC,YACA,QACA,SACA,WACA,qBACA,QACA,QACA,QACA,cACA,WACA,CAAG,GAYH,MAVA,IAAiC,KACjC,UACA,gBACA,iBACA,SACA,UACA,UACA,WACA,mBACA,CAAG,GAOH,MALA,IAAsC,KACtC,eACA,cACA,eACA,CAAG,GAsBH,MApBA,IAAiC,KACjC,mBACA,mBACA,SACA,kBACA,eACA,CACA,CAAK,CACL,mBACA,mBACA,SACA,kBACA,eACA,iBACA,cACA,CACA,CAAK,CACL,SACA,WACA,CAAG,GAMH,MAJA,IAAkC,KAClC,WACA,UACA,CAAG,GAEH,gBACA,mCACA,QACA,IACA,2BACA,2BACA,qCACA,GACA,IACA,MACA,kBAEA,MACA,iBACA,UACA,YACA,iCACA,eACA,2BACA,WACA,gBACA,eACA,QACA,SACA,QACA,CACA,CACA,eAEA,sBADA,cACA,WACA,OACA,IACA,CACA,UAiDA,IACA,SACA,QACA,YACA,oBACA,SACA,SACA,UACA,YACA,SACA,UACA,OACA,QACA,QACA,OACA,OACA,EACA,eACA,8CACA,kBACA,aACA,cAGA,CACA,YACA,EACA,EACA,EACA,GAEA,GACA,GACA,WACA,OACA,KAEA,GADA,oBACA,QACA,UACA,WACA,SACA,KACA,EACA,GAEA,QAAyB,qBAAqC,CAC9D,CACA,YACA,QACA,eACA,OACA,CACA,eAEA,MADA,OACA,QACA,CACA,iBACA,wBACA,CACA,UACA,OAEA,OACA,4BACA,QACA,qCACA,kCAAgE,GAChE,GACA,8BAEA,IACA,EAAI,SACJ,GACA,GACA,iDACA,CACA,cACA,IACA,uCACA,WACA,CACA,eACA,GACA,0BACA,OACA,CACA,SACA,GACA,EACA,GACA,EACA,OAEA,QACA,CACA,CACA,mBACA,cACA,MACA,KACA,KACA,uCACA,oBACA,CACA,eACA,GACA,uBACA,aACA,cAEA,aACA,CACA,iBACA,2BACA,CACA,iBACA,6BACA,YACA,CAIA,8CAHA,cACA,2CACA,EAEA,iBACA,oBACA,GACA,oBACA,UACA,oBACA,SAEA,SACA,qBACA,iBACA,gCACA,QAAkB,WAAsB,KACxC,WACA,GACA,eACA,eAEA,QACA,CACA,QACA,CACA,eACA,KAAS,iBAAyB,eAClC,QACA,CACA,iBACA,IAEA,EAFA,QAEA,IADA,IACoB,GAAM,CAC1B,EAD0B,CAC1B,gBAEA,GADA,yBACA,WACA,OAAiB,mBACjB,GACA,CACA,GACA,KAAa,GAAM,CACnB,EADmB,CACnB,eACA,gBACA,OACA,CACA,cACA,CACA,QACA,CACA,OACA,CACA,CAgBA,eACA,EACA,SACA,uBACA,kCACA,4BACA,OACA,IACA,qBACA,kCAEA,CACA,IACA,MACA,+CACM,SACN,IACA,CACA,4BACA,MACA,gBACA,CACA,QACA,CACA,eACA,8CACA,OACA,GACA,cACA,kBACA,mBACA,gBACA,gBACA,sBACA,gBACA,2BAEA,CACA,OACA,yDACA,QACA,QACA,QACA,MACA,mBACA,MACA,aACA,WACA,eACA,EACA,gBACA,IACA,UACA,YACA,GACA,kBADA,QACA,MACA,CAAiB,0CAAkD,CAKnE,CACA,YALA,GACA,8CACA,QACA,gBAEA,WACA,4BACA,sBACA,0BACS,CACT,cACA,MAEA,EADA,sBACA,QACA,UACA,WACA,SACA,KACA,EACA,GAEA,QAA6B,oBAAoC,EACjE,cACA,CACA,iBACA,SAIA,OAHA,mCACA,yBACA,mBACA,CACA,CACA,QACA,4CACA,wDACA,gDACA,+CACA,mDACA,qDACA,8CACA,CAAG,CACH,KAAyB,CACzB,MASA,eACA,sBACA,mBACA,IACA,EADA,QAEA,WACA,gCACA,kBACA,QACA,CAjBA,IACA,wCACA,2BACA,kCACA,uCACA,oCACA,4BACA,oCAWA,0BACA,4BACA,wBACA,uBACA,yBACA,0BACA,uBACA,WACA,GACA,ynBACA,KAGA,iBACA,YACA,SACA,CAJA,qBAKA,OACA,+BACA,YACA,YACA,GACA,yBACA,qCACA,CACA,qCACA,WACA,cACA,QACA,oBACA,UACA,2BACA,kBACA,UACA,OACA,CAAa,EACb,kCACA,EAAY,OACZ,iBAAgC,GAChC,IADuC,QACvC,OAAkC,EAAO,KACzC,YACY,EAAO,4BAGnB,gBACA,CAAS,CACT,MACA,KACA,KACA,cACA,IACA,SACA,UACA,KAEA,CACA,YACA,aACA,YACA,aACA,YACA,aACA,YAEA,GADA,aACA,oBACA,uBACA,EACA,SACA,yBACA,WACA,CACA,gBACA,CACA,CACA,qBACA,WACA,WACA,WACA,WACA,MACA,WAEA,OADA,iBACA,YACA,CACA,qBAEA,OADA,YACA,KACA,CACA,iBAEA,OADA,kBACA,KACA,CACA,mBACA,WACA,yBACA,gBACA,wBAAuD,UACvD,KADwE,OACxE,IAEA,OADA,iBACA,kBACA,YACA,CACA,OADA,iBACA,yBACA,IACA,WACA,iBACA,eACA,GACA,UACA,YAGA,OADA,GADA,mBACA,KAEA,SACA,UACA,qBACA,GACA,IACA,CACA,eACA,SACA,MACA,KACA,QACA,cAEA,mBAAwC,UACxC,KADyD,CACzD,SACA,iCACA,CACA,UACA,qBACA,WACA,WACA,aACA,WACA,YACA,eACA,UACA,iBACA,KACA,aACA,8BACA,oBACA,kBACA,mBACA,iBACA,mBACA,KACA,YACA,+BACA,oBACA,6BACA,mBACA,CACA,qBACA,sBACA,CACA,eAEA,SADA,iBACA,oBACA,CACA,iBACA,kBAkCA,OAjCA,SACA,OACA,MACA,EACA,MACA,OACA,EACA,0BACA,cACA,wBACA,cACA,eACA,kBACA,cACA,UACA,iBACA,kBACA,0BACA,0BACA,gBACA,gBACA,gCACA,gCACA,4BACA,iBACA,eACA,SACA,KACA,CAAU,2CACV,oBACA,gBACA,YACA,0BACA,CACA,CACA,iBACA,mBACA,kBA4BA,OA3BA,SACA,gBACA,UACA,aACA,iBACA,qBACA,qBACA,mBACA,oBACA,kBACA,2BACA,gBACA,gBACA,iBACA,iBACA,gCACA,gCACA,4BACA,cAEA,eACA,OAFA,mBAGA,KACA,CACA,cACA,4BACa,EACb,CACA,CACA,YACA,EACA,EACA,EACA,EACA,EACA,GAEA,QAEA,GADA,IACA,uCACA,sBACA,YA+5XA,OACA,oCACA,UACA,WACA,YACA,QACA,aACA,GACA,+BACA,yBACA,YAEA,MACA,QACA,YACA,GACA,wBACA,yBACA,aACA,UACA,UAEA,MACA,GACA,eADA,MAEA,OACA,aACA,uCAGA,QAEA,cACA,GACA,SACA,4BACA,0BACA,WACA,YACA,OACA,uBAEA,QACA,CACA,QACA,EA38XA,EACA,EACA,WAGA,mCACA,GACA,EAHA,QAKA,YACA,OACA,MACA,iBACA,cACA,UACA,CAEA,QACA,2BACA,QACA,IACA,MACA,KACA,QACA,MAEA,CADA,kBACA,cACA,UACA,CAEA,QACA,MACA,iBACA,cACA,UACA,CAEA,QACA,MACA,iBACA,cACA,UACA,CAEA,SACA,gCACA,mBACA,OACA,KACA,OACA,QACA,IACA,OACA,QACA,KACA,OACA,QACA,KACA,OACA,QACA,KACA,OACA,OACA,CACA,KACA,QACA,oCAEA,MACA,CAKA,MAJA,gBACA,cACA,SACA,UACA,CACA,CACA,qBAGA,MAFA,gBACA,QACA,CACA,CACA,mBAGA,MAFA,mBACA,QACA,CACA,CACA,eACA,yBAEA,OADA,cACA,CACA,CACA,mBAaA,MAZA,MACA,EACA,gCACA,MACA,EACA,EACA,QACA,aACA,8BACA,qBACA,iCAEA,CACA,CACA,mBACA,iBACA,iCACA,uBACA,cACA,GACA,QACA,SACA,UACA,EACA,YACA,EACA,CACA,OACA,QACA,SACA,UACA,CACA,CACA,UACA,KACA,QACA,KACA,MACA,KACA,QACA,KACA,MACA,iBACA,YACA,YACA,KACA,IACA,CACA,mBACA,YACA,YACA,YACA,KACA,SACA,KACA,iBACA,WACA,KACA,iBACA,SACA,YACA,GACA,EACA,UACA,aACA,MACA,KACA,GACA,cACA,KACA,EACA,MACA,EAAI,IACJ,GACA,YACA,IACA,CACA,eACA,iBACA,mBACA,CACA,eACA,KAAS,QACT,YACA,EAF8C,CAE9C,SACA,YACA,YACA,KAAS,QACT,YACA,KAFiD,CAEjD,MACA,YACA,YACA,YACA,WACA,CACA,iBACA,YACA,YACA,YACA,QACA,cACA,IACA,CACA,YACA,QACA,MACA,QACA,MACA,iBACA,eACA,YACA,EACA,IACA,wDACA,OACA,OACA,IAIA,OADA,YACA,EACA,CACA,eACA,kBACA,SACA,kBAGA,OAFA,QACA,QACA,GACA,aACA,eACA,cACA,KACA,cACA,aACA,YACA,aACA,KACA,aACA,YACA,QAAqB,YAA+B,IACpD,YACA,KACA,cACA,cACA,KACA,WACA,YACA,WACA,cACA,aACA,KACA,eACA,eACA,KACA,aACA,gBACA,GACA,EACA,QACA,eACA,UACA,iBACA,OACA,OACA,IAEA,KACA,cACA,gBACA,KACA,gBACA,gBACA,uCACA,CAEA,gBADA,gBAEA,oBACA,oBACA,sBACA,iCACA,oBACA,kBACA,sBACA,gBACA,iCACA,qBACA,kBACA,gCACA,MACA,KACA,WACA,CACA,eACA,gBAA4C,IAC5C,eACA,GAFkE,EAElE,EACA,QACA,QACA,MACA,MACA,SACA,OACA,MACA,MACA,SACA,aAEA,CACA,eACA,mBACA,6BACA,IACA,EADA,QAYA,GAVA,oBACA,WACA,CACA,EACA,SAFA,YAEA,cACA,4BACA,MAEA,aACA,MACA,QAGA,IADA,UADA,oBACA,mBACA,oBACA,GACA,KACA,EAAI,eAGJ,IADA,UADA,oBACA,mBACA,oBACA,GACA,KACA,EAAI,IACJ,OACA,MACA,WACA,MACA,QACA,MACA,MACA,MACA,4BACA,KACA,QACA,CACA,cACA,WACA,KACA,CACA,cACA,SASA,OARA,UACA,WACA,KACA,cACA,GACA,GAEA,SACA,CACA,CACA,eACA,UACA,OACA,UACA,CACA,eACA,QACA,QACA,mBACA,sBACA,iBACA,CACA,eACA,2BACA,KACA,CACA,mBACA,KAAS,UAAiB,CAC1B,IAD0B,EAC1B,YAOA,GANA,qBACA,iBACA,6BACA,UACA,sBACA,kBACA,YACA,WAEA,CACA,YACA,EACA,EACA,EACA,GAEA,cAEA,IADA,uBACS,UAAgB,CACzB,GADyB,CACzB,iBACA,aACA,cACA,iBACA,OAAgB,UAAe,CAC/B,EAD+B,EAC/B,IACA,IACA,YAAwB,WAAqB,IAC7C,qBACA,WAEA,OADA,iBACA,aACA,GACA,SACA,EACA,GAEA,YACA,OACA,CACA,SAEA,EAAM,mBAEN,UADA,aACA,mBACA,YAEA,OADA,iBACA,aACA,UACA,MACA,EAAM,cACN,4BAEA,QAA8B,UAAoB,CAClD,OADkD,EAClD,CACA,OACA,KACA,CAEA,UADA,cACA,CACA,kBACA,IACA,KACA,CACA,WAEA,GACA,CACA,CACA,YACA,EACA,EACA,EACA,GAEA,OACA,IACA,aACA,UAEA,CACA,MACA,kCACA,6BACA,eACA,kBACA,gCAEA,UADA,oBACA,CACA,aACA,kCACA,0BACA,CACA,EAAM,sBAEN,UADA,gBACA,mBACA,iCACA,+BACA,UACA,WACA,OACA,CACA,WAEA,UACA,GACA,EACA,EACA,EACA,GAEA,eACA,CACA,eACA,IACA,iBACA,UAEA,CACA,GACA,IACA,wBACA,iBAGA,SACA,SAEA,QACA,CACA,eACA,KACA,QAEA,OADA,oBACA,qBACA,CACA,eACA,eACA,CACA,iBAEA,OADA,iBACA,OACA,CACA,iBACA,sBAEA,GADA,GAAc,qCACd,WACA,gCACA,KACA,gBAA8B,wBAC9B,eACA,EAAI,iBACJ,QACA,CACA,OACA,oCACA,gBACA,WACA,SACA,eACA,WACA,+BACA,SACA,CACA,CAAa,CACb,sBACA,aACA,sBACA,UACA,CAAa,CACb,CACA,CAAS,CACT,+BACA,6BACA,IACA,WACA,cACA,cACA,mBACA,oBACA,cACA,EACA,cACA,OACA,kBACA,aACA,UACA,CACA,CACA,eACA,aACA,gBACA,iBACA,oBACA,CAAK,CACL,CACA,YACA,KACA,KACA,QAkBA,cACA,GACA,SACA,UACA,CACA,WACA,wBACA,SACA,QACA,KACA,QACA,YAAoB,WAAsB,cAC1C,CACA,CA0BA,WACA,kBACA,oBACA,UACA,2BA5DA,cACA,cACA,YACA,KACA,QACA,IACA,iBACA,aACA,iBACA,SACA,CACA,CACA,CACA,KACA,aAEA,EA6CA,KACA,WACA,OACA,EACA,eACA,cACA,iBACA,gBACA,EACA,eAEA,iBACA,SACA,iBACA,YACA,CACA,cACA,WACA,gBACA,KACA,CAAQ,+BACR,CACA,qBACA,iBACA,iBACA,IAAkC,mBAClC,eAEA,oBADA,cACA,cACA,CACA,mBAKA,OAHA,SADA,SAEA,UACA,2BACA,UACA,gBACA,mBACA,WACA,MACA,eAEA,CAEA,SACA,+CACA,CAEA,UADA,QACA,0BACA,mBAEA,CADA,MACA,iBACA,OACA,YACA,yBACA,OACA,sBACA,SACA,CACA,CAAW,CACX,YACA,yBACA,OACA,qBACA,UACA,CACA,EAEA,CACA,iBACA,gBACA,mBACA,WACA,MACA,eAEA,CAEA,CAEA,MADA,KACA,EACA,CACA,CACA,YACA,cACA,iCACA,SAEA,OADA,QACA,CACA,CACA,eACA,GACA,QACA,OAEA,mBACA,CACA,YACA,KACA,eACA,SAGA,OAFA,MACA,mBACA,UACA,CACA,iBAEA,eADA,gBACA,MACA,CACA,iBACA,kBACA,mBAEA,aACA,EACA,GACA,oBAJA,sCAKA,mBAA6B,8BAAyC,EACtE,GAGA,CACA,eAEA,MADA,YACA,WACA,CACA,eACA,gBACA,MACA,yBACA,EACA,8BACA,SACA,CACA,CACA,gBACA,kBACA,KAAW,UACX,OACA,SAFuC,EAEvC,CACA,WACA,CACA,cACA,kBAA2C,UAC3C,aACA,GAFuE,EAEvE,UACA,iBACA,YACA,QACA,CACA,gBAIA,MAFA,CADA,WACA,QACA,eACA,CACA,CACA,wBAEA,CADA,UACA,GAGA,OADA,gBAGA,YACA,EACA,uBACA,GAEA,mBACA,GAVA,oBAWA,CACA,cAIA,OAHA,GACA,oBACA,qBACA,CACA,CACA,2BACA,oBAEA,mBACA,SAGA,WACA,SACA,CACA,CACA,oBACA,oBACA,MACA,EACA,EACA,EACA,iBACA,EACA,QAGA,UACA,oBACA,oBACA,UACA,gBACA,gBAIA,GADA,eACA,GAYA,GARA,KACA,OACA,MACA,QACA,KACA,OACA,GAEA,GACA,WACA,EACA,CACA,2BAEA,UACA,WACA,6CACA,8CAGA,mBACA,SAIA,CADA,uBACA,SACA,CACA,CACA,6BACA,oBAEA,MACA,EACA,OACA,EACA,EACA,EACA,SAGA,WACA,SACA,CACA,CACA,kBACA,GACA,4BACA,oBACA,mBAEA,MACA,MACA,KACA,OACA,EACA,EACA,SACA,EAEA,iCACA,mBACA,OACA,OACA,QACA,OACA,MACA,QACA,KACA,OACA,GAEA,GACA,WACA,CAEA,QACA,MACA,MACA,EACA,OACA,EACA,EACA,SACA,CAEA,QAGA,WADA,EADA,YACA,YACA,EACA,CACA,cACA,MAOA,CANA,KACA,EACA,OACA,EACA,KACA,EACA,SACA,EAEA,6BACA,oBACA,kBACA,SACA,EACA,QACA,GAEA,OACA,CACA,WACA,CACA,oBACA,0BACA,GACA,4BACA,oBACA,mBAEA,gBACA,KACA,cACA,iCACA,mBACA,OACA,iBACA,WACA,IACA,QACA,iBACA,WACA,IACA,QACA,OACA,EAEA,IADA,EADA,YACA,YACA,EAEA,CACA,cACA,gBACA,KACA,gBACA,6BACA,SACA,EACA,EACA,MACA,GAEA,kBACA,SACA,EACA,EACA,QACA,GAEA,OACA,CACA,WACA,CACA,WACA,EACA,EACA,EACA,EACA,GAEA,GACA,4BACA,oBACA,mBAEA,OACA,EACA,EADA,iBACA,QAEA,iCACA,mBACA,OACA,OACA,EAIA,EAJA,EACA,MACA,uBACA,KACA,IAEA,QACA,OACA,EAIA,EAJA,EACA,MACA,uBACA,KACA,IAEA,QAGA,SACA,EACA,EACA,EAJA,GADA,WACA,YAMA,EAEA,CACA,cACA,OACA,EACA,EADA,iBACA,UAEA,6BACA,SACA,EACA,EACA,EACA,MACA,GAEA,kBACA,SACA,EACA,EACA,EACA,QACA,GAEA,OACA,CACA,WACA,CAqVA,yBACA,IACA,KACA,MA5KA,WACA,EACA,EACA,EACA,GAOA,GALA,oBACA,UACA,YACA,cACA,qBACA,8BACA,mBACA,OACA,GACA,gBAAyC,UAA4B,CACrE,cAEA,CAHqE,EAErE,aACA,EACA,eACA,EACA,EACA,WAEA,KACA,EACA,iBACA,EACA,SACA,IACA,OACA,OACkB,GAClB,mBACA,oBACA,UACA,gBACA,eACA,CACA,EACA,EACA,WAGA,GADA,eACA,GACA,WACA,IACA,OACA,CACA,OACA,KACA,CAAgB,OAChB,YAEA,WAOA,CANA,KACA,iBACA,OACA,EACA,MACA,EACA,SAEA,SACA,OACA,MACA,QACA,KACA,OACA,GAEA,GACA,UACA,KACA,CACA,WACA,QACA,GACA,YAAqC,UAA4B,CACjE,aACA,EAFiE,CAGjE,WACA,4BACA,iBACA,6BACA,iBACA,CACA,EACA,EACA,WAGA,CADA,uBACA,SACA,IACA,OACA,EAAkB,IAClB,OACA,KACA,CACA,OACA,YAEA,mBACA,SACA,GACA,CACA,WACA,QACA,OACA,EAGA,EACA,EAHA,EADA,YACA,YAKA,EAGA,CACA,QACA,gBAlSA,EACA,EACA,EACA,GAEA,IACA,WACA,OACA,IACA,MACA,OACA,qBACA,IACA,CACA,UACA,aACA,YACA,QACA,EACA,EACA,KACA,GAEA,aACA,gBACA,KACA,CACA,GACA,GACA,oBACA,OACA,WACA,SACA,IACA,YACA,IACA,GACA,CACA,gBACA,OACA,OACA,YACA,EAEA,aACA,KAAa,WAA6B,IAE1C,OADA,iBAEA,KACA,EACA,EACA,GAEA,SACA,IACA,YACA,KAEA,OADA,YACA,CACA,CACA,IACA,OACA,WACA,IAEA,YACA,EACA,EACA,EACA,KACA,EACA,GAEA,IACA,oBACA,SACA,sBAEA,IACA,EACA,EACA,GAEA,SACA,IACA,YACA,KAMA,OALA,GACA,sBACA,aACA,CAAO,EACP,YACA,CACA,EAsMA,EACA,EACA,EACA,GAEA,SAEA,qBADA,SACA,oBAEA,OA9MA,SACA,EACA,EACA,EACA,GAEA,+BACA,IACA,WACA,OACA,IACA,MACA,OACA,WACA,kBACA,eACA,CACA,UACA,aACA,YACA,uBACA,aACA,gBACA,KACA,CACA,GACA,GACA,oBACA,OACA,WACA,SACA,IACA,YACA,IACA,GACA,CACA,UACA,OACA,OACA,YACA,EAEA,aACA,KAAa,QAAY,eAEzB,OADA,oBAEA,YACA,SACA,IACA,YACA,KAEA,OADA,YACA,CACA,CACA,IACA,OACA,QACA,eAEA,+BAEA,IACA,oBACA,+BACA,WACA,SACA,IACA,YACA,KAMA,OALA,GACA,sBACA,aACA,CAAO,EACP,YACA,CACA,EAoIA,EACA,EAHA,YAKA,EAEA,CACA,6BACA,SACA,EACA,EACA,MACA,GAEA,kBACA,SACA,EACA,EACA,QACA,GAEA,OACA,CACA,kCACA,oBACA,mBACA,QACA,oBACA,gBACA,WACA,QACA,EACA,QACA,mBACA,QACA,EACA,EADA,IACA,EACA,MACA,EAKA,EACA,EACA,EACA,GAGA,OADA,QACA,CACA,CAAM,SACN,0BACA,2BAGA,OAFA,UACA,WACA,CACA,EAAM,OACN,CACA,CACA,CACA,cACA,UACA,MACA,eACA,eACA,0BACA,qBACA,oBACA,QAAc,0CAAgD,CAC9D,cACA,CACA,CACA,iBACA,gBACA,mBACA,gBACA,sBACA,kCACA,gCACA,gBACA,cACA,EAAK,CAEL,eACA,OAAW,kDACX,CACA,mBACA,oBACA,wBAEA,GADA,WACA,WACA,gBAOA,OANA,SACA,SACA,yBACA,YACA,QACA,aACA,CACA,CAEA,OADA,YACA,KACA,CACA,mBAEA,UADA,mBACA,6BACA,cACA,kBACA,KACA,UACA,OACA,CACA,CACA,iBACA,oBACA,cACA,GACA,UACA,sBACA,CACA,WACA,OAEA,UADA,sBACA,CACA,GACA,OACA,YACA,UACA,kBACA,cACA,SACA,CACA,UACA,MACA,WACA,UACQ,sBACR,EACA,MACA,UACA,EAAM,UACN,GACA,sBACA,kBACA,iBACA,gBACA,uBAEA,gBACA,MACA,CAEA,OADA,qBAEA,oBACA,SACA,kBACA,CACA,UACA,cACA,OACA,SACA,mBACA,CACA,CACA,YACA,EACA,EACA,EACA,GAEA,MACA,oBACA,MACA,wBACA,mBACA,mBACA,aACA,sBACA,QACA,SACA,YACA,SACA,IACA,SACA,IACA,yBACA,GAEA,GADA,kBACA,kBACA,GACA,UACA,oBACA,SACA,mBACA,CACA,aACA,kBAIA,IAHA,IACA,WACA,MACA,CACA,yBACA,aACA,GACA,EACA,WACA,UACA,CACA,OACA,QACA,QACA,UACA,UACA,CACA,OACA,UACA,kBACA,cACA,SACA,EAAa,CACb,GACA,QACA,IAGA,OAFA,IAEA,OACA,OAEA,qBADA,cACA,CACA,SALA,EAKA,KACA,OACA,CACA,IACA,OACA,QACA,0BACA,QAMA,SAJA,GACA,kBAFA,cAGA,OAhBA,EAgBA,KACA,GACA,QACA,MAAkC,MAClC,OACA,QACA,KACA,CACA,CAEA,OADA,gBAEA,aACA,mBAEA,OADA,gBAEA,gBACA,UACA,EAAQ,IACR,GACA,OACA,UACA,kBACA,oBACA,SACA,CAAS,CACT,SACA,OACA,KACA,WACA,KAEA,UADA,WAEA,+BACA,WAEA,QACA,KACA,YACA,mBACA,qBACA,CACA,CADM,MACN,SACA,cACA,oBACA,mBACA,6BACA,MACA,UACA,iBACA,CACA,CACA,iBACA,wBACA,sBACA,SACA,CACA,iBACA,kBACA,YACA,IACA,qBACA,WACA,IAEA,UACA,CACA,eACA,QACA,iBAEA,KADA,MAEA,QACA,iBAEA,cACA,SACA,gBACA,CACA,cACA,cACA,MACA,KACA,CACA,eACA,QACA,eACA,kBACA,mBACA,QACA,WACA,6BACA,KACA,+BACA,CACA,eACA,iBACA,QACA,iBACA,CACA,eACA,WACA,kBACA,QACA,mBACA,KACA,CACA,cACA,iBACA,gBACA,CACA,eACA,MACA,kBACA,KACA,CACA,YACA,eACA,YAAuB,UAAe,CACtC,EADsC,CACtC,YACA,sBACA,GACA,UACA,0BAEA,OACA,OAEA,QACA,EAAM,OACN,YACA,2CACA,2CACA,2DACA,0CAEA,mCACM,mBACN,iBACA,UACA,QACA,CACA,eACA,KAAW,kBAAuB,CAClC,6CACA,UACA,CACA,0BACA,YAEA,WACA,CACA,SACA,QACA,QACA,QACA,MACA,MACA,MACA,KACA,KACA,QACA,KACA,cACA,mBACA,CACA,iBACA,qBACA,YAAkB,uBAA4C,IAC9D,2BACA,QACA,CACA,YACA,EACA,EACA,EACA,EACA,EACA,GAsBA,OApBA,KACA,KACA,qBACA,mBACA,UACA,IACA,iCACA,GACA,GACA,MACA,SACA,MACA,IACA,MACA,EACA,EACA,EACA,EACA,EACA,MACA,CACA,CACA,eACA,OACA,gCAMA,GALA,KACA,cACA,MACA,KACA,QACA,qBACA,WACA,IACA,2BAEA,OACA,OACA,CACA,qBACA,KACA,QACA,GAIA,GAHA,cACA,KACA,MACA,0BAGA,GAFA,KACA,WACA,qBACA,oBACA,kBACA,cACA,cACA,wCACA,CACA,OACA,QACA,EAAI,SACJ,QACA,CACA,cACA,UACA,kBAQA,OAPA,EACA,0BACA,MACA,EACA,kBACA,uCACA,iBACA,CACA,CACA,cACA,aAEA,OADA,KACA,CACA,CACA,mBACA,4BACA,eACA,WACA,CACA,eACA,OACA,IACA,kBACA,UAEA,CACA,qBACA,oBACA,QACA,CACA,KACA,CACA,KACA,cACA,MACA,QACA,OACA,CACA,cACA,OACA,mBACA,eACA,eACA,WACA,SACA,EAIA,OAHA,UACA,sBACA,aACA,EACA,CACA,cACA,cACA,mBACA,EACA,6BACA,EAAI,cACJ,MACA,UACA,iBACA,QACA,YACA,KACA,SACA,CACA,aACA,uBACA,mBACA,oBACA,CAEA,GACA,cAFA,OAEA,cACA,uBACA,uBACA,eACA,SACA,EACA,UACA,oBACA,EACA,YACA,CACA,SACA,CACA,cACA,OAAW,uDACX,CACA,eACA,SAcA,OAbA,MACA,mBACA,aACA,KACA,OACA,WACA,gBACA,UACA,CACA,IACA,OAFA,iBAEA,uBACA,GACA,IACA,CACA,CACA,eACA,iCACA,0CACA,8BACA,CACA,6BACA,CACA,eACA,WACA,iBAEA,GADA,0BACA,SACA,0BACA,GAEA,OADA,mBAGA,MADA,iBAEA,IACA,4BACA,gBACA,CAAa,EACb,OACA,EAAW,CAQX,GANA,aAAsC,iBAAoB,CAC1D,UACA,QACA,kBACA,cAEA,SADA,oBAEA,IACA,+BACA,IACA,IAEA,OAEA,OADA,UACA,CACA,CACA,iBACA,iCACA,CACA,eAEA,UADA,KACA,KACA,CACA,mBACA,cACA,+BACA,yBACA,kBACA,YACA,aACA,aACA,aACA,cACA,QACA,CACA,gBACA,cACA,CAEA,GADA,cACA,+BACA,CACA,SACA,aACA,OACA,IACA,KACA,GACA,yBACA,GACA,WACA,WACA,WACA,CACA,mBACA,SACA,UACA,UACA,CACA,OACA,aACA,aACA,gBACA,8BACA,wBACA,SACA,EAAe,CACf,QACA,YACA,eACA,SACA,QACA,OACA,QACA,EAAU,IACV,GACA,OACA,wBACA,aACA,gBACA,8BACA,wBACA,SACA,CAAW,CACX,SACA,OACA,KACA,WACA,YACA,MACA,WACA,IACA,OACA,kBACA,aACA,MACA,EAAQ,IACR,GACA,OACA,wBACA,kBACA,gBACA,8BACA,wBACA,SACA,CAAS,CACT,SACA,OACA,KACA,WACA,YACA,MACA,UACM,sBAIN,GAHA,SACA,IACA,SAEA,wBACA,OACA,GACA,eAEA,OACA,mBACA,cACA,cACA,qBACA,CAEA,OADA,sBACA,6BAEA,eACA,WACA,UACA,+BACA,yBACA,iBACA,YACA,kBACA,aACA,eACA,eACA,kCACA,OACA,+BACA,kBACA,oCACA,qBACA,CACA,YAEA,mBACA,SACA,OACA,KACA,MACA,kCACA,KACA,EAAI,UACJ,UACA,sBACA,GAQA,GANA,GACA,0BACA,UACA,wBACA,EACA,EAEA,mBACA,GACA,kCACA,CAcA,GAbA,cACA,GACA,EACA,CAAQ,eAAiB,CACzB,QACA,KACA,EACA,EACA,EACA,GAEA,MAEA,6BACA,IACA,aACA,SACA,CACA,QACA,CACA,mBACA,eACA,GAAY,uBAEZ,OADA,mBAEA,QACA,iBACA,cACA,oBAEA,aACA,SACA,CACA,qBACA,UACA,gBACA,YACA,CACA,mBACA,oBACA,YACA,CAAG,CACH,CACA,eACA,oBACA,UACA,IACA,UACA,cACA,CAAI,SACJ,QACA,CACA,CACA,eACA,aACA,oBACA,CACA,eACA,WACA,yBACA,QAEA,GADA,MACA,IACA,OACA,IACA,GACA,EAAQ,OACR,MACA,CACA,CACA,CASA,OARA,8BACA,SACA,aACA,QACA,cACA,uBACA,mBACA,EACA,CACA,CACA,qBAEA,OADA,cACA,GACA,EACA,GACA,0BAEA,CACA,YACA,EACA,EACA,EACA,EACA,GAEA,6BAEA,UADA,aACA,CACA,OACA,UACA,SACA,UACA,gBACA,iBACA,WACA,YACA,aACA,iBACA,mBACA,CACA,CACA,YACA,MACA,kBACA,KAEA,OADA,cAEA,oBACA,SACA,eACA,mBACA,CACA,CACA,iBACA,eACA,YACA,UACA,mBACA,UACA,IACA,OACA,IACA,aACA,aACA,GACA,OACA,SACA,CAAM,SACN,SACA,EAAM,OACN,UACA,gBACA,kBACA,KACA,CACA,EAAI,IACJ,IACA,SACA,SACA,CAAM,SACN,SACA,CACA,CACA,mBACA,UACA,oBACA,0BACA,OACA,YACA,SACA,CAAS,CACT,YACA,gBACA,GAEA,SACA,CACA,mBACA,qBACA,UACA,MACA,UAEA,OADA,eAEA,cACA,EACA,eACA,UACA,SACA,SACA,CACA,mBACA,gBAEA,GADA,eACA,UACA,SACA,GACA,oBACA,WACA,MACA,eACA,OAEA,aACA,CACA,eACA,cACA,YAAkB,WAAuB,cACzC,CACA,iBACA,QACA,CACA,iBACA,OACA,mBACA,aACA,GACA,SACA,OACA,OACA,GAEA,IACA,IAFA,KAEA,KACA,gBAGA,OAOA,OAHA,MACA,cACA,EANA,CACA,OACA,OACA,CAUA,EACA,OAFA,YAEA,QACA,EACA,IACA,CACA,MACA,MACA,eAEA,EACA,cACA,OACA,CACA,CACA,KACA,CACA,IACA,CACA,WACA,CACA,CAyCA,MAxCA,SACA,4BACA,GACA,aACA,QACA,cACA,uBACA,mBACA,EACA,UACA,UACA,KACA,GACA,GAEA,aACA,SACA,UACA,KACA,GACA,GACA,SAEA,OACA,GACA,QACA,cACA,SACA,YACA,EACA,UACA,UACA,KACA,GACA,EACA,EACA,GAEA,aACA,kBACA,SAEA,eAEA,UADA,KACA,KACA,CACA,mBAOA,GANA,KACA,EACA,EACA,GACA,IACA,YAEA,oBACA,UACA,0BAEA,IACA,WACA,CAAM,SACN,kBACA,QACA,MACA,IAEA,MADA,SACA,MACA,aASA,OARA,qBACA,gBACA,GACA,EACA,CAAQ,eAAiB,CACzB,kBACA,KACA,EACA,QAEA,iBACA,UACA,CACA,eACA,WACA,KACA,YACA,iBACA,KACA,kBAEA,MADA,SACA,eAEA,OADA,kBACA,SAEA,qBAaA,OAZA,GAAU,wCAEV,OADA,oBAEA,QACA,kBAEA,OADA,iBAEA,sBACA,UACA,SACA,SACA,gBACA,CACA,CACA,cACA,0BAEA,qBACA,UACA,aACA,mBACA,IACA,CAAM,eAAiB,CACvB,EACA,kBAEA,CACA,qBACA,WACA,oBACA,kCACA,IACA,UACA,4BACA,4BACA,aACA,mBACA,IACA,EACA,EACA,EACA,CACA,CACA,iBACA,iBACA,CACA,iBACA,cACA,CACA,iBACA,kBACA,CACA,iBACA,kBACA,CACA,iBACA,yBAEA,QADA,OAEA,kBACA,gCACA,CACA,CACA,WACA,OACA,EACA,QADA,MAEA,WACA,cACA,CAEA,CACA,mBACA,6BACA,2BACA,CACA,eACA,iBACA,WACA,oBACA,6BACA,qBACA,MACA,sBACA,EACA,CACA,iBACA,WACA,oBACA,sBACA,wBACA,YAEA,GADA,MACA,IACA,OACA,IACA,GACA,EAAM,OACN,MACA,CACA,CAEA,OADA,sBACA,CACA,CACA,0BACA,+BACA,mBACA,kBACA,OACA,YACA,MACA,EACA,CACA,4BACA,UACA,kBAEA,gBACA,YACA,GAEA,+BACA,2BACA,OACA,YACA,MACA,EACA,CACA,uBACA,UACA,IACA,eACA,UACA,IACA,OACA,aACA,IACA,UACA,MAGA,GAFA,UACA,OAEA,UACA,oBACA,0BACA,CACA,IApgEA,EACA,EAmgEA,GApgEA,KACA,GACA,iBACA,WACA,YACA,iBACA,SACA,CACA,EACA,OACA,WACA,qBACA,QA0/DA,EAz/DA,YAAsB,WAAsB,aAy/D5C,EAx/DA,CAAK,CACL,YAGA,IAFA,oBACA,WACA,IAAsB,WAA0B,IAChD,gBACA,GAEA,GAk/DA,GACA,EACA,EACA,EACA,MAEA,EAAM,IACN,GACA,EACA,EACA,EACA,MAEA,CAAI,SACJ,GACA,EACA,EACA,CAAQ,iBAAoB,4BAAqC,CACjE,KAEA,EAAI,OACJ,MACA,UACA,gBACA,kBACA,KACA,CACA,CACA,eACA,qBACA,iCACA,kBACA,GACA,EACA,EACA,EACA,EACA,SACA,GACA,WAEA,OADA,MACA,IACA,EAEA,CACA,eACA,sBACA,qBAcA,SAiBA,MAhBA,CAdA,GACA,gBACA,YACA,eACA,OACA,aACA,QACA,cACA,uBACA,mBACA,CAAK,CACL,SACA,GAEA,MACA,gBACA,YACA,eACA,OACA,aACA,QACA,cACA,uBACA,mBACA,CAAK,CACL,SACA,EACA,kBAEA,OADA,iBACA,oBACA,CACA,CACA,eACA,WACA,8CACA,GACA,EACA,aACA,EAAM,CACN,KAEA,CACA,cACA,aACA,CACA,cACA,0BAEA,cACA,0BAEA,eACA,mBAAoC,UAAmB,CACvD,MADuD,CACvD,OACA,QACA,OACA,WAEA,OADA,QACA,EACA,WACA,WACA,WACA,GAAqB,YACrB,YACA,MACA,CACA,WAEA,CACA,mBACA,WACA,GACA,OACA,aACA,aACA,SACA,iBACA,gBACA,SACA,EACA,MACA,QAEA,OADA,iBAEA,WACA,UACA,CACA,mBAEA,SADA,KAEA,CACA,qBACA,OACA,OACA,aACA,aACA,SACA,iBACA,gBACA,SACA,EACA,qBACA,CACA,kBACA,GACA,aACA,yBACA,iCAEA,IACA,0BACA,SAGA,GAFA,mBACA,eACA,QACA,OACA,YACA,gBACA,EAEA,CAAQ,SACR,EAAQ,OACR,CAEA,UADA,gBAEA,OACA,UACA,UACA,EAEA,CACA,QACA,CACA,qBAUA,GATA,GACA,OACA,gBACA,aACA,SACA,iBACA,gBACA,SACA,EACA,MACA,+BAEA,aACA,EACA,EACA,EACA,EACA,GAEA,SACA,CACA,eACA,kBACA,OACA,QACA,gBAEA,CACA,iBACA,MACA,GACA,uBACA,EACA,SACA,yBACA,WACA,CACA,mBACA,mBACA,cACA,kBAEA,QADA,KAEA,OACA,CACA,CACA,QACA,eACA,OACA,eACA,cACA,aACA,uBACA,mBACA,sBACA,WACA,cACA,UACA,YACA,iBACA,oBACA,iBACA,wBACA,SACA,2BACA,gBACA,kBACA,iBACA,gBACA,kBACA,CAAG,CACH,IACA,eACA,OACA,0BAKA,OAJA,oBACA,EACA,kBACA,CACA,CACA,CAAK,CACL,cACA,aACA,oCACA,6BACA,GACA,QACA,EACA,kBACA,EAEA,CAAK,CACL,8BACA,wBACA,CAAK,CACL,iCACA,WACA,CAAK,CACL,sBACA,WACA,oBACA,UACA,OACA,OACA,IACA,GACA,EAAU,OACV,MACA,CACA,CAEA,OADA,sBACA,CACA,CAAK,CACL,2BACA,WACA,eACA,WACA,OACA,OACA,IACA,IACA,EAAY,OACZ,MACA,CACA,CACA,EAAQ,QAeR,OAdA,8BAQA,QAPA,GACA,aACA,QACA,cACA,sBACA,mBACA,EAEA,qBACA,KACA,GACA,GAEA,oBACK,CACL,mBAGA,0BADA,GAAuB,UAEvB,CAAK,CACL,qBAEA,MADA,UACA,MACA,qBAEA,OADA,aACA,oBACK,CACL,iBACA,+BAEA,UADA,KACA,IACA,CAAK,CACL,yBACA,aASA,OARA,UACA,KACA,GACA,QACA,GACA,IAEA,qBACA,OACK,CACL,qCACA,SACA,OACA,OACA,cACA,oBACA,KACA,EAAQ,IAER,GADA,MACA,UACA,mBACA,cACA,SACA,CACA,kBACA,OAAmB,uBAkBnB,OAjBA,UACA,wBACA,EACA,EACA,cACA,GACA,EACA,CAAU,eAAiB,CAC3B,QACA,KACA,EACA,EACA,EACA,GAEA,MAEA,CACA,CAAK,CACL,iBACA,WACA,sBACA,OACA,SACA,KAKA,EACA,WALA,GACA,CACA,oBACA,gBAIA,EADA,UAEA,wBACA,MACA,EAAQ,IAER,EACA,IACA,EACA,KAJA,SAKA,aACA,IACA,wBACA,CAAK,CACL,2BACA,gBACA,kBACA,0BACA,UACA,+BACA,OACA,aACA,QACA,cACA,yBACA,sBACA,EASA,OARA,UACA,UACA,KACA,GACA,GACA,GAEA,aACA,MACK,CACL,gBACA,2BACA,kCACA,KACA,GAEA,CACA,CAAG,CACH,IACA,eACA,OACA,eACA,cACA,aACA,uBACA,sBACA,mBACA,WACA,cACA,UACA,oBACA,aACA,CAAK,CACL,iBACA,+BAEA,UADA,KAGA,iBACA,EACA,EAEA,CAAK,CACL,yBACA,gBACA,qBACA,OACA,oBACA,EACA,MACA,EACA,CACK,CACL,wBACA,SACA,2BACA,gBACA,kBACA,4BAEA,UADA,KACA,OACA,CAAK,CACL,gBACA,kBACA,CAAG,CACH,IACA,eACA,OACA,eACA,cACA,aACA,uBACA,sBACA,mBACA,WACA,cACA,UACA,oBACA,aACA,CAAK,CACL,iBACA,+BACA,WACA,iBACA,UACA,GACA,EACA,iBACA,EACA,EAEA,CAAK,CACL,yBACA,gBACA,qBACA,OACA,oBACA,EACA,MACA,EACA,CACK,CACL,wBACA,SACA,2BACA,gBACA,kBACA,4BACA,kBACA,UACA,cACA,cACA,qBACA,CAAK,CACL,gBACA,kBACA,EACA,YACA,EACA,EACA,EACA,GAIA,EACA,MAFA,OADA,kBACA,EAGA,EACA,IAAiB,MACjB,kBACA,aACA,2BACA,CACA,QACA,gCACA,oBACA,WACA,OACA,aACA,wBAEA,OADA,eAEA,WACA,UACA,CAAG,CACH,oCACA,oBACA,WACA,OACA,SACA,YACA,wBAEA,OADA,eAEA,WACA,UACA,CAAG,CACH,iCACA,oBACA,WACA,OACA,SACA,wBAEA,OADA,eAEA,WACA,UACA,CACA,EACA,YACA,EACA,EACA,EACA,EACA,EACA,EACA,GAGA,wBADA,gBACA,sBACA,+BACA,iDACA,kBAEA,CACA,YACA,EACA,EACA,EACA,GAEA,UACA,gDACA,iCACA,uDACA,wCACA,aACA,sCACA,CACA,iBACA,QACA,aAEA,aADA,KACA,EACA,uBAEA,oBAEA,aADA,cAAmD,KACnD,EACA,eACA,YAEA,QACA,CACA,eACA,KACA,CACA,eACA,gBACA,CACA,eACA,KACA,CACA,iBACA,IACA,sBACA,SAAuC,uBAAiC,CACxE,CAAI,SACJ,sBACA,OACA,CAAK,CACL,CACA,CACA,mBACA,IACA,oBACA,SACA,uBACA,wCACA,CAAK,CACL,CAAI,SACJ,sBACA,OACA,CAAK,CACL,CACA,CACA,mBAOA,MALA,CADA,SACA,MACA,WAAmB,cACnB,sBACA,OACA,EACA,CACA,CACA,eAGA,MAFA,UACA,MACA,CACA,CACA,qBACA,sCACA,yBACA,cACA,qBACA,WACA,EACA,sBACA,SACA,CACA,CACA,yBACA,GACA,wCACA,uBACA,UACA,sBACA,WACA,mBACA,cACA,cACA,gCACA,4BACA,CAAO,CACP,EAAK,CA2JL,qBACA,MACA,qBACA,QACA,SACA,eACA,GACA,EACA,QACA,EACA,EAEA,CACA,YACA,EACA,EACA,EACA,EACA,GAEA,WACA,YACA,cACA,SACA,eACA,sBACA,EAAI,cAWJ,CAVA,MACA,KACA,EACA,EACA,EACA,EACA,EACA,GAEA,OACA,eAKA,aACA,WACA,YACA,SANA,WACA,UAMA,CACA,YACA,EACA,EACA,EACA,EACA,GAEA,aACA,mBAEA,sBACA,OACA,yBACA,kBAaA,MACA,OACA,KACA,EACA,EACA,OACA,EACA,EACA,UACA,WACA,WApBA,UACA,SACA,GACA,EACA,EACA,EACA,EACA,EACA,CAaA,CAEA,GADA,UACA,UACA,sBAGA,IADA,SADA,cACA,MACA,oBACA,gBACA,CAKA,OAJA,WACA,YACA,UACA,WACA,SACA,CACA,YACA,EACA,EACA,EACA,EACA,GAEA,aACA,sBACA,GACA,SACA,cAEA,GACA,MACA,oBACA,QAIA,OACA,gBACA,eAJA,4BAMA,CACA,UACA,EACA,EACA,EACA,EACA,EAEA,CACA,YACA,EACA,EACA,EACA,GAEA,iBACA,gCACA,sBACA,qBAGA,GAFA,EACA,yBACA,UAEA,QADA,kBAC4B,UAC5B,EACA,SAFmD,CAEnD,aACA,YACA,iBACA,EAAQ,gCACR,UACA,EACA,EACA,EACA,EAEA,CACA,qBAYA,OACA,gCACA,GACA,EACA,EACA,yBACA,EAjBA,kBAAwC,2BAA+B,CACvE,UACA,GACA,EACA,2BAEA,SACA,QACA,KACA,KAWA,EAAI,IACJ,SACA,mBACA,QACA,MACA,sBACA,sBACA,KACA,OAEA,OADA,YACA,QAEA,YACA,EACA,EACA,EACA,GAEA,WAcA,OATA,iBACA,YACA,UANA,EACA,SACA,KACA,CAAU,+BAIV,EACA,qBACA,KACA,MACA,UACA,aACA,IACA,CACA,iBAQA,MAPA,MACA,CAAM,gCAAoD,CAC1D,OACA,EACA,UACA,UACA,WACA,CACA,CACA,YACA,EACA,EACA,GAOA,OALA,qBACA,uBACA,WACA,MACA,qBACA,CACA,CACA,iBACA,YACA,YACA,UACA,cACA,uBACA,CACA,4CACA,mBACA,wBACA,kBACA,CACA,CACA,YACA,EACA,EACA,EACA,EACA,SAYA,CAVA,MACA,KACA,EACA,EACA,EACA,EACA,OACA,GAEA,OACA,eAKA,aACA,WACA,YACA,SANA,WACA,UAMA,CACA,YACA,EACA,EACA,EACA,EACA,EACA,SAYA,CAVA,MACA,mBACA,KACA,EACA,EACA,EACA,GAEA,MACA,OACA,eAKA,aACA,WACA,YACA,SANA,WACA,UAMA,CACA,YACA,EACA,EACA,EACA,EACA,GAGA,GADA,MACA,oBACA,SACA,gBACA,oBACA,UACA,UAEA,gBACA,QAFA,cAEA,qCACA,aACA,cACA,oBACA,gBACA,QACA,wBACA,UACA,MACA,gBACA,UACA,6BACA,MACA,GACA,wBAEA,kBADA,gCAEA,IACA,EACA,EACA,EACA,GAEA,yBACA,+CACA,8CACA,gDACA,yCACA,WACA,yCACA,uBACA,gDACA,8BACA,aACA,uCACA,YACA,KACA,yBACA,wCACA,mBACA,IACA,EAAI,iBACJ,cACA,sBACA,SACA,WACA,gBACA,gBACA,KACA,oBACA,UACA,UACA,iCACA,EACA,sBACA,6CACA,qBACA,GACA,uDACA,gDACA,YACA,GACA,EACA,EACA,EACA,GAEA,MACA,sBACA,UACA,YACA,KACA,kBACA,aACA,uBACA,IACA,EACA,EACA,EACA,GAEA,mBACA,GACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,gDACA,yCACA,0CACA,uBACA,gDACA,+BACA,wCACA,oBACA,yCACA,mBACA,kBACA,mBACA,UACA,UACA,YACA,KACA,yCACA,mBACA,KACA,EAAI,IACJ,cACA,QAEA,OADA,mBAEA,UACA,iBACA,YACA,gBACA,KACA,oBACA,UACA,UAEA,GACA,kBAFA,gCAGA,+CACA,uDACA,gDACA,gBACA,GACA,EACA,EACA,EACA,GAEA,MACA,kBACA,UACA,YACA,KACA,sBACA,OACA,OACA,IACA,UACA,uBACA,mBACA,uBACA,IACA,EACA,EACA,EACA,GAEA,mBACA,GACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,IAEA,UACA,uBACA,oBACA,IACA,iDACA,0CACA,2CACA,6BACA,iDACA,6BACA,EACA,EACA,EACA,EACA,yCACA,aACA,8CACA,iBACA,0CACA,qBACA,qBACA,aACA,8CACA,qBACA,qBACA,gBACA,kBACA,mBACA,UACA,UACA,YACA,KACA,0CACA,qBACA,qBACA,aACA,8CACA,qBACA,qBACA,gBACA,KACA,CAgCA,OA/BA,IACA,QACA,mBACA,KACA,eACA,EACA,iDACA,KACA,WACA,WACA,YACA,YACA,EACA,QACA,KACA,GAEA,WACA,EACA,KACA,EACA,EACA,EACA,YACA,wBACA,WACA,KACA,EACA,EACA,GAEA,CACA,CACA,YACA,EACA,EACA,EACA,GAKA,OAHA,KACA,aACA,YACA,QAEA,QACA,gBACA,iBACA,YACA,oBACA,EACA,eACA,OAAW,2BACX,CACA,YACA,EACA,EACA,GAIA,OAFA,6BACA,WACA,CACA,CACA,mBACA,IAGA,EAHA,iBACA,KACA,mBAUA,GARA,OACA,GACA,oCAEA,mBACA,wBACA,kBACA,aACA,UACA,OA0BA,GAzBA,EACA,MACA,MACA,OACA,OAIA,UAJA,MACA,EACA,GACA,GACA,sBAEA,kBACA,aACA,YACA,UACA,CAAsB,mBACtB,KACA,qBACA,oBACA,CAAa,CACb,UACA,SACA,UACA,KACA,SACA,OACA,qBAIA,OAHA,MACA,WACA,mBACA,IACA,CACA,uBAEA,CADA,aACA,GAEA,OAEA,KACA,CAAY,yBAA+C,CAF3D,UAKA,KACA,EACA,EACA,EACA,MAEA,WACA,WACA,YACA,UAEA,CADA,WACA,cACA,MACA,gBACA,EACA,EACA,GAEA,mBACA,IAEA,MACA,QACA,CACA,sBACA,GACA,UACA,wBACA,CACA,KACA,YACA,OACA,cACA,KACA,EACA,EACA,EACA,EACA,uBACA,OACA,gBACA,aACA,QACA,OACA,aACA,SACA,KACA,CAAgB,mCAA+C,CAC/D,GAEA,KACA,EACA,EACA,EACA,MAEA,WACA,WACA,WACA,YACA,UACA,GACA,EACA,QACA,KACA,GAEA,YACA,cACA,MACA,gBACA,EACA,EACA,GAEA,mBACA,UACA,GACA,MACA,MACA,CAIA,GAHA,EACA,eACA,sBACA,aACA,IACA,kBACA,SACA,WACA,IAA4B,+BAA6C,EACzE,KACA,EACA,EACA,EAEA,EAAM,OACN,IACA,aACA,sBACA,MACA,CAEA,GACA,OAFA,QAIA,IADA,aACA,gBAEA,MACA,cACA,QACA,UACA,EAEA,QACA,KACA,KACA,EACA,EACA,EAEA,EAAM,IACN,MACA,cACA,gBACA,QACA,iBACA,MACA,eAEA,KACA,MACA,QACA,MACA,UACA,QACA,KACA,EACA,YAEA,eACA,QACA,QACA,EAEA,OACA,aACA,SAEA,EADA,YACA,QACA,SACA,cACA,qBACO,EACP,sCACA,SACA,KACA,EACA,GAEA,MACA,EACA,EACA,EACA,MAEA,YACA,WACA,WACA,YACA,UACA,IACA,UAEA,OADA,0BAEA,QACA,wBAEA,oBACA,EACA,aACA,CAAsB,iBACtB,GACA,OACA,GACA,wBACA,WACA,CAAW,EACX,kBACA,gBACA,EACA,EACA,GAEA,mBACA,IAEA,MAEA,GADA,WACA,QAKA,CAJA,QACA,eACA,qBACG,EACH,SACA,eACA,UACA,wBAEA,8BACA,WACA,UACA,qBACA,EACA,CACA,iBAMA,MADA,CAJA,KACA,CAAM,0BAA4C,CAClD,OACA,EACA,SACA,SACA,CACA,iBASA,MARA,oBACA,QACA,aACA,cACA,qBACA,iBACA,iBACA,EACA,CACA,CACA,YACA,EACA,EACA,GASA,OAPA,qBACA,KACA,EACA,yBAEA,WACA,qBACA,CACA,CACA,mBACA,WACA,yBACA,gBACA,gBACA,CACA,YACA,EACA,EACA,EACA,EACA,EACA,GAEA,6BACA,EACA,iBACA,cACA,eACA,qBACA,OACA,OACA,WACA,eACA,CAAO,CACP,iBACA,iBACA,uBACA,SACA,SACA,aACA,kBACA,CACA,mBACA,qBACA,gBACA,SACA,aACA,iBACA,WAQA,GAPA,EACA,SACA,cACA,KACA,QACA,YACA,UACA,+BACA,gBAA4C,UAAkB,CAC9D,KAD8D,GAC9D,MACA,wBACA,eACA,cACA,eACA,mBACA,iBACA,UACA,QACA,CACA,eACA,KAAa,kBAA0B,CACvC,iCACA,QACA,WAEA,0BACA,YAEA,UACA,eAEA,WADA,UAC+B,UAC/B,wBAEA,cACA,MACA,mBACA,MAEA,yBACA,6BACA,GACA,EACA,GACA,EACA,EACA,EACA,GAEA,KACA,iBACA,gCAGA,IAFA,OACA,UACA,aAAwC,UAAsB,CAE9D,SAF8D,CAC9D,iBACA,cACA,UACA,KACA,CACA,YACA,YACA,IACA,GACA,CACA,GACA,EACA,GACA,EACA,KACA,EACA,GAEA,KACA,gBACA,GACA,EACA,GACA,KACA,KACA,OACA,GAEA,KACA,SACA,oBACA,CACA,eAEA,mBAGA,GAFA,0CACA,YACA,oBACA,aAWM,iBAVN,GACA,GACA,EACA,EACA,EACA,IAEA,oBAEA,WACM,CACN,+BACA,oBACA,mBAIA,IAFA,KADA,UACA,gBACA,UACA,WAA8C,kBAC9C,YACA,aACA,sBACA,QACA,eACA,CACA,eAEA,wBACA,kBAEA,QADA,oBACA,MACA,CAkGA,mBACA,YACA,oCACA,UACA,CACA,GACA,UACA,iBAEA,OACA,MACA,SA3GA,EACA,EACA,GAEA,cACA,OACA,+BACA,+BACA,KACA,KACA,SACA,OACA,KACA,KACA,QACA,+BACA,KACA,SACA,GACA,EACA,OACA,uBAEA,KACA,SACA,0BACA,OACA,aACA,MACA,KAEA,KACA,SACA,sBACA,aACA,uBACA,OACA,MACA,aACA,KAEA,6BACA,iBAOA,OANA,MAMA,OALA,MACA,EACA,EACA,EACA,EACA,cACA,CACA,MACA,KACA,SACA,uBAUA,GATA,yBAEA,IACA,EACA,EACA,EACA,IAEA,uBACA,GACA,KACA,UACA,EACA,EACA,EAEA,aACA,CAOA,GALA,OADA,qBAEA,kBACA,YACA,mBACA,kBACA,EACA,YADA,KAEA,SACA,OACA,UACA,GACA,EACA,EACA,EACA,eAGA,SACA,8BACA,CACA,gBACA,EAaA,EACA,EACA,GAGA,sBACA,MAEA,MACA,IACA,sBACA,iBAEA,OADA,UACA,OACA,QACA,GACA,iBACA,oBACA,UAGA,GAFA,gBACA,SACA,qBACA,MACA,WACA,QACA,KACA,KACA,EACA,EACA,EACA,EACA,EACA,SACA,KACA,KACA,EACA,EACA,EACA,EACA,MACA,CACA,WACA,IACA,mBACA,CACA,SACA,KACA,KACA,EACA,EACA,EACA,GAEA,OACA,EAAc,cACd,SACA,KACA,KACA,EACA,EACA,EACA,GAEA,OACA,EAGA,kBAFA,EACA,SAh9NA,KACA,uBACA,wBACA,sBACA,KACA,4BACA,+BACA,UACA,OACA,gBACA,QACA,gBACA,QACA,kBACA,QACA,gBACA,QACA,oBACA,QACA,gBACA,CACA,sBACA,mBACA,OACA,cACA,QACA,+BACA,QACA,qDACA,QACA,eAKA,MAHA,CADA,kBAEA,CACA,OADA,8BACA,kCACA,CACA,QACA,OAEA,OADA,wBAEA,EACA,iBAEA,QACA,aACA,UACA,IACA,cACA,CAAU,UACV,CACA,WACA,EA65NA,MACA,IACA,CACA,CACA,QACA,QACA,UACA,EACA,EACA,OACA,eACA,EAEA,QACA,OACA,EACA,GADA,SAGA,gBAEA,GACA,EACA,EACA,EACA,EACA,EAGA,QACA,GAKA,GAJA,EACA,EACA,2BAEA,6BACA,iBACA,sBACA,YACA,QACA,eACA,sBAYA,GAVA,QADA,WAEA,aACA,GACA,EACA,KACA,EACA,IAEA,KACA,YACA,eACA,GACA,GACA,UACA,gBACA,aACA,CAAa,CACb,0BACA,kBACA,YACA,CACA,KACA,EACA,EACA,EACA,GAEA,OACA,EAAY,cAKZ,GAJA,KACA,cACA,IAGA,KACA,EACA,EACA,EACA,GAEA,OACA,EAAY,IAuBZ,IAXA,OARA,EADA,IAFA,8BACA,SAEA,OAIA,oBACA,qBACA,GAEA,YACA,KACA,MACA,QACA,MACA,KACA,EACA,KACA,EACA,GAEA,UAAqD,GACrD,UADkE,CAClE,aACA,gBAEA,CAEA,GADA,KACA,OACA,KACA,EACA,EACA,GAEA,OACA,CACA,GACA,EACA,EACA,EACA,EAEA,CACA,UAEA,QACA,SACA,OACA,QACA,SACA,MACA,OACA,KACA,eACA,KACA,EACA,kBACA,IACA,UACA,iBACA,MACA,WACA,iBACA,OACA,QACA,UACA,MACA,eACA,mBACA,OACA,gBACA,eACA,iBAEA,IAEA,SACA,OACA,KACA,UACA,IACA,eACA,GACA,OACA,eACA,WAEA,KACA,MACA,KACA,WACA,MACA,MACA,aACA,EACA,MACA,GACA,EACA,EACA,wBACA,GAEA,QACA,6BACA,aAEA,EA0CA,OAzCA,eACA,UACA,oBA4zMA,SACA,KAAS,gBAAyB,CAElC,8CACA,IACA,IACA,0CAEA,WACM,KASN,WACA,UACA,WACA,qCACA,QACA,YAEA,kBADA,2BACA,mCAGA,IA1BA,EA0BA,KACA,yBACA,OA5BA,EA4BA,WA5BA,EA4BA,KACA,KA7BA,EA8BA,OACA,gCACA,OAhCA,EAgCA,iBAhCA,EAgCA,cACA,0BACA,OAlCA,EAkCA,WAlCA,EAkCA,OAVA,MAaA,QACA,aACA,2CACA,QACA,cAEA,GACA,CAFA,4BAEA,OA5CA,EA4CA,SA5CA,EA4CA,MACA,yBACA,mBA9CA,EA8CA,OACA,gCACA,OAhDA,EAgDA,iBAhDA,EAgDA,eACA,GACA,yBACA,4BAEA,MACA,QACA,SACA,QACA,MAjDA,mCAOQ,SANR,YATA,EASA,aATA,EASA,KACA,GACA,WAXA,EAWA,MACA,2BAEA,QACA,CA4CA,CA5CQ,EA4CR,OADA,sBACA,KACA,CACA,WACA,EA33MA,EACA,OACA,eACA,GACA,EAEA,eACA,KACA,MACA,cAEA,MACA,MACA,MACA,UAEA,KACA,SACA,iBACA,gCACA,aACA,QACA,OACA,UACA,SACA,cACA,wBACA,CAQA,iBARA,KACA,EACA,EACA,GACA,KACA,KACA,EAEA,EACA,QACA,YACA,aACA,EAgBA,OAfA,eACA,UACA,CAKA,OALA,YAk1MA,OACA,sBACA,KAAS,gBAAyB,GAElC,iBACA,sBACA,oBACA,IAIA,OADA,sBADA,YAIA,QACA,EA/1MA,EACA,eACA,GACA,EAEA,eACA,KACA,QACA,MACA,MACA,UAEA,IACA,SACA,gBACA,QACA,OACA,EACA,EACA,2BAEA,iBACA,SACA,WACA,EACA,KACA,EACA,GAEA,GACA,EACA,EACA,EACA,GAEA,aAEA,GACA,UACA,EACA,EACA,OACA,eACA,EAEA,QACA,OACA,GACA,EACA,EACA,eACA,GAEA,aAEA,EAUA,QATA,OACA,GACA,EACA,EACA,wBACA,GAEA,aAYA,GACA,OACA,iBACA,qBACA,GACA,EACA,EACA,WACA,GAEA,aAEA,EACA,OACA,kBACA,0BACA,MAEA,IADA,SAEA,WACA,YACA,OAEA,SACA,UACA,EACA,EACA,OACA,eACA,EAEA,SACA,UACA,EACA,EACA,OACA,eACA,EAEA,SACA,gBACA,SAIA,GAHA,iBACA,mBACA,cACA,SACA,OACA,qBACA,aACA,GACA,MACA,OACA,OAIA,GACA,OALA,MACA,EACA,GACA,GAEA,aACA,EACA,OAEA,kBACA,aACA,YACA,UACA,CAA4B,mBAC5B,KACA,qBACA,oBACA,CAAmB,CAEnB,CADA,SACA,SACA,UACA,KACA,SACA,OACA,SAEA,WACA,oBACA,MACA,EAAU,mBACV,GACA,2BAEA,GACA,eACA,MACA,EAEA,eACA,cACA,KACA,EACA,EACA,QAEA,0BACA,gBACA,aACA,YACA,yBACA,GACA,IACA,GACA,EACA,EACA,EACA,IAEA,sBACA,MACA,CAEA,GACA,OAFA,QAIA,IADA,aACA,gBAEA,MACA,cACA,QACA,UACA,GAEA,KACA,KACA,EACA,EACA,EAEA,EAAU,IACV,gBACA,qBACA,KACA,MACA,QACA,MACA,UACA,QACA,UACA,kBAEA,eACA,YACA,qBACS,EACT,UACA,UACA,WACA,IACA,QACA,SACA,UACA,EACA,EACA,EACA,eAEA,SACA,OACA,MACA,SACA,SACA,CACA,OADA,UAEA,MACA,OACA,gBACA,aACA,kCACA,KACA,iBACA,SACA,OACA,CAAa,CACb,MACA,YACA,iBACA,SACA,kBACA,MACA,kBACA,kBACA,aACA,IAA2B,iBAA6C,CACxE,kBACA,aACA,iBACA,wBACA,GACA,YACA,IACA,KADA,WAEA,aACA,GACA,EACA,KACA,EACA,GACA,GACA,GACA,EACA,EACA,wBACA,GAEA,OAEA,SACA,qBAEA,yBACA,CACA,eACA,UACA,CACA,YACA,EACA,EACA,EACA,EACA,GAGA,GADA,2BACA,EACA,IACA,mBACA,mBAEA,2CACA,2BAEA,MACA,MACA,EACA,MACI,mBACJ,CACA,iBACA,iDACA,yBACA,6BACA,2BAEA,MACA,MACA,EAEA,CACA,iBACA,uBACA,eACA,GACA,2BACA,WACA,MACA,CACA,iBACA,OACA,mBACA,aACA,SACA,eAAsC,UACtC,oBACA,MACA,mBACA,EACA,YACA,eACA,KACA,iBACA,SACA,eAA0C,UAC1C,WADiE,OACjE,QACA,mBACA,EACA,iBACA,YACA,oBACA,cACA,CACA,CACA,eACA,MACA,oBACA,4BACA,IACA,IACA,KACA,kBAA8C,UAC9C,QADkE,EAClE,cACA,4BACA,qBACA,WACA,iBAEA,cAA0C,UAC1C,QAD8D,EAC9D,cACA,kBACA,WACA,WACA,YAGA,OAFA,kBACA,eACA,CACA,CAmkBA,iBAEA,OADA,MACA,OACA,OACA,OACA,IACA,KACA,SACA,QACA,OACA,KACA,KACA,QACA,IACA,KACA,SACA,wBACA,MACA,KACA,SACA,MACA,KACA,SACA,MACA,KACA,SACA,WACA,KACA,SACA,QACA,MACA,KACA,gBACA,KACA,SACA,MACA,CACA,CACA,iBACA,IACA,oBACA,6BACA,aACA,aACA,IACA,GACA,kBACA,SACA,eACA,OAEA,QADA,KAEA,CACA,UACQ,YAER,CAAI,SACJ,gBACA,CACA,CACA,YACA,EACA,EACA,GAEA,IACA,oBACA,6BACA,aACA,aACA,IACA,GACA,kBACA,aACA,YACA,eACA,iBACA,IAGA,IADA,GAGA,CAAc,SACd,GACA,EANA,EAQA,EAEA,CACA,CACA,CACA,QACA,EAAQ,YAER,CAAI,SACJ,gBACA,CACA,CACA,eACA,oBACA,aACA,kBACA,IACA,OACA,CAAM,SACN,gBACA,CACA,CACA,CACA,YACA,EACA,EACA,GAEA,WACA,OACA,iBAEA,wBACA,IACA,wBACA,CAAI,SACJ,SACA,CACA,CACA,iBACA,IACA,YACA,aACA,cACA,QACA,QACA,OACA,kBACA,KACA,SACA,cAKA,qBACA,kBACA,WACA,CACA,CAAI,SACJ,SACA,CACA,CACA,iBACA,YACA,eACA,YACA,wBACA,IACA,GACA,CAAQ,SACR,SACA,EAAQ,OACR,kBAEA,MADA,iBACA,mBACA,MACA,wBACA,IACA,OACA,CAAQ,SACR,SACA,MACA,cACA,CACA,eACA,aACA,kBACA,cACA,IACA,UACA,aACA,YACA,aACA,eACA,uBACA,KACA,WACA,MACA,YACA,6BACA,CACA,CAAI,SACJ,gBACA,CACA,CACA,mBACA,IACA,kBACA,CA4pJA,kBACA,UACA,UACA,WACA,UACA,WACA,QACA,QACA,QACA,SACA,KACA,aACA,WACA,OACA,OACA,OACA,OACA,OACA,OACA,YACA,WACA,gCACA,UACA,cAEA,YADA,KAGA,oBACA,GACA,SACA,qBACA,kBACA,CACA,CACA,gBACA,WAEA,GADA,OAEA,qBACA,mBAEA,UACA,WACA,IACA,KACA,YACA,IACA,KACA,eACA,IACA,KACA,sBACA,IACA,KACA,aACA,IACA,KACA,oBACA,IACA,KACA,gBACA,8BACA,WACA,sBACA,KACA,SACA,OACA,GACA,EACA,EACA,EACA,EACA,EACA,EAEA,CACA,CACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEA,MACA,cAEA,SADA,aACA,EACA,GACA,OACA,6BAEA,UACA,YACA,KACA,gBACA,GACA,SACA,qBACA,GACA,EACA,EACA,EACA,KACA,EACA,EAEA,CACA,WACA,GACA,OACA,OACA,qBACA,mBAEA,UACA,YACA,IACA,KACA,oBACA,IACA,KACA,gBACA,GACA,SACA,OACA,GACA,EACA,EACA,EACA,EACA,EACA,EAEA,CACA,IACA,IACA,IACA,QACA,eACA,UACA,SACA,eACA,sBACA,MACA,gBAEA,SADA,SACA,EACA,GACA,OACA,qBACA,SACA,qBAEA,UACA,YAEA,eADA,KAGA,SACA,kBACA,CACA,WACA,GACA,OACA,OACA,wCAEA,UACA,YACA,IACA,KACA,oBACA,IACA,KACA,gBACA,KACA,+BACA,8BACA,KACA,SACA,OACA,eACA,CACA,UACA,MACA,cACA,eAEA,OACA,qBACA,SACA,uBAGA,aADA,EAEA,cAGA,GACA,EACA,EACA,EACA,KACA,EACA,IAGA,WAEA,OACA,OADA,EAEA,mBACA,OACA,qBAGA,aADA,EAEA,WACA,GACA,sBACA,mBAGA,GACA,EACA,EACA,EACA,EACA,EACA,IAGA,MACA,WACA,WACA,WACA,WACA,SACA,UACA,YACA,SACA,aACA,WACA,YACA,aACA,YACA,UACA,eACA,eACA,OACA,qBACA,SACA,sBACA,mBACA,WACA,GACA,OACA,OACA,qBACA,OACA,mBAEA,UACA,eACA,8BACA,WACA,sBACA,KACA,SACA,GACA,EACA,EACA,EACA,EACA,EACA,EAEA,CACA,MACA,SACA,UACA,eACA,OACA,qBACA,YACA,sBACA,GACA,EACA,EACA,EACA,OACA,EACA,GAEA,WACA,OACA,OACA,qBACA,OACA,0BACA,GACA,EACA,EACA,EACA,EACA,EACA,GAEA,MACA,CACA,CACA,eACA,OACA,qBACA,SACA,sBACA,mBACA,WACA,OACA,OACA,qBACA,OACA,oBACA,eACA,GAp+JA,cACA,OACA,CAAI,SACJ,gBACA,CACA,CACA,eACA,OACA,WACA,WACA,YACA,wBACA,UAGA,eACA,SAAY,CACZ,KAAW,kBAAwB,CACnC,6CACA,WAGA,IADA,0BAEA,YACA,kCAEA,CACA,2BACA,WACA,0BAFA,UAGA,4BAEA,mCAEA,CAwCA,mBACA,YACA,gBACA,cACA,4CACA,GACA,OACA,qCAEA,OADA,WACA,EAEA,IACA,sBACA,UAGA,sBAEA,eACA,kBACA,kBACA,IACA,IACA,4BACA,UAGA,4BACA,UACA,QACA,OACA,CAAI,SACJ,gBACA,CACA,CACA,UACA,MACA,MACA,0CACA,QA0JA,mBACA,cACA,cACA,OACA,QACA,QACA,QACA,aACA,KACA,QAEA,GADA,QACA,IACA,0BACA,IACA,qBACA,CAAY,SACZ,gBACA,KACA,CACA,SACA,OACA,iBAEA,kBACA,IACA,qBACA,EACA,EACA,sCAEA,CAAY,SACZ,GACA,EACA,SACA,EAEA,CACA,CACA,YACA,sBACA,KACA,QAEA,GADA,QAEA,MACA,yBACA,CAEA,GADA,OACA,eACA,oBACA,QACA,OAGA,OAFA,mBAIA,CACA,IACA,OACA,CAAU,SACV,gBACA,CACA,CACA,KACA,SACA,UACA,KACA,KACA,SACA,OACA,QACA,qBACA,sBACA,KACA,SA2CA,QA1CA,QACA,KACA,SACA,QACA,aACA,KACA,SACA,QACA,aACA,MAEA,OADA,qBAGA,OADA,kBAEA,SA04JA,KACA,sBACA,sCACA,2CACA,QACA,CACA,iBACA,IACA,2CACA,EACA,yCACA,eACA,CACA,EAn5JA,EAJA,UACA,KACA,IAGA,KACA,SAEA,IADA,+BACA,CACA,EACA,kCACA,GACA,KACA,SACA,KACA,WAo0BA,WACA,EACA,EACA,GAIA,IAFA,EACA,4BACA,UAAwC,UAAsB,CAC9D,SAD8D,QAC9D,CACA,IACA,IACA,UACA,cACA,OACA,QACA,QACA,EACA,EACA,EACA,GAEA,QACA,KACA,QAQA,GAPA,EACA,EACA,EACA,GAIA,kBADA,IADA,KACA,WACA,kBACA,IACA,qBACA,CAAY,SACZ,gBACA,CAGA,UADA,GADA,MACA,aACA,CACA,kBACA,IACA,+BACA,YACA,IACA,kCACA,WACA,IAEA,UACA,CAAY,SACZ,gBACA,CACA,CACA,GACA,MACA,MACA,eACA,KACA,SACA,KACA,SACA,OACA,EACA,EACA,EACA,GAEA,GACA,UACA,KACA,MACA,eACA,KACA,SAsCA,QArCA,EACA,EACA,EACA,GAEA,KACA,SACA,EACA,EACA,EACA,GAEA,GACA,KACA,QACA,KACA,SACA,EACA,EACA,EACA,GAEA,GACA,KACA,QACA,KACA,SACA,wBACA,EACA,EACA,EACA,GAEA,cAEA,SAQA,CACA,YAEA,EA37BA,EACA,EACA,0BAEA,QACA,KACA,IACA,CAEA,QAIA,CACA,CAoBA,YACA,MACA,YACA,EACA,EACA,GAEA,cAA8B,UAC9B,KAD+C,EAC/C,GACA,YAEA,YACA,EACA,EACA,GAEA,kDACA,IACA,6BACA,CAAM,UACN,cACA,QACA,IACA,QACA,GACA,EACA,EACA,GAEA,gBACA,wBACA,aACA,gBACA,0BACA,KACA,SACA,IACA,QACA,SACA,IACA,aACA,uBACA,GACA,EACA,EACA,GAEA,gBACA,KACA,KACA,KACA,QACA,IACA,OACA,QAWA,GAVA,KACA,KACA,QACA,GACA,EACA,EACA,GAEA,KACA,KACA,UACA,MACA,IACA,iBACA,QACA,qBACA,sBACA,IACA,wBACA,CAAY,SACZ,GACA,EACA,EACA,EAEA,MAEA,IACA,2BACA,CAAY,SACZ,GACA,EACA,EACA,EAEA,CACA,KACA,SACA,WACA,IACA,IAEA,IAFA,OAEA,SACA,OACA,oBACA,qBACA,EACA,aAEA,OACA,oBACA,KACA,QACA,KACA,KACA,6BACA,MACA,GACA,EACA,EACA,GAEA,KACA,KACA,KACA,QACA,QACA,QACA,QACA,IACA,UACA,IACA,UACA,GACA,EACA,EACA,GAEA,KACA,QACA,IACA,SAEA,kBADA,gBACA,sBACA,GACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GAEA,KACA,SAkBA,QAjBA,GACA,EACA,EACA,GAEA,KACA,SACA,GACA,QACA,uBACA,GACA,EACA,EACA,GAEA,IAQA,CACA,CACA,iBACA,GACA,wBAEA,OADA,iBAEA,2BACA,CACA,eACA,IACA,KACA,CAAM,SACN,gBACA,CACA,CACA,CACA,iBACA,GACA,wBAEA,OADA,iBAGA,OADA,qBAEA,wBAEA,IACA,KACA,CAAM,SACN,gBACA,CACA,CAsBA,iBACA,eAtBA,GACA,cACA,QACA,QACA,QACA,kBAGA,OAFA,UACA,uBACA,CACA,SACA,OAGA,OADA,GADA,gBACA,cAEA,yBACA,CAEA,SACA,yBACA,CACA,EAEA,GACA,sBACA,uBACA,WACA,sBACA,CAAG,CACH,CACA,iBACA,kBACA,YACA,YAAoB,WAAsB,KAC1C,WACA,IACA,IACA,IACA,OAAgB,UAAiB,CACjC,IADiC,GACjC,OACA,QACA,eACA,eACA,MACA,OACA,CACA,KACA,QACA,eACA,MACA,OACA,QACA,OACA,6BACA,MACA,OACA,CACA,WAEA,iCACA,UACA,QACA,MAEA,OADA,iBACA,gBACA,aACA,CACA,wBACA,cAA0C,UAC1C,QACA,EAFgE,EAEhE,QAEA,YACA,iBACA,kBACA,UACA,cACA,OACA,QACA,QACA,QACA,QACA,MACA,KACA,kBACA,QACA,kBACA,KACA,QACA,QACA,MACA,OACA,KACA,UACA,gBACA,MACA,IAEA,OADA,mBAGA,OADA,iBAEA,4BACA,yBACA,wBACA,KACA,SACA,SAOA,GANA,QACA,MACA,OACA,KACA,UACA,gBACA,KACA,oCAEA,GADA,kBACA,SACA,YACA,uBACA,GACA,SACA,kBACA,qBACA,YACA,YAIA,EAHA,GACA,qCAGA,OACA,OACA,+BACA,gBACA,6BAEA,sBACA,oBACA,EACA,gCACA,EACA,UACA,QACA,MACA,IACA,OACA,YACA,SACA,OACA,OACA,GACA,oBACA,KACA,aAAsC,WAAuB,IAC7D,GACA,SACA,uBACA,2BACA,KACA,SACA,wBACA,0BACA,0BACA,8BACA,gCACA,qBACA,KACA,eACA,CACA,cACA,OACA,EAEA,GADA,qBACA,KACA,sBACA,KACA,YACA,GACA,KACA,OACA,UACA,GACA,uBAEA,SAAkC,WAAuB,IACzD,GACA,SACA,0BACA,iBACA,KACA,eACA,yBACA,4BACA,6BACA,kBACA,KACA,aACA,+BACA,mBACA,KACA,cACA,4BACA,iBACA,KACA,WACA,CACA,cACA,OACA,EAEA,GADA,qBACA,KACA,sBACA,KACA,SACA,qBACA,CACA,QACA,MACA,GACA,CACA,aACA,EAAc,IACd,GACA,EACA,OACA,kBAGA,eACA,EACA,EACA,sBAGA,MACA,UACA,oBACA,gBACA,0BACA,UACA,SACA,GACA,EACA,OACA,aAEA,GACA,EACA,EACA,gBACA,EACA,UACA,oBACA,GACA,EACA,gBACA,gBAEA,CACA,KACA,SACA,QACA,MACA,OACA,KACA,UACA,gBACA,UACA,KACA,GACA,EACA,gBACA,iBAEA,KACA,QAOA,GANA,QACA,MACA,OACA,KACA,UACA,gBACA,YACA,cACA,IACA,QACA,CAAU,SACV,gBACA,CACA,CACA,KACA,mBACA,mBACA,GACA,EACA,EACA,2BACA,EACA,gBACA,KACA,QAGA,GAFA,QACA,MACA,KACA,sBACA,oBACA,kBACA,cACA,IACA,aACA,CAAU,SACV,gBACA,CACA,CACA,KACA,QAOA,GANA,QACA,KACA,uBACA,QACA,KACA,MACA,4CACA,IACA,mBACA,CAAU,SACV,gBACA,CACA,IACA,OAkNA,cACA,uBACA,cAA0C,UAAsB,CAChE,QACA,CAFgE,CAEhE,GACA,6CACA,YAEA,EA1NA,IACA,KACA,QACA,KACA,MACA,2BAEA,QACA,MACA,KACA,KACA,SAiJA,QAhJA,QACA,MACA,KACA,SAgIA,QA/HA,QACA,MACA,KAEA,OADA,mBAEA,oBACA,SACA,KACA,SACA,QACA,MACA,oBACA,wBACA,oCACA,UACA,KAEA,OADA,mBAEA,oBACA,SACA,KACA,SACA,yBACA,uCACA,KACA,KAOA,GANA,QACA,QACA,QACA,KACA,KACA,MACA,OACA,MAEA,CADA,eACA,cACA,iBACA,gBACA,GACA,WACA,GACA,IACA,IACA,SAsKA,KACA,cAAwC,UAAsB,CAC9D,QACA,CAF8D,MAE9D,OACA,OACA,QACA,QACA,QACA,iBACA,KACA,KACA,QACA,eACA,kBACA,2CACA,GACA,EACA,SACA,GAEA,KACA,KACA,SACA,eACA,SACA,OACA,eACA,KACA,KACA,SACA,wBACA,KACA,KACA,SACA,IAIA,CACA,YAEA,EA/MA,IACA,OACA,MAGA,CACA,yBACA,cACA,MACA,IACA,mBACA,UACA,iCACA,4CACA,qBACA,CACA,cACA,4BACA,EACA,SAEA,4BACA,UACA,IACA,iBACA,6BACA,GACA,aACA,CACA,CAAgB,SAChB,gBACA,CACA,OACY,aACZ,cACA,IACA,IACA,wBACA,GACA,gBACgB,SAChB,gBACA,CACA,OACY,cACZ,cACA,IACA,IACA,kBACA,EACA,SACA,kBACA,CAAgB,SAChB,gBACA,CACA,OACY,GACZ,yBACA,wBACA,QACA,eACA,CACA,iBACA,UACA,QACA,CACA,eACA,KAAiB,kBAAuB,CACxC,wCACA,iBACA,WAEA,gBACA,0BACA,YAEA,KAEA,OADA,mBAGA,OADA,kBAEA,mBACA,QAWA,SAEA,QAKA,CACA,CACA,eACA,cACA,QACA,IACA,IACA,iBACA,UAEA,CACA,UACA,IACA,KACA,CACA,WAEA,+BACA,cACA,QACA,kBACA,QACA,UACA,KACA,QACA,kBACA,YACA,wBACA,YACA,UACA,KACA,QACA,OACA,gCACA,SACA,SA3kCA,SACA,YACA,gBACA,cACA,EACA,gBACA,OACA,oBACA,qBACA,GACA,kBACA,CAMA,CANA,EACA,eACA,OACA,oBACA,qBACA,GACA,eAEA,MADA,2BAEA,kBACA,qBACA,GACA,OACA,SACA,YACA,uBAEA,OADA,WACA,EAEA,IACA,SACA,YACA,UAGA,SACA,aAuiCA,EACA,EACA,GAEA,KACA,SACA,mBACA,CACA,CAAM,SACN,gBACA,CACA,WACA,CACA,wBACA,CAUA,iBACA,uBACA,cAA0C,UAC1C,UADgE,MAChE,IACA,YAsKA,iBACA,UACA,WACA,wBACA,kCACA,mCACA,OACA,wBACA,kCACA,mCACA,OACA,uBACA,eACA,CACA,iBACA,OACA,oBACA,oCAEA,CADA,2BACA,GACA,6BACA,CACA,YACA,EACA,EACA,EACA,GAEA,wBACA,cAA0C,UAC1C,GACA,EACA,EACA,EACA,CALgE,EAOhE,YAEA,YACA,EACA,EACA,EACA,GAEA,cACA,cACA,OACA,QACA,QACA,GACA,EACA,EACA,EACA,GAEA,gBACA,KACA,QAuDA,QAQA,QAiDA,QA/GA,GACA,EACA,EACA,EACA,GAEA,KACA,QACA,GACA,EACA,EACA,EACA,GAEA,QACA,QACA,oBACA,oCACA,4BACA,GACA,cACA,iBACA,KACA,SACA,WACA,GACA,EACA,EACA,EACA,GAEA,cACA,IACA,sBACA,OACA,iBACA,sBACA,EACA,EACA,oCACA,wBACA,GAEA,CAAU,SACV,gBACA,CACA,EAAQ,IACR,GACA,EACA,EACA,EACA,GAEA,KAiBA,SACA,KACA,SACA,cACA,cACA,uBACA,gBACA,GACA,EACA,EACA,EACA,GAEA,QACA,gBACA,GACA,EACA,EACA,EACA,GAEA,kBACA,SA4BA,EACA,EACA,EACA,EACA,EACA,GAIA,IAFA,EACA,6BACA,UAAwC,UAAsB,CAC9D,IACA,IAGA,CAL8D,CAK9D,QACA,cACA,OACA,QACA,QACA,EATA,EAWA,EATA,EACA,EAWA,GAEA,QACA,KACA,SACA,KACA,SACA,yBACA,gBACA,gBACA,EAxBA,EA0BA,EAxBA,EACA,EA0BA,GAEA,GA/BA,EAiCA,GAEA,kBACA,EApCA,EAsCA,EApCA,EACA,EAsCA,EACA,EACA,GACA,QACA,GACA,YACA,GAEA,KACA,SACA,EAnDA,EAqDA,EAnDA,EACA,EAqDA,GAEA,GACA,QACA,kBACA,KACA,SACA,EA/DA,EAiEA,EA/DA,EACA,EAiEA,EAEA,CACA,YAEA,EA9GA,EACA,EACA,EACA,EACA,0BACA,EACA,gBACA,KACA,SACA,GACA,EACA,EACA,EACA,GAEA,QACA,iBASA,CACA,CAqFA,YACA,EACA,GAEA,wBACA,cAA0C,UAAsB,CAChE,IACA,IACA,CAHgE,CAGhE,QACA,cACA,QACA,GALA,EAKA,GACA,QACA,GACA,YACA,GAEA,KACA,SACA,GAbA,EAaA,GACA,QACA,kBACA,KACA,SACA,GAlBA,EAkBA,EACA,CACA,YAEA,CACA,YACA,eACA,qBACA,cAA0C,UAC1C,MACA,IAFgE,OAEhE,CAEA,eACA,cACA,QACA,MACA,YACA,wBACA,SAm2IA,OACA,iCACA,SACA,GACA,uBACA,2BACA,mCACA,uBACA,CACA,sBACA,iBACA,kBACA,OAEA,MAEA,OADA,UAEA,oBACA,2BACA,WACA,aACA,aACA,mBACA,aACA,MACA,MACA,CACA,qBACA,QACA,eACA,QAEA,GADA,2BAEA,OACA,gCACA,WACA,WACA,CAAO,EACP,eACA,YACA,CACA,8CACA,uBACA,qBACA,wBACA,WACA,aACA,6BACA,8BACA,CACA,EAp5IA,GACA,gBACA,iBAEA,KACA,QAqBA,QApBA,MACA,KACA,QACA,OACA,SACA,iCACA,MACA,KACA,KACA,SACA,wBACA,yBAEA,uBACA,MACA,aACA,MACA,MACA,MAIA,CACA,CACA,eACA,kBACA,GACA,UACA,mBACA,CACA,aACA,GACA,YACA,eACA,UACA,UAEA,CACA,eACA,kBACA,oBACA,YACA,YAAsB,WAAsB,KAC5C,WACA,KACA,GACA,EACA,EAEA,CACA,KACA,CACA,wBACA,cAA0C,UAC1C,MACA,IAFgE,OAEhE,CAEA,eACA,cACA,OACA,QACA,QACA,MACA,cACA,iBACA,KACA,QAGA,QAYA,QAdA,MACA,KAIA,SACA,yBACA,iBACA,iBACA,qCACA,mBACA,SAOA,KACA,kBACA,oBACA,YACA,YAAsB,WAAsB,KAC5C,WACA,KACA,GACA,EACA,EAEA,CACA,KACA,CACA,cAAwC,UAAsB,CAE9D,OADA,EAD8D,CAC9D,GACA,KACA,OACA,QACA,QACA,iBACA,KACA,KACA,SAEA,EADA,gBACA,aACA,mBACA,MACA,KACA,SACA,IACA,CACA,YAEA,EAzCA,IACA,KAIA,CACA,CAoCA,YACA,EACA,GAEA,KAAS,WAAqB,CAC9B,OAD8B,EAE9B,cACA,OACA,QACA,QACA,UACA,KACA,SACA,QACA,GACA,wBACA,iCACA,CACA,2CACA,eACA,CACA,KACA,SACA,yBACA,CAEA,UADA,YACA,qBAEA,QAA0C,WAAqB,CAE/D,MADA,OACA,QACA,WAEA,IADA,SA53CA,KACA,yBACA,GACA,wBACA,aACA,iBACA,eACA,WAEA,OADA,iBACA,MACA,iBACA,cACA,oBACA,qBACA,qBACA,oBACA,iBACA,kBACA,EA02CA,GACA,OACA,QACA,KACA,CACA,aACA,WACA,KACA,KACA,CACA,IACA,CACA,CACA,CACA,QACA,4BACA,aACA,gBAIA,OAHA,YACA,OACA,iBACA,CACA,CAAK,CACL,uBACA,gCAEA,CAAG,CACH,0CACA,KACA,QACA,QACA,KACA,KACA,QACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,QACA,QACA,MACA,KACA,OACA,QACA,QACA,KACA,QACA,QACA,KACA,KACA,QACA,QACA,KACA,QACA,cACA,yBACA,OACA,WACA,KACA,IACA,CACA,cACA,QACA,IACA,uBACA,KACA,YACA,iBAEA,OADA,wBACA,EACA,CACA,mBAEA,SACA,SACA,SACA,+BAEA,SACA,GACA,EACA,GACA,GACA,GACA,EACA,QACA,qBACA,SACA,YACA,QACA,QACA,GACA,EACA,GACA,GACA,GACA,EACA,MACA,CACA,mBACA,iCAUA,IATA,MACA,IACA,YACA,uBACA,QACA,IAudA,cACA,SACA,MACA,WACA,MACA,gBACA,SACA,YACA,SACA,MACA,EACA,GAEA,SACA,IACA,sBACA,KACA,SACA,aACA,OACA,KACA,QACA,YACA,KACA,QACA,OACA,UACA,KACA,QACA,MACA,KACA,CACA,aACA,QACA,QACA,QACA,OACA,KACA,EACA,YACA,OACA,QACA,KACA,OACA,QACA,KACA,OACA,QACA,MACA,MACA,QACA,OACA,MACA,QACA,aACA,KACA,QACA,WACA,eACA,QACA,wBACA,EACA,QACA,SACA,GACA,EACA,MACA,qBACA,CACA,KACA,QACA,gBACA,qBACA,CACA,sBACA,EACA,MACA,OACA,OACA,CACA,OACA,CACA,CACA,KACA,QACA,YACA,KACA,QACA,KACA,QACA,YACA,KACA,QACA,KACA,KACA,OACA,SACA,mBACA,CACA,CAkBA,KAAS,kBACT,OAjBA,EAgBoD,GAfpD,CAAM,SACN,OACA,OAMA,CAJA,WACA,MACA,MACA,KACA,cACA,QACA,KACA,KACA,GACA,EAzkBA,KACA,WACA,MACA,CACA,SACA,IACA,IACA,iBAEM,CAEN,GADA,sBAEA,GACA,UA8MA,GACA,cAAkC,CAClC,YACA,GACA,yBACA,eAEA,OADA,mBACA,oBAEA,YAAsB,WAAgB,KACtC,WACA,gBACA,UACA,IACA,sBACA,CAAU,SACV,QACA,CACA,CAEA,GADA,UACA,+BACA,mBACA,CACA,eACA,KAAa,kBAAuB,CACpC,0CACA,WAEA,0BACA,YAEA,CACA,QACA,EA/OA,GACA,CACA,aACA,KACA,QACA,CACA,UAEA,GADA,IACA,+BACA,aAGA,EACA,GAFA,+BAGA,EACA,aACA,WACA,EACA,UACA,IACA,GAEA,KACA,2CAQA,GAPA,GACA,IAJA,EAIA,eAMA,IALA,MALA,EAOA,EACA,GACA,EACA,CACA,GACA,IACA,GACA,CAdA,EAeA,8BACA,IACA,EACA,IACA,OACA,CACA,KACA,KACA,UACA,WACA,KACA,cACA,GACA,EACA,CACA,CACA,GACA,CAEA,GADA,KACA,cACA,CACA,CACA,UACA,QACA,aACA,KACA,CACA,GAGA,OAFA,IACA,KAEA,OACA,OACA,mBACA,QACA,wBACA,QACA,GACA,EACA,EACA,GACA,KAEA,OACA,QACA,QACA,KACA,QACA,OACA,KACA,SACA,mBACA,CACA,GACA,mBACA,mBAEA,CAOA,GANA,GACA,EACA,EACA,GACA,KAEA,sBACA,oBACA,QACA,KACA,EACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GAEA,GAEA,OACA,CACA,GACA,EACA,EACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,EAEA,CACA,CACA,KACA,CACA,CADI,EACJ,EACA,CACA,YACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAIA,GAFA,mBAGA,MAFA,oBAGA,2BAGA,KAA2B,sCAAgD,CAC3E,MAEA,OADA,cAg9HA,iCACA,SAIA,OAHA,eACA,aACA,oBACA,UACA,YACA,4BAGA,GAFA,eACA,oBACA,aACA,kBACA,iBACA,GACA,CACA,CAAS,MAET,OADA,cACA,WACA,iBACA,eACA,CACA,EACA,IACA,GAv+HA,CACA,EACA,CACA,wBACA,QACA,KACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAGA,aACA,MACA,CACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAEA,CAmCA,YACA,EACA,EACA,EACA,GAEA,OACA,OACA,oBACA,kBACA,oBACA,oBACA,YAAmC,KAAW,CAC9C,GAD8C,CAC9C,WACA,MACA,SACA,KACA,CACA,OACA,SACA,CACA,cACA,kBACA,aAEA,CACA,cACA,cACA,UACA,qBAEA,KACA,WACA,MACA,QACA,KACA,KACA,KAAW,UACX,kBACA,WACA,OACA,CACA,CACA,iBACA,sBACA,QACA,2BAEA,OADA,2BAEA,iCACA,KACA,KACA,wBACA,KACA,KACA,QACA,MACA,WACA,MACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,MACA,KACA,MACA,oBACA,uBACA,SACA,IACA,uBACA,KAEA,CACA,eACA,OACA,QACA,KACA,CAGA,OAFA,KACA,KACA,CACA,CACA,iBACA,QACA,OACA,eACA,QACA,MACA,OACA,QACA,MACA,GACA,OACA,EACA,UACA,oBACA,0BACA,EACA,EACA,KACA,WACA,MACA,GACA,EACA,gBACA,CACA,CACA,cACA,iBACA,iBAEA,gBACA,GACA,UAGA,kBACA,IACA,qBACA,MACA,CACA,CACA,cACA,UAEA,OADA,OACA,aACA,CACA,cACA,UAEA,OADA,OACA,CACA,CACA,cACA,KACA,IACA,eACA,IACA,mBACA,QACA,mBACA,mBACA,WACA,GACA,GACA,GACA,GACA,GAEA,CACA,mBACA,SACA,MACA,WACA,MACA,mBACA,kBACA,KACA,SACA,SACA,IACA,sBACA,SACA,KACA,WACA,OACA,KACA,IACA,OACA,QACA,OACA,OACA,OACA,0BACA,SAIA,GAHA,KACA,QACA,YAEA,GACA,GACA,CACA,IACA,OACA,CACA,KACA,SACA,KACA,KACA,QACA,WACA,CACA,CACA,CAkBA,WACA,KAAS,WAAyB,OAClC,IAnBA,CAkBkC,CAlBlC,GACA,KACA,CAAM,SACN,OACA,CAWA,OATA,2BACA,WACA,KACA,MACA,MACA,WACA,SACA,KACA,MACA,CACA,CA4HA,eACA,0BACA,gCACA,mBACA,CACA,eACA,QACA,cACA,cACA,QACA,OACA,KACA,EACA,EACA,eACA,OACA,OACA,IAEA,KACA,SACA,KACA,EACA,EACA,eACA,cACA,MACA,IAEA,KACA,QACA,KACA,SACA,QAGA,OAFA,KACA,SACA,GACA,CACA,+BACA,mBACA,CACA,YACA,EACA,EACA,EACA,GAEA,WACA,MACA,QACA,KACA,eACA,IACA,GACA,SAltKA,EACA,EACA,EACA,EACA,GAGA,GADA,eAEA,UACA,oBACA,0BACA,CAUA,GARA,OADA,iBAEA,GACA,EACA,EACA,EACA,IAGA,OADA,eACA,CACA,cACA,QACA,QACA,OACA,UACA,KACA,oBACA,QACA,OACA,cACA,eACA,UACA,OACA,eACA,0BAEA,2BACA,SACA,WACA,EAEA,SACA,OACA,eACA,OACA,eACA,0BAEA,IACA,iBACA,qBACA,uBACA,CAAqB,CACrB,iBACA,wBAEA,0BACA,SACA,WACA,EAEA,CACA,yBACA,CAGA,OAFA,UACA,KACA,EACA,CACA,MACA,OACA,sBAEA,oCACA,eACA,UACA,QACA,GACA,GADA,gBAA0D,QAAc,EACxE,KACA,SACA,GAIA,GAJA,gBACA,OACA,CAAa,EAEb,IAEA,sBACA,eACA,MACA,WACA,UACA,KACA,YACA,EACA,GAEA,QACA,QACA,QACA,GAEA,oBAA0D,QAAc,EAMxE,GALA,UACA,UACA,OACA,WACA,eACA,kBACA,UACA,IACA,GACA,cACA,OACA,OACA,eACA,OACA,WACA,sBACA,QACA,EAEA,QACA,GACA,SACA,cACA,kBACA,gDACA,UACA,wCACA,YACA,aAEA,OACA,eACA,MACA,WAEA,GADA,QAGA,EACA,EACA,GAEA,QACA,EAEA,CACA,YACI,eACJ,QACA,EA4jKA,EACA,EACA,EACA,EACA,IAEA,CACA,KACA,GACA,EACA,iBAEA,QACA,MACA,CACA,CAAI,SACJ,yBACA,KACA,GACA,EACA,iBAEA,QACA,MACA,CACA,eACA,eAEA,IACA,mBAEA,KAEA,UACA,OACA,OACA,OACA,QAGA,OADA,gBAEA,YACA,gBALA,EAMA,SACI,KACJ,CACA,eACA,QACA,GACA,kCACA,GACA,EACA,IAIA,WACA,eApzGA,OACA,qBAEA,OADA,MACA,OACA,QACA,QACA,OACA,QACA,OACA,OACA,QACA,OACA,QAEA,OADA,iBAGA,QAoBA,OAnBA,cACA,OACA,oCACA,2BACA,gBACA,OACA,IACA,kBACA,4BACA,uBACA,4BACA,OACA,MACA,UACA,8BACA,kBACA,eACA,OACA,MACA,IACA,SACA,aACA,kBA+BA,OA9BA,SACA,OACA,SACA,OACA,SACA,OACA,GACA,EACA,EACA,KACA,EACA,EACA,GACA,EACA,oBACA,OACA,MACA,SACA,OACA,qBACA,uBACA,SACA,MACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,SAIA,GAHA,KACA,YACA,SACA,4BACA,+BACA,CACA,OACA,sBACA,oBAEA,OADA,MACA,IACA,CACA,YACA,MACA,QACA,GACA,UADA,YAEA,MACA,CAEA,OADA,MACA,IACA,QAGA,GAFA,KACA,SACA,4BACA,+BACA,CACA,OACA,sBACA,oBAEA,OADA,MACA,IACA,CAEA,GADA,YACA,MACA,YACA,CACA,SACA,WAEA,UACA,OACA,oBACA,6BACA,GAEA,KACA,QACA,oBACA,qCACA,GAEA,KACA,SACA,UACA,UACA,oBACA,6BACA,GAEA,KACA,YACA,oBACA,qCACA,GAEA,KACA,cACA,2BACA,+BACA,gBACA,cAEA,KACA,cACA,EACA,sBACA,0BACA,QACyB,EACzB,0BACA,WACA,cACA,wBACA,KACA,SACA,EACA,sBACA,mBAA4D,QAAiB,EAC7E,kBACA,CACA,CACA,QACA,QACA,MACA,UACA,UAEA,CACA,wBACA,gCACA,GACA,WACA,YACA,eACA,CACA,iBACA,UACA,QACA,CACA,eACA,KAAmB,kBAAgC,CACnD,GACA,iBACA,aAEA,QACA,WAEA,0BACA,YAGA,OADA,cAEA,aAEA,aACA,YACA,aACA,eACA,gBACA,KACA,WACA,KACA,KACA,SACA,IACA,CACA,QACA,CACA,CASA,OARA,MACA,GACA,EACA,OACA,8BACA,eACA,GAEA,IACA,QACA,wBACA,+BACA,CACA,0CACA,oBAEA,GADA,YACA,OAKA,GAJA,cACA,kBACA,OAEA,OADA,OAEA,cACA,QACA,OACA,kBAEA,QAOA,CANA,IACA,kBACA,2CACA,kBAEA,GACA,QACA,EAAU,GACV,GACA,qBACA,EACA,CACA,OACA,aACA,CAEA,OADA,MACA,IACA,SAEA,GADA,kBACA,kCAEA,GADA,QACA,UACA,aACA,0BAGA,IADA,UADA,oBACA,mBACA,mBACA,QACA,EAAY,IACZ,KACA,kBACA,uBACA,WACA,MACA,IACA,EAAU,IACV,OACA,UACA,wBACA,oCACA,KACA,OACA,eACA,eAEA,OADA,MACA,IACA,CACA,oBACA,mBACA,CAEA,OADA,MACA,IACA,SAEA,GADA,kBAEA,UACA,wBACA,kCACA,CAEA,GADA,QACA,+BACA,aACA,0BAGA,IADA,UADA,oBACA,mBACA,mBACA,QACA,EAAY,IACZ,KACA,kBACA,uBACA,WACA,MACA,IACA,EAAU,IACV,OACA,UACA,wBACA,oCACA,KACA,OACA,eACA,eAEA,OADA,MACA,IACA,CACA,CAEA,GADA,MACA,iBACA,mBAoBA,OAnBA,WACA,mCACA,GACA,WACA,OACA,oBACA,kCACA,4CACA,6CACA,OACA,wBACA,kCACA,mCACA,wBACA,OACA,GACA,sBACA,oBACA,MACA,IACA,QACA,OACA,IACA,UACA,8BACA,MACA,IAEA,SACA,OACA,qBAEA,SAGA,GAFA,MAEA,OADA,oBACA,kBAGA,GAFA,mBAEA,OADA,gBAEA,kBACA,CACA,GACA,QACA,2BAEA,cAAiD,UAAkB,CAEnE,KAFmE,KACnE,UACA,CAQA,IAPA,aACA,SAEA,cADA,gBAEA,QACA,iBACA,IACA,UAAyD,UACzD,QACA,EAF+E,EAE/E,QAOA,OANA,EACA,GACA,gBAEA,IACA,sBACA,QAEA,WACA,CACA,eACA,SACA,cACA,KACA,SACA,gBACA,KACA,CACA,MACA,GACA,iBAEA,IACA,aACA,KAEA,cADA,gBAEA,QACA,SACA,eACA,uBACA,cACA,IAEA,uBAEA,4BACA,IACA,gBACA,cACA,KACA,SACA,gBACA,eACA,mBACA,WACA,CACA,OADA,WAEA,YACA,UACA,SACA,CACA,iBACA,OACA,SACA,cACA,iBACA,0BACA,eACA,aACA,EACA,GACA,aAEA,0BACA,EAGA,OADA,MACA,IACA,SACA,QACA,OACA,MACA,KACA,yBACA,SACA,4BACA,gBACA,mBACA,EACA,mBACA,kBACA,OACA,mCACA,MAEA,OADA,mBAEA,mBACA,OACA,UACA,wBACA,kCACA,mCACA,OACA,wBACA,kCACA,mCACA,uBACA,gBACA,IAEA,SACA,OACA,OACA,oCACA,2BACA,gBACA,OACA,MACA,IAEA,SAEA,QADA,WAGA,CACA,yBACA,EA2zFA,YACA,EACA,IAEA,aACA,KACA,MACA,CAEA,UADA,cACA,CACA,KACA,MACA,CACA,MACA,EAAI,eACJ,cACA,CACA,iBACA,GACA,MA70FA,cAEA,OADA,MACA,OACA,OACA,OACA,kBAEA,yBACA,IAEA,QACA,OACA,OACA,IAEA,UADA,WACA,cACA,yBACA,IAEA,SACA,QACA,OACA,gBACA,SACA,2BAEA,GADA,MACA,mBACA,oBACA,IACA,CAEA,aADA,YAEA,yBACA,IACA,SAGA,GAFA,MAEA,OADA,qBACA,qBACA,sBACA,oBACA,IACA,CAEA,aADA,YAEA,yBACA,IACA,SACA,iBACA,QACA,eACA,SACA,sBACA,SACA,QACA,OACA,MACA,KACA,gBAEA,MADA,YAEA,yBACA,IAEA,SACA,kBACA,SACA,WAGA,CACA,EAuwFA,eACA,aACA,eACA,KACA,MACA,CAIA,GAFA,OADA,cAEA,mDAEA,IACA,qBACA,CACA,KACA,MACA,CACA,MACA,EAAI,eACJ,KACA,OACA,CACA,YACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEA,2BACA,cACA,QACA,iCACA,aACA,qCA8BA,IA17UA,SACA,EACA,EACA,EACA,EACA,EACA,GAEA,qBACA,iBACA,mBACA,gBACA,cACA,kBACA,oBACA,gCACA,wBACA,sBACA,oBACA,kBACA,IACA,OACA,KAEA,CACA,eACA,MACA,QACA,QACA,WACA,YACA,IACA,cACA,WACA,IACA,CACA,kBACA,wBACA,CACA,KACA,CACA,iBACA,OACA,OACA,WACA,mBACA,UACA,EAi3UA,EACA,EAHA,EADA,qBACA,GAKA,EACA,EACA,GAEA,QACA,YACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,2BACA,mBACA,qBACA,qBAoZA,GAnZA,cAEA,OADA,OACA,IACA,EAAS,EACT,2CACA,qBACA,8BACA,MACA,SACA,MACA,MACA,KACA,MACA,KA3hFA,cAIA,GAHA,kBACA,MAEA,GADA,SACA,CACA,wBACA,OACA,uBACA,yBAGA,GAKA,MACA,CALA,EACA,qBACA,eACA,QAEA,+BACA,wBACA,eACA,IAiBA,EAjBA,MAiB6B,UAjB7B,CACA,cACA,gBACA,IACA,sBACY,SACZ,OACA,OACA,CACA,QACA,KACA,KACA,IACA,IACA,IACA,OACA,SAAoB,CACpB,KACA,OACA,uBACA,QACA,OACA,uBACA,QACA,wCACA,yBACA,IACA,IAEA,OAAmB,CACnB,iBAOA,GANA,OACA,SACA,MACA,OACA,SACA,MACA,+BAEA,EADA,MACA,UACA,CACA,GACA,CACA,EACA,qBAAkD,cAClD,EAAU,UACV,CACA,MAA2C,cAC3C,EAAI,WAGJ,IAFA,IAA2B,gCAC3B,MACA,KAAgC,WAChC,GAEA,GADA,MACA,MACA,mCAEA,qBAEA,KAAa,WAAqB,CAIlC,OAFA,EADA,OACA,UACA,UACA,OACA,OAEA,QACA,QA+CA,OACA,QACA,QACA,OACA,OACA,QAtDA,KAIA,QACA,0BACA,SACA,IACA,kBACA,kBACA,cACA,IACA,SACA,OACA,GAEA,4BACA,EACA,GAEA,uCACA,CAAgB,SAChB,GACA,EACA,SACA,EAEA,CACA,CACA,KACA,QACA,eACA,IAGA,IADA,GADA,8BACA,UAGA,WACA,SACA,mBACA,WACA,WACA,WACA,MACA,KACA,SACA,gBACA,EACA,KAQA,SACA,kCACA,CAEA,UADA,cACA,CACA,kBACA,KACA,KACA,CACA,WACA,CACA,EAo4EA,MACA,EAAQ,OACR,KACA,MACA,KACA,CACA,CACA,KACA,KACA,KACA,IACA,CACA,CACA,cACA,WACA,KACA,SACA,KACA,qBACA,iCACA,MACA,SACA,SACA,OACA,SACA,MACA,IACA,QACA,SACA,sBACA,gBACA,mBACA,GACA,OACA,GACA,iBACA,SAxjSA,OACA,gBACA,QAEA,sBAEA,mBACA,kBACA,eACA,cACA,6BACA,mCACA,EAEA,EA2iSA,gCACA,GAEA,CACA,GACA,UACA,MACA,CACA,cACA,QAEA,GADA,kBACA,qBACA,mBACA,wBACA,EACA,oBAEA,CACA,gCACA,2BACA,mBACA,uBACA,uBACA,sBACA,EACA,eACA,EACA,iBACA,YACA,KACA,KACA,IACA,KACA,SACA,EACA,GAEA,KACA,EACA,GAEA,GACA,GACA,GACA,mBACA,uBACA,2BACA,sBACA,0BACA,CACA,sBACA,4BACA,oBACA,IACA,eACA,2BACA,2BACA,cACA,CACA,CACA,CACA,CAEA,IADA,KAEA,IACA,gBAGA,gBACA,QACA,UACA,kBACA,gBACe,EAGf,IAFA,4BACA,UAEA,IACA,WACA,IACA,CACA,UACA,6BACA,yBACA,CACA,CACA,QACA,UACA,EAAQ,OACR,KACA,MACA,KACA,CACA,CACA,YACA,IACA,CACA,CACA,cACA,WACA,KACA,SACA,KACA,oBACA,gCACA,MACA,SACA,UACA,MACA,SACA,MACA,IACA,mBACA,EAAQ,OACR,KACA,MACA,KACA,CACA,CACA,IACA,CACA,CACA,cACA,mBACA,KACA,KACA,SACA,KACA,KACA,IACA,4BACA,mBACA,KACA,MACA,WACA,sBACA,qBAIA,GAHA,iBACA,MACA,cACA,4CACA,IACA,qBACA,GACA,EACA,OACA,2BAEA,CAAQ,UACR,aACA,MACA,MACA,MACA,SACA,IACA,IACA,+BACA,WACA,IACA,CACA,WACA,WACA,uBACW,CACX,CACA,EAAQ,OACR,MACA,KACA,CACA,CACA,gBACA,MACA,iBACA,0BACA,OACA,KACA,YACA,KACA,QACA,CACA,CACA,iBACA,4BAEA,MADA,mBAEA,0BACA,CACA,eAIA,OAHA,KACA,KACA,KACA,KACA,CACA,cACA,mBACA,SACA,KACA,KACA,aACA,MACA,MACA,IACA,cACA,SACA,KACA,QACA,SACA,KAIA,GAHA,KACA,WACA,KACA,8BACA,SAWA,GAVA,MACA,cACA,GACA,EACA,UACA,EACA,GAEA,KACA,SAEA,IACA,4CAEA,IACA,8BACA,CAAQ,UACR,QACA,EAAI,OACJ,MACA,MACA,OACA,CACA,CACA,mBACA,UACA,sBAEA,OADA,eAEA,eACA,CACA,mBACA,aACA,eAEA,KAAW,UAAiC,CAC5C,cACA,GACA,EACA,CAJ4C,CAK5C,GAEA,KACA,CAAQ,cACR,kBACA,GACA,YACA,wCACA,wCACA,YACA,YACA,CACA,UAGA,OADA,QADA,QACA,KAEA,IACA,EACA,EACA,EACA,GAEA,QACA,OACA,KACA,CACA,CACA,WAEA,CACA,mBACA,kBACA,aACA,qBACA,cACA,UACA,EAAI,IACJ,KACA,IADA,cAEA,sBACA,WACA,OACA,SACA,sBACA,YACA,CACA,mBACA,yBACA,eACA,kCACA,gBACA,QACA,YACA,SACA,QACA,iBACA,IACA,YACA,mBACA,MACA,SACA,QACA,KACA,CACA,iBACA,gBAEA,OADA,aAEA,SACA,MACA,CACA,eACA,sBACA,GACA,2BACA,OACA,CACA,iBACA,QACA,cACA,QACA,QACA,kBACA,yBACA,mBACA,KACA,SACA,cACA,KACA,SACA,0BACA,KACA,SACA,mBACA,CACA,sBACA,OACA,CAIA,YACA,QACA,MACA,MACA,MACA,KACA,eACA,QACA,eACA,WACA,QACA,cACA,MACA,IACA,OA6KA,cACA,UACA,GACA,GACA,IAEA,IACA,CAAG,CApLH,CACA,CACA,iBACA,YACA,MACA,GAEA,QADA,KACA,KAA8C,UAAmB,CACjE,MADiE,GAEjE,OACA,qBACA,qBACA,CACA,uBACA,gBAKA,EACA,UAHA,GADA,qBAEA,aAGA,cACA,EACA,IACA,CACA,CACA,OACA,MACA,QACA,EAAY,IACZ,KAOA,MANA,MACA,EACA,WACA,8BACA,qBACA,CACA,GACA,SACA,MACA,SACA,eAEM,GACN,KACA,CACA,CACA,cACA,IACA,CACA,cACA,SACA,IA27DA,EA37DA,GACA,SA27DA,EADA,iBACA,oBACA,SACA,KACA,IAEA,QACA,EAFA,GA77DA,OACA,IACA,uBACA,UAEA,CACA,aACA,SACA,OACA,aACA,uBACA,kBAEA,wBAEA,OAFA,EAGA,GACA,CACA,gBACA,SACA,cACA,CACA,iBACA,IACA,uBACA,gBACA,oBACA,4BACA,KAEA,CACA,eACA,OACA,OACA,OACA,sBACA,MAh/VA,cACA,UACA,OACA,OACA,OACA,OACA,QACA,YACA,SACA,QACA,SACA,SACA,SACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,YACA,YACA,YACA,aACA,aACA,YACA,SAIA,SASA,CACA,EAw8VA,MACM,0BACN,KACA,CASA,GARA,KACA,KACA,KACA,EACA,UACA,oDAEA,iBAEA,OACA,OACA,SACA,SACA,6BAEA,OACA,UACA,UACA,MACA,oBACA,qBAEA,GACA,UACA,QACA,CAEA,IADA,UACA,4BAEA,OADA,gBACA,OACA,OACA,OACA,KACA,KACA,SAMA,QALA,KACA,KACA,iBACA,IAIA,CAKA,OAHA,OADA,mBAEA,qBACA,iBACA,CACA,CAIA,OAHA,0BACA,qBACA,oBACA,CACA,CACA,iBACA,kBACA,qDACA,qBACA,8BACA,YACA,gBAMA,IALA,MACA,EACA,WACA,mDACA,EACA,MACA,UACA,WACA,yCACA,gBACA,KACA,CACA,iBACA,oBACA,UACA,CAWA,cACA,WACA,SACA,GACA,YACA,CACA,SACA,CACA,eACA,gBACA,oBACA,oBACA,KACA,qBACA,EACA,QACA,CACA,iBACA,6CAOA,OANA,cACA,gBACA,kCACA,+BACA,kBACA,4BACA,CACA,CA4EA,IACA,SACA,aACA,KACA,CACA,OACA,OAMA,GAJA,iBAMA,KAJA,qBACA,aAKA,CACA,wBACA,8BACA,0BACA,+BACA,wBACA,wBACA,yBACA,2BACA,4BACA,yBACA,4CACA,4CACA,kDACA,kDACA,GACA,WACA,gFAEA,GACA,WACA,6FACA,MAGA,oBACA,iBACA,WACA,YACA,QACA,EACA,GACA,mBACA,uEAEA,GACA,qBACA,yEAEA,GACA,sBACA,0EAEA,OACA,mOACA,KAEA,WACA,iEACA,WACA,YAEA,iBACA,WACA,YAAkB,WAA0B,KAC5C,WACA,UACA,cACA,GACA,aACA,KACA,IACA,iBACA,KACA,IACA,CACA,WACA,aACA,kBAEA,GADA,aACA,gCACA,QACA,IACA,kBACA,IACA,IACA,CAAY,SACZ,KACA,CACA,qBACA,GACA,MAEA,IACA,IACA,WACA,IACA,CAKA,GAHA,EADA,SACA,SACA,kBACA,aACA,gCACA,QACA,IACA,kBACA,IACA,IACA,CAAY,SACZ,KACA,CACA,qBACA,GACA,CACA,CACA,CACA,CACA,iBACA,iBACA,OACA,SACA,SACA,kBACA,WACA,cACA,SACA,CACA,mBACA,OACA,WACA,GACA,EACA,EACA,EACA,EAEA,CACA,6DACA,eACA,WACA,SACA,uBACA,uBACA,YACA,WACA,WACA,CAAK,EACL,MACA,eACA,EACA,eACA,WACA,OACA,UACA,2BACA,CACA,CACA,YACA,EACA,EACA,EACA,GAEA,cACA,OACA,SACA,KACA,QACA,KACA,KACA,SACA,IACA,CACA,SACA,KACA,EACA,EACA,GAEA,SACA,IACA,mBACA,iBACA,cACA,OACA,EACA,WACA,wBACA,WACA,SACA,CAAS,EACT,2BACA,WACA,wBACA,SACA,CAAS,EACT,0BACA,CACA,YACA,EACA,EACA,EACA,EACA,GAEA,QACA,GACA,UACA,UACA,SAEA,SAAc,CACd,mBACA,YACA,iBACA,gCACA,eACA,SACA,eAAqD,UAAkB,CACvE,KADuE,CACvE,MACA,GACA,gBACA,8BAEA,OACA,UACA,CACA,KAAe,UAAoB,CAEnC,OAFmC,GACnC,UACA,OAEA,GACA,IAFA,WAGA,OACA,QACA,OACA,CACA,MACA,UACA,CACA,eAEA,CACA,WAEA,cACA,QACA,QACA,KACA,GACA,gBACA,eACA,SACA,IACA,UACA,eACA,oBACA,eACA,YACA,KACA,KACA,eACA,UACA,KACA,KACA,gBACA,SACA,KACA,KACA,kBACA,gBACA,KACA,KACA,aACA,uBACA,gBACA,eACA,gBACA,gBACA,cACA,eACA,gBACA,kBACA,KACA,KACA,YACA,cACA,gBACA,eACA,gBACA,eACA,gBACA,WACA,KACA,KACA,mBACA,eACA,gBACA,iBACA,KACA,KACA,SACA,QACA,QACA,KACA,KACA,SACA,KACA,KACA,cACA,gBACA,KACA,KACA,aACA,KACA,KACA,YACA,UACA,YACA,KACA,KACA,yBACA,yBACA,oBACA,kBACA,kBACA,iBACA,kBACA,gBACA,KACA,KACA,cACA,mBACA,IACA,CACA,eACA,EACA,IACA,gCACA,IACA,SACA,YACA,KACA,EACA,KACA,IACA,UACA,UAEA,CACA,QAWA,GAVA,cAEA,IADA,WACA,gBACA,UACA,UACA,mBAEA,OACA,WAEA,QACA,WAEA,YACA,SACA,EACA,EACA,KACA,EACA,GAEA,QAA+B,qBAA6C,CAC5E,CACA,CACA,aACA,IACA,EACA,mCACA,EACA,kCAEA,IACA,QACA,GACA,iCACA,QACA,UAGA,SACA,EACA,aACA,EACA,oBACA,8BACA,OACA,EAEA,GACA,6BACA,IAIA,OAHA,KACA,MACA,OAEA,GACA,KACA,QACA,OACA,OACA,QACA,QAEA,QAFA,EAGY,aACZ,QAwCA,GAvCA,KACA,iBACA,iBACA,UACA,uCACA,MACA,mBACA,mBACA,aACA,EACA,QACA,EACA,MACA,EACA,QACA,EACA,MAQA,CAPA,QACA,EACA,UACA,EACA,EACA,EACA,EACA,SACA,kBACA,OACA,WACA,CAOA,CAPA,QACA,EACA,UACA,EACA,EACA,EACA,EACA,SACA,kBACA,KACA,IACA,KACA,GAKA,IAJA,KACA,IACA,IACA,IAEA,IACA,EACA,OAEA,IACA,IACA,QAkHA,EAlHA,IAA2C,EAAO,OAClD,IACA,KAAuB,OACvB,OACA,CAF0D,GAG1D,KAAuB,OACvB,WACA,KAAuB,KAAqB,CAC5C,GACA,OACA,KAH4C,EAG5C,mBACA,CACA,IACA,OACA,CACA,OACA,MACA,CACA,MACA,MACA,MACA,WACA,GACA,EACA,EACA,EACA,EACA,IAEA,UACA,UACA,GACA,EACA,EACA,EACA,EACA,GAEA,CAGA,GAIA,GACA,WAHA,GADA,mBAEA,qCAGA,6BAEA,cACA,SACA,MACA,SACA,CACA,KACA,QACA,KAEA,gBAEA,2BACA,wCAIA,KAHA,GACA,mBACA,OAEA,GACA,GACA,WACA,CACA,GACA,EACA,EACA,EACA,GAEA,OACA,CACA,YACA,gBACA,GACA,mBACA,6BACA,sBACA,CAEA,OADA,iBACA,GACA,cAEA,QACA,6BAEA,MACA,KACA,SACA,KACA,gBACA,cACA,KACA,iBACA,MACA,KACA,mBACA,cACA,cACA,MACA,UACA,KACA,uBACA,WACA,eACA,YACA,SACA,CAEA,MACA,GACA,UACA,uBACA,2BACA,OACA,sBACA,qBACA,OACA,yBACA,wBACA,OACA,CACA,QACA,MAEA,GACA,SACA,uBACA,eACA,iBACA,wBACA,IACA,KACA,iBACA,8BACA,wBACA,IACA,SACA,IACA,SADA,OACA,wBACA,QAEA,EADA,YACA,QACA,UACA,EACA,EACA,KACA,EACA,GAEA,QAA+B,oBAA8C,EAC7E,EACA,SAEA,OADA,WACA,aAEA,MACA,SA/hVA,KACA,UACA,qBACA,YACA,gBACA,4BAEA,OADA,MA7BA,GA+BA,iBACA,MACA,kBACA,SAEA,SACA,WACA,CACA,EA+gVA,KACA,SA/gVA,KACA,MACA,4BACA,KACA,QACA,QACA,cACA,MACA,GACA,KACA,UACA,YAgBA,QAfA,WACA,gBACA,GACA,mCACA,oBACA,CACA,2BACA,cACA,8CACA,CACA,WACA,sBACA,2BACA,KACA,OAIA,EAi/UA,OAGA,EADA,0BACA,QACA,UACA,gBACA,cACA,KACA,EACA,GAEA,QACA,QACA,WACA,CAAa,EACb,cAvtBA,EA0tBA,EArtBA,GACA,cAqtBA,GAntBA,cAqtBA,EAptBA,CACA,SACA,sBAEA,cACA,GAIA,OAHA,mBACA,iBACA,+BACA,aACA,aACA,SACA,SACA,KAssBA,EACA,GAnsBA,QACA,QACA,WACA,CACA,cACA,oBACA,sBACA,YACA,QACA,GA0rBA,EA1rBA,GACA,aAyrBA,GAxrBA,GAsrBA,EAprBA,CACA,WACA,OACA,gBACA,QACA,CAAmB,CACnB,KACA,EAEA,MAEA,sBACA,oBAIA,GAoqBA,EAlqBA,CACA,WACA,KAPA,IACA,GAwqBA,EAxqBA,GACA,aAuqBA,GAjqBA,OAiqBA,EAjqBA,OACA,QACA,CAAmB,CACnB,EACA,EACA,CACA,CAAW,CACX,cA0pBA,CAzpBA,EACA,CACK,CACL,CAwpBA,CACA,OACA,CAAG,CACH,CACA,mBACA,OACA,WACA,WACA,eACA,CACA,CACA,iBACA,IACA,uBACA,UAEA,CACA,QACA,cAcA,GAZA,IADA,WACA,gBACA,UACA,oBAEA,UACA,WAGA,MADA,aAEA,OACA,UACA,EACA,mBACA,UACA,CACA,SAEA,eACA,wBACA,oBACA,0BACA,cACA,CACA,YACA,EACA,EACA,EACA,EACA,GAEA,IACA,wBACA,iBAEA,CACA,QACA,cACA,cAEA,GADA,QACA,qBACA,wBACA,UACA,KACA,EACA,mBAEA,UACA,WAEA,GACA,mBAEA,OACA,UACA,EACA,UACA,CACA,cACA,QAAyB,oBAAoC,CAC7D,CACA,gBACA,oBACA,eACA,kCACA,iBACA,cACA,CACA,iBAEA,OADA,QACA,SACA,CACA,yBACA,UACA,eACA,mBACA,YACA,wBACA,QACA,0CACA,YACA,WACA,KACA,iBACA,gBACA,KACA,gBACA,mBACA,KACA,WACA,WACA,cACA,YACA,aACA,UACA,KACA,aACA,UACA,KACA,YACA,iBACA,eACA,KACA,CACA,UACA,WACA,kCAKA,SACA,sBACA,oBACA,oBARA,CACA,qBACA,KACA,CAUA,WACA,oBACA,KACA,cACA,iBACA,yBACA,eACA,EACA,wRAEA,KACA,CAgCA,CAhCQ,EACR,sBACA,kBACA,cACA,6BACA,GACA,EACA,EACA,cACA,cACA,EACA,MAEA,GACA,EACA,EACA,aACA,aACA,EACA,MAEA,GACA,EACA,EACA,aACA,aACA,EACA,KACA,EACA,oCACA,iCACA,mCAEA,SACA,oBACA,oBACA,CACA,qBACA,KACA,CACA,WACA,oBACA,KACA,eACA,wBACA,KACA,gBACA,wBACA,KACA,mBACA,2BACA,KACA,+BACA,YACA,uCACA,mBAEA,SADA,aACA,CACA,sCACA,cACA,CACA,CACA,KACA,gBACA,WACA,4CACA,KACA,aACA,QACA,4CACA,KACA,sCACA,+BACA,mBACA,qBACA,gBACA,UAEA,gBA0KA,gBACA,kBA5KA,KAGA,iBACA,GACA,SACA,sBACA,qBACA,mBACA,CACA,gCACA,KACA,CACA,WACA,iBACA,+BACA,aACA,GAEA,KACA,uBACA,iBACA,gBACA,YACA,kBACA,gCACA,gBACA,oBACA,kDACA,uBACA,qBACA,KACA,aACA,sBACA,YACA,eACA,eACA,cACA,YACA,eACA,8BACA,4BACA,qBACA,aACA,WACA,eACA,iBACA,WACA,kBACA,eACA,eACA,eACA,aACA,eACA,gBACA,4CACA,qBACA,qBACA,KACA,eACA,eACA,OACA,qBACA,QACA,SACA,sBACA,mBACA,oBACA,qBACA,KACA,YACA,WACA,WACA,WACA,SACA,sBACA,oBACA,WACA,KACA,oBACA,qBACA,KACA,eACA,YACA,SACA,sBACA,oBACA,SACA,qBACA,oBACA,KACA,eACA,qBACA,eACA,kBACA,KACA,oBACA,GACA,EACA,+BACA,gBACA,GAEA,KACA,oBACA,GACA,EACA,+BACA,gBACA,GAEA,KACA,iBACA,GACA,EACA,+BACA,aACA,GAEA,KACA,iBACA,GACA,EACA,+BACA,aACA,GAEA,KACA,kBACA,GACA,EACA,+BACA,cACA,GAEA,KACA,iBACA,GACA,EACA,+BACA,aACA,GAEA,KACA,eACA,GACA,EACA,uCACA,WACA,GAEA,KACA,eACA,GACA,EACA,uCACA,WACA,GAEA,KACA,gBACA,GACA,EACA,uCACA,YACA,GAEA,KACA,UACA,aACA,KAIA,SAEA,YACA,0BACA,0BAEA,GACA,EADA,eACA,EACA,CACA,CACA,yBACA,UACA,YACA,UACA,KACA,+BACA,YACA,uCACA,mBAEA,SADA,aACA,CACA,sCACA,cACA,CACA,CACA,KACA,gBACA,mBACA,QACA,0CACA,WACA,KACA,gBACA,wBACA,KACA,mBACA,2BACA,KACA,eACA,wBACA,KACA,sCACA,+BACA,gBACA,UAEA,gBACA,kBAFA,KAIA,SACA,yBACA,GACA,GACA,YACA,YACA,yBACA,iCAGA,kBADA,SADA,gBACA,YAEA,6BACA,sBACA,CACA,sBACA,UACA,QACA,UACA,mBACA,sBACA,0BACA,OACA,CACA,OACA,OACA,OACA,qBACA,SACA,CACA,CACA,CACA,mBACA,UACA,UACA,WACA,UACA,WACA,QACA,QACA,QACA,SACA,KACA,WACA,cACA,aACA,IAEA,EAFA,KACA,KAEA,WACA,wBACA,WACA,WACA,UACA,UACA,KACA,KACA,cACA,KACA,KACA,gBACA,8BACA,qBACA,SACA,kBACA,CACA,CACA,GACA,iCACA,8BACA,MACA,aACA,gBACA,iBACA,OACA,OACA,WACA,wBACA,WACA,WACA,UACA,WACA,IACA,KACA,YACA,IACA,KACA,eACA,IACA,KACA,sBACA,IACA,KACA,aACA,IACA,KACA,oBACA,IACA,KACA,gBACA,8BACA,WACA,sBACA,KACA,SACA,kBACA,CACA,CACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAEA,MACA,cAGA,SAFA,gBACA,WACA,EACA,GACA,qBACA,eAEA,UACA,YACA,IACA,KACA,oBACA,IACA,KACA,gBACA,GACA,SACA,kBACA,CACA,IACA,IACA,eACA,QACA,eACA,wBACA,MACA,gBAGA,SAFA,gBACA,WACA,EACA,GACA,qBACA,eAEA,UACA,YACA,IACA,KACA,oBACA,IACA,KACA,gBACA,IACA,KACA,+BACA,8BACA,KACA,SACA,kBACA,CACA,YACA,MACA,cACA,WAEA,qBACA,iBAGA,aADA,EAEA,WACA,GACA,sBACA,mBAGA,oBAEA,MACA,cACA,qBACA,eACA,eACA,cACA,KACA,cACA,aACA,aACA,KACA,aACA,YACA,QAAuB,YAAiC,IACxD,YACA,KACA,aACA,cACA,aACA,KACA,eACA,eACA,KACA,aACA,aACA,WACA,cACA,YACA,YACA,WACA,SACA,UACA,SACA,aACA,WACA,YACA,YACA,UACA,eACA,WACA,GACA,qBACA,eAEA,UACA,eACA,8BACA,qBACA,SACA,kBACA,CACA,MACA,SACA,UACA,WACA,qBAEA,SADA,UAEA,GACA,EACA,EACA,EACA,EACA,EACA,QAEA,MACA,CACA,CACA,WACA,qBAEA,MADA,UAEA,kBACA,CA0UA,YACA,QACA,eACA,sBACA,EACA,gBAEA,eACA,UACA,iCACA,QACA,0CACA,QACA,SACA,QACA,CACA,CACA,iBACA,SACA,UACA,UACA,QACA,YACA,QACA,SACA,QACA,CACA,kCACA,EACA,CACA,CACA,iBACA,MACA,gBACA,gBACA,6BACA,6BACA,6BACA,4CACA,kCACA,sCAEA,CACA,YAWA,mDACA,uDACA,6CACA,GACA,kCACA,eACA,YACA,YACA,UACA,cACA,QACA,SACA,EACA,GACA,eACA,sBACA,OACA,CAAG,CACH,CACA,eACA,gBACA,CACA,iBACA,QACA,IACA,GACA,oBAEA,GADA,iBACA,kBACA,gCACA,UACA,iBACA,MACA,MACA,CACA,GACA,EAAQ,OACR,SACA,UACA,UACA,UACA,QAEA,SACA,cACA,yCACA,eAEA,GADA,wBAEA,uBAAkD,GAAe,CACjE,WADiE,QACjE,CACA,aACA,OACA,cACA,aACA,YACA,oCACA,iBACA,GACA,CACA,EAAQ,GACR,YACA,yBACA,GACA,EAAI,QACJ,KACA,CACA,iBACA,QACA,IACA,GACA,oBAWA,GAVA,eACA,EACA,mCACA,wBACA,uCACA,0DACA,gBACA,GACA,4CACA,gCACA,kBACA,qBACA,oBACA,QAEA,uCACA,IACA,GACA,EAAI,OACJ,CACA,eACA,mBAEA,IADA,sCACS,GAAU,CACnB,MADmB,EAGnB,OADA,gBACA,YACA,WACA,WACA,WACA,MACA,MACA,QACA,cACA,YACA,QACA,YACA,8CACA,CACA,gBACA,CACA,CAiFA,iBACA,KAAS,gBACT,OAEA,OADA,sBADA,YAIA,QACA,CACA,eACA,mCAEA,eACA,MACA,eACA,sDAiBA,eACA,KAAS,QAAc,iBACvB,iBACA,sBACA,UAEA,GACA,MAFA,YAGA,UACA,UACA,UACA,SACA,UACA,QAEA,MACA,iCACA,CACA,CACA,QACA,CACA,YACA,eACA,gBACA,YAAsB,GAAmB,CACzC,eADyC,EACzC,EACA,aACA,uBACA,SACA,wBACA,IACA,EAAQ,GACR,SACA,UACA,UACA,UACA,SACA,GACA,CACA,gBAEA,WACA,CACA,eACA,oBACA,YAAsB,GAAgB,CACtC,YADsC,KACtC,EACA,aACA,GACA,SACA,UACA,UACA,UACA,QACA,CACA,iBACA,IACA,EAAQ,0BACR,CACA,oBAEA,WACA,CACA,mBAEA,OADA,QACA,GACA,WAEA,IADA,sBACA,oBACA,QACA,YAEA,IADA,WACA,oBACA,QACA,YAEA,IADA,WACA,oBACA,QACA,SACA,mBACA,CACA,CACA,eACA,uBAA6C,UAAmB,EAChE,0BACA,KACA,CACA,eACA,WACA,eACA,uCACA,gBACA,eACA,EACA,gBAEA,WACA,KACA,EAUA,WACA,aACA,OACA,WACA,EAbA,EAcA,YACA,WACA,sCACA,MACA,OACA,EAlBA,EAuCA,YACA,QACA,yBACA,EAzCA,EA0CA,cACA,UACA,oBACA,EA5CA,EA6CA,gBAGA,GAFA,YAEA,UACA,MACA,2BACA,MACA,IACA,cACA,iBACA,IACA,iBACA,GACA,eAEA,KACA,+BACA,IACA,gBACA,GACA,cAEA,OACA,GACA,UACA,MACA,KAKA,QACA,UACA,YACA,QACA,KACA,cACA,OACA,CACA,WACA,KACA,CACA,cACA,KACA,uCACA,IACA,CAAS,CACT,GAEA,YACA,4BACA,aACA,yBACA,cAnDA,GAoDA,sBACA,MArDA,GAqDA,sBACA,UACA,MACA,wBACA,CACA,EAxGA,EAyGA,cAGA,GAFA,UAEA,OACA,6CACA,EACA,iCACA,MACA,YACA,MACA,KACA,IACA,UACA,mBACA,mBACA,oBACA,mBACA,aACA,aACA,OACA,CACA,GACA,YACA,MAAwB,2BAAkC,IAC1D,YACA,OAvBA,GAuBA,kBACA,CACA,UACA,mBACA,mBACA,oBACA,mBACA,aACA,aACA,GAhCA,GAgCA,qBACA,MACA,CAEA,GADA,EAnCA,GAmCA,sBACA,UACA,MACA,sBACA,CACA,CACA,EAnJA,EAqMA,cAGA,GAFA,UACA,IACA,GACA,SAFA,IAEA,iBACA,QACA,UACA,IACA,CACA,CADA,4BAEA,MAAyB,eAAqB,IAC9C,eACA,QAEA,GADA,8BAEA,eACA,wBACA,GACA,cACA,WACA,QACA,UACA,CAAO,CACP,WACA,CACA,EA7NA,EAmJA,gBAGA,GAFA,YACA,IACA,GACA,SAFA,IAEA,gBACA,QACA,eACA,eACA,OACA,OAAoB,wBACpB,GACA,EATA,GASA,cACA,OAGA,gBACA,CACA,IACA,CAAY,4CAA8D,CAC1E,GAEA,eACA,QACA,QArBA,GAqBA,sBACA,MACA,eACA,+BACA,WACA,WACA,CAAS,EACT,qCACA,YACA,CAAS,EACT,sCACA,YACA,CAAS,EACT,aACA,OAnCA,GAoCA,CACA,GACA,kBACA,WACA,QACA,OACA,EACA,UACA,CACA,CACA,EAlMA,EA6NA,cAGA,GAFA,UAEA,OACA,SAFA,IAEA,iBACA,QACA,UACA,IACA,IANA,GAMA,uBAEA,MAAyB,6BAAqC,IAC9D,eACA,QAEA,GADA,8BAEA,eAbA,GAcA,qBACA,GACA,cACA,WACA,QACA,UACA,CAAO,CACP,WACA,CACA,CArPA,EAYA,kDACA,mBAEA,GADA,IACA,uBACA,MACA,MACA,EACA,kCACA,oBACA,6BACA,WACA,WACA,GAAe,2BAAgD,CAC/D,OAXA,GAWA,kBACA,CACA,GADA,EAZA,GAYA,sBACA,UACA,MAdA,GAeA,qBACA,CACA,CAuNA,qBACA,SACA,WACA,MACA,KACA,0BACA,UACA,WACA,YACA,WACA,aACA,qCACA,wBACA,cAIA,GAHA,MACA,GACA,iBACA,SAEA,IACA,aACA,cACA,QACA,UACA,CAAa,CACb,YACA,GACA,CAAY,6CACZ,YACA,GACA,sBACA,yBACA,8BACA,CACA,aACA,IAsFA,QAtFA,KACA,GACA,gBACA,WAoCA,GAnCA,GACA,GACA,mBACA,GACA,kBACA,cACA,QACA,OAAqB,uBACrB,CAAW,CACX,WACA,mBACA,MACA,GACA,OACA,cACA,mBACA,WACA,IACA,cACA,WACA,YACA,0BACA,sBACA,cACA,oBACA,gCACa,CACb,YACA,IAsDA,EApDA,EAoDA,EAnDA,EAmDA,EAlDA,EAkDA,EAjDA,QAkDA,0DACA,YACA,GACA,QADA,0BAEA,qCACA,mBACA,CAAO,EACP,sCACA,mBACA,CAAO,EACP,eACA,MACA,uBA7DA,GACA,YACA,uBACA,QACA,CACA,eACA,uBACA,WACA,cACA,OACA,UAEA,gBADA,WAEA,GACA,sBACA,mBACA,SAIA,GAHA,MACA,GACA,kBACA,SAEA,IACA,cACA,cACA,QACA,UACA,CAAe,CACf,YACA,GACA,CAAc,6CAEd,SACA,qBACA,CACA,CACA,eACA,wBACA,CACA,eACA,qCACA,CACA,eACA,WAAkB,IAClB,+BACA,eACA,CAAG,CACH,CAgBA,eACA,yBACA,CACA,eACA,uBACA,CACA,mBAEA,GADA,UACA,kBACA,eACA,YACA,sBACA,qBACA,WACA,MAEA,KACA,OACA,aACA,MACA,EAEA,UAAkC,IAClC,mBACA,+BACA,UACA,eACA,CAAS,EAOT,OAHA,GAHA,qCACA,UAGA,gBACA,qBACA,YACA,kBACA,aACA,sBACA,OAEA,KACA,OACA,mBACA,aACA,MACA,EAEA,QACA,eACA,QAIA,GAHA,GACA,oBACA,uBAEA,QAQA,OAPA,+BACA,WACA,WACA,CAAS,EACT,eACA,mBACA,qBACA,YACA,cAEA,GADA,YAEA,kBACA,OAGA,OACA,aACA,MACA,EAWA,OATA,IACA,eACA,SAA+B,IAC/B,GAGA,GADA,EADA,uBACA,yBAEA,eACA,sBACA,YACA,YACA,WACA,SACA,0BACA,OAEA,uBACA,wBACA,cACA,mBACA,sBACA,WAEA,mBACA,IACA,yBACA,kEAEA,8BACA,IACA,IACA,WACA,IACA,CACA,WACA,qCACA,cACA,CACA,EACA,2CACA,4BACA,4BACA,CACA,iBACA,qBACA,8BACA,wBACA,oCACA,gCACA,CACA,iBACA,qBACA,8BACA,wBACA,oCACA,mBACA,yBACA,CACA,YACA,mBACA,cACA,cACA,aACA,UACA,EAAI,GAEJ,GADA,OACA,SACA,uBACA,qBAGA,IAFA,cACA,4BACA,IAAmB,WAA+B,KAClD,WACA,GACA,CACA,QACA,OACA,mDAEA,8CACA,CACA,4BACA,MACA,cACA,yBACA,CACA,CACA,QACA,CACA,mBACA,uBACA,kBACA,EACA,iDAEA,CA+CA,eACA,mDAGA,CACA,YA6EA,cAEA,GADA,aACA,eACA,oDACA,mBACA,qBACA,oBACA,GACA,EACA,CACA,YACA,iBACA,mBACA,oBACA,WACA,WACA,gBACA,QACA,WACA,CACA,iBACA,yBACA,gBACA,2BACA,CACA,UACA,YACA,IACA,yBACA,gDAEA,IACA,WACA,IACA,CACA,WAEA,sBACA,sCAEA,mCACA,CACA,gBACA,CAEA,EADA,eACA,gCAEA,CADA,iBACA,iBACA,WACA,aACA,gBACA,6BACA,8BACA,EACA,2CACA,4BACA,6BACA,kBACA,CACA,CACA,QACA,WACA,cACA,cACA,gBACA,iBACA,cACA,EACA,YACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEA,WACA,qBACA,sDACA,sBACA,kBACA,UACA,oBACA,aACA,yBACA,KACA,wBACA,4BACA,oBACA,yBACA,gCACA,kBACA,eACA,iBACA,oBACA,kBACA,EACA,yBACA,4BACA,wBACA,uBACA,qBACA,0BACA,sBACA,wBACA,iBACA,kCACA,CACA,YACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GA4BA,OA1BA,SACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEA,IACA,gBACA,oBACA,YACA,cACA,OACA,aACA,gBACA,aACA,iBACA,UACA,eACA,OACA,EACA,MACA,CACA,CAMA,YACA,EACA,EACA,EACA,EACA,EACA,GAEA,IAXA,GADA,GAaA,iBACA,YACA,mBACA,UACA,SAAwB,WAExB,OADA,uBACA,eAEA,OADA,eAEA,WACA,UACA,CACA,iBAEA,UADA,qBACA,qBACA,kBACA,0BACA,CACA,CACA,iBACA,QACA,wBACA,CACA,eACA,2BACA,qBACA,6BACA,eACA,CACA,CACA,eACA,2BACA,WAEA,OADA,QAEA,qBACA,OACA,CACA,CACA,UACA,YACA,EACA,EACA,EACA,GAEA,UACA,SACA,UACA,IACA,MACA,WACA,EAAI,OACJ,MACA,KACA,CACA,CACA,YACA,EACA,EACA,EACA,GAEA,UACA,SACA,UACA,IACA,MACA,WACA,EAAI,OACJ,MACA,KACA,CACA,CACA,YACA,EACA,EACA,EACA,GAEA,OACA,YACA,YACA,GACA,EACA,EACA,EACA,GACA,GAEA,aACA,GACA,SAoQA,EACA,EACA,EACA,EACA,GAEA,UACA,cACA,OACA,MACA,GACA,EACA,EACA,EACA,EACA,GAEA,EAEA,iBACA,OACA,MACA,GACA,EACA,EACA,EACA,EACA,GAEA,EAEA,iBACA,OACA,MACA,GACA,EACA,EACA,EACA,EACA,GAEA,EAEA,mBACA,kBAYA,OAXA,OACA,EACA,GACA,gBACA,EACA,EACA,EACA,EACA,IAGA,EACA,yBACA,OACA,cACA,OACA,EACA,GACA,gBACA,EACA,EACA,EACA,EACA,IAGA,EAEA,CACA,QACA,EA9UA,EACA,EACA,EACA,EACA,GAGA,yBACA,GACA,QACA,KACA,iBACA,CACA,KAAa,UAAoB,CACjC,OADiC,EACjC,GACA,YACA,cACA,OAEA,GADA,gBACA,oCACA,yBACA,UACA,QAEA,IADA,kBACA,oBAAiD,GAAO,CACxD,GADwD,CACxD,aACA,uBACA,KACA,CACA,MACA,WACA,aACA,SACA,CACA,CACA,KACA,SACA,QACA,oBACA,UACA,KACA,OACA,CAUA,GARA,OADA,WAEA,GACA,EACA,EACA,EACA,GACA,GAEA,YACA,GACA,CACA,6BACA,EAAM,IACN,GACA,EACA,EACA,EACA,KACA,EAEA,CACA,CACA,eAEA,UADA,QAEA,CACA,YACA,eAGA,GAFA,QAEA,OADA,UACA,CACA,WACA,uBACA,CACA,YACA,WAEA,UADA,SACA,SACA,MACA,EAAQ,eAER,UADA,SACA,SACA,MACA,EAAQ,cACR,kDACA,iBACA,0BACA,KACA,MACA,EAAQ,mBACR,CACA,CAEA,OADA,KACA,IACA,CACA,eACA,UACA,mBACA,aACA,YACA,YACA,kBACA,WACA,UACA,eACA,eACA,cACA,gBACA,WACA,cACA,eACA,YACA,cACA,cACA,eACA,YACA,gBACA,cACA,YACA,YACA,WACA,oBACA,kBACA,gBACA,iBACA,YACA,aACA,aACA,aACA,aACA,kBACA,eACA,iBACA,mBACA,aACA,sBACA,gBACA,uBACA,qBACA,wBACA,iBACA,gBACA,kBACA,WACA,uBACA,YACA,iBACA,eACA,aACA,kBACA,QACA,YACA,gBACA,eACA,gBACA,eACA,gBACA,eACA,gBACA,kBACA,iBACA,kBACA,aACA,gBACA,YACA,iBACA,iBACA,mBACA,mBACA,QACA,eACA,aACA,QACA,QACA,SACA,QACA,SACA,QACA,SACA,SACA,iBACA,SACA,SACA,CACA,QACA,SACA,CACA,CACA,UACA,QACA,QACA,QACA,WACA,WACA,MACA,GACA,4PACA,KAEA,iBACA,UACA,cACA,eACA,QACA,KACA,iBACA,gBACA,QACA,KACA,iBACA,eACA,QACA,KACA,mBACA,iBACA,uBACA,KACA,yBACA,yBACA,sBACA,CACA,CACA,YACA,EACA,EACA,EACA,EACA,EACA,UAGA,UACA,kBAGA,IACA,YACA,eACA,mBACA,cACA,qBACO,CACP,UAEA,OADA,WACA,KACA,GAEA,sBACA,qBACA,UACA,mBACA,WACA,CACA,CA8EA,eACA,mBACA,aACA,WACA,YACA,mBACA,IACA,gBAEA,CACA,cACA,yBACA,KACA,CAAW,EACX,MACA,OACQ,UACR,IACA,gBAEA,CACA,cACA,yBACA,KACA,CAAW,EACX,MACA,OACQ,GACR,OACA,+CACA,CACA,YACA,UACA,0BACA,KACA,MACA,EACA,CACA,gBACA,CACA,eACA,+BACA,IACA,yBACA,YAEA,CACA,wBACA,YAUA,OACA,kBAEA,MACA,cACA,GAbA,SADA,kBACA,YACA,OACA,GAEA,KACA,0BACA,QASA,SACA,CACA,QACA,CACA,mBACA,kBACA,CACA,cACA,MACA,WACA,QACA,UACA,WACA,QACA,UACA,WACA,QACA,UACA,eACA,cACA,CACA,iBACA,iBACA,kBACA,IACA,OACA,4BACA,0BACA,GACA,EACA,CACA,YACA,eACA,QACA,MACA,4BACA,0BACA,WACA,QACA,UACA,YAAwB,WAA+B,MACvD,WACA,SACA,SACA,wBACA,mBACA,cACA,MACA,WACA,WACA,eACA,KACA,GACA,EACA,CACA,WACA,OACA,gBACA,QACA,CAAe,CACf,EACA,EACA,CACA,CACA,EACA,CACA,CACA,eACA,cACA,cACA,CACA,oBACA,oBACA,oBACA,cACA,cACA,YAAkB,YAA2C,KAC7D,YACA,mCACA,CACA,KAEA,aACA,4BAGA,MACA,+BAEA,SADA,2CAEA,QAA2B,WAAyB,MACpD,WACA,SACA,cACA,wBACA,cACA,MACA,WACA,mCACA,IACA,IACA,cAEA,oBAEA,wBACA,MACA,WACA,qBACA,SACA,qBACA,KACA,CACA,CACA,CACA,cACA,cACA,gBACA,6BACA,aACA,mBACA,+BACA,UACA,CAAW,CACX,CAAS,CACT,oBACA,eACA,CAAO,CACP,CACA,aACA,uBACA,mBACA,CACA,aACA,+BACA,8BACA,GACA,aACA,2BACA,mBACA,wBACA,iBACA,CAAS,CACT,CACA,CACA,gCACA,SACA,OAKA,OAJA,0CACA,iDACA,+CACA,kBACA,WACA,KACA,6CACA,oDACA,kDACA,sBACA,CACA,CACA,CACA,eACA,oBACA,CAoBA,eACA,oBACA,CArBA,wCACA,YACA,yBACA,gCAGA,GAFA,UACA,KACA,cACA,EACA,0CACA,WACA,yBACA,aACA,wBACA,sBACA,iCACA,KACA,UACA,CACA,EAIA,oDACA,MACA,WACA,GAAe,oCACf,IACA,QACA,aACA,OACA,iBACA,KAEA,iBACA,YACA,CACA,EACA,iBACA,GACA,oCACA,GAEA,YACA,EACA,IACA,GACA,oCA2BA,GAxBA,0BACA,wBACA,eACA,+BACA,mBAEA,mBADA,4BAEA,CAQA,OAFA,EACA,OALA,GACA,OAFA,GA5yeA,YACA,kBACA,OAEA,UADA,SACA,oBACA,mBACA,CACA,kBAAuC,CACvC,QADuC,MACvC,CACA,kBACA,kBACA,aAEA,UADA,aACA,CACA,IACA,QACA,CACA,KACA,CACA,sBACA,cAAoC,GAAS,CAC7C,KAD6C,EAC7C,gBACA,uBACA,YAEA,mBACA,CACA,mCACA,CACA,uBAA2D,GAAS,CACpE,KADoE,EACpE,GACA,KACA,IACA,IACA,KACA,CACA,UACA,KACA,IACA,IACA,KACA,CACA,WACA,CACA,OACA,cAAsC,GAAS,CAC/C,KAD+C,EAC/C,GACA,KACA,IACA,IACA,KACA,CACA,UACA,KACA,IACA,IACA,KACA,CACA,YAEA,yBACA,CACA,CACA,sCACA,CACA,iCACA,kCACA,EAyueA,IAxueA,cACA,YACA,yCACA,cAA0B,UAAe,CAEzC,EAFyC,CAEzC,OADA,SACA,SACA,YAEA,WACA,EAkueA,GACA,MAEA,gBAEA,EAQA,oDACA,sCACA,GACA,gBACA,iBAEA,IACA,aAdA,CACA,aACA,0CACA,gCACA,uBACA,mDACA,GAWA,KACA,CAAM,UACN,CACA,YAAkB,eAClB,6BACA,SACA,KACA,KACA,KACA,KA2BA,OA1BA,SAEA,oCACA,6BACA,uBACA,4BACA,sBACA,8CACA,+BACA,0BACA,KACA,EACA,EACA,GACA,KACA,KACA,EACA,EACA,KACA,EACA,EACA,EACA,IAEA,gBACA,MACA,SACA,EACA,aAAmB,iBACnB,6BACA,IA1xBA,EA0xBA,KACA,KACA,KACA,KACA,KACA,OAuCA,OAtCA,SAEA,oCACA,6BACA,uBACA,4BACA,sBACA,8CACA,+BACA,yBACA,uCACA,MACA,EACA,EACA,GACA,EACA,eACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,SAzzBA,EAyzBA,KAxzBA,IAyzBA,YAGA,MADA,KADA,QAEA,EACA,cACA,UACA,IACA,kBACA,QACA,MACA,gBACA,MACA,SACA,EACA,SAAe","sources":["webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/compiled/react-dom/cjs/react-dom-client.production.js"],"sourcesContent":["/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\"use strict\";\nvar Scheduler = require(\"next/dist/compiled/scheduler\"),\n React = require(\"next/dist/compiled/react\"),\n ReactDOM = require(\"next/dist/compiled/react-dom\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n}\nfunction getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n}\nfunction getActivityInstanceFromFiber(fiber) {\n if (31 === fiber.tag) {\n var activityState = fiber.memoizedState;\n null === activityState &&\n ((fiber = fiber.alternate),\n null !== fiber && (activityState = fiber.memoizedState));\n if (null !== activityState) return activityState.dehydrated;\n }\n return null;\n}\nfunction assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate) throw Error(formatProdErrorMessage(188));\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(formatProdErrorMessage(188));\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, child$0 = parentA.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) {\n for (child$0 = parentB.child; child$0; ) {\n if (child$0 === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (child$0 === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n child$0 = child$0.sibling;\n }\n if (!didFindChild) throw Error(formatProdErrorMessage(189));\n }\n }\n if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n }\n if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n}\nvar assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nvar REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\nSymbol.for(\"react.view_transition\");\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n}\nvar isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n sharedNotPendingObject = {\n pending: !1,\n data: null,\n method: null,\n action: null\n },\n valueStack = [],\n index = -1;\nfunction createCursor(defaultValue) {\n return { current: defaultValue };\n}\nfunction pop(cursor) {\n 0 > index ||\n ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n index++;\n valueStack[index] = cursor.current;\n cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance);\n push(contextFiberStackCursor, fiber);\n push(contextStackCursor, null);\n switch (nextRootInstance.nodeType) {\n case 9:\n case 11:\n fiber = (fiber = nextRootInstance.documentElement)\n ? (fiber = fiber.namespaceURI)\n ? getOwnHostContext(fiber)\n : 0\n : 0;\n break;\n default:\n if (\n ((fiber = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (fiber = getChildHostContextProd(nextRootInstance, fiber));\n else\n switch (fiber) {\n case \"svg\":\n fiber = 1;\n break;\n case \"math\":\n fiber = 2;\n break;\n default:\n fiber = 0;\n }\n }\n pop(contextStackCursor);\n push(contextStackCursor, fiber);\n}\nfunction popHostContainer() {\n pop(contextStackCursor);\n pop(contextFiberStackCursor);\n pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n var context = contextStackCursor.current;\n var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n context !== JSCompiler_inline_result &&\n (push(contextFiberStackCursor, fiber),\n push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor), pop(contextFiberStackCursor));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor),\n (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar prefix, suffix;\nfunction describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" (<anonymous>)\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n reentry = !0;\n var previousPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$1) {\n control = x$1;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$2) {\n control = x$2;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n namePropDescriptor = RunInRootFrame = 0;\n RunInRootFrame < sampleLines.length &&\n !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n )\n RunInRootFrame++;\n for (\n ;\n namePropDescriptor < controlLines.length &&\n !controlLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n if (\n RunInRootFrame === sampleLines.length ||\n namePropDescriptor === controlLines.length\n )\n for (\n RunInRootFrame = sampleLines.length - 1,\n namePropDescriptor = controlLines.length - 1;\n 1 <= RunInRootFrame &&\n 0 <= namePropDescriptor &&\n sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n )\n namePropDescriptor--;\n for (\n ;\n 1 <= RunInRootFrame && 0 <= namePropDescriptor;\n RunInRootFrame--, namePropDescriptor--\n )\n if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n do\n if (\n (RunInRootFrame--,\n namePropDescriptor--,\n 0 > namePropDescriptor ||\n sampleLines[RunInRootFrame] !==\n controlLines[namePropDescriptor])\n ) {\n var frame =\n \"\\n\" +\n sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n fn.displayName &&\n frame.includes(\"<anonymous>\") &&\n (frame = frame.replace(\"<anonymous>\", fn.displayName));\n return frame;\n }\n while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n }\n break;\n }\n }\n } finally {\n (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n }\n return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n : \"\";\n}\nfunction describeFiber(fiber, childFiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return fiber.child !== childFiber && null !== childFiber\n ? describeBuiltInComponentFrame(\"Suspense Fallback\")\n : describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n default:\n return \"\";\n }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\",\n previous = null;\n do\n (info += describeFiber(workInProgress, previous)),\n (previous = workInProgress),\n (workInProgress = workInProgress.return);\n while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null;\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionLane = 256,\n nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 4194048;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return lanes;\n }\n}\nfunction getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n}\nfunction computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return -1;\n }\n}\nfunction claimNextTransitionLane() {\n var lane = nextTransitionLane;\n nextTransitionLane <<= 1;\n 0 === (nextTransitionLane & 4194048) && (nextTransitionLane = 256);\n return lane;\n}\nfunction claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n}\nfunction createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index$7 = 31 - clz32(remainingLanes),\n lane = 1 << index$7;\n entanglements[index$7] = 0;\n expirationTimes[index$7] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index$7];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index$7] = null, index$7 = 0;\n index$7 < hiddenUpdatesForLane.length;\n index$7++\n ) {\n var update = hiddenUpdatesForLane[index$7];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 4194090);\n}\nfunction markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index$8 = 31 - clz32(rootEntangledLanes),\n lane = 1 << index$8;\n (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n (root[index$8] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n}\nfunction getBumpedLaneForHydration(root, renderLanes) {\n var renderLane = renderLanes & -renderLanes;\n renderLane =\n 0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane);\n return 0 !== (renderLane & (root.suspendedLanes | renderLanes))\n ? 0\n : renderLane;\n}\nfunction getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n}\nfunction lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 2 < lanes\n ? 8 < lanes\n ? 0 !== (lanes & 134217727)\n ? 32\n : 268435456\n : 8\n : 2;\n}\nfunction resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentHydrationBoundary(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n targetNode = getParentHydrationBoundary(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n}\nfunction getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 31 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n}\nfunction getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n}\nfunction markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] = dependencies;\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n}\nvar VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix$10 = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n node.removeAttribute(name);\n return;\n }\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttribute(name, \"\" + value);\n }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return value;\n default:\n return \"\";\n }\n}\nfunction isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n}\nfunction trackValueOnNode(node, valueField, currentValue) {\n var descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n );\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n}\nfunction track(node) {\n if (!node._valueTracker) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\";\n node._valueTracker = trackValueOnNode(\n node,\n valueField,\n \"\" + node[valueField]\n );\n }\n}\nfunction updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n}\nfunction updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (element.type = type)\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (element.name = \"\" + getToStringValue(name))\n : element.removeAttribute(\"name\");\n}\nfunction initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (element.type = type);\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n ) {\n track(element);\n return;\n }\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (element.name = name);\n track(element);\n}\nfunction setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n}\nfunction updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n if (isArrayImpl(children)) {\n if (1 < children.length) throw Error(formatProdErrorMessage(93));\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n track(element);\n}\nfunction setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n);\nfunction setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (style[styleName] = (\"\" + value).trim())\n : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(formatProdErrorMessage(62));\n node = node.style;\n if (null != prevStyles) {\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var styleName$16 in styles)\n (styleName = styles[styleName$16]),\n styles.hasOwnProperty(styleName$16) &&\n prevStyles[styleName$16] !== styleName &&\n setValueForStyle(node, styleName$16, styleName);\n } else\n for (var styleName$17 in styles)\n styles.hasOwnProperty(styleName$17) &&\n setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n}\nvar aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n}\nfunction noop$1() {}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps) throw Error(formatProdErrorMessage(90));\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form && updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n}\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n formatProdErrorMessage(231, registrationName, typeof stateNode)\n );\n return stateNode;\n}\nvar canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n try {\n var options = {};\n Object.defineProperty(options, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\nvar root = null,\n startText = null,\n fallbackText = null;\nfunction getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n return !0;\n}\nfunction functionThatReturnsFalse() {\n return !1;\n}\nfunction createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n}\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n };\nfunction modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n}\nfunction getEventModifierState() {\n return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\ncanUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CHAR = String.fromCharCode(32),\n hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return 229 !== nativeEvent.keyCode;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (32 !== nativeEvent.which) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n );\n default:\n return null;\n }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n}\nvar supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n}\nfunction createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n var JSCompiler_inline_result$jscomp$283;\n if (canUseDOM) {\n var isSupported$jscomp$inline_428 = \"oninput\" in document;\n if (!isSupported$jscomp$inline_428) {\n var element$jscomp$inline_429 = document.createElement(\"div\");\n element$jscomp$inline_429.setAttribute(\"oninput\", \"return;\");\n isSupported$jscomp$inline_428 =\n \"function\" === typeof element$jscomp$inline_429.oninput;\n }\n JSCompiler_inline_result$jscomp$283 = isSupported$jscomp$inline_428;\n } else JSCompiler_inline_result$jscomp$283 = !1;\n isInputEventSupported =\n JSCompiler_inline_result$jscomp$283 &&\n (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n}\nfunction getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n}\nfunction containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n}\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n}\nvar skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n}\nvar vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\ncanUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\nsimpleEventPluginEvents.push(\"scrollEnd\");\nfunction registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n if (50 < nestedUpdateCount)\n throw (\n ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = null),\n Error(formatProdErrorMessage(185)))\n );\n for (var parent = sourceFiber.return; null !== parent; )\n (sourceFiber = parent), (parent = sourceFiber.return);\n return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {};\nfunction FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiberImplClass(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null));\n workInProgress.flags = current.flags & 65011712;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 65011714;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext\n }));\n return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n) {\n var fiberTag = 0;\n owner = type;\n if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n else if (\"string\" === typeof type)\n fiberTag = isHostHoistableType(\n type,\n pendingProps,\n contextStackCursor.current\n )\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5;\n else\n a: switch (type) {\n case REACT_ACTIVITY_TYPE:\n return (\n (type = createFiberImplClass(31, pendingProps, key, mode)),\n (type.elementType = REACT_ACTIVITY_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= 24;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n (type.elementType = REACT_PROFILER_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (type = createFiberImplClass(13, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_TYPE),\n (type.lanes = lanes),\n type\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (type = createFiberImplClass(19, pendingProps, key, mode)),\n (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n (type.lanes = lanes),\n type\n );\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n owner = null;\n break a;\n }\n fiberTag = 29;\n pendingProps = Error(\n formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n );\n owner = null;\n }\n key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = owner;\n key.lanes = lanes;\n return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiberImplClass(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n}\nfunction createFiberFromText(content, mode, lanes) {\n content = createFiberImplClass(6, content, null, mode);\n content.lanes = lanes;\n return content;\n}\nfunction createFiberFromDehydratedFragment(dehydratedNode) {\n var fiber = createFiberImplClass(18, null, null, 0);\n fiber.stateNode = dehydratedNode;\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n mode = createFiberImplClass(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n}\nvar CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\nvar forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n}\nfunction restoreSuspendedTreeContext(workInProgress, suspendedContext) {\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextId = suspendedContext.id;\n treeContextOverflow = suspendedContext.overflow;\n treeContextProvider = workInProgress;\n}\nvar hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n var error = Error(\n formatProdErrorMessage(\n 418,\n 1 < arguments.length && void 0 !== arguments[1] && arguments[1]\n ? \"text\"\n : \"HTML\",\n \"\"\n )\n );\n queueHydrationError(createCapturedValueAtFiber(error, fiber));\n throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n var instance = fiber.stateNode,\n type = fiber.type,\n props = fiber.memoizedProps;\n instance[internalInstanceKey] = fiber;\n instance[internalPropsKey] = props;\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", instance);\n listenToNonDelegatedEvent(\"close\", instance);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", instance);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", instance);\n listenToNonDelegatedEvent(\"load\", instance);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", instance);\n break;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n initInput(\n instance,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n break;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", instance);\n break;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", instance),\n initTextarea(instance, props.value, props.defaultValue, props.children);\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n instance.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(instance.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n listenToNonDelegatedEvent(\"toggle\", instance)),\n null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", instance),\n null != props.onClick && (instance.onclick = noop$1),\n (instance = !0))\n : (instance = !1);\n instance || throwOnHydrationMismatch(fiber, !0);\n}\nfunction popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 31:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n}\nfunction popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n JSCompiler_temp && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else if (31 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber) throw Error(formatProdErrorMessage(317));\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n}\nfunction resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n isHydrating = !1;\n}\nfunction upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n}\nfunction queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n}\nvar valueCursor = createCursor(null),\n currentlyRenderingFiber$1 = null,\n lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue);\n context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n context._currentValue = valueCursor.current;\n pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n}\nfunction propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n}\nfunction propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current ? current.push(context) : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent) throw Error(formatProdErrorMessage(387));\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer) throw Error(formatProdErrorMessage(308));\n lastContextDependency = context;\n consumer.dependencies = { lanes: 0, firstContext: context };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n}\nvar AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0\n };\nfunction createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n}\nfunction releaseCache(cache) {\n cache.refCount--;\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n}\nvar currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n}\nfunction pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n null !== currentEntangledListeners\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n}\nfunction chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n entangleAsyncAction(transition, returnValue);\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current)\n : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n SuspenseActionException = Error(formatProdErrorMessage(542)),\n noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction trackUsedThenable(thenableState, thenable, index) {\n index = thenableState[index];\n void 0 === index\n ? thenableState.push(thenable)\n : index !== thenable && (thenable.then(noop$1, noop$1), (thenable = index));\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n default:\n if (\"string\" === typeof thenable.status) thenable.then(noop$1, noop$1);\n else {\n thenableState = workInProgressRoot;\n if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n throw Error(formatProdErrorMessage(482));\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n throw SuspenseException;\n }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n var thenable = suspendedThenable;\n suspendedThenable = null;\n return thenable;\n}\nfunction checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(formatProdErrorMessage(483));\n}\nvar thenableState$1 = null,\n thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = []);\n return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(formatProdErrorMessage(525));\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n formatProdErrorMessage(\n 31,\n \"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber\n )\n );\n}\nfunction resolveLazy(lazyType) {\n var init = lazyType._init;\n return init(lazyType._payload);\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 67108866), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 67108866;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 67108866);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n current\n );\n current = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n null,\n returnFiber.mode,\n lanes\n );\n coerceRef(current, element);\n current.return = returnFiber;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n newChild\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n newChild = init(newChild._payload);\n return createChild(returnFiber, newChild, lanes);\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newChild = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (newChild.return = returnFiber),\n newChild\n );\n if (\"function\" === typeof newChild.then)\n return createChild(returnFiber, unwrapThenable(newChild), lanes);\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? updateElement(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n (newChild = key(newChild._payload)),\n updateSlot(returnFiber, oldFiber, newChild, lanes)\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return null !== key\n ? null\n : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n if (\"function\" === typeof newChild.then)\n return updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updateElement(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n var init = newChild._init;\n newChild = init(newChild._payload);\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n );\n if (\"function\" === typeof newChild.then)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return null;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n (shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren) throw Error(formatProdErrorMessage(151));\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (step = createChild(returnFiber, step.value, lanes)),\n null !== step &&\n ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n null !== step &&\n (shouldTrackSideEffects &&\n null !== step.alternate &&\n oldFiber.delete(null === step.key ? newIdx : step.key),\n (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n null === previousNewFiber\n ? (resultingFirstChild = step)\n : (previousNewFiber.sibling = step),\n (previousNewFiber = step));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (newChild = newChild.props.children);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromTypeAndProps(\n newChild.type,\n newChild.key,\n newChild.props,\n null,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = lanes));\n }\n return placeSingleChild(returnFiber);\n case REACT_PORTAL_TYPE:\n a: {\n for (key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n newChild.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n newChild.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.children || []);\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (key = newChild._init),\n (newChild = key(newChild._payload)),\n reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )\n );\n }\n if (isArrayImpl(newChild))\n return reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n if (getIteratorFn(newChild)) {\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n newChild = key.call(newChild);\n return reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n }\n if (\"function\" === typeof newChild.then)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n return (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n ? ((newChild = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n (lanes = useFiber(currentFirstChild, newChild)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n (lanes.return = returnFiber),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber))\n : deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n return fiber;\n } finally {\n }\n };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n}\nfunction createUpdate(lane) {\n return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (0 !== (executionContext & 2)) {\n var pending = updateQueue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n updateQueue.pending = update;\n update = getRootForUpdatedFiber(fiber);\n markUpdateLaneFromFiberToRoot(fiber, null, lane);\n return update;\n }\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n}\nfunction processUpdateQueue(\n workInProgress$jscomp$0,\n props,\n instance$jscomp$0,\n renderLanes\n) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress$jscomp$0.updateQueue;\n hasForceUpdate = !1;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress$jscomp$0.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n var workInProgress = workInProgress$jscomp$0,\n update = pendingQueue;\n updateLane = props;\n var instance = instance$jscomp$0;\n switch (update.tag) {\n case 1:\n workInProgress = update.payload;\n if (\"function\" === typeof workInProgress) {\n newState = workInProgress.call(instance, newState, updateLane);\n break a;\n }\n newState = workInProgress;\n break a;\n case 3:\n workInProgress.flags = (workInProgress.flags & -65537) | 128;\n case 0:\n workInProgress = update.payload;\n updateLane =\n \"function\" === typeof workInProgress\n ? workInProgress.call(instance, newState, updateLane)\n : workInProgress;\n if (null === updateLane || void 0 === updateLane) break a;\n newState = assign({}, newState, updateLane);\n break a;\n case 2:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress$jscomp$0.flags |= 64),\n isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress$jscomp$0.lanes = lastBaseUpdate;\n workInProgress$jscomp$0.memoizedState = newState;\n }\n}\nfunction callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(formatProdErrorMessage(191, callback));\n callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n}\nvar currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n fiber = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, fiber);\n push(currentTreeHiddenStackCursor, context);\n entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor);\n pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(suspenseStackCursor, suspenseStackCursor.current & 1);\n push(suspenseHandlerStackCursor, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushDehydratedActivitySuspenseHandler(fiber) {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, fiber);\n null === shellBoundary && (shellBoundary = fiber);\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n 22 === fiber.tag\n ? (push(suspenseStackCursor, suspenseStackCursor.current),\n push(suspenseHandlerStackCursor, fiber),\n null === shellBoundary && (shellBoundary = fiber))\n : reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n push(suspenseStackCursor, suspenseStackCursor.current);\n push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n isSuspenseInstancePending(state) ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (\n 19 === node.tag &&\n (\"forwards\" === node.memoizedProps.revealOrder ||\n \"backwards\" === node.memoizedProps.revealOrder ||\n \"unstable_legacy-backwards\" === node.memoizedProps.revealOrder ||\n \"together\" === node.memoizedProps.revealOrder)\n ) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n}\nvar renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (null === prevDeps) return !1;\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n}\nfunction renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null === current || null === current.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate;\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n nextRenderLanes = Component(props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (nextRenderLanes = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n finishRenderingHooks(current);\n return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n numberOfReRenders += 1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n ReactSharedInternals.H = HooksDispatcherOnRerender;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n}\nfunction TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= -2053;\n current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n workInProgressHook = currentHook = currentlyRenderingFiber = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(formatProdErrorMessage(467));\n throw Error(formatProdErrorMessage(310));\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n}\nfunction createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n}\nfunction useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = []);\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null === index || null === index.memoizedState\n ? HooksDispatcherOnMount\n : HooksDispatcherOnUpdate));\n return thenable;\n}\nfunction use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n memoCache.index++;\n return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction$60 = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction$60 = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n gesture: update.gesture,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction$60 &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue) throw Error(formatProdErrorMessage(311));\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else getServerSnapshot = getSnapshot();\n var snapshotChanged = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n );\n snapshotChanged &&\n ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n hook = hook.queue;\n updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n subscribe\n ]);\n if (\n hook.getSnapshot !== getSnapshot ||\n snapshotChanged ||\n (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n ) {\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 124) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n });\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n}\nfunction dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n) {\n if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n}\nfunction runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n } else\n try {\n (prevTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, prevTransition);\n } catch (error$66) {\n onActionError(actionQueue, node, error$66);\n }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n )\n : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var JSCompiler_inline_result = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n if (null === JSCompiler_inline_result$jscomp$0) {\n JSCompiler_inline_result$jscomp$0 = null;\n break b;\n }\n }\n inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n JSCompiler_inline_result$jscomp$0 =\n \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n ? JSCompiler_inline_result$jscomp$0\n : null;\n }\n if (JSCompiler_inline_result$jscomp$0) {\n nextHydratableInstance = getNextHydratable(\n JSCompiler_inline_result$jscomp$0.nextSibling\n );\n JSCompiler_inline_result =\n \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n break a;\n }\n }\n throwOnHydrationMismatch(JSCompiler_inline_result);\n }\n JSCompiler_inline_result = !1;\n }\n JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n JSCompiler_inline_result = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = JSCompiler_inline_result;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result\n );\n JSCompiler_inline_result.dispatch = ssrFormState;\n JSCompiler_inline_result = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n JSCompiler_inline_result.queue\n );\n JSCompiler_inline_result = mountWorkInProgressHook();\n JSCompiler_inline_result$jscomp$0 = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n JSCompiler_inline_result$jscomp$0,\n inRootOrSingleton,\n ssrFormState\n );\n JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n JSCompiler_inline_result.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n}\nfunction pushSimpleEffect(tag, inst, create, deps) {\n tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((deps = create.next),\n (create.next = tag),\n (tag.next = deps),\n (inst.lastEffect = tag));\n return tag;\n}\nfunction updateRef() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n { destroy: void 0 },\n create,\n void 0 === deps ? null : deps\n );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n 1 | hookFlags,\n inst,\n create,\n deps\n )));\n}\nfunction mountEffect(create, deps) {\n mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n updateEffectImpl(2048, 8, create, deps);\n}\nfunction updateInsertionEffect(create, deps) {\n return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n if (void 0 === initialValue || 0 !== (renderLanes & 1073741824))\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (0 === (renderLanes & 42) || 0 !== (renderLanes & 1073741824))\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane()\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction noop() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startTransition(\n formFiber,\n queue,\n pendingState,\n sharedNotPendingObject,\n null === action\n ? noop\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: sharedNotPendingObject,\n baseState: sharedNotPendingObject,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: sharedNotPendingObject\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n var stateHook = ensureFormComponentIsStateful(formFiber);\n null === stateHook.next && (stateHook = formFiber.alternate.memoizedState);\n dispatchSetStateInternal(\n formFiber,\n stateHook.next.queue,\n {},\n requestUpdateLane()\n );\n}\nfunction useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n}\nfunction updateId() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane();\n fiber = createUpdate(lane);\n var root$69 = enqueueUpdate(provider, fiber, lane);\n null !== root$69 &&\n (scheduleUpdateOnFiber(root$69, provider, lane),\n entangleTransitions(root$69, provider, lane));\n provider = { cache: createCache() };\n fiber.payload = provider;\n return;\n }\n provider = provider.return;\n }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n var lane = requestUpdateLane();\n action = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, action)\n : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n null !== action &&\n (scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n var lane = requestUpdateLane();\n dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n )\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n}\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError\n },\n HooksDispatcherOnMount = {\n readContext: readContext,\n use: use,\n useCallback: function (callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n },\n useContext: readContext,\n useEffect: mountEffect,\n useImperativeHandle: function (ref, create, deps) {\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n mountEffectImpl(\n 4194308,\n 4,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n },\n useLayoutEffect: function (create, deps) {\n return mountEffectImpl(4194308, 4, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n mountEffectImpl(4, 2, create, deps);\n },\n useMemo: function (nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n },\n useReducer: function (reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n },\n useRef: function (initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n },\n useState: function (initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n },\n useTransition: function () {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n },\n useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(formatProdErrorMessage(407));\n getServerSnapshot = getServerSnapshot();\n } else {\n getServerSnapshot = getSnapshot();\n if (null === workInProgressRoot)\n throw Error(formatProdErrorMessage(349));\n 0 !== (workInProgressRootRenderLanes & 124) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n hook.memoizedState = getServerSnapshot;\n var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n hook.queue = inst;\n mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n subscribe\n ]);\n fiber.flags |= 2048;\n pushSimpleEffect(\n 9,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n inst,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n return getServerSnapshot;\n },\n useId: function () {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var JSCompiler_inline_result = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n JSCompiler_inline_result =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + JSCompiler_inline_result;\n identifierPrefix =\n \"_\" + identifierPrefix + \"R_\" + JSCompiler_inline_result;\n JSCompiler_inline_result = localIdCounter++;\n 0 < JSCompiler_inline_result &&\n (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n identifierPrefix += \"_\";\n } else\n (JSCompiler_inline_result = globalClientIdCounter++),\n (identifierPrefix =\n \"_\" +\n identifierPrefix +\n \"r_\" +\n JSCompiler_inline_result.toString(32) +\n \"_\");\n return (hook.memoizedState = identifierPrefix);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: mountActionState,\n useActionState: mountActionState,\n useOptimistic: function (passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n }\n },\n HooksDispatcherOnUpdate = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: updateReducer,\n useRef: updateRef,\n useState: function () {\n return updateReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: updateActionState,\n useActionState: updateActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n },\n HooksDispatcherOnRerender = {\n readContext: readContext,\n use: use,\n useCallback: updateCallback,\n useContext: readContext,\n useEffect: updateEffect,\n useImperativeHandle: updateImperativeHandle,\n useInsertionEffect: updateInsertionEffect,\n useLayoutEffect: updateLayoutEffect,\n useMemo: updateMemo,\n useReducer: rerenderReducer,\n useRef: updateRef,\n useState: function () {\n return rerenderReducer(basicStateReducer);\n },\n useDebugValue: mountDebugValue,\n useDeferredValue: function (value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n },\n useTransition: function () {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n },\n useSyncExternalStore: updateSyncExternalStore,\n useId: updateId,\n useHostTransitionStatus: useHostTransitionStatus,\n useFormState: rerenderActionState,\n useActionState: rerenderActionState,\n useOptimistic: function (passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n },\n useMemoCache: useMemoCache,\n useCacheRefresh: updateRefresh\n };\nfunction applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n) {\n ctor = workInProgress.memoizedState;\n getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n getDerivedStateFromProps =\n null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n ? ctor\n : assign({}, ctor, getDerivedStateFromProps);\n workInProgress.memoizedState = getDerivedStateFromProps;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 1;\n update.payload = payload;\n void 0 !== callback && null !== callback && (update.callback = callback);\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(),\n update = createUpdate(lane);\n update.tag = 2;\n void 0 !== callback && null !== callback && (update.callback = callback);\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n};\nfunction checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n) {\n workInProgress = workInProgress.stateNode;\n return \"function\" === typeof workInProgress.shouldComponentUpdate\n ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n : ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n}\nfunction callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n) {\n workInProgress = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== workInProgress &&\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var propName$73 in Component)\n void 0 === newProps[propName$73] &&\n (newProps[propName$73] = Component[propName$73]);\n }\n return newProps;\n}\nfunction defaultOnUncaughtError(error) {\n reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n try {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n } catch (e$74) {\n setTimeout(function () {\n throw e$74;\n });\n }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n try {\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$75) {\n setTimeout(function () {\n throw e$75;\n });\n }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n lane.payload = { element: null };\n lane.callback = function () {\n logUncaughtError(root, errorInfo);\n };\n return lane;\n}\nfunction createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = 3;\n return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n logCaughtError(root, fiber, errorInfo);\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n var stack = errorInfo.stack;\n this.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n });\n}\nfunction throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n) {\n sourceFiber.flags |= 32768;\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 31:\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n 0 === workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 3),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n ((root = Error(formatProdErrorMessage(422), { cause: value })),\n queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n : (value !== HydrationMismatchException &&\n ((returnFiber = Error(formatProdErrorMessage(423), {\n cause: value\n })),\n queueHydrationError(\n createCapturedValueAtFiber(returnFiber, sourceFiber)\n )),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n 4 !== workInProgressRootExitStatus &&\n (workInProgressRootExitStatus = 2)),\n !1\n );\n var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [wrapperError])\n : workInProgressRootConcurrentErrors.push(wrapperError);\n 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (wrapperError = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== wrapperError &&\n \"function\" === typeof wrapperError.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n}\nfunction updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (workInProgress.tag = 15),\n (workInProgress.type = type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n type,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n}\nfunction updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n nextProps\n) {\n var nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n nextProps =\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n if (null !== current) {\n nextChildren = workInProgress.child = current.child;\n for (prevState = 0; null !== nextChildren; )\n (prevState =\n prevState | nextChildren.lanes | nextChildren.childLanes),\n (nextChildren = nextChildren.sibling);\n workInProgress.childLanes = prevState & ~nextProps;\n } else (workInProgress.childLanes = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextProps,\n renderLanes\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (workInProgress.lanes = workInProgress.childLanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n renderLanes\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nfunction deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes\n) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack();\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n return null;\n}\nfunction mountActivityChildren(workInProgress, nextProps) {\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: nextProps.mode, children: nextProps.children },\n workInProgress.mode\n );\n nextProps.ref = workInProgress.ref;\n workInProgress.child = nextProps;\n nextProps.return = workInProgress;\n return nextProps;\n}\nfunction retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountActivityChildren(workInProgress, workInProgress.pendingProps);\n current.flags |= 2;\n popSuspenseHandler(workInProgress);\n workInProgress.memoizedState = null;\n return current;\n}\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(formatProdErrorMessage(284));\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n}\nfunction updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n}\nfunction replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n}\nfunction updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n) {\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n var context = emptyContextObject,\n contextType = Component.contextType;\n \"object\" === typeof contextType &&\n null !== contextType &&\n (context = readContext(contextType));\n context = new Component(nextProps, context);\n workInProgress.memoizedState =\n null !== context.state && void 0 !== context.state ? context.state : null;\n context.updater = classComponentUpdater;\n workInProgress.stateNode = context;\n context._reactInternals = workInProgress;\n context = workInProgress.stateNode;\n context.props = nextProps;\n context.state = workInProgress.memoizedState;\n context.refs = {};\n initializeUpdateQueue(workInProgress);\n contextType = Component.contextType;\n context.context =\n \"object\" === typeof contextType && null !== contextType\n ? readContext(contextType)\n : emptyContextObject;\n context.state = workInProgress.memoizedState;\n contextType = Component.getDerivedStateFromProps;\n \"function\" === typeof contextType &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n contextType,\n nextProps\n ),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n ((contextType = context.state),\n \"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount(),\n contextType !== context.state &&\n classComponentUpdater.enqueueReplaceState(context, context.state, null),\n processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (context.state = workInProgress.memoizedState));\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308);\n nextProps = !0;\n } else if (null === current) {\n context = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps,\n oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n context.props = oldProps;\n var oldContext = context.context,\n contextType$jscomp$0 = Component.contextType;\n contextType = emptyContextObject;\n \"object\" === typeof contextType$jscomp$0 &&\n null !== contextType$jscomp$0 &&\n (contextType = readContext(contextType$jscomp$0));\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n contextType$jscomp$0 =\n \"function\" === typeof getDerivedStateFromProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== contextType) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n contextType\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof getDerivedStateFromProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n getDerivedStateFromProps,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (oldProps =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n oldProps,\n nextProps,\n oldState,\n oldContext,\n contextType\n ))\n ? (contextType$jscomp$0 ||\n (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n \"function\" !== typeof context.componentWillMount) ||\n (\"function\" === typeof context.componentWillMount &&\n context.componentWillMount(),\n \"function\" === typeof context.UNSAFE_componentWillMount &&\n context.UNSAFE_componentWillMount()),\n \"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (context.props = nextProps),\n (context.state = oldContext),\n (context.context = contextType),\n (nextProps = oldProps))\n : (\"function\" === typeof context.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (nextProps = !1));\n } else {\n context = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n contextType = workInProgress.memoizedProps;\n contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n context.props = contextType$jscomp$0;\n getDerivedStateFromProps = workInProgress.pendingProps;\n oldState = context.context;\n oldContext = Component.contextType;\n oldProps = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (oldProps = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof context.componentWillReceiveProps) ||\n ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n callComponentWillReceiveProps(\n workInProgress,\n context,\n nextProps,\n oldProps\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n context.state = oldState;\n processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n contextType !== getDerivedStateFromProps ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (contextType$jscomp$0 =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n contextType$jscomp$0,\n nextProps,\n oldState,\n newState,\n oldProps\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof context.componentWillUpdate) ||\n (\"function\" === typeof context.componentWillUpdate &&\n context.componentWillUpdate(nextProps, newState, oldProps),\n \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n context.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n oldProps\n )),\n \"function\" === typeof context.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof context.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (context.props = nextProps),\n (context.state = newState),\n (context.context = oldProps),\n (nextProps = contextType$jscomp$0))\n : (\"function\" !== typeof context.componentDidUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n (contextType === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (nextProps = !1));\n }\n context = nextProps;\n markRef(current, workInProgress);\n nextProps = 0 !== (workInProgress.flags & 128);\n context || nextProps\n ? ((context = workInProgress.stateNode),\n (Component =\n nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n ? null\n : context.render()),\n (workInProgress.flags |= 1),\n null !== current && nextProps\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes),\n (workInProgress.memoizedState = context.state),\n (current = workInProgress.child))\n : (current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ));\n return current;\n}\nfunction mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n};\nfunction mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n showFallback = !1,\n didSuspend = 0 !== (workInProgress.flags & 128),\n JSCompiler_temp;\n (JSCompiler_temp = didSuspend) ||\n (JSCompiler_temp =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & 2));\n JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n showFallback\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n (current = nextHydratableInstance)\n ? ((current = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (current = null !== current && \"&\" !== current.data ? current : null),\n null !== current &&\n ((workInProgress.memoizedState = {\n dehydrated: current,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (renderLanes = createFiberFromDehydratedFragment(current)),\n (renderLanes.return = workInProgress),\n (workInProgress.child = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (current = null);\n if (null === current) throw throwOnHydrationMismatch(workInProgress);\n isSuspenseInstanceFallback(current)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912);\n return null;\n }\n var nextPrimaryChildren = nextProps.children;\n nextProps = nextProps.fallback;\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (showFallback = workInProgress.mode),\n (nextPrimaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextPrimaryChildren },\n showFallback\n )),\n (nextProps = createFiberFromFragment(\n nextProps,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.sibling = nextProps),\n (workInProgress.child = nextPrimaryChildren),\n (nextPrimaryChildren = workInProgress.child),\n (nextPrimaryChildren.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextPrimaryChildren.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n nextProps\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren);\n }\n var prevState = current.memoizedState;\n if (\n null !== prevState &&\n ((nextPrimaryChildren = prevState.dehydrated), null !== nextPrimaryChildren)\n ) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (nextProps = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: nextProps.children },\n showFallback\n )),\n (nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2),\n (nextProps.return = workInProgress),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (nextProps = workInProgress.child),\n (nextProps.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = nextPrimaryChildren));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n isSuspenseInstanceFallback(nextPrimaryChildren))\n ) {\n JSCompiler_temp =\n nextPrimaryChildren.nextSibling &&\n nextPrimaryChildren.nextSibling.dataset;\n if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n JSCompiler_temp = digest;\n nextProps = Error(formatProdErrorMessage(419));\n nextProps.stack = \"\";\n nextProps.digest = JSCompiler_temp;\n queueHydrationError({ value: nextProps, source: null, stack: null });\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_temp)\n ) {\n JSCompiler_temp = workInProgressRoot;\n if (\n null !== JSCompiler_temp &&\n ((nextProps = getBumpedLaneForHydration(JSCompiler_temp, renderLanes)),\n 0 !== nextProps && nextProps !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = nextProps),\n enqueueConcurrentRenderForLane(current, nextProps),\n scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n SelectiveHydrationException)\n );\n isSuspenseInstancePending(nextPrimaryChildren) ||\n renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n isSuspenseInstancePending(nextPrimaryChildren)\n ? ((workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n (workInProgress = null))\n : ((current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(\n nextPrimaryChildren.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n nextProps.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n if (showFallback)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = nextProps.fallback),\n (showFallback = workInProgress.mode),\n (prevState = current.child),\n (digest = prevState.sibling),\n (nextProps = createWorkInProgress(prevState, {\n mode: \"hidden\",\n children: nextProps.children\n })),\n (nextProps.subtreeFlags = prevState.subtreeFlags & 65011712),\n null !== digest\n ? (nextPrimaryChildren = createWorkInProgress(\n digest,\n nextPrimaryChildren\n ))\n : ((nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n showFallback,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2)),\n (nextPrimaryChildren.return = workInProgress),\n (nextProps.return = workInProgress),\n (nextProps.sibling = nextPrimaryChildren),\n (workInProgress.child = nextProps),\n (nextProps = nextPrimaryChildren),\n (nextPrimaryChildren = workInProgress.child),\n (showFallback = current.child.memoizedState),\n null === showFallback\n ? (showFallback = mountSuspenseOffscreenState(renderLanes))\n : ((prevState = showFallback.cachePool),\n null !== prevState\n ? ((digest = CacheContext._currentValue),\n (prevState =\n prevState.parent !== digest\n ? { parent: digest, pool: digest }\n : prevState))\n : (prevState = getSuspendedCache()),\n (showFallback = {\n baseLanes: showFallback.baseLanes | renderLanes,\n cachePool: prevState\n })),\n (nextPrimaryChildren.memoizedState = showFallback),\n (nextPrimaryChildren.childLanes = getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_temp,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n nextProps\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: nextProps.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_temp = workInProgress.deletions),\n null === JSCompiler_temp\n ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n : JSCompiler_temp.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiberImplClass(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n offscreenProps.stateNode = {\n _visibility: 1,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n };\n return offscreenProps;\n}\nfunction retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode,\n treeForkCount\n) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n treeForkCount: treeForkCount\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode),\n (renderState.treeForkCount = treeForkCount));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail;\n nextProps = nextProps.children;\n var suspenseContext = suspenseStackCursor.current,\n shouldForceFallback = 0 !== (suspenseContext & 2);\n shouldForceFallback\n ? ((suspenseContext = (suspenseContext & 1) | 2),\n (workInProgress.flags |= 128))\n : (suspenseContext &= 1);\n push(suspenseStackCursor, suspenseContext);\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n nextProps = isHydrating ? treeForkCount : 0;\n if (!shouldForceFallback && null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode,\n nextProps\n );\n break;\n case \"backwards\":\n case \"unstable_legacy-backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode,\n nextProps\n );\n break;\n case \"together\":\n initSuspenseListRenderState(\n workInProgress,\n !1,\n null,\n null,\n void 0,\n nextProps\n );\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(formatProdErrorMessage(153));\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 31:\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.flags |= 128),\n pushDehydratedActivitySuspenseHandler(workInProgress),\n null\n );\n break;\n case 13:\n var state$100 = workInProgress.memoizedState;\n if (null !== state$100) {\n if (null !== state$100.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n state$100 = 0 !== (renderLanes & workInProgress.childLanes);\n state$100 ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (state$100 = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (state$100)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(suspenseStackCursor, suspenseStackCursor.current);\n if (state$100) break;\n else return null;\n case 22:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n )\n );\n case 24:\n pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n if (null !== current)\n if (current.memoizedProps !== workInProgress.pendingProps)\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else\n (didReceiveUpdate = !1),\n isHydrating &&\n 0 !== (workInProgress.flags & 1048576) &&\n pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: {\n current = workInProgress.pendingProps;\n var lazyComponent = workInProgress.elementType,\n init = lazyComponent._init;\n lazyComponent = init(lazyComponent._payload);\n workInProgress.type = lazyComponent;\n if (\"function\" === typeof lazyComponent)\n shouldConstruct(lazyComponent)\n ? ((current = resolveClassComponentProps(lazyComponent, current)),\n (workInProgress.tag = 1),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n )));\n else {\n if (void 0 !== lazyComponent && null !== lazyComponent)\n if (\n ((init = lazyComponent.$$typeof), init === REACT_FORWARD_REF_TYPE)\n ) {\n workInProgress.tag = 11;\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n );\n break a;\n } else if (init === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n lazyComponent,\n current,\n renderLanes\n );\n break a;\n }\n workInProgress =\n getComponentNameFromType(lazyComponent) || lazyComponent;\n throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n }\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (lazyComponent = workInProgress.type),\n (init = resolveClassComponentProps(\n lazyComponent,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n lazyComponent,\n init,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current) throw Error(formatProdErrorMessage(387));\n lazyComponent = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n init = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, lazyComponent, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n lazyComponent = nextState.cache;\n pushProvider(workInProgress, CacheContext, lazyComponent);\n lazyComponent !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n lazyComponent = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: lazyComponent,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n lazyComponent,\n renderLanes\n );\n break a;\n } else if (lazyComponent !== init) {\n init = createCapturedValueAtFiber(\n Error(formatProdErrorMessage(424)),\n workInProgress\n );\n queueHydrationError(init);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n lazyComponent,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n rootOrSingletonContext = !0;\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n lazyComponent,\n renderLanes\n );\n for (workInProgress.child = renderLanes; renderLanes; )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n }\n else {\n resetHydrationState();\n if (lazyComponent === init) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(\n current,\n workInProgress,\n lazyComponent,\n renderLanes\n );\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (lazyComponent = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n ).createElement(renderLanes)),\n (lazyComponent[internalInstanceKey] = workInProgress),\n (lazyComponent[internalPropsKey] = current),\n setInitialProperties(lazyComponent, renderLanes, current),\n markNodeAsHoistable(lazyComponent),\n (workInProgress.stateNode = lazyComponent))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((lazyComponent = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n rootInstanceStackCursor.current\n )),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n (init = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = init),\n (nextHydratableInstance = getNextHydratable(\n lazyComponent.firstChild\n )))\n : (nextHydratableInstance = init)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n if (null === current && isHydrating) {\n if ((init = lazyComponent = nextHydratableInstance))\n (lazyComponent = canHydrateInstance(\n lazyComponent,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== lazyComponent\n ? ((workInProgress.stateNode = lazyComponent),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(\n lazyComponent.firstChild\n )),\n (rootOrSingletonContext = !1),\n (init = !0))\n : (init = !1);\n init || throwOnHydrationMismatch(workInProgress);\n }\n pushHostContext(workInProgress);\n init = workInProgress.type;\n prevState = workInProgress.pendingProps;\n nextState = null !== current ? current.memoizedProps : null;\n lazyComponent = prevState.children;\n shouldSetTextContent(init, prevState)\n ? (lazyComponent = null)\n : null !== nextState &&\n shouldSetTextContent(init, nextState) &&\n (workInProgress.flags |= 32);\n null !== workInProgress.memoizedState &&\n ((init = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = init));\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, lazyComponent, renderLanes);\n return workInProgress.child;\n case 6:\n if (null === current && isHydrating) {\n if ((current = renderLanes = nextHydratableInstance))\n (renderLanes = canHydrateTextInstance(\n renderLanes,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== renderLanes\n ? ((workInProgress.stateNode = renderLanes),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (current = !0))\n : (current = !1);\n current || throwOnHydrationMismatch(workInProgress);\n }\n return null;\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (lazyComponent = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n lazyComponent,\n renderLanes\n ))\n : reconcileChildren(\n current,\n workInProgress,\n lazyComponent,\n renderLanes\n ),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (lazyComponent = workInProgress.pendingProps),\n pushProvider(workInProgress, workInProgress.type, lazyComponent.value),\n reconcileChildren(\n current,\n workInProgress,\n lazyComponent.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 9:\n return (\n (init = workInProgress.type._context),\n (lazyComponent = workInProgress.pendingProps.children),\n prepareToReadContext(workInProgress),\n (init = readContext(init)),\n (lazyComponent = lazyComponent(init)),\n (workInProgress.flags |= 1),\n reconcileChildren(current, workInProgress, lazyComponent, renderLanes),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n case 31:\n init = workInProgress.pendingProps;\n nextState = 0 !== (workInProgress.flags & 128);\n workInProgress.flags &= -129;\n if (null === current)\n if (isHydrating) {\n if (\"hidden\" === init.mode)\n mountActivityChildren(workInProgress, init);\n else if (\n (pushDehydratedActivitySuspenseHandler(workInProgress),\n (renderLanes = nextHydratableInstance)\n ? ((renderLanes = canHydrateHydrationBoundary(\n renderLanes,\n rootOrSingletonContext\n )),\n (renderLanes =\n null !== renderLanes && \"&\" === renderLanes.data\n ? renderLanes\n : null),\n null !== renderLanes &&\n ((workInProgress.memoizedState = {\n dehydrated: renderLanes,\n treeContext:\n null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null,\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (current = createFiberFromDehydratedFragment(renderLanes)),\n (current.return = workInProgress),\n (workInProgress.child = current),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (renderLanes = null),\n null === renderLanes)\n )\n throw throwOnHydrationMismatch(workInProgress);\n workInProgress.lanes = 536870912;\n workInProgress = null;\n } else workInProgress = mountActivityChildren(workInProgress, init);\n else if (\n ((lazyComponent = current.memoizedState), null !== lazyComponent)\n )\n if (\n ((prevState = lazyComponent.dehydrated),\n pushDehydratedActivitySuspenseHandler(workInProgress),\n nextState)\n )\n if (workInProgress.flags & 256)\n (workInProgress.flags &= -257),\n (workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ));\n else if (null !== workInProgress.memoizedState)\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null);\n else throw Error(formatProdErrorMessage(558));\n else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (nextState = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || nextState)\n ) {\n init = workInProgressRoot;\n if (\n null !== init &&\n ((prevState = getBumpedLaneForHydration(init, renderLanes)),\n 0 !== prevState && prevState !== lazyComponent.retryLane)\n )\n throw (\n ((lazyComponent.retryLane = prevState),\n enqueueConcurrentRenderForLane(current, prevState),\n scheduleUpdateOnFiber(init, current, prevState),\n SelectiveHydrationException)\n );\n renderDidSuspendDelayIfPossible();\n workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n (renderLanes = lazyComponent.treeContext),\n (nextHydratableInstance = getNextHydratable(prevState.nextSibling)),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (rootOrSingletonContext = !1),\n null !== renderLanes &&\n restoreSuspendedTreeContext(workInProgress, renderLanes),\n (workInProgress = mountActivityChildren(workInProgress, init)),\n (workInProgress.flags |= 4096);\n else\n (renderLanes = createWorkInProgress(current.child, {\n mode: init.mode,\n children: init.children\n })),\n (renderLanes.ref = workInProgress.ref),\n (workInProgress.child = renderLanes),\n (renderLanes.return = workInProgress),\n (workInProgress = renderLanes);\n return workInProgress;\n case 22:\n return updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n );\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (lazyComponent = readContext(CacheContext)),\n null === current\n ? ((init = peekCacheFromPool()),\n null === init &&\n ((init = workInProgressRoot),\n (prevState = createCache()),\n (init.pooledCache = prevState),\n prevState.refCount++,\n null !== prevState && (init.pooledCacheLanes |= renderLanes),\n (init = prevState)),\n (workInProgress.memoizedState = {\n parent: lazyComponent,\n cache: init\n }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, init))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n (init = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n init.parent !== lazyComponent\n ? ((init = { parent: lazyComponent, cache: lazyComponent }),\n (workInProgress.memoizedState = init),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n init),\n pushProvider(workInProgress, CacheContext, lazyComponent))\n : ((lazyComponent = prevState.cache),\n pushProvider(workInProgress, CacheContext, lazyComponent),\n lazyComponent !== init.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n}\nfunction preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n oldProps,\n newProps,\n renderLanes\n) {\n if ((type = 0 !== (workInProgress.mode & 32))) type = !1;\n if (type) {\n if (\n ((workInProgress.flags |= 16777216),\n (renderLanes & 335544128) === renderLanes)\n )\n if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;\n else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n } else workInProgress.flags &= -16777217;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))\n if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var lastTailNode$104 = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (lastTailNode$104 = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === lastTailNode$104\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (lastTailNode$104.sibling = null);\n }\n}\nfunction bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n for (var child$105 = completedWork.child; null !== child$105; )\n (newChildLanes |= child$105.lanes | child$105.childLanes),\n (subtreeFlags |= child$105.subtreeFlags & 65011712),\n (subtreeFlags |= child$105.flags & 65011712),\n (child$105.return = completedWork),\n (child$105 = child$105.sibling);\n else\n for (child$105 = completedWork.child; null !== child$105; )\n (newChildLanes |= child$105.lanes | child$105.childLanes),\n (subtreeFlags |= child$105.subtreeFlags),\n (subtreeFlags |= child$105.flags),\n (child$105.return = completedWork),\n (child$105 = child$105.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext);\n popHostContainer();\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? markUpdate(workInProgress)\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n var type = workInProgress.type,\n nextResource = workInProgress.memoizedState;\n null === current\n ? (markUpdate(workInProgress),\n null !== nextResource\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n null,\n newProps,\n renderLanes\n )))\n : nextResource\n ? nextResource !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(workInProgress, nextResource))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : ((current = current.memoizedProps),\n current !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n current,\n newProps,\n renderLanes\n ));\n return null;\n case 27:\n popHostContext(workInProgress);\n renderLanes = rootInstanceStackCursor.current;\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n current = contextStackCursor.current;\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n bubbleProperties(workInProgress);\n return null;\n }\n nextResource = contextStackCursor.current;\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, nextResource);\n else {\n var ownerDocument = getOwnerDocumentFromRootContainer(\n rootInstanceStackCursor.current\n );\n switch (nextResource) {\n case 1:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case 2:\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n default:\n switch (type) {\n case \"svg\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/2000/svg\",\n type\n );\n break;\n case \"math\":\n nextResource = ownerDocument.createElementNS(\n \"http://www.w3.org/1998/Math/MathML\",\n type\n );\n break;\n case \"script\":\n nextResource = ownerDocument.createElement(\"div\");\n nextResource.innerHTML = \"<script>\\x3c/script>\";\n nextResource = nextResource.removeChild(\n nextResource.firstChild\n );\n break;\n case \"select\":\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(\"select\", {\n is: newProps.is\n })\n : ownerDocument.createElement(\"select\");\n newProps.multiple\n ? (nextResource.multiple = !0)\n : newProps.size && (nextResource.size = newProps.size);\n break;\n default:\n nextResource =\n \"string\" === typeof newProps.is\n ? ownerDocument.createElement(type, { is: newProps.is })\n : ownerDocument.createElement(type);\n }\n }\n nextResource[internalInstanceKey] = workInProgress;\n nextResource[internalPropsKey] = newProps;\n a: for (\n ownerDocument = workInProgress.child;\n null !== ownerDocument;\n\n ) {\n if (5 === ownerDocument.tag || 6 === ownerDocument.tag)\n nextResource.appendChild(ownerDocument.stateNode);\n else if (\n 4 !== ownerDocument.tag &&\n 27 !== ownerDocument.tag &&\n null !== ownerDocument.child\n ) {\n ownerDocument.child.return = ownerDocument;\n ownerDocument = ownerDocument.child;\n continue;\n }\n if (ownerDocument === workInProgress) break a;\n for (; null === ownerDocument.sibling; ) {\n if (\n null === ownerDocument.return ||\n ownerDocument.return === workInProgress\n )\n break a;\n ownerDocument = ownerDocument.return;\n }\n ownerDocument.sibling.return = ownerDocument.return;\n ownerDocument = ownerDocument.sibling;\n }\n workInProgress.stateNode = nextResource;\n a: switch (\n (setInitialProperties(nextResource, type, newProps), type)\n ) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n newProps = !!newProps.autoFocus;\n break a;\n case \"img\":\n newProps = !0;\n break a;\n default:\n newProps = !1;\n }\n newProps && markUpdate(workInProgress);\n }\n }\n bubbleProperties(workInProgress);\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n workInProgress.type,\n null === current ? null : current.memoizedProps,\n workInProgress.pendingProps,\n renderLanes\n );\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n throw Error(formatProdErrorMessage(166));\n current = rootInstanceStackCursor.current;\n if (popHydrationState(workInProgress)) {\n current = workInProgress.stateNode;\n renderLanes = workInProgress.memoizedProps;\n newProps = null;\n type = hydrationParentFiber;\n if (null !== type)\n switch (type.tag) {\n case 27:\n case 5:\n newProps = type.memoizedProps;\n }\n current[internalInstanceKey] = workInProgress;\n current =\n current.nodeValue === renderLanes ||\n (null !== newProps && !0 === newProps.suppressHydrationWarning) ||\n checkForUnmatchedText(current.nodeValue, renderLanes)\n ? !0\n : !1;\n current || throwOnHydrationMismatch(workInProgress, !0);\n } else\n (current =\n getOwnerDocumentFromRootContainer(current).createTextNode(\n newProps\n )),\n (current[internalInstanceKey] = workInProgress),\n (workInProgress.stateNode = current);\n }\n bubbleProperties(workInProgress);\n return null;\n case 31:\n renderLanes = workInProgress.memoizedState;\n if (null === current || null !== current.memoizedState) {\n newProps = popHydrationState(workInProgress);\n if (null !== renderLanes) {\n if (null === current) {\n if (!newProps) throw Error(formatProdErrorMessage(318));\n current = workInProgress.memoizedState;\n current = null !== current ? current.dehydrated : null;\n if (!current) throw Error(formatProdErrorMessage(557));\n current[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n current = !1;\n } else\n (renderLanes = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = renderLanes),\n (current = !0);\n if (!current) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n if (0 !== (workInProgress.flags & 128))\n throw Error(formatProdErrorMessage(558));\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n type = popHydrationState(workInProgress);\n if (null !== newProps && null !== newProps.dehydrated) {\n if (null === current) {\n if (!type) throw Error(formatProdErrorMessage(318));\n type = workInProgress.memoizedState;\n type = null !== type ? type.dehydrated : null;\n if (!type) throw Error(formatProdErrorMessage(317));\n type[internalInstanceKey] = workInProgress;\n } else\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (workInProgress.memoizedState = null),\n (workInProgress.flags |= 4);\n bubbleProperties(workInProgress);\n type = !1;\n } else\n (type = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = type),\n (type = !0);\n if (!type) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n }\n popSuspenseHandler(workInProgress);\n if (0 !== (workInProgress.flags & 128))\n return (workInProgress.lanes = renderLanes), workInProgress;\n renderLanes = null !== newProps;\n current = null !== current && null !== current.memoizedState;\n renderLanes &&\n ((newProps = workInProgress.child),\n (type = null),\n null !== newProps.alternate &&\n null !== newProps.alternate.memoizedState &&\n null !== newProps.alternate.memoizedState.cachePool &&\n (type = newProps.alternate.memoizedState.cachePool.pool),\n (nextResource = null),\n null !== newProps.memoizedState &&\n null !== newProps.memoizedState.cachePool &&\n (nextResource = newProps.memoizedState.cachePool.pool),\n nextResource !== type && (newProps.flags |= 2048));\n renderLanes !== current &&\n renderLanes &&\n (workInProgress.child.flags |= 8192);\n scheduleRetryEffect(workInProgress, workInProgress.updateQueue);\n bubbleProperties(workInProgress);\n return null;\n case 4:\n return (\n popHostContainer(),\n null === current &&\n listenToAllSupportedEvents(workInProgress.stateNode.containerInfo),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type), bubbleProperties(workInProgress), null\n );\n case 19:\n pop(suspenseStackCursor);\n newProps = workInProgress.memoizedState;\n if (null === newProps) return bubbleProperties(workInProgress), null;\n type = 0 !== (workInProgress.flags & 128);\n nextResource = newProps.rendering;\n if (null === nextResource)\n if (type) cutOffTailIfNeeded(newProps, !1);\n else {\n if (\n 0 !== workInProgressRootExitStatus ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n nextResource = findFirstSuspended(current);\n if (null !== nextResource) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(newProps, !1);\n current = nextResource.updateQueue;\n workInProgress.updateQueue = current;\n scheduleRetryEffect(workInProgress, current);\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (renderLanes = workInProgress.child; null !== renderLanes; )\n resetWorkInProgress(renderLanes, current),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current & 1) | 2\n );\n isHydrating &&\n pushTreeFork(workInProgress, newProps.treeForkCount);\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== newProps.tail &&\n now() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!type)\n if (\n ((current = findFirstSuspended(nextResource)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (type = !0),\n (current = current.updateQueue),\n (workInProgress.updateQueue = current),\n scheduleRetryEffect(workInProgress, current),\n cutOffTailIfNeeded(newProps, !0),\n null === newProps.tail &&\n \"hidden\" === newProps.tailMode &&\n !nextResource.alternate &&\n !isHydrating)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now() - newProps.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 536870912 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n newProps.isBackwards\n ? ((nextResource.sibling = workInProgress.child),\n (workInProgress.child = nextResource))\n : ((current = newProps.last),\n null !== current\n ? (current.sibling = nextResource)\n : (workInProgress.child = nextResource),\n (newProps.last = nextResource));\n }\n if (null !== newProps.tail)\n return (\n (current = newProps.tail),\n (newProps.rendering = current),\n (newProps.tail = current.sibling),\n (newProps.renderingStartTime = now()),\n (current.sibling = null),\n (renderLanes = suspenseStackCursor.current),\n push(\n suspenseStackCursor,\n type ? (renderLanes & 1) | 2 : renderLanes & 1\n ),\n isHydrating && pushTreeFork(workInProgress, newProps.treeForkCount),\n current\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n (newProps = null !== workInProgress.memoizedState),\n null !== current\n ? (null !== current.memoizedState) !== newProps &&\n (workInProgress.flags |= 8192)\n : newProps && (workInProgress.flags |= 8192),\n newProps\n ? 0 !== (renderLanes & 536870912) &&\n 0 === (workInProgress.flags & 128) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n (renderLanes = workInProgress.updateQueue),\n null !== renderLanes &&\n scheduleRetryEffect(workInProgress, renderLanes.retryQueue),\n (renderLanes = null),\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (renderLanes = current.memoizedState.cachePool.pool),\n (newProps = null),\n null !== workInProgress.memoizedState &&\n null !== workInProgress.memoizedState.cachePool &&\n (newProps = workInProgress.memoizedState.cachePool.pool),\n newProps !== renderLanes && (workInProgress.flags |= 2048),\n null !== current && pop(resumedCache),\n null\n );\n case 24:\n return (\n (renderLanes = null),\n null !== current && (renderLanes = current.memoizedState.cache),\n workInProgress.memoizedState.cache !== renderLanes &&\n (workInProgress.flags |= 2048),\n popProvider(CacheContext),\n bubbleProperties(workInProgress),\n null\n );\n case 25:\n return null;\n case 30:\n return null;\n }\n throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 3:\n return (\n popProvider(CacheContext),\n popHostContainer(),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 26:\n case 27:\n case 5:\n return popHostContext(workInProgress), null;\n case 31:\n if (null !== workInProgress.memoizedState) {\n popSuspenseHandler(workInProgress);\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 13:\n popSuspenseHandler(workInProgress);\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated) {\n if (null === workInProgress.alternate)\n throw Error(formatProdErrorMessage(340));\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor), null;\n case 4:\n return popHostContainer(), null;\n case 10:\n return popProvider(workInProgress.type), null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(),\n null !== current && pop(resumedCache),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n : null\n );\n case 24:\n return popProvider(CacheContext), null;\n case 25:\n return null;\n default:\n return null;\n }\n}\nfunction unwindInterruptedWork(current, interruptedWork) {\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 3:\n popProvider(CacheContext);\n popHostContainer();\n break;\n case 26:\n case 27:\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer();\n break;\n case 31:\n null !== interruptedWork.memoizedState &&\n popSuspenseHandler(interruptedWork);\n break;\n case 13:\n popSuspenseHandler(interruptedWork);\n break;\n case 19:\n pop(suspenseStackCursor);\n break;\n case 10:\n popProvider(interruptedWork.type);\n break;\n case 22:\n case 23:\n popSuspenseHandler(interruptedWork);\n popHiddenContext();\n null !== current && pop(resumedCache);\n break;\n case 24:\n popProvider(CacheContext);\n }\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n lastEffect = void 0;\n var create = updateQueue.create,\n inst = updateQueue.inst;\n lastEffect = create();\n inst.destroy = lastEffect;\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor$jscomp$0\n) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n var inst = updateQueue.inst,\n destroy = inst.destroy;\n if (void 0 !== destroy) {\n inst.destroy = void 0;\n lastEffect = finishedWork;\n var nearestMountedAncestor = nearestMountedAncestor$jscomp$0,\n destroy_ = destroy;\n try {\n destroy_();\n } catch (error) {\n captureCommitPhaseError(\n lastEffect,\n nearestMountedAncestor,\n error\n );\n }\n }\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitClassCallbacks(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n if (null !== updateQueue) {\n var instance = finishedWork.stateNode;\n try {\n commitCallbacks(updateQueue, instance);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction safelyCallComponentWillUnmount(\n current,\n nearestMountedAncestor,\n instance\n) {\n instance.props = resolveClassComponentProps(\n current.type,\n current.memoizedProps\n );\n instance.state = current.memoizedState;\n try {\n instance.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n try {\n var ref = current.ref;\n if (null !== ref) {\n switch (current.tag) {\n case 26:\n case 27:\n case 5:\n var instanceToUse = current.stateNode;\n break;\n case 30:\n instanceToUse = current.stateNode;\n break;\n default:\n instanceToUse = current.stateNode;\n }\n \"function\" === typeof ref\n ? (current.refCleanup = ref(instanceToUse))\n : (ref.current = instanceToUse);\n }\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n}\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref,\n refCleanup = current.refCleanup;\n if (null !== ref)\n if (\"function\" === typeof refCleanup)\n try {\n refCleanup();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n } finally {\n (current.refCleanup = null),\n (current = current.alternate),\n null != current && (current.refCleanup = null);\n }\n else if (\"function\" === typeof ref)\n try {\n ref(null);\n } catch (error$138) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$138);\n }\n else ref.current = null;\n}\nfunction commitHostMount(finishedWork) {\n var type = finishedWork.type,\n props = finishedWork.memoizedProps,\n instance = finishedWork.stateNode;\n try {\n a: switch (type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n props.autoFocus && instance.focus();\n break a;\n case \"img\":\n props.src\n ? (instance.src = props.src)\n : props.srcSet && (instance.srcset = props.srcSet);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction commitHostUpdate(finishedWork, newProps, oldProps) {\n try {\n var domElement = finishedWork.stateNode;\n updateProperties(domElement, finishedWork.type, oldProps, newProps);\n domElement[internalPropsKey] = newProps;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction isHostParent(fiber) {\n return (\n 5 === fiber.tag ||\n 3 === fiber.tag ||\n 26 === fiber.tag ||\n (27 === fiber.tag && isSingletonScope(fiber.type)) ||\n 4 === fiber.tag\n );\n}\nfunction getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before\n ? (9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent\n ).insertBefore(node, before)\n : ((before =\n 9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent),\n before.appendChild(node),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1));\n else if (\n 4 !== tag &&\n (27 === tag &&\n isSingletonScope(node.type) &&\n ((parent = node.stateNode), (before = null)),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before ? parent.insertBefore(node, before) : parent.appendChild(node);\n else if (\n 4 !== tag &&\n (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nfunction commitHostSingletonAcquisition(finishedWork) {\n var singleton = finishedWork.stateNode,\n props = finishedWork.memoizedProps;\n try {\n for (\n var type = finishedWork.type, attributes = singleton.attributes;\n attributes.length;\n\n )\n singleton.removeAttributeNode(attributes[0]);\n setInitialProperties(singleton, type, props);\n singleton[internalInstanceKey] = finishedWork;\n singleton[internalPropsKey] = props;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nvar offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null;\nfunction commitBeforeMutationEffects(root, firstChild) {\n root = root.containerInfo;\n eventsEnabled = _enabled;\n root = getActiveElementDeep(root);\n if (hasSelectionCapabilities(root)) {\n if (\"selectionStart\" in root)\n var JSCompiler_temp = {\n start: root.selectionStart,\n end: root.selectionEnd\n };\n else\n a: {\n JSCompiler_temp =\n ((JSCompiler_temp = root.ownerDocument) &&\n JSCompiler_temp.defaultView) ||\n window;\n var selection =\n JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n if (selection && 0 !== selection.rangeCount) {\n JSCompiler_temp = selection.anchorNode;\n var anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode;\n selection = selection.focusOffset;\n try {\n JSCompiler_temp.nodeType, focusNode.nodeType;\n } catch (e$20) {\n JSCompiler_temp = null;\n break a;\n }\n var length = 0,\n start = -1,\n end = -1,\n indexWithinAnchor = 0,\n indexWithinFocus = 0,\n node = root,\n parentNode = null;\n b: for (;;) {\n for (var next; ; ) {\n node !== JSCompiler_temp ||\n (0 !== anchorOffset && 3 !== node.nodeType) ||\n (start = length + anchorOffset);\n node !== focusNode ||\n (0 !== selection && 3 !== node.nodeType) ||\n (end = length + selection);\n 3 === node.nodeType && (length += node.nodeValue.length);\n if (null === (next = node.firstChild)) break;\n parentNode = node;\n node = next;\n }\n for (;;) {\n if (node === root) break b;\n parentNode === JSCompiler_temp &&\n ++indexWithinAnchor === anchorOffset &&\n (start = length);\n parentNode === focusNode &&\n ++indexWithinFocus === selection &&\n (end = length);\n if (null !== (next = node.nextSibling)) break;\n node = parentNode;\n parentNode = node.parentNode;\n }\n node = next;\n }\n JSCompiler_temp =\n -1 === start || -1 === end ? null : { start: start, end: end };\n } else JSCompiler_temp = null;\n }\n JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n } else JSCompiler_temp = null;\n selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };\n _enabled = !1;\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((firstChild = nextEffect),\n (root = firstChild.child),\n 0 !== (firstChild.subtreeFlags & 1024) && null !== root)\n )\n (root.return = firstChild), (nextEffect = root);\n else\n for (; null !== nextEffect; ) {\n firstChild = nextEffect;\n focusNode = firstChild.alternate;\n root = firstChild.flags;\n switch (firstChild.tag) {\n case 0:\n break;\n case 11:\n case 15:\n break;\n case 1:\n if (0 !== (root & 1024) && null !== focusNode) {\n root = void 0;\n JSCompiler_temp = firstChild;\n anchorOffset = focusNode.memoizedProps;\n focusNode = focusNode.memoizedState;\n selection = JSCompiler_temp.stateNode;\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n JSCompiler_temp.type,\n anchorOffset\n );\n root = selection.getSnapshotBeforeUpdate(\n resolvedPrevProps,\n focusNode\n );\n selection.__reactInternalSnapshotBeforeUpdate = root;\n } catch (error) {\n captureCommitPhaseError(\n JSCompiler_temp,\n JSCompiler_temp.return,\n error\n );\n }\n }\n break;\n case 3:\n if (0 !== (root & 1024))\n if (\n ((root = firstChild.stateNode.containerInfo),\n (JSCompiler_temp = root.nodeType),\n 9 === JSCompiler_temp)\n )\n clearContainerSparingly(root);\n else if (1 === JSCompiler_temp)\n switch (root.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(root);\n break;\n default:\n root.textContent = \"\";\n }\n break;\n case 5:\n case 26:\n case 27:\n case 6:\n case 4:\n case 17:\n break;\n default:\n if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163));\n }\n root = firstChild.sibling;\n if (null !== root) {\n root.return = firstChild.return;\n nextEffect = root;\n break;\n }\n nextEffect = firstChild.return;\n }\n}\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitHookEffectListMount(5, finishedWork);\n break;\n case 1:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 4)\n if (((finishedRoot = finishedWork.stateNode), null === current))\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n else {\n var prevProps = resolveClassComponentProps(\n finishedWork.type,\n current.memoizedProps\n );\n current = current.memoizedState;\n try {\n finishedRoot.componentDidUpdate(\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n );\n } catch (error$137) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error$137\n );\n }\n }\n flags & 64 && commitClassCallbacks(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (\n flags & 64 &&\n ((finishedRoot = finishedWork.updateQueue), null !== finishedRoot)\n ) {\n current = null;\n if (null !== finishedWork.child)\n switch (finishedWork.child.tag) {\n case 27:\n case 5:\n current = finishedWork.child.stateNode;\n break;\n case 1:\n current = finishedWork.child.stateNode;\n }\n try {\n commitCallbacks(finishedRoot, current);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 27:\n null === current &&\n flags & 4 &&\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n null === current && flags & 4 && commitHostMount(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n break;\n case 31:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n flags & 64 &&\n ((finishedRoot = finishedWork.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated),\n null !== finishedRoot &&\n ((finishedWork = retryDehydratedSuspenseBoundary.bind(\n null,\n finishedWork\n )),\n registerSuspenseInstanceRetry(finishedRoot, finishedWork))));\n break;\n case 22:\n flags = null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n if (!flags) {\n current =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n prevProps = offscreenSubtreeIsHidden;\n var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = flags;\n (offscreenSubtreeWasHidden = current) && !prevOffscreenSubtreeWasHidden\n ? recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n 0 !== (finishedWork.subtreeFlags & 8772)\n )\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = prevProps;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n }\n break;\n case 30:\n break;\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n}\nfunction detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n 5 === fiber.tag &&\n ((alternate = fiber.stateNode),\n null !== alternate && detachDeletedInstance(alternate));\n fiber.stateNode = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n}\nvar hostParent = null,\n hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n) {\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {}\n switch (deletedFiber.tag) {\n case 26:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber.memoizedState\n ? deletedFiber.memoizedState.count--\n : deletedFiber.stateNode &&\n ((deletedFiber = deletedFiber.stateNode),\n deletedFiber.parentNode.removeChild(deletedFiber));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n isSingletonScope(deletedFiber.type) &&\n ((hostParent = deletedFiber.stateNode), (hostParentIsContainer = !1));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n releaseSingletonInstance(deletedFiber.stateNode);\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n if (null !== hostParent)\n if (hostParentIsContainer)\n try {\n (9 === hostParent.nodeType\n ? hostParent.body\n : \"HTML\" === hostParent.nodeName\n ? hostParent.ownerDocument.body\n : hostParent\n ).removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n hostParent.removeChild(deletedFiber.stateNode);\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n break;\n case 18:\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n clearHydrationBoundary(\n 9 === finishedRoot.nodeType\n ? finishedRoot.body\n : \"HTML\" === finishedRoot.nodeName\n ? finishedRoot.ownerDocument.body\n : finishedRoot,\n deletedFiber.stateNode\n ),\n retryIfBlockedOn(finishedRoot))\n : clearHydrationBoundary(hostParent, deletedFiber.stateNode));\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);\n offscreenSubtreeWasHidden ||\n commitHookEffectListUnmount(4, deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n offscreenSubtreeWasHidden ||\n (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n (prevHostParent = deletedFiber.stateNode),\n \"function\" === typeof prevHostParent.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n deletedFiber,\n nearestMountedAncestor,\n prevHostParent\n ));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n offscreenSubtreeWasHidden =\n (prevHostParent = offscreenSubtreeWasHidden) ||\n null !== deletedFiber.memoizedState;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n offscreenSubtreeWasHidden = prevHostParent;\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n}\nfunction commitActivityHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState), null !== finishedRoot))\n ) {\n finishedRoot = finishedRoot.dehydrated;\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n}\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n )\n try {\n retryIfBlockedOn(finishedRoot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n}\nfunction getRetryCache(finishedWork) {\n switch (finishedWork.tag) {\n case 31:\n case 13:\n case 19:\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n return retryCache;\n case 22:\n return (\n (finishedWork = finishedWork.stateNode),\n (retryCache = finishedWork._retryCache),\n null === retryCache &&\n (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n retryCache\n );\n default:\n throw Error(formatProdErrorMessage(435, finishedWork.tag));\n }\n}\nfunction attachSuspenseRetryListeners(finishedWork, wakeables) {\n var retryCache = getRetryCache(finishedWork);\n wakeables.forEach(function (wakeable) {\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n retryCache.has(wakeable) ||\n (retryCache.add(wakeable), wakeable.then(retry, retry));\n });\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i],\n root = root$jscomp$0,\n returnFiber = parentFiber,\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 27:\n if (isSingletonScope(parent.type)) {\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n }\n break;\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent) throw Error(formatProdErrorMessage(160));\n commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n hostParent = null;\n hostParentIsContainer = !1;\n root = childToDelete.alternate;\n null !== root && (root.return = null);\n childToDelete.return = null;\n }\n if (parentFiber.subtreeFlags & 13878)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n var current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n commitHookEffectListMount(3, finishedWork),\n commitHookEffectListUnmount(5, finishedWork, finishedWork.return));\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n flags & 64 &&\n offscreenSubtreeIsHidden &&\n ((finishedWork = finishedWork.updateQueue),\n null !== finishedWork &&\n ((flags = finishedWork.callbacks),\n null !== flags &&\n ((current = finishedWork.shared.hiddenCallbacks),\n (finishedWork.shared.hiddenCallbacks =\n null === current ? flags : current.concat(flags)))));\n break;\n case 26:\n var hoistableRoot = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4) {\n var currentResource = null !== current ? current.memoizedState : null;\n flags = finishedWork.memoizedState;\n if (null === current)\n if (null === flags)\n if (null === finishedWork.stateNode) {\n a: {\n flags = finishedWork.type;\n current = finishedWork.memoizedProps;\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n b: switch (flags) {\n case \"title\":\n currentResource =\n hoistableRoot.getElementsByTagName(\"title\")[0];\n if (\n !currentResource ||\n currentResource[internalHoistableMarker] ||\n currentResource[internalInstanceKey] ||\n \"http://www.w3.org/2000/svg\" ===\n currentResource.namespaceURI ||\n currentResource.hasAttribute(\"itemprop\")\n )\n (currentResource = hoistableRoot.createElement(flags)),\n hoistableRoot.head.insertBefore(\n currentResource,\n hoistableRoot.querySelector(\"head > title\")\n );\n setInitialProperties(currentResource, flags, current);\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n break a;\n case \"link\":\n var maybeNodes = getHydratableHoistableCache(\n \"link\",\n \"href\",\n hoistableRoot\n ).get(flags + (current.href || \"\"));\n if (maybeNodes)\n for (var i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"href\") ===\n (null == current.href || \"\" === current.href\n ? null\n : current.href) &&\n currentResource.getAttribute(\"rel\") ===\n (null == current.rel ? null : current.rel) &&\n currentResource.getAttribute(\"title\") ===\n (null == current.title ? null : current.title) &&\n currentResource.getAttribute(\"crossorigin\") ===\n (null == current.crossOrigin\n ? null\n : current.crossOrigin))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n case \"meta\":\n if (\n (maybeNodes = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n hoistableRoot\n ).get(flags + (current.content || \"\")))\n )\n for (i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"content\") ===\n (null == current.content\n ? null\n : \"\" + current.content) &&\n currentResource.getAttribute(\"name\") ===\n (null == current.name ? null : current.name) &&\n currentResource.getAttribute(\"property\") ===\n (null == current.property\n ? null\n : current.property) &&\n currentResource.getAttribute(\"http-equiv\") ===\n (null == current.httpEquiv\n ? null\n : current.httpEquiv) &&\n currentResource.getAttribute(\"charset\") ===\n (null == current.charSet\n ? null\n : current.charSet))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource = hoistableRoot.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n hoistableRoot.head.appendChild(currentResource);\n break;\n default:\n throw Error(formatProdErrorMessage(468, flags));\n }\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n }\n finishedWork.stateNode = flags;\n } else\n mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n );\n else\n finishedWork.stateNode = acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n );\n else\n currentResource !== flags\n ? (null === currentResource\n ? null !== current.stateNode &&\n ((current = current.stateNode),\n current.parentNode.removeChild(current))\n : currentResource.count--,\n null === flags\n ? mountHoistable(\n hoistableRoot,\n finishedWork.type,\n finishedWork.stateNode\n )\n : acquireResource(\n hoistableRoot,\n flags,\n finishedWork.memoizedProps\n ))\n : null === flags &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n }\n break;\n case 27:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n null !== current &&\n flags & 4 &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n hoistableRoot = finishedWork.stateNode;\n try {\n setTextContent(hoistableRoot, \"\");\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((hoistableRoot = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n hoistableRoot,\n null !== current ? current.memoizedProps : hoistableRoot\n ));\n flags & 1024 && (needsFormReset = !0);\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(formatProdErrorMessage(162));\n flags = finishedWork.memoizedProps;\n current = finishedWork.stateNode;\n try {\n current.nodeValue = flags;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n tagCaches = null;\n hoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork);\n currentHoistableRoot = hoistableRoot;\n commitReconciliationEffects(finishedWork);\n if (flags & 4 && null !== current && current.memoizedState.isDehydrated)\n try {\n retryIfBlockedOn(root.containerInfo);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n needsFormReset &&\n ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n break;\n case 4:\n flags = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = flags;\n break;\n case 12:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n break;\n case 31:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.child.flags & 8192 &&\n (null !== finishedWork.memoizedState) !==\n (null !== current && null !== current.memoizedState) &&\n (globalMostRecentFallbackTime = now());\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 22:\n hoistableRoot = null !== finishedWork.memoizedState;\n var wasHidden = null !== current && null !== current.memoizedState,\n prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden || hoistableRoot;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden || wasHidden;\n recursivelyTraverseMutationEffects(root, finishedWork);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n commitReconciliationEffects(finishedWork);\n if (flags & 8192)\n a: for (\n root = finishedWork.stateNode,\n root._visibility = hoistableRoot\n ? root._visibility & -2\n : root._visibility | 1,\n hoistableRoot &&\n (null === current ||\n wasHidden ||\n offscreenSubtreeIsHidden ||\n offscreenSubtreeWasHidden ||\n recursivelyTraverseDisappearLayoutEffects(finishedWork)),\n current = null,\n root = finishedWork;\n ;\n\n ) {\n if (5 === root.tag || 26 === root.tag) {\n if (null === current) {\n wasHidden = current = root;\n try {\n if (((currentResource = wasHidden.stateNode), hoistableRoot))\n (maybeNodes = currentResource.style),\n \"function\" === typeof maybeNodes.setProperty\n ? maybeNodes.setProperty(\"display\", \"none\", \"important\")\n : (maybeNodes.display = \"none\");\n else {\n i = wasHidden.stateNode;\n var styleProp = wasHidden.memoizedProps.style,\n display =\n void 0 !== styleProp &&\n null !== styleProp &&\n styleProp.hasOwnProperty(\"display\")\n ? styleProp.display\n : null;\n i.style.display =\n null == display || \"boolean\" === typeof display\n ? \"\"\n : (\"\" + display).trim();\n }\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (6 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n wasHidden.stateNode.nodeValue = hoistableRoot\n ? \"\"\n : wasHidden.memoizedProps;\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (18 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n var instance = wasHidden.stateNode;\n hoistableRoot\n ? hideOrUnhideDehydratedBoundary(instance, !0)\n : hideOrUnhideDehydratedBoundary(wasHidden.stateNode, !1);\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (\n ((22 !== root.tag && 23 !== root.tag) ||\n null === root.memoizedState ||\n root === finishedWork) &&\n null !== root.child\n ) {\n root.child.return = root;\n root = root.child;\n continue;\n }\n if (root === finishedWork) break a;\n for (; null === root.sibling; ) {\n if (null === root.return || root.return === finishedWork) break a;\n current === root && (current = null);\n root = root.return;\n }\n current === root && (current = null);\n root.sibling.return = root.return;\n root = root.sibling;\n }\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((current = flags.retryQueue),\n null !== current &&\n ((flags.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, current))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 30:\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n}\nfunction commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n for (\n var hostParentFiber, parentFiber = finishedWork.return;\n null !== parentFiber;\n\n ) {\n if (isHostParent(parentFiber)) {\n hostParentFiber = parentFiber;\n break;\n }\n parentFiber = parentFiber.return;\n }\n if (null == hostParentFiber) throw Error(formatProdErrorMessage(160));\n switch (hostParentFiber.tag) {\n case 27:\n var parent = hostParentFiber.stateNode,\n before = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before, parent);\n break;\n case 5:\n var parent$139 = hostParentFiber.stateNode;\n hostParentFiber.flags & 32 &&\n (setTextContent(parent$139, \"\"), (hostParentFiber.flags &= -33));\n var before$140 = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(finishedWork, before$140, parent$139);\n break;\n case 3:\n case 4:\n var parent$141 = hostParentFiber.stateNode.containerInfo,\n before$142 = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n before$142,\n parent$141\n );\n break;\n default:\n throw Error(formatProdErrorMessage(161));\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction recursivelyResetForms(parentFiber) {\n if (parentFiber.subtreeFlags & 1024)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var fiber = parentFiber;\n recursivelyResetForms(fiber);\n 5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseLayoutEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 8772)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction recursivelyTraverseDisappearLayoutEffects(parentFiber) {\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedWork = parentFiber;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 1:\n safelyDetachRef(finishedWork, finishedWork.return);\n var instance = finishedWork.stateNode;\n \"function\" === typeof instance.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n finishedWork,\n finishedWork.return,\n instance\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 27:\n releaseSingletonInstance(finishedWork.stateNode);\n case 26:\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 30:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n default:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var current = parentFiber.alternate,\n finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(4, finishedWork);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n current = finishedWork;\n finishedRoot = current.stateNode;\n if (\"function\" === typeof finishedRoot.componentDidMount)\n try {\n finishedRoot.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n current = finishedWork;\n finishedRoot = current.updateQueue;\n if (null !== finishedRoot) {\n var instance = current.stateNode;\n try {\n var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;\n if (null !== hiddenCallbacks)\n for (\n finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;\n finishedRoot < hiddenCallbacks.length;\n finishedRoot++\n )\n callCallback(hiddenCallbacks[finishedRoot], instance);\n } catch (error) {\n captureCommitPhaseError(current, current.return, error);\n }\n }\n includeWorkInProgressEffects &&\n flags & 64 &&\n commitClassCallbacks(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 27:\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n break;\n case 31:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 30:\n break;\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitOffscreenPassiveMountEffects(current, finishedWork) {\n var previousCache = null;\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (previousCache = current.memoizedState.cachePool.pool);\n current = null;\n null !== finishedWork.memoizedState &&\n null !== finishedWork.memoizedState.cachePool &&\n (current = finishedWork.memoizedState.cachePool.pool);\n current !== previousCache &&\n (null != current && current.refCount++,\n null != previousCache && releaseCache(previousCache));\n}\nfunction commitCachePassiveMountEffect(current, finishedWork) {\n current = null;\n null !== finishedWork.alternate &&\n (current = finishedWork.alternate.memoizedState.cache);\n finishedWork = finishedWork.memoizedState.cache;\n finishedWork !== current &&\n (finishedWork.refCount++, null != current && releaseCache(current));\n}\nfunction recursivelyTraversePassiveMountEffects(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions\n ),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n) {\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 && commitHookEffectListMount(9, finishedWork);\n break;\n case 1:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 3:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n ((finishedRoot = null),\n null !== finishedWork.alternate &&\n (finishedRoot = finishedWork.alternate.memoizedState.cache),\n (finishedWork = finishedWork.memoizedState.cache),\n finishedWork !== finishedRoot &&\n (finishedWork.refCount++,\n null != finishedRoot && releaseCache(finishedRoot)));\n break;\n case 12:\n if (flags & 2048) {\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n finishedRoot = finishedWork.stateNode;\n try {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n id = _finishedWork$memoize2.id,\n onPostCommit = _finishedWork$memoize2.onPostCommit;\n \"function\" === typeof onPostCommit &&\n onPostCommit(\n id,\n null === finishedWork.alternate ? \"mount\" : \"update\",\n finishedRoot.passiveEffectDuration,\n -0\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 31:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 13:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n break;\n case 23:\n break;\n case 22:\n _finishedWork$memoize2 = finishedWork.stateNode;\n id = finishedWork.alternate;\n null !== finishedWork.memoizedState\n ? _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork)\n : _finishedWork$memoize2._visibility & 2\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n )\n : ((_finishedWork$memoize2._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n 0 !== (finishedWork.subtreeFlags & 10256)\n ));\n flags & 2048 && commitOffscreenPassiveMountEffects(id, finishedWork);\n break;\n case 24:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions\n );\n }\n}\nfunction recursivelyTraverseReconnectPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n committedLanes$jscomp$0,\n committedTransitions$jscomp$0,\n includeWorkInProgressEffects\n) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 10256);\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n committedLanes = committedLanes$jscomp$0,\n committedTransitions = committedTransitions$jscomp$0,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n commitHookEffectListMount(8, finishedWork);\n break;\n case 23:\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? instance._visibility & 2\n ? recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork\n )\n : ((instance._visibility |= 2),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n ));\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects\n );\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction recursivelyTraverseAtomicPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber\n) {\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var finishedRoot = finishedRoot$jscomp$0,\n finishedWork = parentFiber,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 22:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nvar suspenseyCommitFlag = 8192;\nfunction recursivelyAccumulateSuspenseyCommit(parentFiber) {\n if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n accumulateSuspenseyCommitOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction accumulateSuspenseyCommitOnFiber(fiber) {\n switch (fiber.tag) {\n case 26:\n recursivelyAccumulateSuspenseyCommit(fiber);\n fiber.flags & suspenseyCommitFlag &&\n null !== fiber.memoizedState &&\n suspendResource(\n currentHoistableRoot,\n fiber.memoizedState,\n fiber.memoizedProps\n );\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(fiber);\n break;\n case 3:\n case 4:\n var previousHoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);\n recursivelyAccumulateSuspenseyCommit(fiber);\n currentHoistableRoot = previousHoistableRoot;\n break;\n case 22:\n null === fiber.memoizedState &&\n ((previousHoistableRoot = fiber.alternate),\n null !== previousHoistableRoot &&\n null !== previousHoistableRoot.memoizedState\n ? ((previousHoistableRoot = suspenseyCommitFlag),\n (suspenseyCommitFlag = 16777216),\n recursivelyAccumulateSuspenseyCommit(fiber),\n (suspenseyCommitFlag = previousHoistableRoot))\n : recursivelyAccumulateSuspenseyCommit(fiber));\n break;\n default:\n recursivelyAccumulateSuspenseyCommit(fiber);\n }\n}\nfunction detachAlternateSiblings(parentFiber) {\n var previousFiber = parentFiber.alternate;\n if (\n null !== previousFiber &&\n ((parentFiber = previousFiber.child), null !== parentFiber)\n ) {\n previousFiber.child = null;\n do\n (previousFiber = parentFiber.sibling),\n (parentFiber.sibling = null),\n (parentFiber = previousFiber);\n while (null !== parentFiber);\n }\n}\nfunction recursivelyTraversePassiveUnmountEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveUnmountOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.flags & 2048 &&\n commitHookEffectListUnmount(9, finishedWork, finishedWork.return);\n break;\n case 3:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 12:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n case 22:\n var instance = finishedWork.stateNode;\n null !== finishedWork.memoizedState &&\n instance._visibility & 2 &&\n (null === finishedWork.return || 13 !== finishedWork.return.tag)\n ? ((instance._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork))\n : recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n default:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n }\n}\nfunction recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i];\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n }\n detachAlternateSiblings(parentFiber);\n }\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n deletions = parentFiber;\n switch (deletions.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, deletions, deletions.return);\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n break;\n case 22:\n i = deletions.stateNode;\n i._visibility & 2 &&\n ((i._visibility &= -3),\n recursivelyTraverseDisconnectPassiveEffects(deletions));\n break;\n default:\n recursivelyTraverseDisconnectPassiveEffects(deletions);\n }\n parentFiber = parentFiber.sibling;\n }\n}\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n deletedSubtreeRoot,\n nearestMountedAncestor\n) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect;\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n commitHookEffectListUnmount(8, fiber, nearestMountedAncestor);\n break;\n case 23:\n case 22:\n if (\n null !== fiber.memoizedState &&\n null !== fiber.memoizedState.cachePool\n ) {\n var cache = fiber.memoizedState.cachePool.pool;\n null != cache && cache.refCount++;\n }\n break;\n case 24:\n releaseCache(fiber.memoizedState.cache);\n }\n cache = fiber.child;\n if (null !== cache) (cache.return = fiber), (nextEffect = cache);\n else\n a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n cache = nextEffect;\n var sibling = cache.sibling,\n returnFiber = cache.return;\n detachFiberAfterEffects(cache);\n if (cache === fiber) {\n nextEffect = null;\n break a;\n }\n if (null !== sibling) {\n sibling.return = returnFiber;\n nextEffect = sibling;\n break a;\n }\n nextEffect = returnFiber;\n }\n }\n}\nvar DefaultAsyncDispatcher = {\n getCacheForType: function (resourceType) {\n var cache = readContext(CacheContext),\n cacheForType = cache.data.get(resourceType);\n void 0 === cacheForType &&\n ((cacheForType = resourceType()),\n cache.data.set(resourceType, cacheForType));\n return cacheForType;\n },\n cacheSignal: function () {\n return readContext(CacheContext).controller.signal;\n }\n },\n PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map,\n executionContext = 0,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n workInProgressSuspendedReason = 0,\n workInProgressThrownValue = null,\n workInProgressRootDidSkipSuspendedSiblings = !1,\n workInProgressRootIsPrerendering = !1,\n workInProgressRootDidAttachPingListener = !1,\n entangledRenderLanes = 0,\n workInProgressRootExitStatus = 0,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressDeferredLane = 0,\n workInProgressSuspendedRetryLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1,\n globalMostRecentFallbackTime = 0,\n workInProgressRootRenderTargetTime = Infinity,\n workInProgressTransitions = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n pendingEffectsStatus = 0,\n pendingEffectsRoot = null,\n pendingFinishedWork = null,\n pendingEffectsLanes = 0,\n pendingEffectsRemainingLanes = 0,\n pendingPassiveTransitions = null,\n pendingRecoverableErrors = null,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null;\nfunction requestUpdateLane() {\n return 0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes\n ? workInProgressRootRenderLanes & -workInProgressRootRenderLanes\n : null !== ReactSharedInternals.T\n ? requestTransitionLane()\n : resolveUpdatePriority();\n}\nfunction requestDeferredLane() {\n 0 === workInProgressDeferredLane &&\n (workInProgressDeferredLane =\n 0 === (workInProgressRootRenderLanes & 536870912) || isHydrating\n ? claimNextTransitionLane()\n : 536870912);\n var suspenseHandler = suspenseHandlerStackCursor.current;\n null !== suspenseHandler && (suspenseHandler.flags |= 32);\n return workInProgressDeferredLane;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane) {\n if (\n (root === workInProgressRoot &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n prepareFreshStack(root, 0),\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n markRootUpdated$1(root, lane);\n if (0 === (executionContext & 2) || root !== workInProgressRoot)\n root === workInProgressRoot &&\n (0 === (executionContext & 2) &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n 4 === workInProgressRootExitStatus &&\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n )),\n ensureRootIsScheduled(root);\n}\nfunction performWorkOnRoot(root$jscomp$0, lanes, forceSync) {\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n var shouldTimeSlice =\n (!forceSync &&\n 0 === (lanes & 124) &&\n 0 === (lanes & root$jscomp$0.expiredLanes)) ||\n checkIfRootIsPrerendering(root$jscomp$0, lanes),\n exitStatus = shouldTimeSlice\n ? renderRootConcurrent(root$jscomp$0, lanes)\n : renderRootSync(root$jscomp$0, lanes, !0),\n renderWasConcurrent = shouldTimeSlice;\n do {\n if (0 === exitStatus) {\n workInProgressRootIsPrerendering &&\n !shouldTimeSlice &&\n markRootSuspended(root$jscomp$0, lanes, 0, !1);\n break;\n } else {\n forceSync = root$jscomp$0.current.alternate;\n if (\n renderWasConcurrent &&\n !isRenderConsistentWithExternalStores(forceSync)\n ) {\n exitStatus = renderRootSync(root$jscomp$0, lanes, !1);\n renderWasConcurrent = !1;\n continue;\n }\n if (2 === exitStatus) {\n renderWasConcurrent = lanes;\n if (root$jscomp$0.errorRecoveryDisabledLanes & renderWasConcurrent)\n var JSCompiler_inline_result = 0;\n else\n (JSCompiler_inline_result = root$jscomp$0.pendingLanes & -536870913),\n (JSCompiler_inline_result =\n 0 !== JSCompiler_inline_result\n ? JSCompiler_inline_result\n : JSCompiler_inline_result & 536870912\n ? 536870912\n : 0);\n if (0 !== JSCompiler_inline_result) {\n lanes = JSCompiler_inline_result;\n a: {\n var root = root$jscomp$0;\n exitStatus = workInProgressRootConcurrentErrors;\n var wasRootDehydrated = root.current.memoizedState.isDehydrated;\n wasRootDehydrated &&\n (prepareFreshStack(root, JSCompiler_inline_result).flags |= 256);\n JSCompiler_inline_result = renderRootSync(\n root,\n JSCompiler_inline_result,\n !1\n );\n if (2 !== JSCompiler_inline_result) {\n if (\n workInProgressRootDidAttachPingListener &&\n !wasRootDehydrated\n ) {\n root.errorRecoveryDisabledLanes |= renderWasConcurrent;\n workInProgressRootInterleavedUpdatedLanes |=\n renderWasConcurrent;\n exitStatus = 4;\n break a;\n }\n renderWasConcurrent = workInProgressRootRecoverableErrors;\n workInProgressRootRecoverableErrors = exitStatus;\n null !== renderWasConcurrent &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = renderWasConcurrent)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n renderWasConcurrent\n ));\n }\n exitStatus = JSCompiler_inline_result;\n }\n renderWasConcurrent = !1;\n if (2 !== exitStatus) continue;\n }\n }\n if (1 === exitStatus) {\n prepareFreshStack(root$jscomp$0, 0);\n markRootSuspended(root$jscomp$0, lanes, 0, !0);\n break;\n }\n a: {\n shouldTimeSlice = root$jscomp$0;\n renderWasConcurrent = exitStatus;\n switch (renderWasConcurrent) {\n case 0:\n case 1:\n throw Error(formatProdErrorMessage(345));\n case 4:\n if ((lanes & 4194048) !== lanes) break;\n case 6:\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n break a;\n case 2:\n workInProgressRootRecoverableErrors = null;\n break;\n case 3:\n case 5:\n break;\n default:\n throw Error(formatProdErrorMessage(329));\n }\n if (\n (lanes & 62914560) === lanes &&\n ((exitStatus = globalMostRecentFallbackTime + 300 - now()),\n 10 < exitStatus)\n ) {\n markRootSuspended(\n shouldTimeSlice,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n if (0 !== getNextLanes(shouldTimeSlice, 0, !0)) break a;\n shouldTimeSlice.timeoutHandle = scheduleTimeout(\n commitRootWhenReady.bind(\n null,\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n 2,\n -0,\n 0\n ),\n exitStatus\n );\n break a;\n }\n commitRootWhenReady(\n shouldTimeSlice,\n forceSync,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n renderWasConcurrent,\n 0,\n -0,\n 0\n );\n }\n }\n break;\n } while (1);\n ensureRootIsScheduled(root$jscomp$0);\n}\nfunction commitRootWhenReady(\n root,\n finishedWork,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason,\n completedRenderStartTime,\n completedRenderEndTime\n) {\n root.timeoutHandle = -1;\n suspendedCommitReason = finishedWork.subtreeFlags;\n if (\n suspendedCommitReason & 8192 ||\n 16785408 === (suspendedCommitReason & 16785408)\n )\n if (\n ((suspendedState = { stylesheets: null, count: 0, unsuspend: noop$1 }),\n accumulateSuspenseyCommitOnFiber(finishedWork),\n (suspendedCommitReason = waitForCommitToBeReady()),\n null !== suspendedCommitReason)\n ) {\n root.cancelPendingCommit = suspendedCommitReason(\n commitRoot.bind(\n null,\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n exitStatus,\n 1,\n completedRenderStartTime,\n completedRenderEndTime\n )\n );\n markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings);\n return;\n }\n commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n var tag = node.tag;\n if (\n (0 === tag || 11 === tag || 15 === tag) &&\n node.flags & 16384 &&\n ((tag = node.updateQueue),\n null !== tag && ((tag = tag.stores), null !== tag))\n )\n for (var i = 0; i < tag.length; i++) {\n var check = tag[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n tag = node.child;\n if (node.subtreeFlags & 16384 && null !== tag)\n (tag.return = node), (node = tag);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n}\nfunction markRootSuspended(\n root,\n suspendedLanes,\n spawnedLane,\n didAttemptEntireTree\n) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n didAttemptEntireTree && (root.warmLanes |= suspendedLanes);\n didAttemptEntireTree = root.expirationTimes;\n for (var lanes = suspendedLanes; 0 < lanes; ) {\n var index$6 = 31 - clz32(lanes),\n lane = 1 << index$6;\n didAttemptEntireTree[index$6] = -1;\n lanes &= ~lane;\n }\n 0 !== spawnedLane &&\n markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);\n}\nfunction flushSyncWork$1() {\n return 0 === (executionContext & 6)\n ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)\n : !0;\n}\nfunction resetWorkInProgressStack() {\n if (null !== workInProgress) {\n if (0 === workInProgressSuspendedReason)\n var interruptedWork = workInProgress.return;\n else\n (interruptedWork = workInProgress),\n (lastContextDependency = currentlyRenderingFiber$1 = null),\n resetHooksOnUnwind(interruptedWork),\n (thenableState$1 = null),\n (thenableIndexCounter$1 = 0),\n (interruptedWork = workInProgress);\n for (; null !== interruptedWork; )\n unwindInterruptedWork(interruptedWork.alternate, interruptedWork),\n (interruptedWork = interruptedWork.return);\n workInProgress = null;\n }\n}\nfunction prepareFreshStack(root, lanes) {\n var timeoutHandle = root.timeoutHandle;\n -1 !== timeoutHandle &&\n ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n timeoutHandle = root.cancelPendingCommit;\n null !== timeoutHandle &&\n ((root.cancelPendingCommit = null), timeoutHandle());\n resetWorkInProgressStack();\n workInProgressRoot = root;\n workInProgress = timeoutHandle = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = lanes;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n workInProgressRootDidSkipSuspendedSiblings = !1;\n workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);\n workInProgressRootDidAttachPingListener = !1;\n workInProgressSuspendedRetryLanes =\n workInProgressDeferredLane =\n workInProgressRootPingedLanes =\n workInProgressRootInterleavedUpdatedLanes =\n workInProgressRootSkippedLanes =\n workInProgressRootExitStatus =\n 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =\n null;\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1;\n 0 !== (lanes & 8) && (lanes |= lanes & 32);\n var allEntangledLanes = root.entangledLanes;\n if (0 !== allEntangledLanes)\n for (\n root = root.entanglements, allEntangledLanes &= lanes;\n 0 < allEntangledLanes;\n\n ) {\n var index$4 = 31 - clz32(allEntangledLanes),\n lane = 1 << index$4;\n lanes |= root[index$4];\n allEntangledLanes &= ~lane;\n }\n entangledRenderLanes = lanes;\n finishQueueingConcurrentUpdates();\n return timeoutHandle;\n}\nfunction handleThrow(root, thrownValue) {\n currentlyRenderingFiber = null;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n thrownValue === SuspenseException || thrownValue === SuspenseActionException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 3))\n : thrownValue === SuspenseyCommitException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = 4))\n : (workInProgressSuspendedReason =\n thrownValue === SelectiveHydrationException\n ? 8\n : null !== thrownValue &&\n \"object\" === typeof thrownValue &&\n \"function\" === typeof thrownValue.then\n ? 6\n : 1);\n workInProgressThrownValue = thrownValue;\n null === workInProgress &&\n ((workInProgressRootExitStatus = 1),\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n ));\n}\nfunction shouldRemainOnPreviousScreen() {\n var handler = suspenseHandlerStackCursor.current;\n return null === handler\n ? !0\n : (workInProgressRootRenderLanes & 4194048) ===\n workInProgressRootRenderLanes\n ? null === shellBoundary\n ? !0\n : !1\n : (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n ? handler === shellBoundary\n : !1;\n}\nfunction pushDispatcher() {\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction pushAsyncDispatcher() {\n var prevAsyncDispatcher = ReactSharedInternals.A;\n ReactSharedInternals.A = DefaultAsyncDispatcher;\n return prevAsyncDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n workInProgressRootExitStatus = 4;\n workInProgressRootDidSkipSuspendedSiblings ||\n ((workInProgressRootRenderLanes & 4194048) !==\n workInProgressRootRenderLanes &&\n null !== suspenseHandlerStackCursor.current) ||\n (workInProgressRootIsPrerendering = !0);\n (0 === (workInProgressRootSkippedLanes & 134217727) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||\n null === workInProgressRoot ||\n markRootSuspended(\n workInProgressRoot,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n}\nfunction renderRootSync(root, lanes, shouldYieldForPrerendering) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n lanes = !1;\n var exitStatus = workInProgressRootExitStatus;\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n var unitOfWork = workInProgress,\n thrownValue = workInProgressThrownValue;\n switch (workInProgressSuspendedReason) {\n case 8:\n resetWorkInProgressStack();\n exitStatus = 6;\n break a;\n case 3:\n case 2:\n case 9:\n case 6:\n null === suspenseHandlerStackCursor.current && (lanes = !0);\n var reason = workInProgressSuspendedReason;\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n if (\n shouldYieldForPrerendering &&\n workInProgressRootIsPrerendering\n ) {\n exitStatus = 0;\n break a;\n }\n break;\n default:\n (reason = workInProgressSuspendedReason),\n (workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n }\n }\n workLoopSync();\n exitStatus = workInProgressRootExitStatus;\n break;\n } catch (thrownValue$163) {\n handleThrow(root, thrownValue$163);\n }\n while (1);\n lanes && root.shellSuspendCounter++;\n lastContextDependency = currentlyRenderingFiber$1 = null;\n executionContext = prevExecutionContext;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n null === workInProgress &&\n ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n finishQueueingConcurrentUpdates());\n return exitStatus;\n}\nfunction workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= 2;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes\n ? ((workInProgressTransitions = null),\n (workInProgressRootRenderTargetTime = now() + 500),\n prepareFreshStack(root, lanes))\n : (workInProgressRootIsPrerendering = checkIfRootIsPrerendering(\n root,\n lanes\n ));\n a: do\n try {\n if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n lanes = workInProgress;\n var thrownValue = workInProgressThrownValue;\n b: switch (workInProgressSuspendedReason) {\n case 1:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 1);\n break;\n case 2:\n case 9:\n if (isThenableResolved(thrownValue)) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n replaySuspendedUnitOfWork(lanes);\n break;\n }\n lanes = function () {\n (2 !== workInProgressSuspendedReason &&\n 9 !== workInProgressSuspendedReason) ||\n workInProgressRoot !== root ||\n (workInProgressSuspendedReason = 7);\n ensureRootIsScheduled(root);\n };\n thrownValue.then(lanes, lanes);\n break a;\n case 3:\n workInProgressSuspendedReason = 7;\n break a;\n case 4:\n workInProgressSuspendedReason = 5;\n break a;\n case 7:\n isThenableResolved(thrownValue)\n ? ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n replaySuspendedUnitOfWork(lanes))\n : ((workInProgressSuspendedReason = 0),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 7));\n break;\n case 5:\n var resource = null;\n switch (workInProgress.tag) {\n case 26:\n resource = workInProgress.memoizedState;\n case 5:\n case 27:\n var hostFiber = workInProgress;\n if (\n resource\n ? preloadResource(resource)\n : hostFiber.stateNode.complete\n ) {\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n var sibling = hostFiber.sibling;\n if (null !== sibling) workInProgress = sibling;\n else {\n var returnFiber = hostFiber.return;\n null !== returnFiber\n ? ((workInProgress = returnFiber),\n completeUnitOfWork(returnFiber))\n : (workInProgress = null);\n }\n break b;\n }\n }\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 5);\n break;\n case 6:\n workInProgressSuspendedReason = 0;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, lanes, thrownValue, 6);\n break;\n case 8:\n resetWorkInProgressStack();\n workInProgressRootExitStatus = 6;\n break a;\n default:\n throw Error(formatProdErrorMessage(462));\n }\n }\n workLoopConcurrentByScheduler();\n break;\n } catch (thrownValue$165) {\n handleThrow(root, thrownValue$165);\n }\n while (1);\n lastContextDependency = currentlyRenderingFiber$1 = null;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n executionContext = prevExecutionContext;\n if (null !== workInProgress) return 0;\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n finishQueueingConcurrentUpdates();\n return workInProgressRootExitStatus;\n}\nfunction workLoopConcurrentByScheduler() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n var next = beginWork(unitOfWork.alternate, unitOfWork, entangledRenderLanes);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction replaySuspendedUnitOfWork(unitOfWork) {\n var next = unitOfWork;\n var current = next.alternate;\n switch (next.tag) {\n case 15:\n case 0:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type,\n void 0,\n workInProgressRootRenderLanes\n );\n break;\n case 11:\n next = replayFunctionComponent(\n current,\n next,\n next.pendingProps,\n next.type.render,\n next.ref,\n workInProgressRootRenderLanes\n );\n break;\n case 5:\n resetHooksOnUnwind(next);\n default:\n unwindInterruptedWork(current, next),\n (next = workInProgress =\n resetWorkInProgress(next, entangledRenderLanes)),\n (next = beginWork(current, next, entangledRenderLanes));\n }\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction throwAndUnwindWorkLoop(\n root,\n unitOfWork,\n thrownValue,\n suspendedReason\n) {\n lastContextDependency = currentlyRenderingFiber$1 = null;\n resetHooksOnUnwind(unitOfWork);\n thenableState$1 = null;\n thenableIndexCounter$1 = 0;\n var returnFiber = unitOfWork.return;\n try {\n if (\n throwException(\n root,\n returnFiber,\n unitOfWork,\n thrownValue,\n workInProgressRootRenderLanes\n )\n ) {\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n } catch (error) {\n if (null !== returnFiber) throw ((workInProgress = returnFiber), error);\n workInProgressRootExitStatus = 1;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n if (unitOfWork.flags & 32768) {\n if (isHydrating || 1 === suspendedReason) root = !0;\n else if (\n workInProgressRootIsPrerendering ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n )\n root = !1;\n else if (\n ((workInProgressRootDidSkipSuspendedSiblings = root = !0),\n 2 === suspendedReason ||\n 9 === suspendedReason ||\n 3 === suspendedReason ||\n 6 === suspendedReason)\n )\n (suspendedReason = suspenseHandlerStackCursor.current),\n null !== suspendedReason &&\n 13 === suspendedReason.tag &&\n (suspendedReason.flags |= 16384);\n unwindUnitOfWork(unitOfWork, root);\n } else completeUnitOfWork(unitOfWork);\n}\nfunction completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n if (0 !== (completedWork.flags & 32768)) {\n unwindUnitOfWork(\n completedWork,\n workInProgressRootDidSkipSuspendedSiblings\n );\n return;\n }\n unitOfWork = completedWork.return;\n var next = completeWork(\n completedWork.alternate,\n completedWork,\n entangledRenderLanes\n );\n if (null !== next) {\n workInProgress = next;\n return;\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction unwindUnitOfWork(unitOfWork, skipSiblings) {\n do {\n var next = unwindWork(unitOfWork.alternate, unitOfWork);\n if (null !== next) {\n next.flags &= 32767;\n workInProgress = next;\n return;\n }\n next = unitOfWork.return;\n null !== next &&\n ((next.flags |= 32768), (next.subtreeFlags = 0), (next.deletions = null));\n if (\n !skipSiblings &&\n ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)\n ) {\n workInProgress = unitOfWork;\n return;\n }\n workInProgress = unitOfWork = next;\n } while (null !== unitOfWork);\n workInProgressRootExitStatus = 6;\n workInProgress = null;\n}\nfunction commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n) {\n root.cancelPendingCommit = null;\n do flushPendingEffects();\n while (0 !== pendingEffectsStatus);\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n if (null !== finishedWork) {\n if (finishedWork === root.current) throw Error(formatProdErrorMessage(177));\n didIncludeRenderPhaseUpdate = finishedWork.lanes | finishedWork.childLanes;\n didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes;\n markRootFinished(\n root,\n lanes,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n pendingFinishedWork = finishedWork;\n pendingEffectsRoot = root;\n pendingEffectsLanes = lanes;\n pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate;\n pendingPassiveTransitions = transitions;\n pendingRecoverableErrors = recoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? ((root.callbackNode = null),\n (root.callbackPriority = 0),\n scheduleCallback$1(NormalPriority$1, function () {\n flushPassiveEffects(!0);\n return null;\n }))\n : ((root.callbackNode = null), (root.callbackPriority = 0));\n recoverableErrors = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {\n recoverableErrors = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n transitions = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n spawnedLane = executionContext;\n executionContext |= 4;\n try {\n commitBeforeMutationEffects(root, finishedWork, lanes);\n } finally {\n (executionContext = spawnedLane),\n (ReactDOMSharedInternals.p = transitions),\n (ReactSharedInternals.T = recoverableErrors);\n }\n }\n pendingEffectsStatus = 1;\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n }\n}\nfunction flushMutationEffects() {\n if (1 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || rootMutationHasEffect) {\n rootMutationHasEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitMutationEffectsOnFiber(finishedWork, root);\n var priorSelectionInformation = selectionInformation,\n curFocusedElem = getActiveElementDeep(root.containerInfo),\n priorFocusedElem = priorSelectionInformation.focusedElem,\n priorSelectionRange = priorSelectionInformation.selectionRange;\n if (\n curFocusedElem !== priorFocusedElem &&\n priorFocusedElem &&\n priorFocusedElem.ownerDocument &&\n containsNode(\n priorFocusedElem.ownerDocument.documentElement,\n priorFocusedElem\n )\n ) {\n if (\n null !== priorSelectionRange &&\n hasSelectionCapabilities(priorFocusedElem)\n ) {\n var start = priorSelectionRange.start,\n end = priorSelectionRange.end;\n void 0 === end && (end = start);\n if (\"selectionStart\" in priorFocusedElem)\n (priorFocusedElem.selectionStart = start),\n (priorFocusedElem.selectionEnd = Math.min(\n end,\n priorFocusedElem.value.length\n ));\n else {\n var doc = priorFocusedElem.ownerDocument || document,\n win = (doc && doc.defaultView) || window;\n if (win.getSelection) {\n var selection = win.getSelection(),\n length = priorFocusedElem.textContent.length,\n start$jscomp$0 = Math.min(priorSelectionRange.start, length),\n end$jscomp$0 =\n void 0 === priorSelectionRange.end\n ? start$jscomp$0\n : Math.min(priorSelectionRange.end, length);\n !selection.extend &&\n start$jscomp$0 > end$jscomp$0 &&\n ((curFocusedElem = end$jscomp$0),\n (end$jscomp$0 = start$jscomp$0),\n (start$jscomp$0 = curFocusedElem));\n var startMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n start$jscomp$0\n ),\n endMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n end$jscomp$0\n );\n if (\n startMarker &&\n endMarker &&\n (1 !== selection.rangeCount ||\n selection.anchorNode !== startMarker.node ||\n selection.anchorOffset !== startMarker.offset ||\n selection.focusNode !== endMarker.node ||\n selection.focusOffset !== endMarker.offset)\n ) {\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n start$jscomp$0 > end$jscomp$0\n ? (selection.addRange(range),\n selection.extend(endMarker.node, endMarker.offset))\n : (range.setEnd(endMarker.node, endMarker.offset),\n selection.addRange(range));\n }\n }\n }\n }\n doc = [];\n for (\n selection = priorFocusedElem;\n (selection = selection.parentNode);\n\n )\n 1 === selection.nodeType &&\n doc.push({\n element: selection,\n left: selection.scrollLeft,\n top: selection.scrollTop\n });\n \"function\" === typeof priorFocusedElem.focus &&\n priorFocusedElem.focus();\n for (\n priorFocusedElem = 0;\n priorFocusedElem < doc.length;\n priorFocusedElem++\n ) {\n var info = doc[priorFocusedElem];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n _enabled = !!eventsEnabled;\n selectionInformation = eventsEnabled = null;\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootMutationHasEffect);\n }\n }\n root.current = finishedWork;\n pendingEffectsStatus = 2;\n }\n}\nfunction flushLayoutEffects() {\n if (2 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n rootHasLayoutEffect = 0 !== (finishedWork.flags & 8772);\n if (0 !== (finishedWork.subtreeFlags & 8772) || rootHasLayoutEffect) {\n rootHasLayoutEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n try {\n commitLayoutEffectOnFiber(root, finishedWork.alternate, finishedWork);\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootHasLayoutEffect);\n }\n }\n pendingEffectsStatus = 3;\n }\n}\nfunction flushSpawnedWork() {\n if (4 === pendingEffectsStatus || 3 === pendingEffectsStatus) {\n pendingEffectsStatus = 0;\n requestPaint();\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n recoverableErrors = pendingRecoverableErrors;\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? (pendingEffectsStatus = 5)\n : ((pendingEffectsStatus = 0),\n (pendingFinishedWork = pendingEffectsRoot = null),\n releaseRootPooledCache(root, root.pendingLanes));\n var remainingLanes = root.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n lanesToEventPriority(lanes);\n finishedWork = finishedWork.stateNode;\n if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n try {\n injectedHook.onCommitFiberRoot(\n rendererID,\n finishedWork,\n void 0,\n 128 === (finishedWork.current.flags & 128)\n );\n } catch (err) {}\n if (null !== recoverableErrors) {\n finishedWork = ReactSharedInternals.T;\n remainingLanes = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = 2;\n ReactSharedInternals.T = null;\n try {\n for (\n var onRecoverableError = root.onRecoverableError, i = 0;\n i < recoverableErrors.length;\n i++\n ) {\n var recoverableError = recoverableErrors[i];\n onRecoverableError(recoverableError.value, {\n componentStack: recoverableError.stack\n });\n }\n } finally {\n (ReactSharedInternals.T = finishedWork),\n (ReactDOMSharedInternals.p = remainingLanes);\n }\n }\n 0 !== (pendingEffectsLanes & 3) && flushPendingEffects();\n ensureRootIsScheduled(root);\n remainingLanes = root.pendingLanes;\n 0 !== (lanes & 4194090) && 0 !== (remainingLanes & 42)\n ? root === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n : (nestedUpdateCount = 0);\n flushSyncWorkAcrossRoots_impl(0, !1);\n }\n}\nfunction releaseRootPooledCache(root, remainingLanes) {\n 0 === (root.pooledCacheLanes &= remainingLanes) &&\n ((remainingLanes = root.pooledCache),\n null != remainingLanes &&\n ((root.pooledCache = null), releaseCache(remainingLanes)));\n}\nfunction flushPendingEffects(wasDelayedCommit) {\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n return flushPassiveEffects(wasDelayedCommit);\n}\nfunction flushPassiveEffects() {\n if (5 !== pendingEffectsStatus) return !1;\n var root = pendingEffectsRoot,\n remainingLanes = pendingEffectsRemainingLanes;\n pendingEffectsRemainingLanes = 0;\n var renderPriority = lanesToEventPriority(pendingEffectsLanes),\n prevTransition = ReactSharedInternals.T,\n previousPriority = ReactDOMSharedInternals.p;\n try {\n ReactDOMSharedInternals.p = 32 > renderPriority ? 32 : renderPriority;\n ReactSharedInternals.T = null;\n renderPriority = pendingPassiveTransitions;\n pendingPassiveTransitions = null;\n var root$jscomp$0 = pendingEffectsRoot,\n lanes = pendingEffectsLanes;\n pendingEffectsStatus = 0;\n pendingFinishedWork = pendingEffectsRoot = null;\n pendingEffectsLanes = 0;\n if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(331));\n var prevExecutionContext = executionContext;\n executionContext |= 4;\n commitPassiveUnmountOnFiber(root$jscomp$0.current);\n commitPassiveMountOnFiber(\n root$jscomp$0,\n root$jscomp$0.current,\n lanes,\n renderPriority\n );\n executionContext = prevExecutionContext;\n flushSyncWorkAcrossRoots_impl(0, !1);\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, root$jscomp$0);\n } catch (err) {}\n return !0;\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition),\n releaseRootPooledCache(root, remainingLanes);\n }\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);\n null !== rootFiber &&\n (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else\n for (; null !== nearestMountedAncestor; ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n break;\n } else if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n error = createClassErrorUpdate(2);\n instance = enqueueUpdate(nearestMountedAncestor, error, 2);\n null !== instance &&\n (initializeClassErrorUpdate(\n error,\n instance,\n nearestMountedAncestor,\n sourceFiber\n ),\n markRootUpdated$1(instance, 2),\n ensureRootIsScheduled(instance));\n break;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n}\nfunction attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n ((workInProgressRootDidAttachPingListener = !0),\n threadIDs.add(lanes),\n (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n wakeable.then(root, root));\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n root.warmLanes &= ~pingedLanes;\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (4 === workInProgressRootExitStatus ||\n (3 === workInProgressRootExitStatus &&\n (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes &&\n 300 > now() - globalMostRecentFallbackTime)\n ? 0 === (executionContext & 2) && prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes),\n workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&\n (workInProgressSuspendedRetryLanes = 0));\n ensureRootIsScheduled(root);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane && (retryLane = claimNextRetryLane());\n boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated$1(boundaryFiber, retryLane),\n ensureRootIsScheduled(boundaryFiber));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 31:\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n case 22:\n retryCache = boundaryFiber.stateNode._retryCache;\n break;\n default:\n throw Error(formatProdErrorMessage(314));\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction scheduleCallback$1(priorityLevel, callback) {\n return scheduleCallback$3(priorityLevel, callback);\n}\nvar firstScheduledRoot = null,\n lastScheduledRoot = null,\n didScheduleMicrotask = !1,\n mightHavePendingSyncWork = !1,\n isFlushingWork = !1,\n currentEventTransitionLane = 0;\nfunction ensureRootIsScheduled(root) {\n root !== lastScheduledRoot &&\n null === root.next &&\n (null === lastScheduledRoot\n ? (firstScheduledRoot = lastScheduledRoot = root)\n : (lastScheduledRoot = lastScheduledRoot.next = root));\n mightHavePendingSyncWork = !0;\n didScheduleMicrotask ||\n ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());\n}\nfunction flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {\n if (!isFlushingWork && mightHavePendingSyncWork) {\n isFlushingWork = !0;\n do {\n var didPerformSomeWork = !1;\n for (var root$168 = firstScheduledRoot; null !== root$168; ) {\n if (!onlyLegacy)\n if (0 !== syncTransitionLanes) {\n var pendingLanes = root$168.pendingLanes;\n if (0 === pendingLanes) var JSCompiler_inline_result = 0;\n else {\n var suspendedLanes = root$168.suspendedLanes,\n pingedLanes = root$168.pingedLanes;\n JSCompiler_inline_result =\n (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;\n JSCompiler_inline_result &=\n pendingLanes & ~(suspendedLanes & ~pingedLanes);\n JSCompiler_inline_result =\n JSCompiler_inline_result & 201326741\n ? (JSCompiler_inline_result & 201326741) | 1\n : JSCompiler_inline_result\n ? JSCompiler_inline_result | 2\n : 0;\n }\n 0 !== JSCompiler_inline_result &&\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$168, JSCompiler_inline_result));\n } else\n (JSCompiler_inline_result = workInProgressRootRenderLanes),\n (JSCompiler_inline_result = getNextLanes(\n root$168,\n root$168 === workInProgressRoot ? JSCompiler_inline_result : 0,\n null !== root$168.cancelPendingCommit ||\n -1 !== root$168.timeoutHandle\n )),\n 0 === (JSCompiler_inline_result & 3) ||\n checkIfRootIsPrerendering(root$168, JSCompiler_inline_result) ||\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root$168, JSCompiler_inline_result));\n root$168 = root$168.next;\n }\n } while (didPerformSomeWork);\n isFlushingWork = !1;\n }\n}\nfunction processRootScheduleInImmediateTask() {\n processRootScheduleInMicrotask();\n}\nfunction processRootScheduleInMicrotask() {\n mightHavePendingSyncWork = didScheduleMicrotask = !1;\n var syncTransitionLanes = 0;\n 0 !== currentEventTransitionLane &&\n shouldAttemptEagerTransition() &&\n (syncTransitionLanes = currentEventTransitionLane);\n for (\n var currentTime = now(), prev = null, root = firstScheduledRoot;\n null !== root;\n\n ) {\n var next = root.next,\n nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);\n if (0 === nextLanes)\n (root.next = null),\n null === prev ? (firstScheduledRoot = next) : (prev.next = next),\n null === next && (lastScheduledRoot = prev);\n else if (\n ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))\n )\n mightHavePendingSyncWork = !0;\n root = next;\n }\n (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus) ||\n flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);\n 0 !== currentEventTransitionLane && (currentEventTransitionLane = 0);\n}\nfunction scheduleTaskForRootDuringMicrotask(root, currentTime) {\n for (\n var suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes & -62914561;\n 0 < lanes;\n\n ) {\n var index$5 = 31 - clz32(lanes),\n lane = 1 << index$5,\n expirationTime = expirationTimes[index$5];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index$5] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n currentTime = workInProgressRoot;\n suspendedLanes = workInProgressRootRenderLanes;\n suspendedLanes = getNextLanes(\n root,\n root === currentTime ? suspendedLanes : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n pingedLanes = root.callbackNode;\n if (\n 0 === suspendedLanes ||\n (root === currentTime &&\n (2 === workInProgressSuspendedReason ||\n 9 === workInProgressSuspendedReason)) ||\n null !== root.cancelPendingCommit\n )\n return (\n null !== pingedLanes &&\n null !== pingedLanes &&\n cancelCallback$1(pingedLanes),\n (root.callbackNode = null),\n (root.callbackPriority = 0)\n );\n if (\n 0 === (suspendedLanes & 3) ||\n checkIfRootIsPrerendering(root, suspendedLanes)\n ) {\n currentTime = suspendedLanes & -suspendedLanes;\n if (currentTime === root.callbackPriority) return currentTime;\n null !== pingedLanes && cancelCallback$1(pingedLanes);\n switch (lanesToEventPriority(suspendedLanes)) {\n case 2:\n case 8:\n suspendedLanes = UserBlockingPriority;\n break;\n case 32:\n suspendedLanes = NormalPriority$1;\n break;\n case 268435456:\n suspendedLanes = IdlePriority;\n break;\n default:\n suspendedLanes = NormalPriority$1;\n }\n pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);\n suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes);\n root.callbackPriority = currentTime;\n root.callbackNode = suspendedLanes;\n return currentTime;\n }\n null !== pingedLanes && null !== pingedLanes && cancelCallback$1(pingedLanes);\n root.callbackPriority = 2;\n root.callbackNode = null;\n return 2;\n}\nfunction performWorkOnRootViaSchedulerTask(root, didTimeout) {\n if (0 !== pendingEffectsStatus && 5 !== pendingEffectsStatus)\n return (root.callbackNode = null), (root.callbackPriority = 0), null;\n var originalCallbackNode = root.callbackNode;\n if (flushPendingEffects(!0) && root.callbackNode !== originalCallbackNode)\n return null;\n var workInProgressRootRenderLanes$jscomp$0 = workInProgressRootRenderLanes;\n workInProgressRootRenderLanes$jscomp$0 = getNextLanes(\n root,\n root === workInProgressRoot ? workInProgressRootRenderLanes$jscomp$0 : 0,\n null !== root.cancelPendingCommit || -1 !== root.timeoutHandle\n );\n if (0 === workInProgressRootRenderLanes$jscomp$0) return null;\n performWorkOnRoot(root, workInProgressRootRenderLanes$jscomp$0, didTimeout);\n scheduleTaskForRootDuringMicrotask(root, now());\n return null != root.callbackNode && root.callbackNode === originalCallbackNode\n ? performWorkOnRootViaSchedulerTask.bind(null, root)\n : null;\n}\nfunction performSyncWorkOnRoot(root, lanes) {\n if (flushPendingEffects()) return null;\n performWorkOnRoot(root, lanes, !0);\n}\nfunction scheduleImmediateRootScheduleTask() {\n scheduleMicrotask(function () {\n 0 !== (executionContext & 6)\n ? scheduleCallback$3(\n ImmediatePriority,\n processRootScheduleInImmediateTask\n )\n : processRootScheduleInMicrotask();\n });\n}\nfunction requestTransitionLane() {\n if (0 === currentEventTransitionLane) {\n var actionScopeLane = currentEntangledLane;\n currentEventTransitionLane =\n 0 !== actionScopeLane ? actionScopeLane : claimNextTransitionLane();\n }\n return currentEventTransitionLane;\n}\nfunction coerceFormActionProp(actionProp) {\n return null == actionProp ||\n \"symbol\" === typeof actionProp ||\n \"boolean\" === typeof actionProp\n ? null\n : \"function\" === typeof actionProp\n ? actionProp\n : sanitizeURL(\"\" + actionProp);\n}\nfunction createFormDataWithSubmitter(form, submitter) {\n var temp = submitter.ownerDocument.createElement(\"input\");\n temp.name = submitter.name;\n temp.value = submitter.value;\n form.id && temp.setAttribute(\"form\", form.id);\n submitter.parentNode.insertBefore(temp, submitter);\n form = new FormData(form);\n temp.parentNode.removeChild(temp);\n return form;\n}\nfunction extractEvents$1(\n dispatchQueue,\n domEventName,\n maybeTargetInst,\n nativeEvent,\n nativeEventTarget\n) {\n if (\n \"submit\" === domEventName &&\n maybeTargetInst &&\n maybeTargetInst.stateNode === nativeEventTarget\n ) {\n var action = coerceFormActionProp(\n (nativeEventTarget[internalPropsKey] || null).action\n ),\n submitter = nativeEvent.submitter;\n submitter &&\n ((domEventName = (domEventName = submitter[internalPropsKey] || null)\n ? coerceFormActionProp(domEventName.formAction)\n : submitter.getAttribute(\"formAction\")),\n null !== domEventName && ((action = domEventName), (submitter = null)));\n var event = new SyntheticEvent(\n \"action\",\n \"action\",\n null,\n nativeEvent,\n nativeEventTarget\n );\n dispatchQueue.push({\n event: event,\n listeners: [\n {\n instance: null,\n listener: function () {\n if (nativeEvent.defaultPrevented) {\n if (0 !== currentEventTransitionLane) {\n var formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget);\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n null,\n formData\n );\n }\n } else\n \"function\" === typeof action &&\n (event.preventDefault(),\n (formData = submitter\n ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n : new FormData(nativeEventTarget)),\n startHostTransition(\n maybeTargetInst,\n {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n },\n action,\n formData\n ));\n },\n currentTarget: nativeEventTarget\n }\n ]\n });\n }\n}\nfor (\n var i$jscomp$inline_1578 = 0;\n i$jscomp$inline_1578 < simpleEventPluginEvents.length;\n i$jscomp$inline_1578++\n) {\n var eventName$jscomp$inline_1579 =\n simpleEventPluginEvents[i$jscomp$inline_1578],\n domEventName$jscomp$inline_1580 =\n eventName$jscomp$inline_1579.toLowerCase(),\n capitalizedEvent$jscomp$inline_1581 =\n eventName$jscomp$inline_1579[0].toUpperCase() +\n eventName$jscomp$inline_1579.slice(1);\n registerSimpleEvent(\n domEventName$jscomp$inline_1580,\n \"on\" + capitalizedEvent$jscomp$inline_1581\n );\n}\nregisterSimpleEvent(ANIMATION_END, \"onAnimationEnd\");\nregisterSimpleEvent(ANIMATION_ITERATION, \"onAnimationIteration\");\nregisterSimpleEvent(ANIMATION_START, \"onAnimationStart\");\nregisterSimpleEvent(\"dblclick\", \"onDoubleClick\");\nregisterSimpleEvent(\"focusin\", \"onFocus\");\nregisterSimpleEvent(\"focusout\", \"onBlur\");\nregisterSimpleEvent(TRANSITION_RUN, \"onTransitionRun\");\nregisterSimpleEvent(TRANSITION_START, \"onTransitionStart\");\nregisterSimpleEvent(TRANSITION_CANCEL, \"onTransitionCancel\");\nregisterSimpleEvent(TRANSITION_END, \"onTransitionEnd\");\nregisterDirectEvent(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\nregisterDirectEvent(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\nregisterTwoPhaseEvent(\n \"onChange\",\n \"change click focusin focusout input keydown keyup selectionchange\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onSelect\",\n \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\n \" \"\n )\n);\nregisterTwoPhaseEvent(\"onBeforeInput\", [\n \"compositionend\",\n \"keypress\",\n \"textInput\",\n \"paste\"\n]);\nregisterTwoPhaseEvent(\n \"onCompositionEnd\",\n \"compositionend focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionStart\",\n \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n \"onCompositionUpdate\",\n \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \")\n);\nvar mediaEventTypes =\n \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\n \" \"\n ),\n nonDelegatedEvents = new Set(\n \"beforetoggle cancel close invalid load scroll scrollend toggle\"\n .split(\" \")\n .concat(mediaEventTypes)\n );\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n eventSystemFlags = 0 !== (eventSystemFlags & 4);\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i],\n event = _dispatchQueue$i.event;\n _dispatchQueue$i = _dispatchQueue$i.listeners;\n a: {\n var previousInstance = void 0;\n if (eventSystemFlags)\n for (\n var i$jscomp$0 = _dispatchQueue$i.length - 1;\n 0 <= i$jscomp$0;\n i$jscomp$0--\n ) {\n var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n else\n for (\n i$jscomp$0 = 0;\n i$jscomp$0 < _dispatchQueue$i.length;\n i$jscomp$0++\n ) {\n _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];\n instance = _dispatchListeners$i.instance;\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n previousInstance = _dispatchListeners$i;\n event.currentTarget = currentTarget;\n try {\n previousInstance(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n previousInstance = instance;\n }\n }\n }\n}\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n var JSCompiler_inline_result = targetElement[internalEventHandlersKey];\n void 0 === JSCompiler_inline_result &&\n (JSCompiler_inline_result = targetElement[internalEventHandlersKey] =\n new Set());\n var listenerSetKey = domEventName + \"__bubble\";\n JSCompiler_inline_result.has(listenerSetKey) ||\n (addTrappedEventListener(targetElement, domEventName, 2, !1),\n JSCompiler_inline_result.add(listenerSetKey));\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, target) {\n var eventSystemFlags = 0;\n isCapturePhaseListener && (eventSystemFlags |= 4);\n addTrappedEventListener(\n target,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n );\n}\nvar listeningMarker = \"_reactListening\" + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n if (!rootContainerElement[listeningMarker]) {\n rootContainerElement[listeningMarker] = !0;\n allNativeEvents.forEach(function (domEventName) {\n \"selectionchange\" !== domEventName &&\n (nonDelegatedEvents.has(domEventName) ||\n listenToNativeEvent(domEventName, !1, rootContainerElement),\n listenToNativeEvent(domEventName, !0, rootContainerElement));\n });\n var ownerDocument =\n 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n null === ownerDocument ||\n ownerDocument[listeningMarker] ||\n ((ownerDocument[listeningMarker] = !0),\n listenToNativeEvent(\"selectionchange\", !1, ownerDocument));\n }\n}\nfunction addTrappedEventListener(\n targetContainer,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n) {\n switch (getEventPriority(domEventName)) {\n case 2:\n var listenerWrapper = dispatchDiscreteEvent;\n break;\n case 8:\n listenerWrapper = dispatchContinuousEvent;\n break;\n default:\n listenerWrapper = dispatchEvent;\n }\n eventSystemFlags = listenerWrapper.bind(\n null,\n domEventName,\n eventSystemFlags,\n targetContainer\n );\n listenerWrapper = void 0;\n !passiveBrowserEventsSupported ||\n (\"touchstart\" !== domEventName &&\n \"touchmove\" !== domEventName &&\n \"wheel\" !== domEventName) ||\n (listenerWrapper = !0);\n isCapturePhaseListener\n ? void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n capture: !0,\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)\n : void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !1);\n}\nfunction dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n targetInst$jscomp$0,\n targetContainer\n) {\n var ancestorInst = targetInst$jscomp$0;\n if (\n 0 === (eventSystemFlags & 1) &&\n 0 === (eventSystemFlags & 2) &&\n null !== targetInst$jscomp$0\n )\n a: for (;;) {\n if (null === targetInst$jscomp$0) return;\n var nodeTag = targetInst$jscomp$0.tag;\n if (3 === nodeTag || 4 === nodeTag) {\n var container = targetInst$jscomp$0.stateNode.containerInfo;\n if (container === targetContainer) break;\n if (4 === nodeTag)\n for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {\n var grandTag = nodeTag.tag;\n if (\n (3 === grandTag || 4 === grandTag) &&\n nodeTag.stateNode.containerInfo === targetContainer\n )\n return;\n nodeTag = nodeTag.return;\n }\n for (; null !== container; ) {\n nodeTag = getClosestInstanceFromNode(container);\n if (null === nodeTag) return;\n grandTag = nodeTag.tag;\n if (\n 5 === grandTag ||\n 6 === grandTag ||\n 26 === grandTag ||\n 27 === grandTag\n ) {\n targetInst$jscomp$0 = ancestorInst = nodeTag;\n continue a;\n }\n container = container.parentNode;\n }\n }\n targetInst$jscomp$0 = targetInst$jscomp$0.return;\n }\n batchedUpdates$1(function () {\n var targetInst = ancestorInst,\n nativeEventTarget = getEventTarget(nativeEvent),\n dispatchQueue = [];\n a: {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n if (void 0 !== reactName) {\n var SyntheticEventCtor = SyntheticEvent,\n reactEventType = domEventName;\n switch (domEventName) {\n case \"keypress\":\n if (0 === getEventCharCode(nativeEvent)) break a;\n case \"keydown\":\n case \"keyup\":\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n case \"focusin\":\n reactEventType = \"focus\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"focusout\":\n reactEventType = \"blur\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"beforeblur\":\n case \"afterblur\":\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"click\":\n if (2 === nativeEvent.button) break a;\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n case \"scroll\":\n case \"scrollend\":\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n case \"wheel\":\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n case \"copy\":\n case \"cut\":\n case \"paste\":\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n case \"toggle\":\n case \"beforetoggle\":\n SyntheticEventCtor = SyntheticToggleEvent;\n }\n var inCapturePhase = 0 !== (eventSystemFlags & 4),\n accumulateTargetOnly =\n !inCapturePhase &&\n (\"scroll\" === domEventName || \"scrollend\" === domEventName),\n reactEventName = inCapturePhase\n ? null !== reactName\n ? reactName + \"Capture\"\n : null\n : reactName;\n inCapturePhase = [];\n for (\n var instance = targetInst, lastHostComponent;\n null !== instance;\n\n ) {\n var _instance = instance;\n lastHostComponent = _instance.stateNode;\n _instance = _instance.tag;\n (5 !== _instance && 26 !== _instance && 27 !== _instance) ||\n null === lastHostComponent ||\n null === reactEventName ||\n ((_instance = getListener(instance, reactEventName)),\n null != _instance &&\n inCapturePhase.push(\n createDispatchListener(instance, _instance, lastHostComponent)\n ));\n if (accumulateTargetOnly) break;\n instance = instance.return;\n }\n 0 < inCapturePhase.length &&\n ((reactName = new SyntheticEventCtor(\n reactName,\n reactEventType,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: reactName, listeners: inCapturePhase }));\n }\n }\n if (0 === (eventSystemFlags & 7)) {\n a: {\n reactName =\n \"mouseover\" === domEventName || \"pointerover\" === domEventName;\n SyntheticEventCtor =\n \"mouseout\" === domEventName || \"pointerout\" === domEventName;\n if (\n reactName &&\n nativeEvent !== currentReplayingEvent &&\n (reactEventType =\n nativeEvent.relatedTarget || nativeEvent.fromElement) &&\n (getClosestInstanceFromNode(reactEventType) ||\n reactEventType[internalContainerInstanceKey])\n )\n break a;\n if (SyntheticEventCtor || reactName) {\n reactName =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget\n : (reactName = nativeEventTarget.ownerDocument)\n ? reactName.defaultView || reactName.parentWindow\n : window;\n if (SyntheticEventCtor) {\n if (\n ((reactEventType =\n nativeEvent.relatedTarget || nativeEvent.toElement),\n (SyntheticEventCtor = targetInst),\n (reactEventType = reactEventType\n ? getClosestInstanceFromNode(reactEventType)\n : null),\n null !== reactEventType &&\n ((accumulateTargetOnly =\n getNearestMountedFiber(reactEventType)),\n (inCapturePhase = reactEventType.tag),\n reactEventType !== accumulateTargetOnly ||\n (5 !== inCapturePhase &&\n 27 !== inCapturePhase &&\n 6 !== inCapturePhase)))\n )\n reactEventType = null;\n } else (SyntheticEventCtor = null), (reactEventType = targetInst);\n if (SyntheticEventCtor !== reactEventType) {\n inCapturePhase = SyntheticMouseEvent;\n _instance = \"onMouseLeave\";\n reactEventName = \"onMouseEnter\";\n instance = \"mouse\";\n if (\"pointerout\" === domEventName || \"pointerover\" === domEventName)\n (inCapturePhase = SyntheticPointerEvent),\n (_instance = \"onPointerLeave\"),\n (reactEventName = \"onPointerEnter\"),\n (instance = \"pointer\");\n accumulateTargetOnly =\n null == SyntheticEventCtor\n ? reactName\n : getNodeFromInstance(SyntheticEventCtor);\n lastHostComponent =\n null == reactEventType\n ? reactName\n : getNodeFromInstance(reactEventType);\n reactName = new inCapturePhase(\n _instance,\n instance + \"leave\",\n SyntheticEventCtor,\n nativeEvent,\n nativeEventTarget\n );\n reactName.target = accumulateTargetOnly;\n reactName.relatedTarget = lastHostComponent;\n _instance = null;\n getClosestInstanceFromNode(nativeEventTarget) === targetInst &&\n ((inCapturePhase = new inCapturePhase(\n reactEventName,\n instance + \"enter\",\n reactEventType,\n nativeEvent,\n nativeEventTarget\n )),\n (inCapturePhase.target = lastHostComponent),\n (inCapturePhase.relatedTarget = accumulateTargetOnly),\n (_instance = inCapturePhase));\n accumulateTargetOnly = _instance;\n if (SyntheticEventCtor && reactEventType)\n b: {\n inCapturePhase = getParent;\n reactEventName = SyntheticEventCtor;\n instance = reactEventType;\n lastHostComponent = 0;\n for (\n _instance = reactEventName;\n _instance;\n _instance = inCapturePhase(_instance)\n )\n lastHostComponent++;\n _instance = 0;\n for (var tempB = instance; tempB; tempB = inCapturePhase(tempB))\n _instance++;\n for (; 0 < lastHostComponent - _instance; )\n (reactEventName = inCapturePhase(reactEventName)),\n lastHostComponent--;\n for (; 0 < _instance - lastHostComponent; )\n (instance = inCapturePhase(instance)), _instance--;\n for (; lastHostComponent--; ) {\n if (\n reactEventName === instance ||\n (null !== instance && reactEventName === instance.alternate)\n ) {\n inCapturePhase = reactEventName;\n break b;\n }\n reactEventName = inCapturePhase(reactEventName);\n instance = inCapturePhase(instance);\n }\n inCapturePhase = null;\n }\n else inCapturePhase = null;\n null !== SyntheticEventCtor &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n reactName,\n SyntheticEventCtor,\n inCapturePhase,\n !1\n );\n null !== reactEventType &&\n null !== accumulateTargetOnly &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n accumulateTargetOnly,\n reactEventType,\n inCapturePhase,\n !0\n );\n }\n }\n }\n a: {\n reactName = targetInst ? getNodeFromInstance(targetInst) : window;\n SyntheticEventCtor =\n reactName.nodeName && reactName.nodeName.toLowerCase();\n if (\n \"select\" === SyntheticEventCtor ||\n (\"input\" === SyntheticEventCtor && \"file\" === reactName.type)\n )\n var getTargetInstFunc = getTargetInstForChangeEvent;\n else if (isTextInputElement(reactName))\n if (isInputEventSupported)\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n var handleEventFunc = handleEventsForInputEventPolyfill;\n }\n else\n (SyntheticEventCtor = reactName.nodeName),\n !SyntheticEventCtor ||\n \"input\" !== SyntheticEventCtor.toLowerCase() ||\n (\"checkbox\" !== reactName.type && \"radio\" !== reactName.type)\n ? targetInst &&\n isCustomElement(targetInst.elementType) &&\n (getTargetInstFunc = getTargetInstForChangeEvent)\n : (getTargetInstFunc = getTargetInstForClickEvent);\n if (\n getTargetInstFunc &&\n (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))\n ) {\n createAndAccumulateChangeEvent(\n dispatchQueue,\n getTargetInstFunc,\n nativeEvent,\n nativeEventTarget\n );\n break a;\n }\n handleEventFunc && handleEventFunc(domEventName, reactName, targetInst);\n \"focusout\" === domEventName &&\n targetInst &&\n \"number\" === reactName.type &&\n null != targetInst.memoizedProps.value &&\n setDefaultValue(reactName, \"number\", reactName.value);\n }\n handleEventFunc = targetInst ? getNodeFromInstance(targetInst) : window;\n switch (domEventName) {\n case \"focusin\":\n if (\n isTextInputElement(handleEventFunc) ||\n \"true\" === handleEventFunc.contentEditable\n )\n (activeElement = handleEventFunc),\n (activeElementInst = targetInst),\n (lastSelection = null);\n break;\n case \"focusout\":\n lastSelection = activeElementInst = activeElement = null;\n break;\n case \"mousedown\":\n mouseDown = !0;\n break;\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n mouseDown = !1;\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n break;\n case \"selectionchange\":\n if (skipSelectionChangeEvent) break;\n case \"keydown\":\n case \"keyup\":\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n }\n var fallbackData;\n if (canUseCompositionEvent)\n b: {\n switch (domEventName) {\n case \"compositionstart\":\n var eventType = \"onCompositionStart\";\n break b;\n case \"compositionend\":\n eventType = \"onCompositionEnd\";\n break b;\n case \"compositionupdate\":\n eventType = \"onCompositionUpdate\";\n break b;\n }\n eventType = void 0;\n }\n else\n isComposing\n ? isFallbackCompositionEnd(domEventName, nativeEvent) &&\n (eventType = \"onCompositionEnd\")\n : \"keydown\" === domEventName &&\n 229 === nativeEvent.keyCode &&\n (eventType = \"onCompositionStart\");\n eventType &&\n (useFallbackCompositionData &&\n \"ko\" !== nativeEvent.locale &&\n (isComposing || \"onCompositionStart\" !== eventType\n ? \"onCompositionEnd\" === eventType &&\n isComposing &&\n (fallbackData = getData())\n : ((root = nativeEventTarget),\n (startText = \"value\" in root ? root.value : root.textContent),\n (isComposing = !0))),\n (handleEventFunc = accumulateTwoPhaseListeners(targetInst, eventType)),\n 0 < handleEventFunc.length &&\n ((eventType = new SyntheticCompositionEvent(\n eventType,\n domEventName,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: eventType, listeners: handleEventFunc }),\n fallbackData\n ? (eventType.data = fallbackData)\n : ((fallbackData = getDataFromCustomEvent(nativeEvent)),\n null !== fallbackData && (eventType.data = fallbackData))));\n if (\n (fallbackData = canUseTextInputEvent\n ? getNativeBeforeInputChars(domEventName, nativeEvent)\n : getFallbackBeforeInputChars(domEventName, nativeEvent))\n )\n (eventType = accumulateTwoPhaseListeners(targetInst, \"onBeforeInput\")),\n 0 < eventType.length &&\n ((handleEventFunc = new SyntheticCompositionEvent(\n \"onBeforeInput\",\n \"beforeinput\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: handleEventFunc,\n listeners: eventType\n }),\n (handleEventFunc.data = fallbackData));\n extractEvents$1(\n dispatchQueue,\n domEventName,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n }\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n });\n}\nfunction createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n}\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n for (\n var captureName = reactName + \"Capture\", listeners = [];\n null !== targetFiber;\n\n ) {\n var _instance2 = targetFiber,\n stateNode = _instance2.stateNode;\n _instance2 = _instance2.tag;\n (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||\n null === stateNode ||\n ((_instance2 = getListener(targetFiber, captureName)),\n null != _instance2 &&\n listeners.unshift(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ),\n (_instance2 = getListener(targetFiber, reactName)),\n null != _instance2 &&\n listeners.push(\n createDispatchListener(targetFiber, _instance2, stateNode)\n ));\n if (3 === targetFiber.tag) return listeners;\n targetFiber = targetFiber.return;\n }\n return [];\n}\nfunction getParent(inst) {\n if (null === inst) return null;\n do inst = inst.return;\n while (inst && 5 !== inst.tag && 27 !== inst.tag);\n return inst ? inst : null;\n}\nfunction accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n event,\n target,\n common,\n inCapturePhase\n) {\n for (\n var registrationName = event._reactName, listeners = [];\n null !== target && target !== common;\n\n ) {\n var _instance3 = target,\n alternate = _instance3.alternate,\n stateNode = _instance3.stateNode;\n _instance3 = _instance3.tag;\n if (null !== alternate && alternate === common) break;\n (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||\n null === stateNode ||\n ((alternate = stateNode),\n inCapturePhase\n ? ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.unshift(\n createDispatchListener(target, stateNode, alternate)\n ))\n : inCapturePhase ||\n ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.push(\n createDispatchListener(target, stateNode, alternate)\n )));\n target = target.return;\n }\n 0 !== listeners.length &&\n dispatchQueue.push({ event: event, listeners: listeners });\n}\nvar NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g,\n NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\nfunction normalizeMarkupForTextOrAttribute(markup) {\n return (\"string\" === typeof markup ? markup : \"\" + markup)\n .replace(NORMALIZE_NEWLINES_REGEX, \"\\n\")\n .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, \"\");\n}\nfunction checkForUnmatchedText(serverText, clientText) {\n clientText = normalizeMarkupForTextOrAttribute(clientText);\n return normalizeMarkupForTextOrAttribute(serverText) === clientText ? !0 : !1;\n}\nfunction setProp(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"children\":\n \"string\" === typeof value\n ? \"body\" === tag ||\n (\"textarea\" === tag && \"\" === value) ||\n setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n \"body\" !== tag &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"className\":\n setValueForKnownAttribute(domElement, \"class\", value);\n break;\n case \"tabIndex\":\n setValueForKnownAttribute(domElement, \"tabindex\", value);\n break;\n case \"dir\":\n case \"role\":\n case \"viewBox\":\n case \"width\":\n case \"height\":\n setValueForKnownAttribute(domElement, key, value);\n break;\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"data\":\n if (\"object\" !== tag) {\n setValueForKnownAttribute(domElement, \"data\", value);\n break;\n }\n case \"src\":\n case \"href\":\n if (\"\" === value && (\"a\" !== tag || \"href\" !== key)) {\n domElement.removeAttribute(key);\n break;\n }\n if (\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"action\":\n case \"formAction\":\n if (\"function\" === typeof value) {\n domElement.setAttribute(\n key,\n \"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\"\n );\n break;\n } else\n \"function\" === typeof prevValue &&\n (\"formAction\" === key\n ? (\"input\" !== tag &&\n setProp(domElement, tag, \"name\", props.name, props, null),\n setProp(\n domElement,\n tag,\n \"formEncType\",\n props.formEncType,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formMethod\",\n props.formMethod,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formTarget\",\n props.formTarget,\n props,\n null\n ))\n : (setProp(domElement, tag, \"encType\", props.encType, props, null),\n setProp(domElement, tag, \"method\", props.method, props, null),\n setProp(domElement, tag, \"target\", props.target, props, null)));\n if (\n null == value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"multiple\":\n domElement.multiple =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"muted\":\n domElement.muted =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"autoFocus\":\n break;\n case \"xlinkHref\":\n if (\n null == value ||\n \"function\" === typeof value ||\n \"boolean\" === typeof value ||\n \"symbol\" === typeof value\n ) {\n domElement.removeAttribute(\"xlink:href\");\n break;\n }\n key = sanitizeURL(\"\" + value);\n domElement.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n \"xlink:href\",\n key\n );\n break;\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n null != value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\" + value)\n : domElement.removeAttribute(key);\n break;\n case \"inert\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\")\n : domElement.removeAttribute(key);\n break;\n case \"capture\":\n case \"download\":\n !0 === value\n ? domElement.setAttribute(key, \"\")\n : !1 !== value &&\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value &&\n !isNaN(value) &&\n 1 <= value\n ? domElement.setAttribute(key, value)\n : domElement.removeAttribute(key);\n break;\n case \"rowSpan\":\n case \"start\":\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n isNaN(value)\n ? domElement.removeAttribute(key)\n : domElement.setAttribute(key, value);\n break;\n case \"popover\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n setValueForAttribute(domElement, \"popover\", value);\n break;\n case \"xlinkActuate\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:actuate\",\n value\n );\n break;\n case \"xlinkArcrole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:arcrole\",\n value\n );\n break;\n case \"xlinkRole\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:role\",\n value\n );\n break;\n case \"xlinkShow\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:show\",\n value\n );\n break;\n case \"xlinkTitle\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:title\",\n value\n );\n break;\n case \"xlinkType\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/1999/xlink\",\n \"xlink:type\",\n value\n );\n break;\n case \"xmlBase\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:base\",\n value\n );\n break;\n case \"xmlLang\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:lang\",\n value\n );\n break;\n case \"xmlSpace\":\n setValueForNamespacedAttribute(\n domElement,\n \"http://www.w3.org/XML/1998/namespace\",\n \"xml:space\",\n value\n );\n break;\n case \"is\":\n setValueForAttribute(domElement, \"is\", value);\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (\n !(2 < key.length) ||\n (\"o\" !== key[0] && \"O\" !== key[0]) ||\n (\"n\" !== key[1] && \"N\" !== key[1])\n )\n (key = aliases.get(key) || key),\n setValueForAttribute(domElement, key, value);\n }\n}\nfunction setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(formatProdErrorMessage(61));\n key = value.__html;\n if (null != key) {\n if (null != props.children) throw Error(formatProdErrorMessage(60));\n domElement.innerHTML = key;\n }\n }\n break;\n case \"children\":\n \"string\" === typeof value\n ? setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"onScroll\":\n null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n break;\n case \"onScrollEnd\":\n null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n break;\n case \"onClick\":\n null != value && (domElement.onclick = noop$1);\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (!registrationNameDependencies.hasOwnProperty(key))\n a: {\n if (\n \"o\" === key[0] &&\n \"n\" === key[1] &&\n ((props = key.endsWith(\"Capture\")),\n (tag = key.slice(2, props ? key.length - 7 : void 0)),\n (prevValue = domElement[internalPropsKey] || null),\n (prevValue = null != prevValue ? prevValue[key] : null),\n \"function\" === typeof prevValue &&\n domElement.removeEventListener(tag, prevValue, props),\n \"function\" === typeof value)\n ) {\n \"function\" !== typeof prevValue &&\n null !== prevValue &&\n (key in domElement\n ? (domElement[key] = null)\n : domElement.hasAttribute(key) &&\n domElement.removeAttribute(key));\n domElement.addEventListener(tag, value, props);\n break a;\n }\n key in domElement\n ? (domElement[key] = value)\n : !0 === value\n ? domElement.setAttribute(key, \"\")\n : setValueForAttribute(domElement, key, value);\n }\n }\n}\nfunction setInitialProperties(domElement, tag, props) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"img\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n var hasSrc = !1,\n hasSrcSet = !1,\n propKey;\n for (propKey in props)\n if (props.hasOwnProperty(propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"src\":\n hasSrc = !0;\n break;\n case \"srcSet\":\n hasSrcSet = !0;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, propKey, propValue, props, null);\n }\n }\n hasSrcSet &&\n setProp(domElement, tag, \"srcSet\", props.srcSet, props, null);\n hasSrc && setProp(domElement, tag, \"src\", props.src, props, null);\n return;\n case \"input\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n var defaultValue = (propKey = propValue = hasSrcSet = null),\n checked = null,\n defaultChecked = null;\n for (hasSrc in props)\n if (props.hasOwnProperty(hasSrc)) {\n var propValue$182 = props[hasSrc];\n if (null != propValue$182)\n switch (hasSrc) {\n case \"name\":\n hasSrcSet = propValue$182;\n break;\n case \"type\":\n propValue = propValue$182;\n break;\n case \"checked\":\n checked = propValue$182;\n break;\n case \"defaultChecked\":\n defaultChecked = propValue$182;\n break;\n case \"value\":\n propKey = propValue$182;\n break;\n case \"defaultValue\":\n defaultValue = propValue$182;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propValue$182)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(domElement, tag, hasSrc, propValue$182, props, null);\n }\n }\n initInput(\n domElement,\n propKey,\n defaultValue,\n checked,\n defaultChecked,\n propValue,\n hasSrcSet,\n !1\n );\n return;\n case \"select\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n hasSrc = propValue = propKey = null;\n for (hasSrcSet in props)\n if (\n props.hasOwnProperty(hasSrcSet) &&\n ((defaultValue = props[hasSrcSet]), null != defaultValue)\n )\n switch (hasSrcSet) {\n case \"value\":\n propKey = defaultValue;\n break;\n case \"defaultValue\":\n propValue = defaultValue;\n break;\n case \"multiple\":\n hasSrc = defaultValue;\n default:\n setProp(domElement, tag, hasSrcSet, defaultValue, props, null);\n }\n tag = propKey;\n props = propValue;\n domElement.multiple = !!hasSrc;\n null != tag\n ? updateOptions(domElement, !!hasSrc, tag, !1)\n : null != props && updateOptions(domElement, !!hasSrc, props, !0);\n return;\n case \"textarea\":\n listenToNonDelegatedEvent(\"invalid\", domElement);\n propKey = hasSrcSet = hasSrc = null;\n for (propValue in props)\n if (\n props.hasOwnProperty(propValue) &&\n ((defaultValue = props[propValue]), null != defaultValue)\n )\n switch (propValue) {\n case \"value\":\n hasSrc = defaultValue;\n break;\n case \"defaultValue\":\n hasSrcSet = defaultValue;\n break;\n case \"children\":\n propKey = defaultValue;\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != defaultValue) throw Error(formatProdErrorMessage(91));\n break;\n default:\n setProp(domElement, tag, propValue, defaultValue, props, null);\n }\n initTextarea(domElement, hasSrc, hasSrcSet, propKey);\n return;\n case \"option\":\n for (checked in props)\n if (\n props.hasOwnProperty(checked) &&\n ((hasSrc = props[checked]), null != hasSrc)\n )\n switch (checked) {\n case \"selected\":\n domElement.selected =\n hasSrc &&\n \"function\" !== typeof hasSrc &&\n \"symbol\" !== typeof hasSrc;\n break;\n default:\n setProp(domElement, tag, checked, hasSrc, props, null);\n }\n return;\n case \"dialog\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n listenToNonDelegatedEvent(\"cancel\", domElement);\n listenToNonDelegatedEvent(\"close\", domElement);\n break;\n case \"iframe\":\n case \"object\":\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"video\":\n case \"audio\":\n for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)\n listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);\n break;\n case \"image\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", domElement);\n break;\n case \"embed\":\n case \"source\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", domElement),\n listenToNonDelegatedEvent(\"load\", domElement);\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (defaultChecked in props)\n if (\n props.hasOwnProperty(defaultChecked) &&\n ((hasSrc = props[defaultChecked]), null != hasSrc)\n )\n switch (defaultChecked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(formatProdErrorMessage(137, tag));\n default:\n setProp(domElement, tag, defaultChecked, hasSrc, props, null);\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (propValue$182 in props)\n props.hasOwnProperty(propValue$182) &&\n ((hasSrc = props[propValue$182]),\n void 0 !== hasSrc &&\n setPropOnCustomElement(\n domElement,\n tag,\n propValue$182,\n hasSrc,\n props,\n void 0\n ));\n return;\n }\n }\n for (defaultValue in props)\n props.hasOwnProperty(defaultValue) &&\n ((hasSrc = props[defaultValue]),\n null != hasSrc &&\n setProp(domElement, tag, defaultValue, hasSrc, props, null));\n}\nfunction updateProperties(domElement, tag, lastProps, nextProps) {\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"input\":\n var name = null,\n type = null,\n value = null,\n defaultValue = null,\n lastDefaultValue = null,\n checked = null,\n defaultChecked = null;\n for (propKey in lastProps) {\n var lastProp = lastProps[propKey];\n if (lastProps.hasOwnProperty(propKey) && null != lastProp)\n switch (propKey) {\n case \"checked\":\n break;\n case \"value\":\n break;\n case \"defaultValue\":\n lastDefaultValue = lastProp;\n default:\n nextProps.hasOwnProperty(propKey) ||\n setProp(domElement, tag, propKey, null, nextProps, lastProp);\n }\n }\n for (var propKey$199 in nextProps) {\n var propKey = nextProps[propKey$199];\n lastProp = lastProps[propKey$199];\n if (\n nextProps.hasOwnProperty(propKey$199) &&\n (null != propKey || null != lastProp)\n )\n switch (propKey$199) {\n case \"type\":\n type = propKey;\n break;\n case \"name\":\n name = propKey;\n break;\n case \"checked\":\n checked = propKey;\n break;\n case \"defaultChecked\":\n defaultChecked = propKey;\n break;\n case \"value\":\n value = propKey;\n break;\n case \"defaultValue\":\n defaultValue = propKey;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n propKey !== lastProp &&\n setProp(\n domElement,\n tag,\n propKey$199,\n propKey,\n nextProps,\n lastProp\n );\n }\n }\n updateInput(\n domElement,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n );\n return;\n case \"select\":\n propKey = value = defaultValue = propKey$199 = null;\n for (type in lastProps)\n if (\n ((lastDefaultValue = lastProps[type]),\n lastProps.hasOwnProperty(type) && null != lastDefaultValue)\n )\n switch (type) {\n case \"value\":\n break;\n case \"multiple\":\n propKey = lastDefaultValue;\n default:\n nextProps.hasOwnProperty(type) ||\n setProp(\n domElement,\n tag,\n type,\n null,\n nextProps,\n lastDefaultValue\n );\n }\n for (name in nextProps)\n if (\n ((type = nextProps[name]),\n (lastDefaultValue = lastProps[name]),\n nextProps.hasOwnProperty(name) &&\n (null != type || null != lastDefaultValue))\n )\n switch (name) {\n case \"value\":\n propKey$199 = type;\n break;\n case \"defaultValue\":\n defaultValue = type;\n break;\n case \"multiple\":\n value = type;\n default:\n type !== lastDefaultValue &&\n setProp(\n domElement,\n tag,\n name,\n type,\n nextProps,\n lastDefaultValue\n );\n }\n tag = defaultValue;\n lastProps = value;\n nextProps = propKey;\n null != propKey$199\n ? updateOptions(domElement, !!lastProps, propKey$199, !1)\n : !!nextProps !== !!lastProps &&\n (null != tag\n ? updateOptions(domElement, !!lastProps, tag, !0)\n : updateOptions(domElement, !!lastProps, lastProps ? [] : \"\", !1));\n return;\n case \"textarea\":\n propKey = propKey$199 = null;\n for (defaultValue in lastProps)\n if (\n ((name = lastProps[defaultValue]),\n lastProps.hasOwnProperty(defaultValue) &&\n null != name &&\n !nextProps.hasOwnProperty(defaultValue))\n )\n switch (defaultValue) {\n case \"value\":\n break;\n case \"children\":\n break;\n default:\n setProp(domElement, tag, defaultValue, null, nextProps, name);\n }\n for (value in nextProps)\n if (\n ((name = nextProps[value]),\n (type = lastProps[value]),\n nextProps.hasOwnProperty(value) && (null != name || null != type))\n )\n switch (value) {\n case \"value\":\n propKey$199 = name;\n break;\n case \"defaultValue\":\n propKey = name;\n break;\n case \"children\":\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != name) throw Error(formatProdErrorMessage(91));\n break;\n default:\n name !== type &&\n setProp(domElement, tag, value, name, nextProps, type);\n }\n updateTextarea(domElement, propKey$199, propKey);\n return;\n case \"option\":\n for (var propKey$215 in lastProps)\n if (\n ((propKey$199 = lastProps[propKey$215]),\n lastProps.hasOwnProperty(propKey$215) &&\n null != propKey$199 &&\n !nextProps.hasOwnProperty(propKey$215))\n )\n switch (propKey$215) {\n case \"selected\":\n domElement.selected = !1;\n break;\n default:\n setProp(\n domElement,\n tag,\n propKey$215,\n null,\n nextProps,\n propKey$199\n );\n }\n for (lastDefaultValue in nextProps)\n if (\n ((propKey$199 = nextProps[lastDefaultValue]),\n (propKey = lastProps[lastDefaultValue]),\n nextProps.hasOwnProperty(lastDefaultValue) &&\n propKey$199 !== propKey &&\n (null != propKey$199 || null != propKey))\n )\n switch (lastDefaultValue) {\n case \"selected\":\n domElement.selected =\n propKey$199 &&\n \"function\" !== typeof propKey$199 &&\n \"symbol\" !== typeof propKey$199;\n break;\n default:\n setProp(\n domElement,\n tag,\n lastDefaultValue,\n propKey$199,\n nextProps,\n propKey\n );\n }\n return;\n case \"img\":\n case \"link\":\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (var propKey$220 in lastProps)\n (propKey$199 = lastProps[propKey$220]),\n lastProps.hasOwnProperty(propKey$220) &&\n null != propKey$199 &&\n !nextProps.hasOwnProperty(propKey$220) &&\n setProp(domElement, tag, propKey$220, null, nextProps, propKey$199);\n for (checked in nextProps)\n if (\n ((propKey$199 = nextProps[checked]),\n (propKey = lastProps[checked]),\n nextProps.hasOwnProperty(checked) &&\n propKey$199 !== propKey &&\n (null != propKey$199 || null != propKey))\n )\n switch (checked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey$199)\n throw Error(formatProdErrorMessage(137, tag));\n break;\n default:\n setProp(\n domElement,\n tag,\n checked,\n propKey$199,\n nextProps,\n propKey\n );\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (var propKey$225 in lastProps)\n (propKey$199 = lastProps[propKey$225]),\n lastProps.hasOwnProperty(propKey$225) &&\n void 0 !== propKey$199 &&\n !nextProps.hasOwnProperty(propKey$225) &&\n setPropOnCustomElement(\n domElement,\n tag,\n propKey$225,\n void 0,\n nextProps,\n propKey$199\n );\n for (defaultChecked in nextProps)\n (propKey$199 = nextProps[defaultChecked]),\n (propKey = lastProps[defaultChecked]),\n !nextProps.hasOwnProperty(defaultChecked) ||\n propKey$199 === propKey ||\n (void 0 === propKey$199 && void 0 === propKey) ||\n setPropOnCustomElement(\n domElement,\n tag,\n defaultChecked,\n propKey$199,\n nextProps,\n propKey\n );\n return;\n }\n }\n for (var propKey$230 in lastProps)\n (propKey$199 = lastProps[propKey$230]),\n lastProps.hasOwnProperty(propKey$230) &&\n null != propKey$199 &&\n !nextProps.hasOwnProperty(propKey$230) &&\n setProp(domElement, tag, propKey$230, null, nextProps, propKey$199);\n for (lastProp in nextProps)\n (propKey$199 = nextProps[lastProp]),\n (propKey = lastProps[lastProp]),\n !nextProps.hasOwnProperty(lastProp) ||\n propKey$199 === propKey ||\n (null == propKey$199 && null == propKey) ||\n setProp(domElement, tag, lastProp, propKey$199, nextProps, propKey);\n}\nvar eventsEnabled = null,\n selectionInformation = null;\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n return 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n}\nfunction getOwnHostContext(namespaceURI) {\n switch (namespaceURI) {\n case \"http://www.w3.org/2000/svg\":\n return 1;\n case \"http://www.w3.org/1998/Math/MathML\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getChildHostContextProd(parentNamespace, type) {\n if (0 === parentNamespace)\n switch (type) {\n case \"svg\":\n return 1;\n case \"math\":\n return 2;\n default:\n return 0;\n }\n return 1 === parentNamespace && \"foreignObject\" === type\n ? 0\n : parentNamespace;\n}\nfunction shouldSetTextContent(type, props) {\n return (\n \"textarea\" === type ||\n \"noscript\" === type ||\n \"string\" === typeof props.children ||\n \"number\" === typeof props.children ||\n \"bigint\" === typeof props.children ||\n (\"object\" === typeof props.dangerouslySetInnerHTML &&\n null !== props.dangerouslySetInnerHTML &&\n null != props.dangerouslySetInnerHTML.__html)\n );\n}\nvar currentPopstateTransitionEvent = null;\nfunction shouldAttemptEagerTransition() {\n var event = window.event;\n if (event && \"popstate\" === event.type) {\n if (event === currentPopstateTransitionEvent) return !1;\n currentPopstateTransitionEvent = event;\n return !0;\n }\n currentPopstateTransitionEvent = null;\n return !1;\n}\nvar scheduleTimeout = \"function\" === typeof setTimeout ? setTimeout : void 0,\n cancelTimeout = \"function\" === typeof clearTimeout ? clearTimeout : void 0,\n localPromise = \"function\" === typeof Promise ? Promise : void 0,\n scheduleMicrotask =\n \"function\" === typeof queueMicrotask\n ? queueMicrotask\n : \"undefined\" !== typeof localPromise\n ? function (callback) {\n return localPromise\n .resolve(null)\n .then(callback)\n .catch(handleErrorInNextTick);\n }\n : scheduleTimeout;\nfunction handleErrorInNextTick(error) {\n setTimeout(function () {\n throw error;\n });\n}\nfunction isSingletonScope(type) {\n return \"head\" === type;\n}\nfunction clearHydrationBoundary(parentInstance, hydrationInstance) {\n var node = hydrationInstance,\n depth = 0;\n do {\n var nextNode = node.nextSibling;\n parentInstance.removeChild(node);\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node || \"/&\" === node)) {\n if (0 === depth) {\n parentInstance.removeChild(nextNode);\n retryIfBlockedOn(hydrationInstance);\n return;\n }\n depth--;\n } else if (\n \"$\" === node ||\n \"$?\" === node ||\n \"$~\" === node ||\n \"$!\" === node ||\n \"&\" === node\n )\n depth++;\n else if (\"html\" === node)\n releaseSingletonInstance(parentInstance.ownerDocument.documentElement);\n else if (\"head\" === node) {\n node = parentInstance.ownerDocument.head;\n releaseSingletonInstance(node);\n for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) {\n var nextNode$jscomp$0 = node$jscomp$0.nextSibling,\n nodeName = node$jscomp$0.nodeName;\n node$jscomp$0[internalHoistableMarker] ||\n \"SCRIPT\" === nodeName ||\n \"STYLE\" === nodeName ||\n (\"LINK\" === nodeName &&\n \"stylesheet\" === node$jscomp$0.rel.toLowerCase()) ||\n node.removeChild(node$jscomp$0);\n node$jscomp$0 = nextNode$jscomp$0;\n }\n } else\n \"body\" === node &&\n releaseSingletonInstance(parentInstance.ownerDocument.body);\n node = nextNode;\n } while (node);\n retryIfBlockedOn(hydrationInstance);\n}\nfunction hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) {\n var node = suspenseInstance;\n suspenseInstance = 0;\n do {\n var nextNode = node.nextSibling;\n 1 === node.nodeType\n ? isHidden\n ? ((node._stashedDisplay = node.style.display),\n (node.style.display = \"none\"))\n : ((node.style.display = node._stashedDisplay || \"\"),\n \"\" === node.getAttribute(\"style\") && node.removeAttribute(\"style\"))\n : 3 === node.nodeType &&\n (isHidden\n ? ((node._stashedText = node.nodeValue), (node.nodeValue = \"\"))\n : (node.nodeValue = node._stashedText || \"\"));\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), \"/$\" === node))\n if (0 === suspenseInstance) break;\n else suspenseInstance--;\n else\n (\"$\" !== node && \"$?\" !== node && \"$~\" !== node && \"$!\" !== node) ||\n suspenseInstance++;\n node = nextNode;\n } while (node);\n}\nfunction clearContainerSparingly(container) {\n var nextNode = container.firstChild;\n nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);\n for (; nextNode; ) {\n var node = nextNode;\n nextNode = nextNode.nextSibling;\n switch (node.nodeName) {\n case \"HTML\":\n case \"HEAD\":\n case \"BODY\":\n clearContainerSparingly(node);\n detachDeletedInstance(node);\n continue;\n case \"SCRIPT\":\n case \"STYLE\":\n continue;\n case \"LINK\":\n if (\"stylesheet\" === node.rel.toLowerCase()) continue;\n }\n container.removeChild(node);\n }\n}\nfunction canHydrateInstance(instance, type, props, inRootOrSingleton) {\n for (; 1 === instance.nodeType; ) {\n var anyProps = props;\n if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {\n if (\n !inRootOrSingleton &&\n (\"INPUT\" !== instance.nodeName || \"hidden\" !== instance.type)\n )\n break;\n } else if (!inRootOrSingleton)\n if (\"input\" === type && \"hidden\" === instance.type) {\n var name = null == anyProps.name ? null : \"\" + anyProps.name;\n if (\n \"hidden\" === anyProps.type &&\n instance.getAttribute(\"name\") === name\n )\n return instance;\n } else return instance;\n else if (!instance[internalHoistableMarker])\n switch (type) {\n case \"meta\":\n if (!instance.hasAttribute(\"itemprop\")) break;\n return instance;\n case \"link\":\n name = instance.getAttribute(\"rel\");\n if (\"stylesheet\" === name && instance.hasAttribute(\"data-precedence\"))\n break;\n else if (\n name !== anyProps.rel ||\n instance.getAttribute(\"href\") !==\n (null == anyProps.href || \"\" === anyProps.href\n ? null\n : anyProps.href) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin) ||\n instance.getAttribute(\"title\") !==\n (null == anyProps.title ? null : anyProps.title)\n )\n break;\n return instance;\n case \"style\":\n if (instance.hasAttribute(\"data-precedence\")) break;\n return instance;\n case \"script\":\n name = instance.getAttribute(\"src\");\n if (\n (name !== (null == anyProps.src ? null : anyProps.src) ||\n instance.getAttribute(\"type\") !==\n (null == anyProps.type ? null : anyProps.type) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin ? null : anyProps.crossOrigin)) &&\n name &&\n instance.hasAttribute(\"async\") &&\n !instance.hasAttribute(\"itemprop\")\n )\n break;\n return instance;\n default:\n return instance;\n }\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) break;\n }\n return null;\n}\nfunction canHydrateTextInstance(instance, text, inRootOrSingleton) {\n if (\"\" === text) return null;\n for (; 3 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction canHydrateHydrationBoundary(instance, inRootOrSingleton) {\n for (; 8 !== instance.nodeType; ) {\n if (!inRootOrSingleton) return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n}\nfunction isSuspenseInstancePending(instance) {\n return \"$?\" === instance.data || \"$~\" === instance.data;\n}\nfunction isSuspenseInstanceFallback(instance) {\n return (\n \"$!\" === instance.data ||\n (\"$?\" === instance.data && \"loading\" !== instance.ownerDocument.readyState)\n );\n}\nfunction registerSuspenseInstanceRetry(instance, callback) {\n var ownerDocument = instance.ownerDocument;\n if (\"$~\" === instance.data) instance._reactRetry = callback;\n else if (\"$?\" !== instance.data || \"loading\" !== ownerDocument.readyState)\n callback();\n else {\n var listener = function () {\n callback();\n ownerDocument.removeEventListener(\"DOMContentLoaded\", listener);\n };\n ownerDocument.addEventListener(\"DOMContentLoaded\", listener);\n instance._reactRetry = listener;\n }\n}\nfunction getNextHydratable(node) {\n for (; null != node; node = node.nextSibling) {\n var nodeType = node.nodeType;\n if (1 === nodeType || 3 === nodeType) break;\n if (8 === nodeType) {\n nodeType = node.data;\n if (\n \"$\" === nodeType ||\n \"$!\" === nodeType ||\n \"$?\" === nodeType ||\n \"$~\" === nodeType ||\n \"&\" === nodeType ||\n \"F!\" === nodeType ||\n \"F\" === nodeType\n )\n break;\n if (\"/$\" === nodeType || \"/&\" === nodeType) return null;\n }\n }\n return node;\n}\nvar previousHydratableOnEnteringScopedSingleton = null;\nfunction getNextHydratableInstanceAfterHydrationBoundary(hydrationInstance) {\n hydrationInstance = hydrationInstance.nextSibling;\n for (var depth = 0; hydrationInstance; ) {\n if (8 === hydrationInstance.nodeType) {\n var data = hydrationInstance.data;\n if (\"/$\" === data || \"/&\" === data) {\n if (0 === depth)\n return getNextHydratable(hydrationInstance.nextSibling);\n depth--;\n } else\n (\"$\" !== data &&\n \"$!\" !== data &&\n \"$?\" !== data &&\n \"$~\" !== data &&\n \"&\" !== data) ||\n depth++;\n }\n hydrationInstance = hydrationInstance.nextSibling;\n }\n return null;\n}\nfunction getParentHydrationBoundary(targetInstance) {\n targetInstance = targetInstance.previousSibling;\n for (var depth = 0; targetInstance; ) {\n if (8 === targetInstance.nodeType) {\n var data = targetInstance.data;\n if (\n \"$\" === data ||\n \"$!\" === data ||\n \"$?\" === data ||\n \"$~\" === data ||\n \"&\" === data\n ) {\n if (0 === depth) return targetInstance;\n depth--;\n } else (\"/$\" !== data && \"/&\" !== data) || depth++;\n }\n targetInstance = targetInstance.previousSibling;\n }\n return null;\n}\nfunction resolveSingletonInstance(type, props, rootContainerInstance) {\n props = getOwnerDocumentFromRootContainer(rootContainerInstance);\n switch (type) {\n case \"html\":\n type = props.documentElement;\n if (!type) throw Error(formatProdErrorMessage(452));\n return type;\n case \"head\":\n type = props.head;\n if (!type) throw Error(formatProdErrorMessage(453));\n return type;\n case \"body\":\n type = props.body;\n if (!type) throw Error(formatProdErrorMessage(454));\n return type;\n default:\n throw Error(formatProdErrorMessage(451));\n }\n}\nfunction releaseSingletonInstance(instance) {\n for (var attributes = instance.attributes; attributes.length; )\n instance.removeAttributeNode(attributes[0]);\n detachDeletedInstance(instance);\n}\nvar preloadPropsMap = new Map(),\n preconnectsSet = new Set();\nfunction getHoistableRoot(container) {\n return \"function\" === typeof container.getRootNode\n ? container.getRootNode()\n : 9 === container.nodeType\n ? container\n : container.ownerDocument;\n}\nvar previousDispatcher = ReactDOMSharedInternals.d;\nReactDOMSharedInternals.d = {\n f: flushSyncWork,\n r: requestFormReset,\n D: prefetchDNS,\n C: preconnect,\n L: preload,\n m: preloadModule,\n X: preinitScript,\n S: preinitStyle,\n M: preinitModuleScript\n};\nfunction flushSyncWork() {\n var previousWasRendering = previousDispatcher.f(),\n wasRendering = flushSyncWork$1();\n return previousWasRendering || wasRendering;\n}\nfunction requestFormReset(form) {\n var formInst = getInstanceFromNode(form);\n null !== formInst && 5 === formInst.tag && \"form\" === formInst.type\n ? requestFormReset$1(formInst)\n : previousDispatcher.r(form);\n}\nvar globalDocument = \"undefined\" === typeof document ? null : document;\nfunction preconnectAs(rel, href, crossOrigin) {\n var ownerDocument = globalDocument;\n if (ownerDocument && \"string\" === typeof href && href) {\n var limitedEscapedHref =\n escapeSelectorAttributeValueInsideDoubleQuotes(href);\n limitedEscapedHref =\n 'link[rel=\"' + rel + '\"][href=\"' + limitedEscapedHref + '\"]';\n \"string\" === typeof crossOrigin &&\n (limitedEscapedHref += '[crossorigin=\"' + crossOrigin + '\"]');\n preconnectsSet.has(limitedEscapedHref) ||\n (preconnectsSet.add(limitedEscapedHref),\n (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),\n null === ownerDocument.querySelector(limitedEscapedHref) &&\n ((href = ownerDocument.createElement(\"link\")),\n setInitialProperties(href, \"link\", rel),\n markNodeAsHoistable(href),\n ownerDocument.head.appendChild(href)));\n }\n}\nfunction prefetchDNS(href) {\n previousDispatcher.D(href);\n preconnectAs(\"dns-prefetch\", href, null);\n}\nfunction preconnect(href, crossOrigin) {\n previousDispatcher.C(href, crossOrigin);\n preconnectAs(\"preconnect\", href, crossOrigin);\n}\nfunction preload(href, as, options) {\n previousDispatcher.L(href, as, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href && as) {\n var preloadSelector =\n 'link[rel=\"preload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"]';\n \"image\" === as\n ? options && options.imageSrcSet\n ? ((preloadSelector +=\n '[imagesrcset=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSrcSet\n ) +\n '\"]'),\n \"string\" === typeof options.imageSizes &&\n (preloadSelector +=\n '[imagesizes=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSizes\n ) +\n '\"]'))\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]')\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]');\n var key = preloadSelector;\n switch (as) {\n case \"style\":\n key = getStyleKey(href);\n break;\n case \"script\":\n key = getScriptKey(href);\n }\n preloadPropsMap.has(key) ||\n ((href = assign(\n {\n rel: \"preload\",\n href:\n \"image\" === as && options && options.imageSrcSet ? void 0 : href,\n as: as\n },\n options\n )),\n preloadPropsMap.set(key, href),\n null !== ownerDocument.querySelector(preloadSelector) ||\n (\"style\" === as &&\n ownerDocument.querySelector(getStylesheetSelectorFromKey(key))) ||\n (\"script\" === as &&\n ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||\n ((as = ownerDocument.createElement(\"link\")),\n setInitialProperties(as, \"link\", href),\n markNodeAsHoistable(as),\n ownerDocument.head.appendChild(as)));\n }\n}\nfunction preloadModule(href, options) {\n previousDispatcher.m(href, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var as = options && \"string\" === typeof options.as ? options.as : \"script\",\n preloadSelector =\n 'link[rel=\"modulepreload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"][href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]',\n key = preloadSelector;\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n key = getScriptKey(href);\n }\n if (\n !preloadPropsMap.has(key) &&\n ((href = assign({ rel: \"modulepreload\", href: href }, options)),\n preloadPropsMap.set(key, href),\n null === ownerDocument.querySelector(preloadSelector))\n ) {\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))\n return;\n }\n as = ownerDocument.createElement(\"link\");\n setInitialProperties(as, \"link\", href);\n markNodeAsHoistable(as);\n ownerDocument.head.appendChild(as);\n }\n }\n}\nfunction preinitStyle(href, precedence, options) {\n previousDispatcher.S(href, precedence, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,\n key = getStyleKey(href);\n precedence = precedence || \"default\";\n var resource = styles.get(key);\n if (!resource) {\n var state = { loading: 0, preload: null };\n if (\n (resource = ownerDocument.querySelector(\n getStylesheetSelectorFromKey(key)\n ))\n )\n state.loading = 5;\n else {\n href = assign(\n { rel: \"stylesheet\", href: href, \"data-precedence\": precedence },\n options\n );\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(href, options);\n var link = (resource = ownerDocument.createElement(\"link\"));\n markNodeAsHoistable(link);\n setInitialProperties(link, \"link\", href);\n link._p = new Promise(function (resolve, reject) {\n link.onload = resolve;\n link.onerror = reject;\n });\n link.addEventListener(\"load\", function () {\n state.loading |= 1;\n });\n link.addEventListener(\"error\", function () {\n state.loading |= 2;\n });\n state.loading |= 4;\n insertStylesheet(resource, precedence, ownerDocument);\n }\n resource = {\n type: \"stylesheet\",\n instance: resource,\n count: 1,\n state: state\n };\n styles.set(key, resource);\n }\n }\n}\nfunction preinitScript(src, options) {\n previousDispatcher.X(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0 }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction preinitModuleScript(src, options) {\n previousDispatcher.M(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n resource ||\n ((src = assign({ src: src, async: !0, type: \"module\" }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n}\nfunction getResource(type, currentProps, pendingProps, currentResource) {\n var JSCompiler_inline_result = (JSCompiler_inline_result =\n rootInstanceStackCursor.current)\n ? getHoistableRoot(JSCompiler_inline_result)\n : null;\n if (!JSCompiler_inline_result) throw Error(formatProdErrorMessage(446));\n switch (type) {\n case \"meta\":\n case \"title\":\n return null;\n case \"style\":\n return \"string\" === typeof pendingProps.precedence &&\n \"string\" === typeof pendingProps.href\n ? ((currentProps = getStyleKey(pendingProps.href)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"style\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null };\n case \"link\":\n if (\n \"stylesheet\" === pendingProps.rel &&\n \"string\" === typeof pendingProps.href &&\n \"string\" === typeof pendingProps.precedence\n ) {\n type = getStyleKey(pendingProps.href);\n var styles$241 = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableStyles,\n resource$242 = styles$241.get(type);\n resource$242 ||\n ((JSCompiler_inline_result =\n JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result),\n (resource$242 = {\n type: \"stylesheet\",\n instance: null,\n count: 0,\n state: { loading: 0, preload: null }\n }),\n styles$241.set(type, resource$242),\n (styles$241 = JSCompiler_inline_result.querySelector(\n getStylesheetSelectorFromKey(type)\n )) &&\n !styles$241._p &&\n ((resource$242.instance = styles$241),\n (resource$242.state.loading = 5)),\n preloadPropsMap.has(type) ||\n ((pendingProps = {\n rel: \"preload\",\n as: \"style\",\n href: pendingProps.href,\n crossOrigin: pendingProps.crossOrigin,\n integrity: pendingProps.integrity,\n media: pendingProps.media,\n hrefLang: pendingProps.hrefLang,\n referrerPolicy: pendingProps.referrerPolicy\n }),\n preloadPropsMap.set(type, pendingProps),\n styles$241 ||\n preloadStylesheet(\n JSCompiler_inline_result,\n type,\n pendingProps,\n resource$242.state\n )));\n if (currentProps && null === currentResource)\n throw Error(formatProdErrorMessage(528, \"\"));\n return resource$242;\n }\n if (currentProps && null !== currentResource)\n throw Error(formatProdErrorMessage(529, \"\"));\n return null;\n case \"script\":\n return (\n (currentProps = pendingProps.async),\n (pendingProps = pendingProps.src),\n \"string\" === typeof pendingProps &&\n currentProps &&\n \"function\" !== typeof currentProps &&\n \"symbol\" !== typeof currentProps\n ? ((currentProps = getScriptKey(pendingProps)),\n (pendingProps = getResourcesFromRoot(\n JSCompiler_inline_result\n ).hoistableScripts),\n (currentResource = pendingProps.get(currentProps)),\n currentResource ||\n ((currentResource = {\n type: \"script\",\n instance: null,\n count: 0,\n state: null\n }),\n pendingProps.set(currentProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null }\n );\n default:\n throw Error(formatProdErrorMessage(444, type));\n }\n}\nfunction getStyleKey(href) {\n return 'href=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '\"';\n}\nfunction getStylesheetSelectorFromKey(key) {\n return 'link[rel=\"stylesheet\"][' + key + \"]\";\n}\nfunction stylesheetPropsFromRawProps(rawProps) {\n return assign({}, rawProps, {\n \"data-precedence\": rawProps.precedence,\n precedence: null\n });\n}\nfunction preloadStylesheet(ownerDocument, key, preloadProps, state) {\n ownerDocument.querySelector('link[rel=\"preload\"][as=\"style\"][' + key + \"]\")\n ? (state.loading = 1)\n : ((key = ownerDocument.createElement(\"link\")),\n (state.preload = key),\n key.addEventListener(\"load\", function () {\n return (state.loading |= 1);\n }),\n key.addEventListener(\"error\", function () {\n return (state.loading |= 2);\n }),\n setInitialProperties(key, \"link\", preloadProps),\n markNodeAsHoistable(key),\n ownerDocument.head.appendChild(key));\n}\nfunction getScriptKey(src) {\n return '[src=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '\"]';\n}\nfunction getScriptSelectorFromKey(key) {\n return \"script[async]\" + key;\n}\nfunction acquireResource(hoistableRoot, resource, props) {\n resource.count++;\n if (null === resource.instance)\n switch (resource.type) {\n case \"style\":\n var instance = hoistableRoot.querySelector(\n 'style[data-href~=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +\n '\"]'\n );\n if (instance)\n return (\n (resource.instance = instance),\n markNodeAsHoistable(instance),\n instance\n );\n var styleProps = assign({}, props, {\n \"data-href\": props.href,\n \"data-precedence\": props.precedence,\n href: null,\n precedence: null\n });\n instance = (hoistableRoot.ownerDocument || hoistableRoot).createElement(\n \"style\"\n );\n markNodeAsHoistable(instance);\n setInitialProperties(instance, \"style\", styleProps);\n insertStylesheet(instance, props.precedence, hoistableRoot);\n return (resource.instance = instance);\n case \"stylesheet\":\n styleProps = getStyleKey(props.href);\n var instance$247 = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(styleProps)\n );\n if (instance$247)\n return (\n (resource.state.loading |= 4),\n (resource.instance = instance$247),\n markNodeAsHoistable(instance$247),\n instance$247\n );\n instance = stylesheetPropsFromRawProps(props);\n (styleProps = preloadPropsMap.get(styleProps)) &&\n adoptPreloadPropsForStylesheet(instance, styleProps);\n instance$247 = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"link\");\n markNodeAsHoistable(instance$247);\n var linkInstance = instance$247;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance$247, \"link\", instance);\n resource.state.loading |= 4;\n insertStylesheet(instance$247, props.precedence, hoistableRoot);\n return (resource.instance = instance$247);\n case \"script\":\n instance$247 = getScriptKey(props.src);\n if (\n (styleProps = hoistableRoot.querySelector(\n getScriptSelectorFromKey(instance$247)\n ))\n )\n return (\n (resource.instance = styleProps),\n markNodeAsHoistable(styleProps),\n styleProps\n );\n instance = props;\n if ((styleProps = preloadPropsMap.get(instance$247)))\n (instance = assign({}, props)),\n adoptPreloadPropsForScript(instance, styleProps);\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n styleProps = hoistableRoot.createElement(\"script\");\n markNodeAsHoistable(styleProps);\n setInitialProperties(styleProps, \"link\", instance);\n hoistableRoot.head.appendChild(styleProps);\n return (resource.instance = styleProps);\n case \"void\":\n return null;\n default:\n throw Error(formatProdErrorMessage(443, resource.type));\n }\n else\n \"stylesheet\" === resource.type &&\n 0 === (resource.state.loading & 4) &&\n ((instance = resource.instance),\n (resource.state.loading |= 4),\n insertStylesheet(instance, props.precedence, hoistableRoot));\n return resource.instance;\n}\nfunction insertStylesheet(instance, precedence, root) {\n for (\n var nodes = root.querySelectorAll(\n 'link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'\n ),\n last = nodes.length ? nodes[nodes.length - 1] : null,\n prior = last,\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (node.dataset.precedence === precedence) prior = node;\n else if (prior !== last) break;\n }\n prior\n ? prior.parentNode.insertBefore(instance, prior.nextSibling)\n : ((precedence = 9 === root.nodeType ? root.head : root),\n precedence.insertBefore(instance, precedence.firstChild));\n}\nfunction adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {\n null == stylesheetProps.crossOrigin &&\n (stylesheetProps.crossOrigin = preloadProps.crossOrigin);\n null == stylesheetProps.referrerPolicy &&\n (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);\n null == stylesheetProps.title && (stylesheetProps.title = preloadProps.title);\n}\nfunction adoptPreloadPropsForScript(scriptProps, preloadProps) {\n null == scriptProps.crossOrigin &&\n (scriptProps.crossOrigin = preloadProps.crossOrigin);\n null == scriptProps.referrerPolicy &&\n (scriptProps.referrerPolicy = preloadProps.referrerPolicy);\n null == scriptProps.integrity &&\n (scriptProps.integrity = preloadProps.integrity);\n}\nvar tagCaches = null;\nfunction getHydratableHoistableCache(type, keyAttribute, ownerDocument) {\n if (null === tagCaches) {\n var cache = new Map();\n var caches = (tagCaches = new Map());\n caches.set(ownerDocument, cache);\n } else\n (caches = tagCaches),\n (cache = caches.get(ownerDocument)),\n cache || ((cache = new Map()), caches.set(ownerDocument, cache));\n if (cache.has(type)) return cache;\n cache.set(type, null);\n ownerDocument = ownerDocument.getElementsByTagName(type);\n for (caches = 0; caches < ownerDocument.length; caches++) {\n var node = ownerDocument[caches];\n if (\n !(\n node[internalHoistableMarker] ||\n node[internalInstanceKey] ||\n (\"link\" === type && \"stylesheet\" === node.getAttribute(\"rel\"))\n ) &&\n \"http://www.w3.org/2000/svg\" !== node.namespaceURI\n ) {\n var nodeKey = node.getAttribute(keyAttribute) || \"\";\n nodeKey = type + nodeKey;\n var existing = cache.get(nodeKey);\n existing ? existing.push(node) : cache.set(nodeKey, [node]);\n }\n }\n return cache;\n}\nfunction mountHoistable(hoistableRoot, type, instance) {\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n hoistableRoot.head.insertBefore(\n instance,\n \"title\" === type ? hoistableRoot.querySelector(\"head > title\") : null\n );\n}\nfunction isHostHoistableType(type, props, hostContext) {\n if (1 === hostContext || null != props.itemProp) return !1;\n switch (type) {\n case \"meta\":\n case \"title\":\n return !0;\n case \"style\":\n if (\n \"string\" !== typeof props.precedence ||\n \"string\" !== typeof props.href ||\n \"\" === props.href\n )\n break;\n return !0;\n case \"link\":\n if (\n \"string\" !== typeof props.rel ||\n \"string\" !== typeof props.href ||\n \"\" === props.href ||\n props.onLoad ||\n props.onError\n )\n break;\n switch (props.rel) {\n case \"stylesheet\":\n return (\n (type = props.disabled),\n \"string\" === typeof props.precedence && null == type\n );\n default:\n return !0;\n }\n case \"script\":\n if (\n props.async &&\n \"function\" !== typeof props.async &&\n \"symbol\" !== typeof props.async &&\n !props.onLoad &&\n !props.onError &&\n props.src &&\n \"string\" === typeof props.src\n )\n return !0;\n }\n return !1;\n}\nfunction preloadResource(resource) {\n return \"stylesheet\" === resource.type && 0 === (resource.state.loading & 3)\n ? !1\n : !0;\n}\nvar suspendedState = null;\nfunction suspendResource(hoistableRoot, resource, props) {\n if (null === suspendedState) throw Error(formatProdErrorMessage(475));\n var state = suspendedState;\n if (\n \"stylesheet\" === resource.type &&\n (\"string\" !== typeof props.media ||\n !1 !== matchMedia(props.media).matches) &&\n 0 === (resource.state.loading & 4)\n ) {\n if (null === resource.instance) {\n var key = getStyleKey(props.href),\n instance = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(key)\n );\n if (instance) {\n hoistableRoot = instance._p;\n null !== hoistableRoot &&\n \"object\" === typeof hoistableRoot &&\n \"function\" === typeof hoistableRoot.then &&\n (state.count++,\n (state = onUnsuspend.bind(state)),\n hoistableRoot.then(state, state));\n resource.state.loading |= 4;\n resource.instance = instance;\n markNodeAsHoistable(instance);\n return;\n }\n instance = hoistableRoot.ownerDocument || hoistableRoot;\n props = stylesheetPropsFromRawProps(props);\n (key = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(props, key);\n instance = instance.createElement(\"link\");\n markNodeAsHoistable(instance);\n var linkInstance = instance;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance, \"link\", props);\n resource.instance = instance;\n }\n null === state.stylesheets && (state.stylesheets = new Map());\n state.stylesheets.set(resource, hoistableRoot);\n (hoistableRoot = resource.state.preload) &&\n 0 === (resource.state.loading & 3) &&\n (state.count++,\n (resource = onUnsuspend.bind(state)),\n hoistableRoot.addEventListener(\"load\", resource),\n hoistableRoot.addEventListener(\"error\", resource));\n }\n}\nfunction waitForCommitToBeReady() {\n if (null === suspendedState) throw Error(formatProdErrorMessage(475));\n var state = suspendedState;\n state.stylesheets &&\n 0 === state.count &&\n insertSuspendedStylesheets(state, state.stylesheets);\n return 0 < state.count\n ? function (commit) {\n var stylesheetTimer = setTimeout(function () {\n state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets);\n if (state.unsuspend) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n }, 6e4);\n state.unsuspend = commit;\n return function () {\n state.unsuspend = null;\n clearTimeout(stylesheetTimer);\n };\n }\n : null;\n}\nfunction onUnsuspend() {\n this.count--;\n if (0 === this.count)\n if (this.stylesheets) insertSuspendedStylesheets(this, this.stylesheets);\n else if (this.unsuspend) {\n var unsuspend = this.unsuspend;\n this.unsuspend = null;\n unsuspend();\n }\n}\nvar precedencesByRoot = null;\nfunction insertSuspendedStylesheets(state, resources) {\n state.stylesheets = null;\n null !== state.unsuspend &&\n (state.count++,\n (precedencesByRoot = new Map()),\n resources.forEach(insertStylesheetIntoRoot, state),\n (precedencesByRoot = null),\n onUnsuspend.call(state));\n}\nfunction insertStylesheetIntoRoot(root, resource) {\n if (!(resource.state.loading & 4)) {\n var precedences = precedencesByRoot.get(root);\n if (precedences) var last = precedences.get(null);\n else {\n precedences = new Map();\n precedencesByRoot.set(root, precedences);\n for (\n var nodes = root.querySelectorAll(\n \"link[data-precedence],style[data-precedence]\"\n ),\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (\n \"LINK\" === node.nodeName ||\n \"not all\" !== node.getAttribute(\"media\")\n )\n precedences.set(node.dataset.precedence, node), (last = node);\n }\n last && precedences.set(null, last);\n }\n nodes = resource.instance;\n node = nodes.getAttribute(\"data-precedence\");\n i = precedences.get(node) || last;\n i === last && precedences.set(null, nodes);\n precedences.set(node, nodes);\n this.count++;\n last = onUnsuspend.bind(this);\n nodes.addEventListener(\"load\", last);\n nodes.addEventListener(\"error\", last);\n i\n ? i.parentNode.insertBefore(nodes, i.nextSibling)\n : ((root = 9 === root.nodeType ? root.head : root),\n root.insertBefore(nodes, root.firstChild));\n resource.state.loading |= 4;\n }\n}\nvar HostTransitionContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Provider: null,\n Consumer: null,\n _currentValue: sharedNotPendingObject,\n _currentValue2: sharedNotPendingObject,\n _threadCount: 0\n};\nfunction FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n) {\n this.tag = 1;\n this.containerInfo = containerInfo;\n this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = -1;\n this.callbackNode =\n this.next =\n this.pendingContext =\n this.context =\n this.cancelPendingCommit =\n null;\n this.callbackPriority = 0;\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes =\n this.shellSuspendCounter =\n this.errorRecoveryDisabledLanes =\n this.expiredLanes =\n this.warmLanes =\n this.pingedLanes =\n this.suspendedLanes =\n this.pendingLanes =\n 0;\n this.entanglements = createLaneMap(0);\n this.hiddenUpdates = createLaneMap(null);\n this.identifierPrefix = identifierPrefix;\n this.onUncaughtError = onUncaughtError;\n this.onCaughtError = onCaughtError;\n this.onRecoverableError = onRecoverableError;\n this.pooledCache = null;\n this.pooledCacheLanes = 0;\n this.formState = formState;\n this.incompleteTransitions = new Map();\n}\nfunction createFiberRoot(\n containerInfo,\n tag,\n hydrate,\n initialChildren,\n hydrationCallbacks,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator\n) {\n containerInfo = new FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n );\n tag = 1;\n !0 === isStrictMode && (tag |= 24);\n isStrictMode = createFiberImplClass(3, null, null, tag);\n containerInfo.current = isStrictMode;\n isStrictMode.stateNode = containerInfo;\n tag = createCache();\n tag.refCount++;\n containerInfo.pooledCache = tag;\n tag.refCount++;\n isStrictMode.memoizedState = {\n element: initialChildren,\n isDehydrated: hydrate,\n cache: tag\n };\n initializeUpdateQueue(isStrictMode);\n return containerInfo;\n}\nfunction getContextForSubtree(parentComponent) {\n if (!parentComponent) return emptyContextObject;\n parentComponent = emptyContextObject;\n return parentComponent;\n}\nfunction updateContainerImpl(\n rootFiber,\n lane,\n element,\n container,\n parentComponent,\n callback\n) {\n parentComponent = getContextForSubtree(parentComponent);\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n container = createUpdate(lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback && (container.callback = callback);\n element = enqueueUpdate(rootFiber, container, lane);\n null !== element &&\n (scheduleUpdateOnFiber(element, rootFiber, lane),\n entangleTransitions(element, rootFiber, lane));\n}\nfunction markRetryLaneImpl(fiber, retryLane) {\n fiber = fiber.memoizedState;\n if (null !== fiber && null !== fiber.dehydrated) {\n var a = fiber.retryLane;\n fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;\n }\n}\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);\n}\nfunction attemptContinuousHydration(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var root = enqueueConcurrentRenderForLane(fiber, 67108864);\n null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);\n markRetryLaneIfNotHydrated(fiber, 67108864);\n }\n}\nfunction attemptHydrationAtCurrentPriority(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var lane = requestUpdateLane();\n lane = getBumpedLaneForHydrationByLane(lane);\n var root = enqueueConcurrentRenderForLane(fiber, lane);\n null !== root && scheduleUpdateOnFiber(root, fiber, lane);\n markRetryLaneIfNotHydrated(fiber, lane);\n }\n}\nvar _enabled = !0;\nfunction dispatchDiscreteEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 2),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchContinuousEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = 8),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n}\nfunction dispatchEvent(\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (_enabled) {\n var blockedOn = findInstanceBlockingEvent(nativeEvent);\n if (null === blockedOn)\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n ),\n clearIfContinuousEvent(domEventName, nativeEvent);\n else if (\n queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n )\n nativeEvent.stopPropagation();\n else if (\n (clearIfContinuousEvent(domEventName, nativeEvent),\n eventSystemFlags & 4 &&\n -1 < discreteReplayableEvents.indexOf(domEventName))\n ) {\n for (; null !== blockedOn; ) {\n var fiber = getInstanceFromNode(blockedOn);\n if (null !== fiber)\n switch (fiber.tag) {\n case 3:\n fiber = fiber.stateNode;\n if (fiber.current.memoizedState.isDehydrated) {\n var lanes = getHighestPriorityLanes(fiber.pendingLanes);\n if (0 !== lanes) {\n var root = fiber;\n root.pendingLanes |= 2;\n for (root.entangledLanes |= 2; lanes; ) {\n var lane = 1 << (31 - clz32(lanes));\n root.entanglements[1] |= lane;\n lanes &= ~lane;\n }\n ensureRootIsScheduled(fiber);\n 0 === (executionContext & 6) &&\n ((workInProgressRootRenderTargetTime = now() + 500),\n flushSyncWorkAcrossRoots_impl(0, !1));\n }\n }\n break;\n case 31:\n case 13:\n (root = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== root && scheduleUpdateOnFiber(root, fiber, 2),\n flushSyncWork$1(),\n markRetryLaneIfNotHydrated(fiber, 2);\n }\n fiber = findInstanceBlockingEvent(nativeEvent);\n null === fiber &&\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n );\n if (fiber === blockedOn) break;\n blockedOn = fiber;\n }\n null !== blockedOn && nativeEvent.stopPropagation();\n } else\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n null,\n targetContainer\n );\n }\n}\nfunction findInstanceBlockingEvent(nativeEvent) {\n nativeEvent = getEventTarget(nativeEvent);\n return findInstanceBlockingTarget(nativeEvent);\n}\nvar return_targetInst = null;\nfunction findInstanceBlockingTarget(targetNode) {\n return_targetInst = null;\n targetNode = getClosestInstanceFromNode(targetNode);\n if (null !== targetNode) {\n var nearestMounted = getNearestMountedFiber(targetNode);\n if (null === nearestMounted) targetNode = null;\n else {\n var tag = nearestMounted.tag;\n if (13 === tag) {\n targetNode = getSuspenseInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (31 === tag) {\n targetNode = getActivityInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (3 === tag) {\n if (nearestMounted.stateNode.current.memoizedState.isDehydrated)\n return 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n targetNode = null;\n } else nearestMounted !== targetNode && (targetNode = null);\n }\n }\n return_targetInst = targetNode;\n return null;\n}\nfunction getEventPriority(domEventName) {\n switch (domEventName) {\n case \"beforetoggle\":\n case \"cancel\":\n case \"click\":\n case \"close\":\n case \"contextmenu\":\n case \"copy\":\n case \"cut\":\n case \"auxclick\":\n case \"dblclick\":\n case \"dragend\":\n case \"dragstart\":\n case \"drop\":\n case \"focusin\":\n case \"focusout\":\n case \"input\":\n case \"invalid\":\n case \"keydown\":\n case \"keypress\":\n case \"keyup\":\n case \"mousedown\":\n case \"mouseup\":\n case \"paste\":\n case \"pause\":\n case \"play\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointerup\":\n case \"ratechange\":\n case \"reset\":\n case \"resize\":\n case \"seeked\":\n case \"submit\":\n case \"toggle\":\n case \"touchcancel\":\n case \"touchend\":\n case \"touchstart\":\n case \"volumechange\":\n case \"change\":\n case \"selectionchange\":\n case \"textInput\":\n case \"compositionstart\":\n case \"compositionend\":\n case \"compositionupdate\":\n case \"beforeblur\":\n case \"afterblur\":\n case \"beforeinput\":\n case \"blur\":\n case \"fullscreenchange\":\n case \"focus\":\n case \"hashchange\":\n case \"popstate\":\n case \"select\":\n case \"selectstart\":\n return 2;\n case \"drag\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"mousemove\":\n case \"mouseout\":\n case \"mouseover\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"scroll\":\n case \"touchmove\":\n case \"wheel\":\n case \"mouseenter\":\n case \"mouseleave\":\n case \"pointerenter\":\n case \"pointerleave\":\n return 8;\n case \"message\":\n switch (getCurrentPriorityLevel()) {\n case ImmediatePriority:\n return 2;\n case UserBlockingPriority:\n return 8;\n case NormalPriority$1:\n case LowPriority:\n return 32;\n case IdlePriority:\n return 268435456;\n default:\n return 32;\n }\n default:\n return 32;\n }\n}\nvar hasScheduledReplayAttempt = !1,\n queuedFocus = null,\n queuedDrag = null,\n queuedMouse = null,\n queuedPointers = new Map(),\n queuedPointerCaptures = new Map(),\n queuedExplicitHydrationTargets = [],\n discreteReplayableEvents =\n \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\n \" \"\n );\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"focusin\":\n case \"focusout\":\n queuedFocus = null;\n break;\n case \"dragenter\":\n case \"dragleave\":\n queuedDrag = null;\n break;\n case \"mouseover\":\n case \"mouseout\":\n queuedMouse = null;\n break;\n case \"pointerover\":\n case \"pointerout\":\n queuedPointers.delete(nativeEvent.pointerId);\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n queuedPointerCaptures.delete(nativeEvent.pointerId);\n }\n}\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(\n existingQueuedEvent,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n if (\n null === existingQueuedEvent ||\n existingQueuedEvent.nativeEvent !== nativeEvent\n )\n return (\n (existingQueuedEvent = {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n }),\n null !== blockedOn &&\n ((blockedOn = getInstanceFromNode(blockedOn)),\n null !== blockedOn && attemptContinuousHydration(blockedOn)),\n existingQueuedEvent\n );\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n blockedOn = existingQueuedEvent.targetContainers;\n null !== targetContainer &&\n -1 === blockedOn.indexOf(targetContainer) &&\n blockedOn.push(targetContainer);\n return existingQueuedEvent;\n}\nfunction queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n) {\n switch (domEventName) {\n case \"focusin\":\n return (\n (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedFocus,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"dragenter\":\n return (\n (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedDrag,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"mouseover\":\n return (\n (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedMouse,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"pointerover\":\n var pointerId = nativeEvent.pointerId;\n queuedPointers.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointers.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n );\n return !0;\n case \"gotpointercapture\":\n return (\n (pointerId = nativeEvent.pointerId),\n queuedPointerCaptures.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointerCaptures.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n ),\n !0\n );\n }\n return !1;\n}\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n if (null !== targetInst) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n if (null !== nearestMounted)\n if (((targetInst = nearestMounted.tag), 13 === targetInst)) {\n if (\n ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (31 === targetInst) {\n if (\n ((targetInst = getActivityInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (\n 3 === targetInst &&\n nearestMounted.stateNode.current.memoizedState.isDehydrated\n ) {\n queuedTarget.blockedOn =\n 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n return;\n }\n }\n queuedTarget.blockedOn = null;\n}\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (null !== queuedEvent.blockedOn) return !1;\n for (\n var targetContainers = queuedEvent.targetContainers;\n 0 < targetContainers.length;\n\n ) {\n var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);\n if (null === nextBlockedOn) {\n nextBlockedOn = queuedEvent.nativeEvent;\n var nativeEventClone = new nextBlockedOn.constructor(\n nextBlockedOn.type,\n nextBlockedOn\n );\n currentReplayingEvent = nativeEventClone;\n nextBlockedOn.target.dispatchEvent(nativeEventClone);\n currentReplayingEvent = null;\n } else\n return (\n (targetContainers = getInstanceFromNode(nextBlockedOn)),\n null !== targetContainers &&\n attemptContinuousHydration(targetContainers),\n (queuedEvent.blockedOn = nextBlockedOn),\n !1\n );\n targetContainers.shift();\n }\n return !0;\n}\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);\n}\nfunction replayUnblockedEvents() {\n hasScheduledReplayAttempt = !1;\n null !== queuedFocus &&\n attemptReplayContinuousQueuedEvent(queuedFocus) &&\n (queuedFocus = null);\n null !== queuedDrag &&\n attemptReplayContinuousQueuedEvent(queuedDrag) &&\n (queuedDrag = null);\n null !== queuedMouse &&\n attemptReplayContinuousQueuedEvent(queuedMouse) &&\n (queuedMouse = null);\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n queuedEvent.blockedOn === unblocked &&\n ((queuedEvent.blockedOn = null),\n hasScheduledReplayAttempt ||\n ((hasScheduledReplayAttempt = !0),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n replayUnblockedEvents\n )));\n}\nvar lastScheduledReplayQueue = null;\nfunction scheduleReplayQueueIfNeeded(formReplayingQueue) {\n lastScheduledReplayQueue !== formReplayingQueue &&\n ((lastScheduledReplayQueue = formReplayingQueue),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n function () {\n lastScheduledReplayQueue === formReplayingQueue &&\n (lastScheduledReplayQueue = null);\n for (var i = 0; i < formReplayingQueue.length; i += 3) {\n var form = formReplayingQueue[i],\n submitterOrAction = formReplayingQueue[i + 1],\n formData = formReplayingQueue[i + 2];\n if (\"function\" !== typeof submitterOrAction)\n if (null === findInstanceBlockingTarget(submitterOrAction || form))\n continue;\n else break;\n var formInst = getInstanceFromNode(form);\n null !== formInst &&\n (formReplayingQueue.splice(i, 3),\n (i -= 3),\n startHostTransition(\n formInst,\n {\n pending: !0,\n data: formData,\n method: form.method,\n action: submitterOrAction\n },\n submitterOrAction,\n formData\n ));\n }\n }\n ));\n}\nfunction retryIfBlockedOn(unblocked) {\n function unblock(queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n }\n null !== queuedFocus && scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n null !== queuedMouse && scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {\n var queuedTarget = queuedExplicitHydrationTargets[i];\n queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);\n }\n for (\n ;\n 0 < queuedExplicitHydrationTargets.length &&\n ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);\n\n )\n attemptExplicitHydrationTarget(i),\n null === i.blockedOn && queuedExplicitHydrationTargets.shift();\n i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;\n if (null != i)\n for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {\n var form = i[queuedTarget],\n submitterOrAction = i[queuedTarget + 1],\n formProps = form[internalPropsKey] || null;\n if (\"function\" === typeof submitterOrAction)\n formProps || scheduleReplayQueueIfNeeded(i);\n else if (formProps) {\n var action = null;\n if (submitterOrAction && submitterOrAction.hasAttribute(\"formAction\"))\n if (\n ((form = submitterOrAction),\n (formProps = submitterOrAction[internalPropsKey] || null))\n )\n action = formProps.formAction;\n else {\n if (null !== findInstanceBlockingTarget(form)) continue;\n }\n else action = formProps.action;\n \"function\" === typeof action\n ? (i[queuedTarget + 1] = action)\n : (i.splice(queuedTarget, 3), (queuedTarget -= 3));\n scheduleReplayQueueIfNeeded(i);\n }\n }\n}\nfunction defaultOnDefaultTransitionIndicator() {\n function handleNavigate(event) {\n event.canIntercept &&\n \"react-transition\" === event.info &&\n event.intercept({\n handler: function () {\n return new Promise(function (resolve) {\n return (pendingResolve = resolve);\n });\n },\n focusReset: \"manual\",\n scroll: \"manual\"\n });\n }\n function handleNavigateComplete() {\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n isCancelled || setTimeout(startFakeNavigation, 20);\n }\n function startFakeNavigation() {\n if (!isCancelled && !navigation.transition) {\n var currentEntry = navigation.currentEntry;\n currentEntry &&\n null != currentEntry.url &&\n navigation.navigate(currentEntry.url, {\n state: currentEntry.getState(),\n info: \"react-transition\",\n history: \"replace\"\n });\n }\n }\n if (\"object\" === typeof navigation) {\n var isCancelled = !1,\n pendingResolve = null;\n navigation.addEventListener(\"navigate\", handleNavigate);\n navigation.addEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.addEventListener(\"navigateerror\", handleNavigateComplete);\n setTimeout(startFakeNavigation, 100);\n return function () {\n isCancelled = !0;\n navigation.removeEventListener(\"navigate\", handleNavigate);\n navigation.removeEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.removeEventListener(\"navigateerror\", handleNavigateComplete);\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n };\n }\n}\nfunction ReactDOMRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =\n function (children) {\n var root = this._internalRoot;\n if (null === root) throw Error(formatProdErrorMessage(409));\n var current = root.current,\n lane = requestUpdateLane();\n updateContainerImpl(current, lane, children, root, null, null);\n };\nReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =\n function () {\n var root = this._internalRoot;\n if (null !== root) {\n this._internalRoot = null;\n var container = root.containerInfo;\n updateContainerImpl(root.current, 2, null, root, null, null);\n flushSyncWork$1();\n container[internalContainerInstanceKey] = null;\n }\n };\nfunction ReactDOMHydrationRoot(internalRoot) {\n this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {\n if (target) {\n var updatePriority = resolveUpdatePriority();\n target = { blockedOn: null, target: target, priority: updatePriority };\n for (\n var i = 0;\n i < queuedExplicitHydrationTargets.length &&\n 0 !== updatePriority &&\n updatePriority < queuedExplicitHydrationTargets[i].priority;\n i++\n );\n queuedExplicitHydrationTargets.splice(i, 0, target);\n 0 === i && attemptExplicitHydrationTarget(target);\n }\n};\nvar isomorphicReactPackageVersion$jscomp$inline_1838 = React.version;\nif (\n \"19.2.0-canary-97cdd5d3-20250710\" !==\n isomorphicReactPackageVersion$jscomp$inline_1838\n)\n throw Error(\n formatProdErrorMessage(\n 527,\n isomorphicReactPackageVersion$jscomp$inline_1838,\n \"19.2.0-canary-97cdd5d3-20250710\"\n )\n );\nReactDOMSharedInternals.findDOMNode = function (componentOrElement) {\n var fiber = componentOrElement._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof componentOrElement.render)\n throw Error(formatProdErrorMessage(188));\n componentOrElement = Object.keys(componentOrElement).join(\",\");\n throw Error(formatProdErrorMessage(268, componentOrElement));\n }\n componentOrElement = findCurrentFiberUsingSlowPath(fiber);\n componentOrElement =\n null !== componentOrElement\n ? findCurrentHostFiberImpl(componentOrElement)\n : null;\n componentOrElement =\n null === componentOrElement ? null : componentOrElement.stateNode;\n return componentOrElement;\n};\nvar internals$jscomp$inline_2331 = {\n bundleType: 0,\n version: \"19.2.0-canary-97cdd5d3-20250710\",\n rendererPackageName: \"react-dom\",\n currentDispatcherRef: ReactSharedInternals,\n reconcilerVersion: \"19.2.0-canary-97cdd5d3-20250710\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n var hook$jscomp$inline_2332 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (\n !hook$jscomp$inline_2332.isDisabled &&\n hook$jscomp$inline_2332.supportsFiber\n )\n try {\n (rendererID = hook$jscomp$inline_2332.inject(\n internals$jscomp$inline_2331\n )),\n (injectedHook = hook$jscomp$inline_2332);\n } catch (err) {}\n}\nexports.createRoot = function (container, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError));\n options = createFiberRoot(\n container,\n 1,\n !1,\n null,\n null,\n isStrictMode,\n identifierPrefix,\n null,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n container[internalContainerInstanceKey] = options.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMRoot(options);\n};\nexports.hydrateRoot = function (container, initialChildren, options) {\n if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError,\n formState = null;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError),\n void 0 !== options.formState && (formState = options.formState));\n initialChildren = createFiberRoot(\n container,\n 1,\n !0,\n initialChildren,\n null != options ? options : null,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n initialChildren.context = getContextForSubtree(null);\n options = initialChildren.current;\n isStrictMode = requestUpdateLane();\n isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);\n identifierPrefix = createUpdate(isStrictMode);\n identifierPrefix.callback = null;\n enqueueUpdate(options, identifierPrefix, isStrictMode);\n options = isStrictMode;\n initialChildren.current.lanes = options;\n markRootUpdated$1(initialChildren, options);\n ensureRootIsScheduled(initialChildren);\n container[internalContainerInstanceKey] = initialChildren.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMHydrationRoot(initialChildren);\n};\nexports.version = \"19.2.0-canary-97cdd5d3-20250710\";\n"],"names":[],"sourceRoot":"","ignoreList":[0]} \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/602-971d24b00f0aa11a.js b/opencut-ui/_next/static/chunks/602-971d24b00f0aa11a.js new file mode 100644 index 0000000..2b9dd22 --- /dev/null +++ b/opencut-ui/_next/static/chunks/602-971d24b00f0aa11a.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[602],{8059:(e,r,o)=>{o.d(r,{DX:()=>i,Dc:()=>d,TL:()=>s});var t=o(74188),n=o(89607),l=o(28064);function s(e){let r=function(e){let r=t.forwardRef((e,r)=>{let{children:o,...l}=e;if(t.isValidElement(o)){var s;let e,i,a=(s=o,(i=(e=Object.getOwnPropertyDescriptor(s.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.ref:(i=(e=Object.getOwnPropertyDescriptor(s,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.props.ref:s.props.ref||s.ref),d=function(e,r){let o={...r};for(let t in r){let n=e[t],l=r[t];/^on[A-Z]/.test(t)?n&&l?o[t]=(...e)=>{let r=l(...e);return n(...e),r}:n&&(o[t]=n):"style"===t?o[t]={...n,...l}:"className"===t&&(o[t]=[n,l].filter(Boolean).join(" "))}return{...e,...o}}(l,o.props);return o.type!==t.Fragment&&(d.ref=r?(0,n.t)(r,a):a),t.cloneElement(o,d)}return t.Children.count(o)>1?t.Children.only(null):null});return r.displayName=`${e}.SlotClone`,r}(e),o=t.forwardRef((e,o)=>{let{children:n,...s}=e,i=t.Children.toArray(n),a=i.find(c);if(a){let e=a.props.children,n=i.map(r=>r!==a?r:t.Children.count(e)>1?t.Children.only(null):t.isValidElement(e)?e.props.children:null);return(0,l.jsx)(r,{...s,ref:o,children:t.isValidElement(e)?t.cloneElement(e,void 0,n):null})}return(0,l.jsx)(r,{...s,ref:o,children:n})});return o.displayName=`${e}.Slot`,o}var i=s("Slot"),a=Symbol("radix.slottable");function d(e){let r=({children:e})=>(0,l.jsx)(l.Fragment,{children:e});return r.displayName=`${e}.Slottable`,r.__radixId=a,r}function c(e){return t.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===a}},14234:(e,r,o)=>{o.d(r,{QP:()=>q});let t=(e,r)=>{if(0===e.length)return r.classGroupId;let o=e[0],n=r.nextPart.get(o),l=n?t(e.slice(1),n):void 0;if(l)return l;if(0===r.validators.length)return;let s=e.join("-");return r.validators.find(({validator:e})=>e(s))?.classGroupId},n=/^\[(.+)\]$/,l=(e,r,o,t)=>{e.forEach(e=>{if("string"==typeof e){(""===e?r:s(r,e)).classGroupId=o;return}if("function"==typeof e)return i(e)?void l(e(t),r,o,t):void r.validators.push({validator:e,classGroupId:o});Object.entries(e).forEach(([e,n])=>{l(n,s(r,e),o,t)})})},s=(e,r)=>{let o=e;return r.split("-").forEach(e=>{o.nextPart.has(e)||o.nextPart.set(e,{nextPart:new Map,validators:[]}),o=o.nextPart.get(e)}),o},i=e=>e.isThemeGetter,a=(e,r)=>r?e.map(([e,o])=>[e,o.map(e=>"string"==typeof e?r+e:"object"==typeof e?Object.fromEntries(Object.entries(e).map(([e,o])=>[r+e,o])):e)]):e,d=e=>{if(e.length<=1)return e;let r=[],o=[];return e.forEach(e=>{"["===e[0]?(r.push(...o.sort(),e),o=[]):o.push(e)}),r.push(...o.sort()),r},c=/\s+/;function p(){let e,r,o=0,t="";for(;o<arguments.length;)(e=arguments[o++])&&(r=u(e))&&(t&&(t+=" "),t+=r);return t}let u=e=>{let r;if("string"==typeof e)return e;let o="";for(let t=0;t<e.length;t++)e[t]&&(r=u(e[t]))&&(o&&(o+=" "),o+=r);return o},b=e=>{let r=r=>r[e]||[];return r.isThemeGetter=!0,r},f=/^\[(?:([a-z-]+):)?(.+)\]$/i,m=/^\d+\/\d+$/,g=new Set(["px","full","screen"]),h=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,y=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,x=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,v=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,w=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,k=e=>j(e)||g.has(e)||m.test(e),z=e=>M(e,"length",A),j=e=>!!e&&!Number.isNaN(Number(e)),C=e=>M(e,"number",j),S=e=>!!e&&Number.isInteger(Number(e)),E=e=>e.endsWith("%")&&j(e.slice(0,-1)),N=e=>f.test(e),P=e=>h.test(e),_=new Set(["length","size","percentage"]),G=e=>M(e,_,D),$=e=>M(e,"position",D),R=new Set(["image","url"]),I=e=>M(e,R,V),O=e=>M(e,"",T),W=()=>!0,M=(e,r,o)=>{let t=f.exec(e);return!!t&&(t[1]?"string"==typeof r?t[1]===r:r.has(t[1]):o(t[2]))},A=e=>y.test(e)&&!x.test(e),D=()=>!1,T=e=>v.test(e),V=e=>w.test(e);Symbol.toStringTag;let q=function(e,...r){let o,s,i,u=function(d){let c;return s=(o={cache:(e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let r=0,o=new Map,t=new Map,n=(n,l)=>{o.set(n,l),++r>e&&(r=0,t=o,o=new Map)};return{get(e){let r=o.get(e);return void 0!==r?r:void 0!==(r=t.get(e))?(n(e,r),r):void 0},set(e,r){o.has(e)?o.set(e,r):n(e,r)}}})((c=r.reduce((e,r)=>r(e),e())).cacheSize),parseClassName:(e=>{let{separator:r,experimentalParseClassName:o}=e,t=1===r.length,n=r[0],l=r.length,s=e=>{let o,s=[],i=0,a=0;for(let d=0;d<e.length;d++){let c=e[d];if(0===i){if(c===n&&(t||e.slice(d,d+l)===r)){s.push(e.slice(a,d)),a=d+l;continue}if("/"===c){o=d;continue}}"["===c?i++:"]"===c&&i--}let d=0===s.length?e:e.substring(a),c=d.startsWith("!"),p=c?d.substring(1):d;return{modifiers:s,hasImportantModifier:c,baseClassName:p,maybePostfixModifierPosition:o&&o>a?o-a:void 0}};return o?e=>o({className:e,parseClassName:s}):s})(c),...(e=>{let r=(e=>{let{theme:r,prefix:o}=e,t={nextPart:new Map,validators:[]};return a(Object.entries(e.classGroups),o).forEach(([e,o])=>{l(o,t,e,r)}),t})(e),{conflictingClassGroups:o,conflictingClassGroupModifiers:s}=e;return{getClassGroupId:e=>{let o=e.split("-");return""===o[0]&&1!==o.length&&o.shift(),t(o,r)||(e=>{if(n.test(e)){let r=n.exec(e)[1],o=r?.substring(0,r.indexOf(":"));if(o)return"arbitrary.."+o}})(e)},getConflictingClassGroupIds:(e,r)=>{let t=o[e]||[];return r&&s[e]?[...t,...s[e]]:t}}})(c)}).cache.get,i=o.cache.set,u=b,b(d)};function b(e){let r=s(e);if(r)return r;let t=((e,r)=>{let{parseClassName:o,getClassGroupId:t,getConflictingClassGroupIds:n}=r,l=[],s=e.trim().split(c),i="";for(let e=s.length-1;e>=0;e-=1){let r=s[e],{modifiers:a,hasImportantModifier:c,baseClassName:p,maybePostfixModifierPosition:u}=o(r),b=!!u,f=t(b?p.substring(0,u):p);if(!f){if(!b||!(f=t(p))){i=r+(i.length>0?" "+i:i);continue}b=!1}let m=d(a).join(":"),g=c?m+"!":m,h=g+f;if(l.includes(h))continue;l.push(h);let y=n(f,b);for(let e=0;e<y.length;++e){let r=y[e];l.push(g+r)}i=r+(i.length>0?" "+i:i)}return i})(e,o);return i(e,t),t}return function(){return u(p.apply(null,arguments))}}(()=>{let e=b("colors"),r=b("spacing"),o=b("blur"),t=b("brightness"),n=b("borderColor"),l=b("borderRadius"),s=b("borderSpacing"),i=b("borderWidth"),a=b("contrast"),d=b("grayscale"),c=b("hueRotate"),p=b("invert"),u=b("gap"),f=b("gradientColorStops"),m=b("gradientColorStopPositions"),g=b("inset"),h=b("margin"),y=b("opacity"),x=b("padding"),v=b("saturate"),w=b("scale"),_=b("sepia"),R=b("skew"),M=b("space"),A=b("translate"),D=()=>["auto","contain","none"],T=()=>["auto","hidden","clip","visible","scroll"],V=()=>["auto",N,r],q=()=>[N,r],F=()=>["",k,z],B=()=>["auto",j,N],L=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],Q=()=>["solid","dashed","dotted","double","none"],X=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],Z=()=>["start","end","center","between","around","evenly","stretch"],H=()=>["","0",N],J=()=>["auto","avoid","all","avoid-page","page","left","right","column"],K=()=>[j,N];return{cacheSize:500,separator:":",theme:{colors:[W],spacing:[k,z],blur:["none","",P,N],brightness:K(),borderColor:[e],borderRadius:["none","","full",P,N],borderSpacing:q(),borderWidth:F(),contrast:K(),grayscale:H(),hueRotate:K(),invert:H(),gap:q(),gradientColorStops:[e],gradientColorStopPositions:[E,z],inset:V(),margin:V(),opacity:K(),padding:q(),saturate:K(),scale:K(),sepia:H(),skew:K(),space:q(),translate:q()},classGroups:{aspect:[{aspect:["auto","square","video",N]}],container:["container"],columns:[{columns:[P]}],"break-after":[{"break-after":J()}],"break-before":[{"break-before":J()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...L(),N]}],overflow:[{overflow:T()}],"overflow-x":[{"overflow-x":T()}],"overflow-y":[{"overflow-y":T()}],overscroll:[{overscroll:D()}],"overscroll-x":[{"overscroll-x":D()}],"overscroll-y":[{"overscroll-y":D()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[g]}],"inset-x":[{"inset-x":[g]}],"inset-y":[{"inset-y":[g]}],start:[{start:[g]}],end:[{end:[g]}],top:[{top:[g]}],right:[{right:[g]}],bottom:[{bottom:[g]}],left:[{left:[g]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",S,N]}],basis:[{basis:V()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",N]}],grow:[{grow:H()}],shrink:[{shrink:H()}],order:[{order:["first","last","none",S,N]}],"grid-cols":[{"grid-cols":[W]}],"col-start-end":[{col:["auto",{span:["full",S,N]},N]}],"col-start":[{"col-start":B()}],"col-end":[{"col-end":B()}],"grid-rows":[{"grid-rows":[W]}],"row-start-end":[{row:["auto",{span:[S,N]},N]}],"row-start":[{"row-start":B()}],"row-end":[{"row-end":B()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",N]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",N]}],gap:[{gap:[u]}],"gap-x":[{"gap-x":[u]}],"gap-y":[{"gap-y":[u]}],"justify-content":[{justify:["normal",...Z()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...Z(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...Z(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[x]}],px:[{px:[x]}],py:[{py:[x]}],ps:[{ps:[x]}],pe:[{pe:[x]}],pt:[{pt:[x]}],pr:[{pr:[x]}],pb:[{pb:[x]}],pl:[{pl:[x]}],m:[{m:[h]}],mx:[{mx:[h]}],my:[{my:[h]}],ms:[{ms:[h]}],me:[{me:[h]}],mt:[{mt:[h]}],mr:[{mr:[h]}],mb:[{mb:[h]}],ml:[{ml:[h]}],"space-x":[{"space-x":[M]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[M]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",N,r]}],"min-w":[{"min-w":[N,r,"min","max","fit"]}],"max-w":[{"max-w":[N,r,"none","full","min","max","fit","prose",{screen:[P]},P]}],h:[{h:[N,r,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[N,r,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[N,r,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[N,r,"auto","min","max","fit"]}],"font-size":[{text:["base",P,z]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",C]}],"font-family":[{font:[W]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",N]}],"line-clamp":[{"line-clamp":["none",j,C]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",k,N]}],"list-image":[{"list-image":["none",N]}],"list-style-type":[{list:["none","disc","decimal",N]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[y]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[y]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Q(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",k,z]}],"underline-offset":[{"underline-offset":["auto",k,N]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:q()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",N]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",N]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[y]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...L(),$]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",G]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},I]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[f]}],"gradient-via":[{via:[f]}],"gradient-to":[{to:[f]}],rounded:[{rounded:[l]}],"rounded-s":[{"rounded-s":[l]}],"rounded-e":[{"rounded-e":[l]}],"rounded-t":[{"rounded-t":[l]}],"rounded-r":[{"rounded-r":[l]}],"rounded-b":[{"rounded-b":[l]}],"rounded-l":[{"rounded-l":[l]}],"rounded-ss":[{"rounded-ss":[l]}],"rounded-se":[{"rounded-se":[l]}],"rounded-ee":[{"rounded-ee":[l]}],"rounded-es":[{"rounded-es":[l]}],"rounded-tl":[{"rounded-tl":[l]}],"rounded-tr":[{"rounded-tr":[l]}],"rounded-br":[{"rounded-br":[l]}],"rounded-bl":[{"rounded-bl":[l]}],"border-w":[{border:[i]}],"border-w-x":[{"border-x":[i]}],"border-w-y":[{"border-y":[i]}],"border-w-s":[{"border-s":[i]}],"border-w-e":[{"border-e":[i]}],"border-w-t":[{"border-t":[i]}],"border-w-r":[{"border-r":[i]}],"border-w-b":[{"border-b":[i]}],"border-w-l":[{"border-l":[i]}],"border-opacity":[{"border-opacity":[y]}],"border-style":[{border:[...Q(),"hidden"]}],"divide-x":[{"divide-x":[i]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[i]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[y]}],"divide-style":[{divide:Q()}],"border-color":[{border:[n]}],"border-color-x":[{"border-x":[n]}],"border-color-y":[{"border-y":[n]}],"border-color-s":[{"border-s":[n]}],"border-color-e":[{"border-e":[n]}],"border-color-t":[{"border-t":[n]}],"border-color-r":[{"border-r":[n]}],"border-color-b":[{"border-b":[n]}],"border-color-l":[{"border-l":[n]}],"divide-color":[{divide:[n]}],"outline-style":[{outline:["",...Q()]}],"outline-offset":[{"outline-offset":[k,N]}],"outline-w":[{outline:[k,z]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:F()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[y]}],"ring-offset-w":[{"ring-offset":[k,z]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",P,O]}],"shadow-color":[{shadow:[W]}],opacity:[{opacity:[y]}],"mix-blend":[{"mix-blend":[...X(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":X()}],filter:[{filter:["","none"]}],blur:[{blur:[o]}],brightness:[{brightness:[t]}],contrast:[{contrast:[a]}],"drop-shadow":[{"drop-shadow":["","none",P,N]}],grayscale:[{grayscale:[d]}],"hue-rotate":[{"hue-rotate":[c]}],invert:[{invert:[p]}],saturate:[{saturate:[v]}],sepia:[{sepia:[_]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[o]}],"backdrop-brightness":[{"backdrop-brightness":[t]}],"backdrop-contrast":[{"backdrop-contrast":[a]}],"backdrop-grayscale":[{"backdrop-grayscale":[d]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[c]}],"backdrop-invert":[{"backdrop-invert":[p]}],"backdrop-opacity":[{"backdrop-opacity":[y]}],"backdrop-saturate":[{"backdrop-saturate":[v]}],"backdrop-sepia":[{"backdrop-sepia":[_]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[s]}],"border-spacing-x":[{"border-spacing-x":[s]}],"border-spacing-y":[{"border-spacing-y":[s]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",N]}],duration:[{duration:K()}],ease:[{ease:["linear","in","out","in-out",N]}],delay:[{delay:K()}],animate:[{animate:["none","spin","ping","pulse","bounce",N]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[w]}],"scale-x":[{"scale-x":[w]}],"scale-y":[{"scale-y":[w]}],rotate:[{rotate:[S,N]}],"translate-x":[{"translate-x":[A]}],"translate-y":[{"translate-y":[A]}],"skew-x":[{"skew-x":[R]}],"skew-y":[{"skew-y":[R]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",N]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",N]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":q()}],"scroll-mx":[{"scroll-mx":q()}],"scroll-my":[{"scroll-my":q()}],"scroll-ms":[{"scroll-ms":q()}],"scroll-me":[{"scroll-me":q()}],"scroll-mt":[{"scroll-mt":q()}],"scroll-mr":[{"scroll-mr":q()}],"scroll-mb":[{"scroll-mb":q()}],"scroll-ml":[{"scroll-ml":q()}],"scroll-p":[{"scroll-p":q()}],"scroll-px":[{"scroll-px":q()}],"scroll-py":[{"scroll-py":q()}],"scroll-ps":[{"scroll-ps":q()}],"scroll-pe":[{"scroll-pe":q()}],"scroll-pt":[{"scroll-pt":q()}],"scroll-pr":[{"scroll-pr":q()}],"scroll-pb":[{"scroll-pb":q()}],"scroll-pl":[{"scroll-pl":q()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",N]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[k,z,C]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}})},54083:(e,r,o)=>{o.d(r,{$:()=>t});function t(){for(var e,r,o=0,t="",n=arguments.length;o<n;o++)(e=arguments[o])&&(r=function e(r){var o,t,n="";if("string"==typeof r||"number"==typeof r)n+=r;else if("object"==typeof r)if(Array.isArray(r)){var l=r.length;for(o=0;o<l;o++)r[o]&&(t=e(r[o]))&&(n&&(n+=" "),n+=t)}else for(t in r)r[t]&&(n&&(n+=" "),n+=t);return n}(e))&&(t&&(t+=" "),t+=r);return t}},89607:(e,r,o)=>{o.d(r,{s:()=>s,t:()=>l});var t=o(74188);function n(e,r){if("function"==typeof e)return e(r);null!=e&&(e.current=r)}function l(...e){return r=>{let o=!1,t=e.map(e=>{let t=n(e,r);return o||"function"!=typeof t||(o=!0),t});if(o)return()=>{for(let r=0;r<t.length;r++){let o=t[r];"function"==typeof o?o():n(e[r],null)}}}}function s(...e){return t.useCallback(l(...e),e)}}}]); +//# sourceMappingURL=602-971d24b00f0aa11a.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/602-971d24b00f0aa11a.js.map b/opencut-ui/_next/static/chunks/602-971d24b00f0aa11a.js.map new file mode 100644 index 0000000..1ff6876 --- /dev/null +++ b/opencut-ui/_next/static/chunks/602-971d24b00f0aa11a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/602-971d24b00f0aa11a.js","mappings":"oKAKA,cACA,MAwBA,YACA,MAAoB,YAAgB,SACpC,aAAY,QAAyB,EACrC,GAAQ,gBAAoB,SAmD5B,MACA,EACA,EApDA,GAkDA,EAlDA,EAqDA,CADA,GADA,wDACA,wCAEA,MAGA,GADA,mDACA,wCAEA,YAEA,oBA5DA,WAyBA,KACA,OAA0B,MAC1B,gBACA,WACA,OACA,mBAEA,KACA,cACA,cAEA,OADA,QACA,CACA,EACQ,GACR,SAEM,YACN,MAAkC,WAC5B,iBACN,sCAEA,CACA,OAAW,UACX,EAhDA,WAIA,OAHA,SAA4B,UAAc,EAC1C,SAAoC,OAAW,SAElC,cAAkB,KAC/B,CACA,OAAW,UAAc,YAAuB,UAAc,gBAC9D,CAAG,EAEH,OADA,iBAA6B,EAAU,YACvC,CACA,EAvCA,GACA,EAAgB,YAAgB,SAChC,aAAY,QAAyB,EACrC,EAA0B,UAAc,YACxC,YACA,MACA,uBACA,WACA,MAIA,EAHA,EAAc,QAAc,YAA+B,UAAc,YACxD,gBAAoB,2BAKrC,MAA6B,SAAG,IAAc,oBAA2C,gBAAoB,IAAe,cAAkB,kBAA0C,CACxL,CACA,MAA2B,SAAG,IAAc,sBAA2C,CACvF,CAAG,EAEH,OADA,iBAAyB,EAAU,OACnC,CACA,CACA,gBAkBA,4BAEA,cACA,iBAAwB,EAAU,GACP,SAAG,CAAC,UAAS,WAAI,EAAU,EAItD,OAFA,iBAA8B,EAAU,YACxC,cACA,CACA,CAEA,cACA,OAAS,gBAAoB,0EAC7B,qCChCA,cACA,gBACA,sBAEA,WACA,oBACA,2BACA,KACA,SAEA,2BACA,OAEA,aAxCA,KAyCA,2BACA,YACG,sBACH,EACA,eA6BA,cACA,cACA,uBACA,kBACA,eACA,MACA,CACA,+BACA,UACA,mBAGA,mBACA,YACA,cACA,CAAO,EAGP,oCACA,eACA,CAAK,CACL,CAAG,CACH,EACA,UACA,QAUA,OATA,QAnGA,KAmGA,YACA,mBACA,kBACA,iBACA,cACO,EAEP,mBACA,CAAG,EACH,CACA,EACA,qBACA,SACA,EAGA,eAUA,GATA,SACA,mBACA,IAEA,mBACA,4DAEA,GAEA,EAZA,EAkHA,MACA,eACA,SAEA,SACA,KAWA,OAVA,cACA,YAEA,sBACA,MAEA,SAEA,CAAG,EACH,oBACA,CACA,EAMA,QAqEA,aACA,IACA,EACA,EAFA,IAGA,KACA,yBACA,oBACA,WACA,YACA,MAIA,QACA,CACA,cAIA,EAHA,sBACA,SAGA,SACA,YAAkB,WAAgB,IAClC,MACA,cACA,YACA,MAIA,QACA,EA2BA,MACA,kBAEA,OADA,mBACA,CACA,EACA,+BACA,eACA,kCACA,qCACA,8HACA,6CAEA,oEACA,iGACA,+BACA,qBACA,mCACA,qBACA,sCACA,uCACA,eACA,eACA,0CACA,cACA,uBACA,2BACA,cACA,eACA,SACA,YACA,sBACA,KACA,MACA,wCAEA,OADA,CAIA,EACA,KAIA,sBACA,SACA,eACA,cACA,CAeC,kBAEA,CAokED,MA9pEA,iBAIA,IAHA,EACA,EACA,EACA,EACA,gBA9GA,EAoHA,OAHA,EADA,GAhHA,CACA,OApHA,IACA,OACA,OACA,eACA,UACA,EAEA,QACA,UACA,UACA,UACA,aAEA,MACA,IACA,IACA,UAEA,EACA,OACA,OACA,sBACA,WACA,EAEA,uBACA,OACA,SAEA,CAAK,CACL,SACA,SACA,WAEA,MAEA,CACA,EACA,EA8EA,CADA,EA+GA,2BA9GA,WACA,eA7EA,KACA,IACA,YACA,6BACA,CAAI,EACJ,eACA,OACA,WAEA,MACA,IAGA,EAHA,KACA,IACA,IAEA,YAAwB,WAA0B,KAClD,WACA,UACA,mCACA,qBACA,MACA,QACA,CACA,YACA,IACA,QACA,CACA,CACA,QACA,IACQ,SACR,GAEA,CACA,oCACA,eAnCA,KAoCA,qBAEA,OACA,YACA,uBACA,gBACA,6BALA,iBAMA,CACA,SACA,EACA,MACA,YACA,gBACA,CAAK,EAEL,EACA,EA0BA,GACA,GAvPA,KACA,OAyDA,IACA,IACA,QACA,SACA,CAAI,EACJ,GACA,iBACA,eAMA,OAJA,mCACA,kBACA,UACA,CAAG,EACH,EACA,EAvEA,GACA,CACA,yBACA,iCACA,CAAI,EAgBJ,OACA,gBAhBA,IACA,cARA,KAaA,MAHA,yBACA,UAEA,SAiCA,IACA,cACA,mBACA,iCACA,KAEA,qBAEA,EACA,EA1CA,EACA,EAUA,4BATA,QACA,sBACA,QACA,eAEA,CACA,CAIA,EACA,EA8NA,GACC,EA6GD,UACA,cACA,IACA,IACA,EACA,cACA,WACA,KACA,SAEA,OArHA,QACA,IACA,iBACA,kBACA,8BACA,CAAI,EAQJ,KACA,oBACA,KACA,qBAA0C,KAAY,MACtD,WACA,CACA,YACA,uBACA,gBACA,+BACA,CAAM,KACN,MACA,0BACA,OACA,OAMA,CADA,SALA,CAEA,yBACA,QACA,CAOA,IACA,CACA,qBACA,MA3HA,IA2HA,EACA,MACA,iBAEA,SAEA,UACA,aACA,YAAoB,WAA2B,KAC/C,WACA,WACA,CAEA,wBACA,CACA,QACA,GA4DA,KAEA,OADA,OACA,CACA,CACA,kBACA,iCACA,CACA,EAkEA,KACA,kBACA,eACA,YACA,kBACA,mBACA,oBACA,qBACA,mBACA,gBACA,iBACA,iBACA,cACA,WACA,0BACA,kCACA,aACA,cACA,eACA,eACA,gBACA,aACA,aACA,YACA,aACA,iBACA,gCACA,kDACA,mBACA,YACA,eACA,mBACA,mGACA,kDACA,wLACA,qEACA,iBACA,yEACA,YACA,OACA,cACA,cACA,OACA,WACA,cACA,qBACA,eACA,gBACA,oCACA,kBACA,gBACA,aACA,cACA,cACA,WACA,QACA,uBACA,iCACA,UACA,WACA,YACA,YACA,aACA,UACA,UACA,SACA,UACA,aACA,CAAK,CACL,aAMA,SACA,kCACA,CAAO,EAKP,wBAKA,UACA,YACO,EAKP,gBACA,iBACA,CAAO,EAKP,iBACA,kBACA,CAAO,EAKP,iBACA,4DACO,EAKP,mBACA,mCACO,EAKP,MACA,yBACO,EAKP,gSAKA,QACA,4CACO,EAKP,QACA,mDACO,EAKP,uCAKA,eACA,sDACO,EAKP,oBACA,kBACO,EAKP,WACA,YACA,CAAO,EAKP,eACA,gBACA,CAAO,EAKP,eACA,gBACA,CAAO,EAKP,aACA,cACA,CAAO,EAKP,iBACA,kBACA,CAAO,EAKP,iBACA,kBACA,CAAO,EAKP,2DAKA,QACA,UACO,EAKP,YACA,cACO,EAKP,YACA,aACA,CAAO,EAKP,QACA,UACO,EAKP,MACA,QACO,EAKP,MACA,QACO,EAKP,QACA,UACO,EAKP,SACA,WACO,EAKP,OACA,SACO,EAKP,8CAKA,IACA,eACO,EAMP,QACA,SACA,CAAO,EAKP,mBACA,+CACO,EAKP,cACA,sCACO,EAKP,OACA,qCACO,EAKP,OACA,QACA,CAAO,EAKP,SACA,UACA,CAAO,EAKP,QACA,kCACO,EAKP,cACA,gBACO,EAKP,kBACA,aACA,kBACS,IACF,EAKP,cACA,eACA,CAAO,EAKP,YACA,aACA,CAAO,EAKP,cACA,gBACO,EAKP,kBACA,aACA,WACS,GACT,CAAO,EAKP,cACA,eACA,CAAO,EAKP,YACA,aACA,CAAO,EAKP,cACA,0DACO,EAKP,cACA,wCACO,EAKP,cACA,wCACO,EAKP,MACA,OACA,CAAO,EAKP,UACA,YACO,EAKP,UACA,YACO,EAKP,oBACA,0BACO,EAKP,kBACA,mDACO,EAKP,iBACA,yDACO,EAKP,kBACA,qCACO,EAKP,gBACA,oDACO,EAKP,eACA,0DACO,EAKP,kBACA,oCACO,EAKP,gBACA,4DACO,EAKP,eACA,sDACA,CAAO,EAMP,IACA,MACO,EAKP,KACA,OACO,EAKP,KACA,OACO,EAKP,KACA,OACO,EAKP,KACA,MACA,CAAO,EAKP,KACA,OACO,EAKP,KACA,OACO,EAKP,KACA,OACO,EAKP,KACA,OACO,EAKP,IACA,KACA,CAAO,EAKP,KACA,OACO,EAKP,KACA,OACO,EAKP,KACA,OACO,EAKP,KACA,OACO,EAKP,KACA,OACO,EAKP,KACA,OACO,EAKP,KACA,OACO,EAKP,KACA,OACO,EAKP,YACA,aACA,CAAO,EAKP,sCAKA,YACA,cACO,EAKP,sCAMA,IACA,mDACO,EAKP,UACA,+BACA,CAAO,EAKP,UACA,sDACA,WACS,IACF,EAKP,IACA,mDACO,EAKP,UACA,kDACO,EAKP,UACA,kDACO,EAKP,OACA,oCACO,EAMP,cACA,kBACO,EAKP,wDAKA,qCAKA,gBACA,6FACO,EAKP,gBACA,SACO,EAKP,6BAKA,0BAKA,oCAKA,6CAKA,mDAKA,0DAKA,WACA,gEACO,EAKP,eACA,0BACO,EAKP,UACA,8DACA,CAAO,EAKP,eACA,wBACO,EAKP,oBACA,iCACO,EAKP,wBACA,0BACO,EAMP,sBACA,gBACO,EAKP,wBACA,0BACO,EAKP,mBACA,uDACO,EAKP,eACA,SACO,EAKP,iBACA,mBACO,EAKP,yEAKA,0BACA,2BACO,EAKP,8BACA,oCACO,EAKP,qBACA,gCACO,EAKP,0BACA,eACO,EAKP,sEAKA,yDAKA,cACA,yCACA,CAAO,EAKP,SACA,UACA,CAAO,EAKP,mBACA,oFACO,EAKP,aACA,0EACO,EAKP,QACA,sCACO,EAKP,UACA,iCACO,EAKP,UACA,kBACA,CAAO,EAMP,kBACA,8BACO,EAKP,YACA,gDACO,EAMP,eACA,iBACO,EAKP,cACA,2CACO,EAKP,gBACA,cACO,EAKP,cACA,iBACA,oCACS,EACF,EAKP,YACA,gCACO,EAKP,aACA,YACA,oDACS,GACT,CAAO,EAKP,aACA,OACO,EAKP,sBACA,SACO,EAKP,qBACA,QACO,EAKP,oBACA,OACO,EAKP,kBACA,SACO,EAKP,iBACA,QACO,EAKP,gBACA,OACO,EAMP,UACA,WACA,CAAO,EAKP,cACA,gBACO,EAKP,cACA,gBACO,EAKP,cACA,gBACO,EAKP,cACA,gBACO,EAKP,cACA,gBACO,EAKP,cACA,gBACO,EAKP,eACA,iBACO,EAKP,eACA,iBACO,EAKP,eACA,iBACO,EAKP,eACA,iBACO,EAKP,eACA,iBACO,EAKP,eACA,iBACO,EAKP,eACA,gBACA,CAAO,EAKP,eACA,iBACO,EAKP,aACA,WACO,EAKP,eACA,eACO,EAKP,eACA,eACO,EAKP,eACA,eACO,EAKP,eACA,cACA,CAAO,EAKP,eACA,eACO,EAKP,eACA,eACO,EAKP,eACA,eACO,EAKP,eACA,eACO,EAKP,mBACA,qBACO,EAKP,iBACA,yBACO,EAKP,aACA,eACO,EAKP,wCAKA,aACA,eACO,EAKP,wCAKA,mBACA,qBACO,EAKP,iBACA,UACA,CAAO,EAKP,iBACA,WACO,EAKP,mBACA,eACO,EAKP,mBACA,cACA,CAAO,EAKP,mBACA,eACO,EAKP,mBACA,eACO,EAKP,mBACA,eACO,EAKP,mBACA,eACO,EAKP,mBACA,cACA,CAAO,EAKP,mBACA,eACO,EAKP,iBACA,WACO,EAKP,kBACA,oBACO,EAKP,mBACA,uBACO,EAKP,cACA,cACO,EAKP,kBACA,YACO,EAKP,WACA,QACA,CAAO,EAKP,8BAKA,eACA,SACO,EAKP,iBACA,mBACO,EAKP,kBACA,oBACO,EAKP,sBACA,kBACO,EAMP,SACA,+BACO,EAKP,iBACA,WACO,EAKP,UACA,YACO,EAKP,cACA,kDACO,EAKP,aACA,cACA,CAAO,EAOP,SACA,mBACO,EAKP,OACA,SACO,EAKP,aACA,eACO,EAKP,WACA,aACO,EAKP,gBACA,8BACO,EAKP,YACA,cACO,EAKP,eACA,iBACO,EAKP,SACA,WACO,EAKP,WACA,aACO,EAKP,QACA,UACO,EAMP,oBACA,8BACO,EAKP,kBACA,oBACO,EAKP,wBACA,0BACO,EAKP,sBACA,wBACO,EAKP,uBACA,yBACO,EAKP,wBACA,0BACO,EAKP,oBACA,sBACO,EAKP,qBACA,uBACO,EAKP,sBACA,wBACO,EAKP,mBACA,qBACO,EAMP,oBACA,+BACO,EAKP,mBACA,qBACO,EAKP,qBACA,uBACO,EAKP,qBACA,uBACO,EAKP,iBACA,sBACA,CAAO,EAKP,UACA,wBACA,CAAO,EAMP,aACA,uEACO,EAKP,WACA,YACA,CAAO,EAKP,OACA,sCACO,EAKP,QACA,SACA,CAAO,EAKP,UACA,kDACO,EAMP,YACA,4BACO,EAKP,QACA,UACO,EAKP,YACA,aACA,CAAO,EAKP,YACA,cACO,EAKP,SACA,YACA,CAAO,EAKP,gBACA,kBACO,EAKP,gBACA,kBACO,EAKP,WACA,aACO,EAKP,WACA,aACO,EAKP,qBACA,sGACO,EAMP,SACA,kBACO,EAKP,aACA,2BACO,EAKP,SACA,2YACO,EAKP,gBACA,UACO,EAKP,mBACA,iCACO,EAKP,SACA,2BACO,EAKP,oBACA,wBACA,CAAO,EAKP,aACA,cACA,CAAO,EAKP,cACA,eACA,CAAO,EAKP,cACA,eACA,CAAO,EAKP,cACA,eACA,CAAO,EAKP,cACA,eACA,CAAO,EAKP,cACA,eACA,CAAO,EAKP,cACA,eACA,CAAO,EAKP,cACA,eACA,CAAO,EAKP,cACA,eACA,CAAO,EAKP,aACA,cACA,CAAO,EAKP,cACA,eACA,CAAO,EAKP,cACA,eACA,CAAO,EAKP,cACA,eACA,CAAO,EAKP,cACA,eACA,CAAO,EAKP,cACA,eACA,CAAO,EAKP,cACA,eACA,CAAO,EAKP,cACA,eACA,CAAO,EAKP,cACA,eACA,CAAO,EAKP,eACA,2CACO,EAKP,cACA,yBACO,EAKP,cACA,6BACO,EAKP,oBACA,+BACO,EAKP,QACA,qCACO,EAKP,YACA,iCACO,EAKP,YACA,8BACO,EAKP,gCAKA,SACA,oCACO,EAKP,gBACA,wDACA,CAAO,EAMP,OACA,gBACO,EAKP,aACA,eACO,EAKP,SACA,kBACO,EAMP,6BAKA,wBACA,sCACO,EACF,CACL,wBACA,qCACA,2CACA,wEACA,2BACA,2BACA,+BACA,sBACA,4CACA,eACA,eACA,4CACA,eACA,eACA,eACA,wBACA,0FACA,6BACA,kCACA,4BACA,6BACA,8BACA,oCACA,0LACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,yDACA,2FACA,yCACA,yCACA,uHACA,qDACA,qDACA,6GACA,sCACA,sCACA,6GACA,sCACA,sCACA,uCACA,oBACA,oBACA,qBACK,CACL,gCACA,wBAEA,CACA,qCC38EwP,aAAgB,wCAAwC,IAAI,kCAApT,KAAc,aAAa,+CAA+C,gDAAgD,eAAe,QAAQ,IAAI,0CAA0C,yCAAyC,UAA4E,wBAAmD,SAAS,0DCEhX,YDF+X,CCE/X,GACA,wBACA,WACI,UACJ,aAEA,CACA,iBACA,WACA,SACA,YACA,aAIA,OAHA,yBACA,OAEA,CACA,CAAK,EACL,KACA,WACA,YAAwB,WAAqB,KAC7C,WACA,qBACA,IAEA,YAEA,CACA,CAEA,CACA,CACA,iBACA,OAAS,aAAiB,WAC1B","sources":["webpack://_N_E/../../node_modules/.bun/@radix-ui+react-slot@1.2.3+0e2fb8dbc083adda/node_modules/@radix-ui/react-slot/dist/index.mjs","webpack://_N_E/../../node_modules/.bun/tailwind-merge@2.6.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs","webpack://_N_E/../../node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","webpack://_N_E/../../node_modules/.bun/@radix-ui+react-compose-refs@1.1.2+0e2fb8dbc083adda/node_modules/@radix-ui/react-compose-refs/dist/index.mjs"],"sourcesContent":["// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","const CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","// packages/react/compose-refs/src/compose-refs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":[],"sourceRoot":"","ignoreList":[0,1,2,3]} \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/622-ea09f038bcfadbb2.js b/opencut-ui/_next/static/chunks/622-ea09f038bcfadbb2.js new file mode 100644 index 0000000..250d89c --- /dev/null +++ b/opencut-ui/_next/static/chunks/622-ea09f038bcfadbb2.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[622],{2688:(e,t,a)=>{a.d(t,{x:()=>D});var r=a(28064),n=a(8300),l=a(80196),i=a(81925),s=a(75141),o=a(74188);function d(e){let{src:t,poster:a,className:n="",clipStartTime:l,trimStart:s,trimEnd:d,clipDuration:c}=e,u=(0,o.useRef)(null),{isPlaying:m,currentTime:f,volume:h,speed:x,muted:p}=(0,i.E)(),g=l+(c-s-d),v=f>=l&&f<g;return(0,o.useEffect)(()=>{let e=u.current;if(!e||!v)return;let t=t=>{e.currentTime=Math.max(s,Math.min(c-d,t.detail.time-l+s))},a=t=>{let a=Math.max(s,Math.min(c-d,t.detail.time-l+s));Math.abs(e.currentTime-a)>.5&&(e.currentTime=a)},r=t=>{e.playbackRate=t.detail.speed};return window.addEventListener("playback-seek",t),window.addEventListener("playback-update",a),window.addEventListener("playback-speed",r),()=>{window.removeEventListener("playback-seek",t),window.removeEventListener("playback-update",a),window.removeEventListener("playback-speed",r)}},[l,s,d,c,v]),(0,o.useEffect)(()=>{let e=u.current;e&&(m&&v?e.play().catch(()=>{}):e.pause())},[m,v]),(0,o.useEffect)(()=>{let e=u.current;e&&(e.volume=h,e.muted=p,e.playbackRate=x)},[h,x,p]),(0,r.jsx)("video",{ref:u,src:t,poster:a,className:"max-w-full max-h-full object-contain ".concat(n),playsInline:!0,preload:"auto",controls:!1,disablePictureInPicture:!0,disableRemotePlayback:!0,style:{pointerEvents:"none"},onContextMenu:e=>e.preventDefault()})}function c(e){let{src:t,className:a="",clipStartTime:n,trimStart:l,trimEnd:s,clipDuration:d,trackMuted:c=!1}=e,u=(0,o.useRef)(null),{isPlaying:m,currentTime:f,volume:h,speed:x,muted:p}=(0,i.E)(),g=n+(d-l-s),v=f>=n&&f<g;return(0,o.useEffect)(()=>{let e=u.current;if(!e||!v)return;let t=t=>{e.currentTime=Math.max(l,Math.min(d-s,t.detail.time-n+l))},a=t=>{let a=Math.max(l,Math.min(d-s,t.detail.time-n+l));Math.abs(e.currentTime-a)>.5&&(e.currentTime=a)},r=t=>{e.playbackRate=t.detail.speed};return window.addEventListener("playback-seek",t),window.addEventListener("playback-update",a),window.addEventListener("playback-speed",r),()=>{window.removeEventListener("playback-seek",t),window.removeEventListener("playback-update",a),window.removeEventListener("playback-speed",r)}},[n,l,s,d,v]),(0,o.useEffect)(()=>{let e=u.current;e&&(m&&v&&!c?e.play().catch(()=>{}):e.pause())},[m,v,c]),(0,o.useEffect)(()=>{let e=u.current;e&&(e.volume=h,e.muted=p||c,e.playbackRate=x)},[h,x,p,c]),(0,r.jsx)("audio",{ref:u,src:t,className:a,preload:"auto",controls:!1,style:{display:"none"},onContextMenu:e=>e.preventDefault()})}var u=a(61309),m=a(62243),f=a(45440),h=a(47888),x=a(76085),p=a(34802),g=a(93146),v=a(4600);function j(e){let{time:t,duration:a,format:n="HH:MM:SS:FF",fps:l=30,onTimeChange:i,className:s,disabled:d=!1}=e,[c,u]=(0,o.useState)(!1),[m,f]=(0,o.useState)(""),[h,x]=(0,o.useState)(!1),p=(0,o.useRef)(null),j=(0,o.useRef)(!1),b=(0,v.s)(t,n,l),y=()=>{let e=(0,v.a)(m,n,l);if(null===e)return void x(!0);let t=Math.max(0,a?Math.min(a,e):e);null==i||i(t),u(!1),f(""),x(!1),j.current=!1};return((0,o.useEffect)(()=>{c&&p.current&&(p.current.focus(),p.current.select())},[c]),c)?(0,r.jsx)("input",{ref:p,type:"text",value:m,onChange:e=>{f(e.target.value),x(!1)},onKeyDown:e=>{"Enter"===e.key?(e.preventDefault(),j.current=!0,y()):"Escape"===e.key&&(e.preventDefault(),u(!1),f(""),x(!1),j.current=!1)},onBlur:()=>{!j.current&&c&&y()},className:(0,g.cn)("text-xs font-mono bg-transparent border-none outline-none","focus:bg-background focus:border focus:border-primary focus:px-1 focus:rounded","tabular-nums text-primary",h&&"text-destructive focus:border-destructive",s),style:{width:"".concat(b.length+1,"ch")},placeholder:b}):(0,r.jsx)("span",{onClick:()=>{d||(u(!0),f(b),x(!1),j.current=!1)},className:(0,g.cn)("text-xs font-mono tabular-nums text-primary cursor-pointer","hover:bg-muted/50 hover:rounded px-1 -mx-1 transition-colors",d&&"cursor-default hover:bg-transparent",s),title:d?void 0:"Click to edit time",children:b})}var b=a(13746),y=a.n(b),w=a(19947),N=a.n(w),S=a(82189),k=a.n(S),E=a(93237),C=a.n(E),T=a(53322),A=a.n(T);let R={Inter:y().className,Roboto:N().className,"Open Sans":k().className,"Playfair Display":C().className,"Comic Neue":A().className,Arial:"",Helvetica:"","Times New Roman":"",Georgia:""};y(),N(),k(),C(),A();var M=a(82337);function D(){let{tracks:e,getTotalDuration:t,updateTextElement:a}=(0,n.A)(),{mediaItems:u}=(0,l.B)(),{currentTime:m,toggle:f,setCurrentTime:h,isPlaying:x}=(0,i.E)(),{canvasSize:p}=(0,s.U)(),g=(0,o.useRef)(null),v=(0,o.useRef)(null),[j,b]=(0,o.useState)({width:0,height:0}),[y,w]=(0,o.useState)(!1),{activeProject:N}=(0,M.I)(),[S,k]=(0,o.useState)({isDragging:!1,elementId:null,trackId:null,startX:0,startY:0,initialElementX:0,initialElementY:0,currentX:0,currentY:0,elementWidth:0,elementHeight:0});(0,o.useEffect)(()=>{let e=()=>{let e,t,a,r;if(!v.current)return;if(y)e=window.innerWidth-24,t=window.innerHeight-80-24;else{let a=v.current.getBoundingClientRect(),r=getComputedStyle(v.current),n=parseFloat(r.paddingTop),l=parseFloat(r.paddingBottom),i=parseFloat(r.paddingLeft),s=parseFloat(r.paddingRight),o=parseFloat(r.gap)||16,d=v.current.querySelector("[data-toolbar]"),c=d?d.getBoundingClientRect().height:0;e=a.width-i-s,t=a.height-n-l-c-(c>0?o:0)}let n=p.width/p.height;e/t>n?a=(r=t*(y?.95:1))*n:r=(a=e*(y?.95:1))/n,b({width:a,height:r})};e();let t=new ResizeObserver(e);return v.current&&t.observe(v.current),y&&window.addEventListener("resize",e),()=>{t.disconnect(),y&&window.removeEventListener("resize",e)}},[p.width,p.height,y]),(0,o.useEffect)(()=>{let e=e=>{"Escape"===e.key&&y&&w(!1)};return y?(document.addEventListener("keydown",e),document.body.style.overflow="hidden"):document.body.style.overflow="",()=>{document.removeEventListener("keydown",e),document.body.style.overflow=""}},[y]),(0,o.useEffect)(()=>{let e=e=>{if(!S.isDragging)return;let t=e.clientX-S.startX,a=e.clientY-S.startY,r=j.width/p.width,n=S.initialElementX+t/r,l=S.initialElementY+a/r,i=S.elementWidth/r/2,s=S.elementHeight/r/2,o=Math.max(-p.width/2+i,Math.min(p.width/2-i,n)),d=Math.max(-p.height/2+s,Math.min(p.height/2-s,l));k(e=>({...e,currentX:o,currentY:d}))},t=()=>{S.isDragging&&S.trackId&&S.elementId&&a(S.trackId,S.elementId,{x:S.currentX,y:S.currentY}),k(e=>({...e,isDragging:!1}))};return S.isDragging&&(document.addEventListener("mousemove",e),document.addEventListener("mouseup",t),document.body.style.cursor="grabbing",document.body.style.userSelect="none"),()=>{document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",t),document.body.style.cursor="",document.body.style.userSelect=""}},[S,j,p,a]);let E=(0,o.useCallback)(()=>{w(e=>!e)},[]),C=e.some(e=>e.elements.length>0),T=(()=>{let t=[];return e.forEach(e=>{e.elements.forEach(a=>{if(a.hidden)return;let r=a.startTime,n=a.startTime+(a.duration-a.trimStart-a.trimEnd);if(m>=r&&m<n){let r=null;"media"===a.type&&(r="test"===a.mediaId?null:u.find(e=>e.id===a.mediaId)||null),t.push({element:a,track:e,mediaItem:r})}})}),t})(),A=T.filter(e=>{let{element:t,mediaItem:a}=e;return"media"===t.type&&a&&("video"===a.type||"image"===a.type)&&"test"!==t.mediaId}),D=()=>{if(!(null==N?void 0:N.backgroundType)||"blur"!==N.backgroundType||0===A.length)return null;let{element:e,mediaItem:t}=A[0];if(!t)return null;let a=N.blurIntensity||8;return"video"===t.type?(0,r.jsx)("div",{className:"absolute inset-0 overflow-hidden",style:{filter:"blur(".concat(a,"px)"),transform:"scale(1.1)",transformOrigin:"center"},children:(0,r.jsx)(d,{src:t.url,poster:t.thumbnailUrl,clipStartTime:e.startTime,trimStart:e.trimStart,trimEnd:e.trimEnd,clipDuration:e.duration,className:"w-full h-full object-cover"})},"blur-".concat(e.id)):"image"===t.type?(0,r.jsx)("div",{className:"absolute inset-0 overflow-hidden",style:{filter:"blur(".concat(a,"px)"),transform:"scale(1.1)",transformOrigin:"center"},children:(0,r.jsx)("img",{src:t.url,alt:t.name,className:"w-full h-full object-cover",draggable:!1})},"blur-".concat(e.id)):null},I=(e,t)=>{let{element:a,mediaItem:n}=e;if("text"===a.type){let n=R[a.fontFamily]||"",l=j.width/p.width;return(0,r.jsx)("div",{className:"absolute flex items-center justify-center cursor-grab",onMouseDown:t=>((e,t,a)=>{e.preventDefault(),e.stopPropagation();let r=e.currentTarget.getBoundingClientRect();k({isDragging:!0,elementId:t.id,trackId:a,startX:e.clientX,startY:e.clientY,initialElementX:t.x,initialElementY:t.y,currentX:t.x,currentY:t.y,elementWidth:r.width,elementHeight:r.height})})(t,a,e.track.id),style:{left:"".concat(50+(S.isDragging&&S.elementId===a.id?S.currentX:a.x)/p.width*100,"%"),top:"".concat(50+(S.isDragging&&S.elementId===a.id?S.currentY:a.y)/p.height*100,"%"),transform:"translate(-50%, -50%) rotate(".concat(a.rotation,"deg) scale(").concat(l,")"),opacity:a.opacity,zIndex:100+t},children:(0,r.jsx)("div",{className:n,style:{fontSize:"".concat(a.fontSize,"px"),color:a.color,backgroundColor:a.backgroundColor,textAlign:a.textAlign,fontWeight:a.fontWeight,fontStyle:a.fontStyle,textDecoration:a.textDecoration,padding:"4px 8px",borderRadius:"2px",whiteSpace:"pre-wrap",...""===n&&{fontFamily:a.fontFamily}},children:a.content})},a.id)}if("media"===a.type){if(!n||"test"===a.mediaId)return(0,r.jsx)("div",{className:"absolute inset-0 bg-linear-to-br from-blue-500/20 to-purple-500/20 flex items-center justify-center",children:(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("div",{className:"text-2xl mb-2",children:"\uD83C\uDFAC"}),(0,r.jsx)("p",{className:"text-xs text-foreground",children:a.name})]})},a.id);if("video"===n.type)return(0,r.jsx)("div",{className:"absolute inset-0 flex items-center justify-center",children:(0,r.jsx)(d,{src:n.url,poster:n.thumbnailUrl,clipStartTime:a.startTime,trimStart:a.trimStart,trimEnd:a.trimEnd,clipDuration:a.duration})},a.id);if("image"===n.type)return(0,r.jsx)("div",{className:"absolute inset-0 flex items-center justify-center",children:(0,r.jsx)("img",{src:n.url,alt:n.name,className:"max-w-full max-h-full object-contain",draggable:!1})},a.id);if("audio"===n.type)return(0,r.jsx)("div",{className:"absolute inset-0",children:(0,r.jsx)(c,{src:n.url,clipStartTime:a.startTime,trimStart:a.trimStart,trimEnd:a.trimEnd,clipDuration:a.duration,trackMuted:e.track.muted})},a.id)}return null};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"h-full w-full flex flex-col min-h-0 min-w-0 bg-panel rounded-sm relative",children:(0,r.jsxs)("div",{ref:v,className:"flex-1 flex flex-col items-center justify-center min-h-0 min-w-0",children:[(0,r.jsx)("div",{className:"flex-1"}),C?(0,r.jsxs)("div",{ref:g,className:"relative overflow-hidden border",style:{width:j.width,height:j.height,background:(null==N?void 0:N.backgroundType)==="blur"?"transparent":(null==N?void 0:N.backgroundColor)||"#000000"},children:[D(),0===T.length?(0,r.jsx)("div",{className:"absolute inset-0 flex items-center justify-center text-muted-foreground",children:"No elements at current time"}):T.map((e,t)=>I(e,t)),(null==N?void 0:N.backgroundType)==="blur"&&0===A.length&&T.length>0&&(0,r.jsx)("div",{className:"absolute bottom-2 left-2 right-2 bg-black/70 text-white text-xs p-2 rounded",children:"Add a video or image to use blur background"})]}):null,(0,r.jsx)("div",{className:"flex-1"}),(0,r.jsx)(P,{hasAnyElements:C,onToggleExpanded:E,isExpanded:y,currentTime:m,setCurrentTime:h,toggle:f,getTotalDuration:t})]})}),y&&(0,r.jsx)(L,{previewDimensions:j,activeProject:N,renderBlurBackground:D,activeElements:T,renderElement:I,blurBackgroundElements:A,hasAnyElements:C,toggleExpanded:E,currentTime:m,setCurrentTime:h,toggle:f,getTotalDuration:t})]})}function I(e){let{hasAnyElements:t,onToggleExpanded:a,currentTime:n,setCurrentTime:l,toggle:s,getTotalDuration:d}=e,{isPlaying:c,seek:b}=(0,i.E)(),{activeProject:y}=(0,M.I)(),[w,N]=(0,o.useState)(!1),S=d(),k=S>0?n/S*100:0;return(0,r.jsxs)("div",{"data-toolbar":!0,className:"flex items-center gap-2 p-1 pt-2 w-full text-foreground relative",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1 text-[0.70rem] tabular-nums text-foreground/90",children:[(0,r.jsx)(j,{time:n,duration:S,format:"HH:MM:SS:FF",fps:(null==y?void 0:y.fps)||30,onTimeChange:b,disabled:!t,className:"text-foreground/90 hover:bg-white/10"}),(0,r.jsx)("span",{className:"opacity-50",children:"/"}),(0,r.jsx)("span",{children:(0,v.s)(S,"HH:MM:SS:FF",(null==y?void 0:y.fps)||30)})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)(u.$,{variant:"text",size:"icon",onClick:()=>{l(Math.max(0,n-1))},disabled:!t,className:"h-auto p-0 text-foreground",title:"Skip backward 1s",children:(0,r.jsx)(m.A,{className:"h-3 w-3"})}),(0,r.jsx)(u.$,{variant:"text",size:"icon",onClick:s,disabled:!t,className:"h-auto p-0 text-foreground hover:text-foreground/80",children:c?(0,r.jsx)(f.A,{className:"h-3 w-3"}):(0,r.jsx)(h.A,{className:"h-3 w-3"})}),(0,r.jsx)(u.$,{variant:"text",size:"icon",onClick:()=>{l(Math.min(S,n+1))},disabled:!t,className:"h-auto p-0 text-foreground hover:text-foreground/80",title:"Skip forward 1s",children:(0,r.jsx)(x.A,{className:"h-3 w-3"})})]}),(0,r.jsx)("div",{className:"flex-1 flex items-center gap-2",children:(0,r.jsxs)("div",{className:(0,g.cn)("relative h-1 rounded-full cursor-pointer flex-1 bg-foreground/20",!t&&"opacity-50 cursor-not-allowed"),onClick:t?e=>{if(!t)return;let a=e.currentTarget.getBoundingClientRect();l(Math.max(0,Math.min(Math.max(0,Math.min(1,(e.clientX-a.left)/a.width))*S,S)))}:void 0,onMouseDown:t?e=>{if(!t)return;e.preventDefault(),e.stopPropagation();let a=e.currentTarget.getBoundingClientRect();N(!0);let r=e=>{e.preventDefault(),l(Math.max(0,Math.min(Math.max(0,Math.min(1,(e.clientX-a.left)/a.width))*S,S)))},n=()=>{N(!1),document.removeEventListener("mousemove",r),document.removeEventListener("mouseup",n),document.body.style.userSelect=""};document.body.style.userSelect="none",document.addEventListener("mousemove",r),document.addEventListener("mouseup",n),r(e.nativeEvent)}:void 0,style:{userSelect:"none"},children:[(0,r.jsx)("div",{className:(0,g.cn)("absolute top-0 left-0 h-full rounded-full bg-foreground",!w&&"duration-100"),style:{width:"".concat(k,"%")}}),(0,r.jsx)("div",{className:"absolute top-1/2 w-3 h-3 rounded-full -translate-y-1/2 -translate-x-1/2 shadow-xs bg-foreground border border-black/20",style:{left:"".concat(k,"%")}})]})}),(0,r.jsx)(u.$,{variant:"text",size:"icon",className:"size-4! text-foreground/80 hover:text-foreground",onClick:a,title:"Exit fullscreen (Esc)",children:(0,r.jsx)(p.A,{className:"size-4!"})})]})}function L(e){let{previewDimensions:t,activeProject:a,renderBlurBackground:n,activeElements:l,renderElement:i,blurBackgroundElements:s,hasAnyElements:o,toggleExpanded:d,currentTime:c,setCurrentTime:u,toggle:m,getTotalDuration:f}=e;return(0,r.jsxs)("div",{className:"fixed inset-0 z-9999 flex flex-col",children:[(0,r.jsx)("div",{className:"flex-1 flex items-center justify-center bg-background",children:(0,r.jsxs)("div",{className:"relative overflow-hidden border border-border m-3",style:{width:t.width,height:t.height,background:(null==a?void 0:a.backgroundType)==="blur"?"#1a1a1a":(null==a?void 0:a.backgroundColor)||"#1a1a1a"},children:[n(),0===l.length?(0,r.jsx)("div",{className:"absolute inset-0 flex items-center justify-center text-white/60",children:"No elements at current time"}):l.map((e,t)=>i(e,t)),(null==a?void 0:a.backgroundType)==="blur"&&0===s.length&&l.length>0&&(0,r.jsx)("div",{className:"absolute bottom-2 left-2 right-2 bg-black/70 text-white text-xs p-2 rounded",children:"Add a video or image to use blur background"})]})}),(0,r.jsx)("div",{className:"p-4 bg-background",children:(0,r.jsx)(I,{hasAnyElements:o,onToggleExpanded:d,currentTime:c,setCurrentTime:u,toggle:m,getTotalDuration:f})})]})}function P(e){let{hasAnyElements:t,onToggleExpanded:a,isExpanded:n,currentTime:l,setCurrentTime:s,toggle:o,getTotalDuration:d}=e,{isPlaying:c}=(0,i.E)();return n?(0,r.jsx)(I,{hasAnyElements:t,onToggleExpanded:a,currentTime:l,setCurrentTime:s,toggle:o,getTotalDuration:d}):(0,r.jsx)("div",{"data-toolbar":!0,className:"flex justify-between gap-2 px-1.5 pr-4 py-1.5 border border-border/50 w-auto absolute bottom-4 right-4 bg-black/20 rounded-full backdrop-blur-l text-white",children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(u.$,{variant:"text",size:"icon",onClick:o,disabled:!t,className:"h-auto p-0",children:c?(0,r.jsx)(f.A,{className:"h-3 w-3"}):(0,r.jsx)(h.A,{className:"h-3 w-3"})}),(0,r.jsx)(u.$,{variant:"text",size:"icon",className:"size-4!",onClick:a,title:"Enter fullscreen",children:(0,r.jsx)(p.A,{className:"size-4!"})})]})})}},4600:(e,t,a)=>{a.d(t,{a:()=>n,s:()=>r});let r=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"HH:MM:SS:CS",a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30,r=Math.floor(e/3600),n=Math.floor(e%3600/60),l=Math.floor(e%60),i=Math.floor(e%1*100),s=Math.floor(e%1*a);switch(t){case"MM:SS":return"".concat(n.toString().padStart(2,"0"),":").concat(l.toString().padStart(2,"0"));case"HH:MM:SS":return"".concat(r.toString().padStart(2,"0"),":").concat(n.toString().padStart(2,"0"),":").concat(l.toString().padStart(2,"0"));case"HH:MM:SS:CS":return"".concat(r.toString().padStart(2,"0"),":").concat(n.toString().padStart(2,"0"),":").concat(l.toString().padStart(2,"0"),":").concat(i.toString().padStart(2,"0"));case"HH:MM:SS:FF":return"".concat(r.toString().padStart(2,"0"),":").concat(n.toString().padStart(2,"0"),":").concat(l.toString().padStart(2,"0"),":").concat(s.toString().padStart(2,"0"))}},n=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"HH:MM:SS:CS",a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30;if(!e||"string"!=typeof e)return null;let r=e.trim();try{switch(t){case"MM:SS":{let e=r.split(":");if(2!==e.length)return null;let[t,a]=e.map(e=>parseInt(e,10));if(isNaN(t)||isNaN(a)||t<0||a<0||a>=60)return null;return 60*t+a}case"HH:MM:SS":{let e=r.split(":");if(3!==e.length)return null;let[t,a,n]=e.map(e=>parseInt(e,10));if(isNaN(t)||isNaN(a)||isNaN(n)||t<0||a<0||n<0||a>=60||n>=60)return null;return 3600*t+60*a+n}case"HH:MM:SS:CS":{let e=r.split(":");if(4!==e.length)return null;let[t,a,n,l]=e.map(e=>parseInt(e,10));if(isNaN(t)||isNaN(a)||isNaN(n)||isNaN(l)||t<0||a<0||n<0||l<0||a>=60||n>=60||l>=100)return null;return 3600*t+60*a+n+l/100}case"HH:MM:SS:FF":{let e=r.split(":");if(4!==e.length)return null;let[t,n,l,i]=e.map(e=>parseInt(e,10));if(isNaN(t)||isNaN(n)||isNaN(l)||isNaN(i)||t<0||n<0||l<0||i<0||n>=60||l>=60||i>=a)return null;return 3600*t+60*n+l+i/a}}}catch(e){}return null}},4976:(e,t,a)=>{a.d(t,{K:()=>Z});var r=a(28064),n=a(10952),l=a(61309),i=a(15482),s=a(87537),o=a(9061),d=a(16224),c=a(43589),u=a(81450),m=a(53093),f=a(45440),h=a(47888),x=a(82549),p=a(26796),g=a(65763),v=a(56139),j=a(79899),b=a(87134),y=a(73539),w=a(20288),N=a(26530),S=a(19884),k=a(43811),E=a(46438),C=a(86434),T=a(8300),A=a(80196),R=a(81925),M=a(82337),D=a(74188),I=a(41134),L=a(61557),P=a(64889),z=a(61275),F=a(85531),O=a(41662),_=a(90617);let X=e=>{let{audioUrl:t,height:a=32,className:n=""}=e,l=(0,D.useRef)(null),i=(0,D.useRef)(null),[s,o]=(0,D.useState)(!0),[d,c]=(0,D.useState)(!1);return((0,D.useEffect)(()=>{let e=!0,r=i.current,n=async()=>{if(l.current&&t)try{r&&(i.current=null);let n=_.A.create({container:l.current,waveColor:"rgba(255, 255, 255, 0.6)",progressColor:"rgba(255, 255, 255, 0.9)",cursorColor:"transparent",barWidth:2,barGap:1,height:a,normalize:!0,interact:!1});if(e)i.current=n;else{try{n.destroy()}catch(e){}return}n.on("ready",()=>{e&&(o(!1),c(!1))}),n.on("error",t=>{e&&(c(!0),o(!1))}),await n.load(t)}catch(t){e&&(c(!0),o(!1))}};return r?(i.current=null,requestAnimationFrame(()=>{try{r.destroy()}catch(e){}e&&n()})):n(),()=>{e=!1;let t=i.current;i.current=null,t&&requestAnimationFrame(()=>{try{t.destroy()}catch(e){}})}},[t,a]),d)?(0,r.jsx)("div",{className:"flex items-center justify-center ".concat(n),style:{height:a},children:(0,r.jsx)("span",{className:"text-xs text-foreground/60",children:"Audio unavailable"})}):(0,r.jsxs)("div",{className:"relative ".concat(n),children:[s&&(0,r.jsx)("div",{className:"absolute inset-0 flex items-center justify-center",children:(0,r.jsx)("span",{className:"text-xs text-foreground/60",children:"Loading..."})}),(0,r.jsx)("div",{ref:l,className:"w-full transition-opacity duration-200 ".concat(s?"opacity-0":"opacity-100"),style:{height:a}})]})};var B=a(87100);function U(e){let{element:t,track:a,zoomLevel:n,isSelected:l,onElementMouseDown:i,onElementClick:s}=e,{mediaItems:o}=(0,A.B)(),{updateElementTrim:c,updateElementDuration:u,removeElementFromTrack:m,removeElementFromTrackWithRipple:f,dragState:h,splitElement:p,addElementToTrack:g,replaceElementMedia:v,rippleEditingEnabled:b,toggleElementHidden:w}=(0,T.A)(),{currentTime:N}=(0,R.E)(),S="media"===t.type?o.find(e=>e.id===t.mediaId):null,k=(null==S?void 0:S.type)==="audio",{resizing:E,handleResizeStart:I,handleResizeMove:_,handleResizeEnd:U}=function(e){let{element:t,track:a,zoomLevel:r,onUpdateTrim:n,onUpdateDuration:l}=e,[i,s]=(0,D.useState)(null),{mediaItems:o}=(0,A.B)(),{updateElementStartTime:d,updateElementTrim:c,updateElementDuration:u,pushHistory:m}=(0,T.A)();(0,D.useEffect)(()=>{if(!i)return;let e=e=>{h({clientX:e.clientX})},t=()=>{x()};return document.addEventListener("mousemove",e),document.addEventListener("mouseup",t),()=>{document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",t)}},[i]);let f=()=>{if("text"===t.type)return!0;if("media"===t.type){let e=o.find(e=>e.id===t.mediaId);if(!e)return!1;if("image"===e.type)return!0}return!1},h=e=>{var n;if(!i)return;let l=(e.clientX-i.startX)/(50*r),s=(null==(n=M.I.getState().activeProject)?void 0:n.fps)||30;if("left"===i.side){let e=t.duration-i.initialTrimEnd-.1,r=i.initialTrimStart+l;if(r>=0){let n=(0,B.gY)(Math.min(e,r),s),l=n-i.initialTrimStart,o=(0,B.gY)(t.startTime+l,s);c(a.id,t.id,n,i.initialTrimEnd,!1),d(a.id,t.id,o,!1)}else if(f()){let e=Math.min(Math.abs(r),t.startTime),n=(0,B.gY)(t.startTime-e,s),l=(0,B.gY)(t.duration+e,s);c(a.id,t.id,0,i.initialTrimEnd,!1),u(a.id,t.id,l,!1),d(a.id,t.id,n,!1)}else{let e=0-i.initialTrimStart,r=(0,B.gY)(t.startTime+e,s);c(a.id,t.id,0,i.initialTrimEnd,!1),d(a.id,t.id,r,!1)}}else{let e=i.initialTrimEnd-l;if(e<0)if(f()){let r=Math.abs(e),n=(0,B.gY)(t.duration+r,s);u(a.id,t.id,n,!1),c(a.id,t.id,i.initialTrimStart,0,!1)}else c(a.id,t.id,i.initialTrimStart,0,!1);else{let e=t.startTime+t.duration-t.trimStart-t.trimEnd,r=(0,B.gY)(e+l,s),n=Math.max(0,t.duration-t.trimStart-(r-t.startTime)),i=Math.min(t.duration-t.trimStart-.1,n);c(a.id,t.id,t.trimStart,i,!1)}}},x=()=>{s(null)};return{resizing:i,isResizing:null!==i,handleResizeStart:(e,a,r)=>{e.stopPropagation(),e.preventDefault(),m(),s({elementId:a,side:r,startX:e.clientX,initialTrimStart:t.trimStart,initialTrimEnd:t.trimEnd})},handleResizeMove:()=>{},handleResizeEnd:()=>{}}}({element:t,track:a,zoomLevel:n,onUpdateTrim:c,onUpdateDuration:u}),$=t.duration-t.trimStart-t.trimEnd,H=Math.max(B.of.ELEMENT_MIN_WIDTH,$*B.of.PIXELS_PER_SECOND*n),W=h.elementId===t.id,Y=50*(W&&h.isDragging?h.currentTime:t.startTime)*n;return(0,r.jsxs)(C.tz,{children:[(0,r.jsx)(C.Rc,{asChild:!0,children:(0,r.jsx)("div",{className:"absolute top-0 h-full select-none timeline-element ".concat(W?"z-50":"z-10"),style:{left:"".concat(Y,"px"),width:"".concat(H,"px")},"data-element-id":t.id,"data-track-id":a.id,onMouseMove:E?_:void 0,onMouseUp:E?U:void 0,onMouseLeave:E?U:void 0,children:(0,r.jsxs)("div",{className:"relative h-full rounded-[0.15rem] cursor-pointer overflow-hidden ".concat((0,B.A0)(a.type)," ").concat(""," ").concat(W?"z-50":"z-10"," ").concat(t.hidden?"opacity-50":""),onClick:e=>s&&s(e,t),onMouseDown:e=>{i&&i(e,t)},onContextMenu:e=>i&&i(e,t),children:[(0,r.jsx)("div",{className:"absolute inset-0 flex items-center h-full",children:(()=>{if("text"===t.type)return(0,r.jsx)("div",{className:"w-full h-full flex items-center justify-start pl-2",children:(0,r.jsx)("span",{className:"text-xs text-white truncate",children:t.content})});let e=o.find(e=>e.id===t.mediaId);if(!e)return(0,r.jsx)("span",{className:"text-xs text-foreground/80 truncate",children:t.name});if("image"===e.type||"video"===e.type&&e.thumbnailUrl){let t=(0,B.t_)(a.type),n=16/9*t,i="image"===e.type?e.url:e.thumbnailUrl,s="image"===e.type;return(0,r.jsx)("div",{className:"w-full h-full flex items-center justify-center",children:(0,r.jsx)("div",{className:"w-full h-full relative ".concat(l?"bg-primary":"bg-transparent"),children:(0,r.jsx)("div",{className:"absolute top-[0.15rem] bottom-[0.15rem] left-0 right-0",style:{backgroundImage:i?"url(".concat(i,")"):"none",backgroundRepeat:"repeat-x",backgroundSize:"".concat(n,"px ").concat(t,"px"),backgroundPosition:"left center",pointerEvents:"none"},"aria-label":"Tiled ".concat(s?"background":"thumbnail"," of ").concat(e.name)})})})}return"audio"===e.type?(0,r.jsx)("div",{className:"w-full h-full flex items-center gap-2",children:(0,r.jsx)("div",{className:"flex-1 min-w-0",children:(0,r.jsx)(X,{audioUrl:e.url||"",height:24,className:"w-full"})})}):(0,r.jsx)("span",{className:"text-xs text-foreground/80 truncate",children:t.name})})()}),t.hidden&&(0,r.jsx)("div",{className:"absolute inset-0 bg-black bg-opacity-50 flex items-center justify-center pointer-events-none",children:k?(0,r.jsx)(P.A,{className:"h-6 w-6 text-white"}):(0,r.jsx)(z.A,{className:"h-6 w-6 text-white"})}),l&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-[0.2rem] cursor-w-resize bg-primary z-50",onMouseDown:e=>I(e,t.id,"left")}),(0,r.jsx)("div",{className:"absolute right-0 top-0 bottom-0 w-[0.2rem] cursor-e-resize bg-primary z-50",onMouseDown:e=>I(e,t.id,"right")})]})]})})}),(0,r.jsxs)(C.Ip,{className:"z-200",children:[(0,r.jsxs)(C.kt,{onClick:e=>{e.stopPropagation();let r=t.startTime,n=t.startTime+(t.duration-t.trimStart-t.trimEnd);N>r&&N<n?p(a.id,t.id,N)||L.oR.error("Failed to split element"):L.oR.error("Playhead must be within element to split")},children:[(0,r.jsx)(x.A,{className:"h-4 w-4 mr-2"}),"Split at playhead"]}),(0,r.jsxs)(C.kt,{onClick:e=>{e.stopPropagation(),w(a.id,t.id)},children:[k?t.hidden?(0,r.jsx)(F.A,{className:"h-4 w-4 mr-2"}):(0,r.jsx)(P.A,{className:"h-4 w-4 mr-2"}):t.hidden?(0,r.jsx)(d.A,{className:"h-4 w-4 mr-2"}):(0,r.jsx)(z.A,{className:"h-4 w-4 mr-2"}),(0,r.jsxs)("span",{children:[k?t.hidden?"Unmute":"Mute":t.hidden?"Show":"Hide"," ","text"===t.type?"text":"clip"]})]}),(0,r.jsxs)(C.kt,{onClick:e=>{e.stopPropagation();let{id:r,...n}=t;g(a.id,{...n,name:t.name+" (copy)",startTime:t.startTime+(t.duration-t.trimStart-t.trimEnd)+.1})},children:[(0,r.jsx)(j.A,{className:"h-4 w-4 mr-2"}),"Duplicate ","text"===t.type?"text":"clip"]}),"media"===t.type&&(0,r.jsxs)(C.kt,{onClick:e=>{if(e.stopPropagation(),"media"!==t.type)return void L.oR.error("Replace is only available for media clips");let r=document.createElement("input");r.type="file",r.accept="video/*,audio/*,image/*",r.onchange=async e=>{var r;let n=null==(r=e.target.files)?void 0:r[0];if(n)try{let e=await v(a.id,t.id,n);e.success?L.oR.success("Clip replaced successfully"):L.oR.error(e.error||"Failed to replace clip")}catch(e){L.oR.error("Unexpected error: ".concat(e instanceof Error?e.message:"Unknown error"))}},r.click()},children:[(0,r.jsx)(O.A,{className:"h-4 w-4 mr-2"}),"Replace clip"]}),(0,r.jsx)(C.K5,{}),(0,r.jsxs)(C.kt,{onClick:e=>{e.stopPropagation(),b?f(a.id,t.id):m(a.id,t.id)},className:"text-destructive focus:text-destructive",children:[(0,r.jsx)(y.A,{className:"h-4 w-4 mr-2"}),"Delete ","text"===t.type?"text":"clip"]})]})]})}var $=a(14700);function H(e){let{track:t,zoomLevel:a,onSnapPointChange:n}=e,{mediaItems:l}=(0,A.B)(),{tracks:i,addTrack:s,moveElementToTrack:o,updateElementStartTime:d,updateElementStartTimeWithRipple:c,addElementToTrack:u,selectedElements:m,selectElement:f,dragState:h,startDrag:x,updateDragTime:p,endDrag:g,clearSelectedElements:v,insertTrackAt:j,snappingEnabled:b,rippleEditingEnabled:y}=(0,T.A)(),{currentTime:w}=(0,R.E)(),{snapElementPosition:N,snapElementEdge:S}=function(){let{snapThreshold:e=10,enableElementSnapping:t=!0,enablePlayheadSnapping:a=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=(0,D.useCallback)((e,r,n,l,i)=>{let s=[];return t&&e.forEach(e=>{e.elements.forEach(t=>{if(t.id===i)return;let a=t.startTime,r=t.startTime+(t.duration-t.trimStart-t.trimEnd);s.push({time:a,type:"element-start",elementId:t.id,trackId:e.id},{time:r,type:"element-end",elementId:t.id,trackId:e.id})})}),a&&s.push({time:n,type:"playhead"}),s},[t,a]),n=(0,D.useCallback)((t,a,r)=>{let n=e/(B.of.PIXELS_PER_SECOND*r),l=null,i=1/0;return a.forEach(e=>{let a=Math.abs(t-e.time);a<n&&a<i&&(i=a,l=e)}),{snappedTime:l?l.time:t,snapPoint:l,snapDistance:i}},[e]);return{snapElementPosition:(0,D.useCallback)((e,t,a,l,i)=>{let s=r(t,e,a,l,i);return n(e,s,l)},[r,n]),snapElementEdge:(0,D.useCallback)(function(e,t,a,l,i,s){let o=!(arguments.length>6)||void 0===arguments[6]||arguments[6],d=r(a,e,l,i,s),c=n(o?e:e+t,d,i);return!o&&c.snapPoint&&(c.snappedTime=c.snappedTime-t),c},[r,n]),findSnapPoints:r,snapToNearestPoint:n}}({snapThreshold:10,enableElementSnapping:b,enablePlayheadSnapping:b}),k=(e,t,r)=>{var n;let l=(null==(n=M.I.getState().activeProject)?void 0:n.fps)||30,s=(0,B.gY)(e,l);if(b){let n=S(e,t,i,w,a,r,!0),l=S(e,t,i,w,a,r,!1),o=n;l.snapPoint&&(!n.snapPoint||l.snapDistance<n.snapDistance)&&(o=l),o.snapPoint&&(s=o.snappedTime)}return s},E=(0,D.useRef)(null),[C,I]=(0,D.useState)(!1),[P,z]=(0,D.useState)(null),[F,O]=(0,D.useState)(!1),_=(0,D.useRef)(0),[X,H]=(0,D.useState)(null);(0,D.useEffect)(()=>{if(!h.isDragging)return;let e=e=>{var t;if(!E.current)return;h.elementId&&h.trackId&&(m.some(e=>e.trackId===h.trackId&&e.elementId===h.elementId)||f(h.trackId,h.elementId,!1));let r=E.current.getBoundingClientRect(),l=Math.max(0,Math.max(0,(e.clientX-r.left)/(B.of.PIXELS_PER_SECOND*a))-h.clickOffsetTime),s=(null==(t=M.I.getState().activeProject)?void 0:t.fps)||30,o=(0,B.gY)(l,s),d=null;if(b){let e=5;if(h.elementId&&h.trackId){let t=i.find(e=>e.id===h.trackId),a=null==t?void 0:t.elements.find(e=>e.id===h.elementId);a&&(e=a.duration-a.trimStart-a.trimEnd)}let t=S(l,e,i,w,a,h.elementId||void 0,!0),r=S(l,e,i,w,a,h.elementId||void 0,!1),s=t;r.snapPoint&&(!t.snapPoint||r.snapDistance<t.snapDistance)&&(s=r),s.snapPoint&&(o=s.snappedTime,d=s.snapPoint),null==n||n(d)}else null==n||n(null);p(o)},r=e=>{var a;if(!h.elementId||!h.trackId)return;let r=h.trackId===t.id,l=null==(a=E.current)?void 0:a.getBoundingClientRect();if(!l){r&&(y?c(t.id,h.elementId,h.currentTime):d(t.id,h.elementId,h.currentTime),g(),null==n||n(null));return}let s=e.clientY>=l.top&&e.clientY<=l.bottom;if(!s&&!r)return;let u=h.currentTime;if(s){let e=i.find(e=>e.id===h.trackId),a=null==e?void 0:e.elements.find(e=>e.id===h.elementId);if(a){let e=u+(a.duration-a.trimStart-a.trimEnd),r=i.find(e=>e.id===t.id);(null==r?void 0:r.elements.some(a=>{if(h.trackId===t.id&&a.id===h.elementId)return!1;let r=a.startTime;return u<a.startTime+(a.duration-a.trimStart-a.trimEnd)&&e>r}))||(h.trackId===t.id?y?c(t.id,h.elementId,u):d(t.id,h.elementId,u):(o(h.trackId,t.id,h.elementId),requestAnimationFrame(()=>{y?c(t.id,h.elementId,u):d(t.id,h.elementId,u)})))}}else if(r){let e=i.find(e=>e.id===h.trackId),a=null==e?void 0:e.elements.find(e=>e.id===h.elementId);if(a){let e=u+(a.duration-a.trimStart-a.trimEnd);t.elements.some(t=>{if(t.id===h.elementId)return!1;let a=t.startTime;return u<t.startTime+(t.duration-t.trimStart-t.trimEnd)&&e>a})||(y?c(t.id,h.elementId,u):d(t.id,h.elementId,u))}}r&&(g(),null==n||n(null))};return document.addEventListener("mousemove",e),document.addEventListener("mouseup",r),()=>{document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",r)}},[h.isDragging,h.clickOffsetTime,h.elementId,h.trackId,h.currentTime,a,i,t.id,p,d,o,g,m,f,n]);let W=(e,r)=>{H({x:e.clientX,y:e.clientY});let n=2===e.button,l=e.metaKey||e.ctrlKey||e.shiftKey;if(n){m.some(e=>e.trackId===t.id&&e.elementId===r.id)||f(t.id,r.id,l);return}l&&f(t.id,r.id,!0);let i=e.currentTarget.getBoundingClientRect(),s=(e.clientX-i.left)/(B.of.PIXELS_PER_SECOND*a);x(r.id,t.id,e.clientX,r.startTime,s)},Y=(e,a)=>{if(e.stopPropagation(),X){let t=Math.abs(e.clientX-X.x),a=Math.abs(e.clientY-X.y);if(t>5||a>5)return void H(null)}e.metaKey||e.ctrlKey||e.shiftKey||m.some(e=>e.trackId===t.id&&e.elementId===a.id)||f(t.id,a.id,!1)};return(0,r.jsx)("div",{className:"w-full h-full hover:bg-muted/20",onClick:e=>{e.target.closest(".timeline-element")||v()},onDragOver:e=>{e.preventDefault();let r=e.dataTransfer.types.includes("application/x-timeline-element"),n=e.dataTransfer.types.includes("application/x-media-item");if(!r&&!n)return;let s=e.currentTarget.querySelector(".track-elements-container"),o=0;if(s){let t=s.getBoundingClientRect();o=Math.max(0,e.clientX-t.left)/(B.of.PIXELS_PER_SECOND*a)}let d=!1;if(n)try{let a=e.dataTransfer.getData("application/x-media-item");if(a){let e=JSON.parse(a);if("text"===e.type){let e=k(o,5),a=e+5;d=t.elements.some(t=>{let r=t.startTime,n=t.startTime+(t.duration-t.trimStart-t.trimEnd);return e<n&&a>r})}else{let a=l.find(t=>t.id===e.id);if(a){let e=a.duration||5,r=k(o,e),n=r+e;d=t.elements.some(e=>{let t=e.startTime,a=e.startTime+(e.duration-e.trimStart-e.trimEnd);return r<a&&n>t})}}}}catch(e){}else if(r)try{let a=e.dataTransfer.getData("application/x-timeline-element");if(a){let{elementId:e,trackId:r}=JSON.parse(a),n=i.find(e=>e.id===r),l=null==n?void 0:n.elements.find(t=>t.id===e);if(l){let a=l.duration-l.trimStart-l.trimEnd,n=k(o,a,e),i=n+a;d=t.elements.some(a=>{if(r===t.id&&a.id===e)return!1;let l=a.startTime,s=a.startTime+(a.duration-a.trimStart-a.trimEnd);return n<s&&i>l})}}}catch(e){}if(d){e.dataTransfer.dropEffect="none",O(!0),z(k(o,5));return}e.dataTransfer.dropEffect=r?"move":"copy",O(!1),z(k(o,5))},onDragEnter:e=>{e.preventDefault();let t=e.dataTransfer.types.includes("application/x-timeline-element"),a=e.dataTransfer.types.includes("application/x-media-item");(t||a)&&(_.current++,I(!0))},onDragLeave:e=>{e.preventDefault();let t=e.dataTransfer.types.includes("application/x-timeline-element"),a=e.dataTransfer.types.includes("application/x-media-item");(t||a)&&(_.current--,0===_.current&&(I(!1),O(!1),z(null)))},onDrop:e=>{var r;let n;e.preventDefault(),e.stopPropagation(),_.current=0,I(!1),O(!1);let m=e.dataTransfer.types.includes("application/x-timeline-element"),f=e.dataTransfer.types.includes("application/x-media-item");if(!m&&!f)return;let h=e.currentTarget.querySelector(".track-elements-container");if(!h)return;let x=h.getBoundingClientRect(),p=Math.max(0,e.clientX-x.left),g=e.clientY-x.top,v=p/(B.of.PIXELS_PER_SECOND*a),b=(null==(r=M.I.getState().activeProject)?void 0:r.fps)||30;(0,B.gY)(v,b);let w=i.findIndex(e=>e.id===t.id);n=g<20?"above":g>40?"below":"on";try{if(m){let a=e.dataTransfer.getData("application/x-timeline-element");if(!a)return;let{elementId:r,trackId:n,clickOffsetTime:l=0}=JSON.parse(a),s=i.find(e=>e.id===n),u=null==s?void 0:s.elements.find(e=>e.id===r);if(!u)return void L.oR.error("Element not found");let m=u.duration-u.trimStart-u.trimEnd,f=v-l,h=k(f,m,r),x=Math.max(0,h),p=x+m;if(t.elements.some(e=>{if(n===t.id&&e.id===r)return!1;let a=e.startTime,l=e.startTime+(e.duration-e.trimStart-e.trimEnd);return x<l&&p>a}))return void L.oR.error("Cannot move element here - it would overlap with existing elements");n===t.id?y?c(t.id,r,x):d(t.id,r,x):(o(n,t.id,r),requestAnimationFrame(()=>{y?c(t.id,r,x):d(t.id,r,x)}))}else if(f){let a=e.dataTransfer.getData("application/x-media-item");if(!a)return;let r=JSON.parse(a);if("text"===r.type){let e=t.id,a=t;if("text"!==t.type||"on"!==n){let t,r=(0,$.xK)(i);t="above"===n?w:"below"===n?w+1:r?i.findIndex(e=>e.id===r.id):0,e=j("text",t);let l=T.A.getState().tracks.find(t=>t.id===e);if(!l)return;a=l}let l=k(v,5),s=l+5;if(a.elements.some(e=>{let t=e.startTime,a=e.startTime+(e.duration-e.trimStart-e.trimEnd);return l<a&&s>t}))return void L.oR.error("Cannot place element here - it would overlap with existing elements");u(e,{type:"text",name:r.name||"Text",content:r.content||"Default Text",duration:B.of.DEFAULT_TEXT_DURATION,startTime:l,trimStart:0,trimEnd:0,fontSize:48,fontFamily:"Arial",color:"#ffffff",backgroundColor:"transparent",textAlign:"center",fontWeight:"normal",fontStyle:"normal",textDecoration:"none",x:0,y:0,rotation:0,opacity:1})}else{let e=l.find(e=>e.id===r.id);if(!e)return void L.oR.error("Media item not found");let a=t.id,o="video"===r.type||"image"===r.type,d="audio"===r.type,c=o?(0,$.hX)("media",t.type):!!d&&(0,$.hX)("media",t.type),m=i.find(e=>e.id===a);if(!c||"on"!==n){if(o){let e=(0,$.xK)(i);if(e)if(0===e.elements.length&&"on"===n)a=e.id,m=e;else{let t;t="above"===n?w:"below"===n?w+1:i.findIndex(t=>t.id===e.id),a=j("media",t);let r=T.A.getState().tracks.find(e=>e.id===a);if(!r)return;m=r}else{a=s("media");let e=T.A.getState().tracks.find(e=>e.id===a);if(!e)return;m=e}}else if(d){let e,t=(0,$.xK)(i);e="above"===n?w:"below"===n?w+1:t?i.findIndex(e=>e.id===t.id)+1:i.length,a=j("audio",e);let r=T.A.getState().tracks.find(e=>e.id===a);if(!r)return;m=r}}if(!m)return;let f=e.duration||5,h=k(v,f),x=h+f;if(m.elements.some(e=>{let t=e.startTime,a=e.startTime+(e.duration-e.trimStart-e.trimEnd);return h<a&&x>t}))return void L.oR.error("Cannot place element here - it would overlap with existing elements");u(a,{type:"media",mediaId:e.id,name:e.name,duration:e.duration||5,startTime:h,trimStart:0,trimEnd:0})}}}catch(e){L.oR.error("Failed to add media to track")}},children:(0,r.jsx)("div",{ref:E,className:"h-full relative track-elements-container min-w-full",children:0===t.elements.length?(0,r.jsx)("div",{className:"h-full w-full rounded-sm border-2 border-dashed flex items-center justify-center text-xs text-muted-foreground transition-colors ".concat(C?F?"border-red-500 bg-red-500/10 text-red-600":"border-blue-500 bg-blue-500/10 text-blue-600":"border-muted/30"),children:C?F?"Cannot drop - would overlap":"Drop element here":""}):(0,r.jsx)(r.Fragment,{children:t.elements.map(e=>{let n=m.some(a=>a.trackId===t.id&&a.elementId===e.id);return(0,r.jsx)(U,{element:e,track:t,zoomLevel:a,isSelected:n,onElementMouseDown:W,onElementClick:Y},e.id)})})})})}function W(e){let{currentTime:t,duration:a,zoomLevel:r,seek:n,rulerRef:l,rulerScrollRef:i,tracksScrollRef:s,playheadRef:o}=e,[d,c]=(0,D.useState)(!1),[u,m]=(0,D.useState)(null),[f,h]=(0,D.useState)(!1),[x,p]=(0,D.useState)(!1),g=(0,D.useRef)(null),v=(0,D.useRef)(0),j=d&&null!==u?u:t,b=(0,D.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),c(!0),w(e)},[a,r]),y=(0,D.useCallback)(e=>{var t;0===e.button&&(null!=o&&null!=(t=o.current)&&t.contains(e.target)||(e.preventDefault(),h(!0),p(!1),c(!0),w(e)))},[a,r]),w=(0,D.useCallback)(e=>{var t;let i=l.current;if(!i)return;let s=i.getBoundingClientRect(),o=e.clientX-s.left,d=Math.max(0,Math.min(50*a*r,o)),c=Math.max(0,Math.min(a,d/(50*r))),u=(null==(t=M.I.getState().activeProject)?void 0:t.fps)||30,f=(0,B.gY)(c,u);m(f),n(f),v.current=e.clientX},[a,r,n,l]),N=(0,D.useCallback)(()=>{var e,t;let n=null==(e=i.current)?void 0:e.querySelector("[data-radix-scroll-area-viewport]"),l=null==(t=s.current)?void 0:t.querySelector("[data-radix-scroll-area-viewport]");if(!n||!l||!d)return;let o=n.getBoundingClientRect(),c=v.current-o.left,u=n.clientWidth,m=Math.max(0,50*a*r-u),f=0;if(c<100&&n.scrollLeft>0?f=-15*(1-Math.max(0,c)/100):c>u-100&&n.scrollLeft<m&&(f=15*(1-Math.max(0,u-100-c)/100)),0!==f){let e=Math.max(0,Math.min(m,n.scrollLeft+f));n.scrollLeft=e,l.scrollLeft=e}d&&(g.current=requestAnimationFrame(N))},[d,i,s,a,r]);return(0,D.useEffect)(()=>{if(!d)return;let e=e=>{w(e),f&&p(!0)},t=e=>{c(!1),null!==u&&n(u),m(null),g.current&&(cancelAnimationFrame(g.current),g.current=null),f&&(h(!1),x||w(e),p(!1))};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),g.current=requestAnimationFrame(N),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t),g.current&&(cancelAnimationFrame(g.current),g.current=null)}},[d,u,n,w,f,x,N]),(0,D.useEffect)(()=>{var e,t;let{isPlaying:a}=R.E.getState();if(!a||d)return;let n=null==(e=i.current)?void 0:e.querySelector("[data-radix-scroll-area-viewport]"),l=null==(t=s.current)?void 0:t.querySelector("[data-radix-scroll-area-viewport]");if(!n||!l)return;let o=50*j*r,c=n.clientWidth,u=n.scrollWidth-c;(o<n.scrollLeft||o>n.scrollLeft+c)&&(n.scrollLeft=l.scrollLeft=Math.max(0,Math.min(u,o-c/2)))},[j,a,r,i,s,d]),{playheadPosition:j,handlePlayheadMouseDown:b,handleRulerMouseDown:y,isDraggingRuler:f}}function Y(e){var t,a;let{currentTime:n,duration:l,zoomLevel:i,tracks:s,seek:o,rulerRef:d,rulerScrollRef:c,tracksScrollRef:u,trackLabelsRef:m,timelineRef:f,playheadRef:h,isSnappingToPlayhead:x=!1}=e,p=(0,D.useRef)(null),g=h||p,[v,j]=(0,D.useState)(0),{playheadPosition:b,handlePlayheadMouseDown:y}=W({currentTime:n,duration:l,zoomLevel:i,seek:o,rulerRef:d,rulerScrollRef:c,tracksScrollRef:u,playheadRef:g});(0,D.useEffect)(()=>{var e;let t=null==(e=u.current)?void 0:e.querySelector("[data-radix-scroll-area-viewport]");if(!t)return;let a=()=>{j(t.scrollLeft)};return j(t.scrollLeft),t.addEventListener("scroll",a),()=>t.removeEventListener("scroll",a)},[u]);let w=(null==(t=f.current)?void 0:t.offsetHeight)||400,N=s.length>0&&(null==m?void 0:m.current)?m.current.offsetWidth:0,S=N+b*B.of.PIXELS_PER_SECOND*i-v,k=l*B.of.PIXELS_PER_SECOND*i,E=null==(a=u.current)?void 0:a.querySelector("[data-radix-scroll-area-viewport]"),C=Math.min(N+k-v,N+((null==E?void 0:E.clientWidth)||1e3)),T=Math.max(N,Math.min(C,S));return(0,r.jsxs)("div",{ref:g,className:"absolute pointer-events-auto z-150",style:{left:"".concat(T,"px"),top:0,height:"".concat(w-4,"px"),width:"2px"},onMouseDown:y,children:[(0,r.jsx)("div",{className:"absolute left-0 w-0.5 cursor-col-resize h-full ".concat("bg-foreground")}),(0,r.jsx)("div",{className:"absolute top-1 left-1/2 transform -translate-x-1/2 w-3 h-3 rounded-full border-2 shadow-xs ".concat(x?"bg-foreground border-foreground":"bg-foreground border-foreground/50")})]})}function q(e){let{startPos:t,currentPos:a,containerRef:n,isActive:l}=e,i=(0,D.useRef)(null);return((0,D.useEffect)(()=>{if(!l||!t||!a||!n.current)return;let e=n.current.getBoundingClientRect(),r=t.x-e.left,s=t.y-e.top,o=a.x-e.left,d=a.y-e.top,c=Math.min(r,o),u=Math.min(s,d),m=Math.abs(o-r),f=Math.abs(d-s);i.current&&(i.current.style.left="".concat(c,"px"),i.current.style.top="".concat(u,"px"),i.current.style.width="".concat(m,"px"),i.current.style.height="".concat(f,"px"))},[t,a,l,n]),l&&t&&a)?(0,r.jsx)("div",{ref:i,className:"absolute pointer-events-none z-50 bg-foreground/10"}):null}function K(e){var t;let{snapPoint:a,zoomLevel:n,isVisible:l,tracks:i,timelineRef:s,trackLabelsRef:o,tracksScrollRef:d}=e,[c,u]=(0,D.useState)(0);if((0,D.useEffect)(()=>{var e;let t=null==(e=d.current)?void 0:e.querySelector("[data-radix-scroll-area-viewport]");if(!t)return;let a=()=>{u(t.scrollLeft)};return u(t.scrollLeft),t.addEventListener("scroll",a),()=>t.removeEventListener("scroll",a)},[d]),!l||!a)return null;let m=(null==(t=s.current)?void 0:t.offsetHeight)||400,f=i.length>0&&(null==o?void 0:o.current)?o.current.offsetWidth:0,h=a.time*B.of.PIXELS_PER_SECOND*n;return(0,r.jsx)("div",{className:"absolute pointer-events-none z-90",style:{left:"".concat(f+h-c,"px"),top:0,height:"".concat(m-8,"px"),width:"2px"},children:(0,r.jsx)("div",{className:"w-0.5 h-full bg-primary/40 opacity-80"})})}var V=a(14138);function Z(){var e;let{tracks:t,getTotalDuration:a,clearSelectedElements:l,snappingEnabled:c,setSelectedElements:u,toggleTrackMute:m,dragState:f}=(0,T.A)(),{mediaItems:h,addMediaItem:x}=(0,A.B)(),{activeProject:p}=(0,M.I)(),{currentTime:g,duration:v,seek:j,setDuration:b,isPlaying:y,toggle:w}=(0,R.E)(),[N,S]=(0,D.useState)(!1),[k,E]=(0,D.useState)(!1),[P,z]=(0,D.useState)(0),F=(0,D.useRef)(0),O=(0,D.useRef)(null),_=(0,D.useRef)(null),[X,U]=(0,D.useState)(!1),$=(0,D.useRef)({isMouseDown:!1,downX:0,downY:0,downTime:0}),{zoomLevel:V,setZoomLevel:Z,handleWheel:J}=function(e){let{containerRef:t,isInTimeline:a=!1}=e,[r,n]=(0,D.useState)(1),l=(0,D.useCallback)(e=>{if(e.ctrlKey||e.metaKey){e.preventDefault();let t=e.deltaY>0?-.15:.15;n(e=>Math.max(.1,Math.min(10,e+t)))}else if(e.shiftKey||Math.abs(e.deltaX)>Math.abs(e.deltaY))return},[]);return(0,D.useEffect)(()=>{let e=e=>{var r;a&&(e.ctrlKey||e.metaKey)&&(null==(r=t.current)?void 0:r.contains(e.target))&&e.preventDefault()};return document.addEventListener("wheel",e,{passive:!1}),()=>{document.removeEventListener("wheel",e)}},[a,t]),{zoomLevel:r,setZoomLevel:n,handleWheel:l}}({containerRef:O,isInTimeline:X}),ee=Math.max((v||0)*B.of.PIXELS_PER_SECOND*V,(g+30)*B.of.PIXELS_PER_SECOND*V,(null==(e=O.current)?void 0:e.clientWidth)||1e3),et=(0,D.useRef)(null),ea=(0,D.useRef)(null),er=(0,D.useRef)(null),en=(0,D.useRef)(null),el=(0,D.useRef)(null),ei=(0,D.useRef)(!1),es=(0,D.useRef)(0),eo=(0,D.useRef)(0),ed=(0,D.useRef)(0),{handleRulerMouseDown:ec}=function(e){let{currentTime:t,duration:a,zoomLevel:r,seek:n,rulerRef:l,rulerScrollRef:i,tracksScrollRef:s,playheadRef:o}=e,{handleRulerMouseDown:d,isDraggingRuler:c}=W({currentTime:t,duration:a,zoomLevel:r,seek:n,rulerRef:l,rulerScrollRef:i,tracksScrollRef:s,playheadRef:o});return{handleRulerMouseDown:d,isDraggingRuler:c}}({currentTime:g,duration:v,zoomLevel:V,seek:j,rulerRef:_,rulerScrollRef:et,tracksScrollRef:ea,playheadRef:en}),eu=(0,D.useRef)(null),{selectionBox:em,handleMouseDown:ef,isSelecting:eh,justFinishedSelecting:ex}=function(e){let{containerRef:t,playheadRef:a,onSelectionComplete:r,isEnabled:n=!0}=e,[l,i]=(0,D.useState)(null),[s,o]=(0,D.useState)(!1),d=(0,D.useCallback)(e=>{var t;!(!n||e.target.closest(".timeline-element")||(null==a||null==(t=a.current)?void 0:t.contains(e.target))||e.target.closest("[data-track-labels]"))&&(e.target.closest("[data-ruler-area]")||i({startPos:{x:e.clientX,y:e.clientY},currentPos:{x:e.clientX,y:e.clientY},isActive:!1}))},[n,a]),c=(0,D.useCallback)((e,a)=>{if(!t.current)return;let n=t.current,l=n.getBoundingClientRect();e.x,l.left,e.y,l.top,a.x,l.left,a.y,l.top;let i=n.querySelectorAll(".timeline-element"),s=[];i.forEach(t=>{let r=t.getBoundingClientRect(),n={left:r.left,top:r.top,right:r.right,bottom:r.bottom},l={left:e.x,top:e.y,right:a.x,bottom:a.y},i={left:Math.min(l.left,l.right),top:Math.min(l.top,l.bottom),right:Math.max(l.left,l.right),bottom:Math.max(l.top,l.bottom)},o=t.getAttribute("data-element-id"),d=t.getAttribute("data-track-id");!(n.right<i.left||n.left>i.right||n.bottom<i.top||n.top>i.bottom)&&o&&d&&s.push({trackId:d,elementId:o})}),r(s)},[t,r]);return(0,D.useEffect)(()=>{if(!l)return;let e=e=>{let t=Math.abs(e.clientX-l.startPos.x),a=Math.abs(e.clientY-l.startPos.y),r={...l,currentPos:{x:e.clientX,y:e.clientY},isActive:t>5||a>5||l.isActive};i(r),r.isActive&&c(r.startPos,r.currentPos)},t=()=>{(null==l?void 0:l.isActive)&&(o(!0),setTimeout(()=>{o(!1)},50)),i(null)};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t)}},[l,c]),{selectionBox:l,handleMouseDown:d,isSelecting:(null==l?void 0:l.isActive)||!1,justFinishedSelecting:s}}({containerRef:eu,playheadRef:en,onSelectionComplete:e=>{u(e)}}),[ep,eg]=(0,D.useState)(null),ev=f.isDragging&&c&&null!==ep,ej=(0,D.useCallback)(e=>{eg(e)},[]),eb=(0,D.useCallback)(e=>{var t;let a=e.target;a.closest(".timeline-element")||(null==(t=en.current)?void 0:t.contains(a))||a.closest("[data-track-labels]")||($.current={isMouseDown:!0,downX:e.clientX,downY:e.clientY,downTime:e.timeStamp})},[]),ey=(0,D.useCallback)(e=>{var t,a,r;let n,{isMouseDown:i,downX:s,downY:o,downTime:d}=$.current;if($.current={isMouseDown:!1,downX:0,downY:0,downTime:0},!i)return;let c=Math.abs(e.clientX-s),u=Math.abs(e.clientY-o),m=e.timeStamp-d;if(c>5||u>5||m>500||eh||ex||e.target.closest(".timeline-element")||(null==(t=en.current)?void 0:t.contains(e.target)))return;if(e.target.closest("[data-track-labels]"))return void l();l();let f=e.target.closest("[data-ruler-area]"),h=0;if(f){let t=null==(a=et.current)?void 0:a.querySelector("[data-radix-scroll-area-viewport]");if(!t)return;let r=t.getBoundingClientRect();n=e.clientX-r.left,h=t.scrollLeft}else{let t=null==(r=ea.current)?void 0:r.querySelector("[data-radix-scroll-area-viewport]");if(!t)return;let a=t.getBoundingClientRect();n=e.clientX-a.left,h=t.scrollLeft}let x=Math.max(0,Math.min(v,(n+h)/(B.of.PIXELS_PER_SECOND*V))),g=(null==p?void 0:p.fps)||30;j((0,B.gY)(x,g))},[v,V,j,et,ea,l,eh,ex]);(0,D.useEffect)(()=>{b(Math.max(a(),10))},[t,b,a]);let ew=async e=>{var t;if(e.preventDefault(),S(!1),F.current=0,e.dataTransfer.types.includes("application/x-timeline-element"))return;let a=e.dataTransfer.getData("application/x-media-item");if(a)try{let e=JSON.parse(a);if("text"===e.type)T.A.getState().addTextToNewTrack(e);else{let t=h.find(t=>t.id===e.id);if(!t)return void L.oR.error("Media item not found");T.A.getState().addMediaToNewTrack(t)}}catch(e){L.oR.error("Failed to add item to timeline")}else if((null==(t=e.dataTransfer.files)?void 0:t.length)>0){if(!p)return void L.oR.error("No active project");E(!0),z(0);try{for(let t of(await (0,I.T)(e.dataTransfer.files,e=>z(e)))){await x(p.id,t);let e=A.B.getState().mediaItems.find(e=>e.name===t.name&&e.url===t.url);e&&T.A.getState().addMediaToNewTrack(e)}}catch(e){L.oR.error("Failed to process dropped files")}finally{E(!1),z(0)}}};return(0,D.useEffect)(()=>{var e,t,a;let r=null==(e=et.current)?void 0:e.querySelector("[data-radix-scroll-area-viewport]"),n=null==(t=ea.current)?void 0:t.querySelector("[data-radix-scroll-area-viewport]"),l=null==(a=el.current)?void 0:a.querySelector("[data-radix-scroll-area-viewport]");if(!r||!n)return;let i=()=>{let e=Date.now();ei.current||e-es.current<16||(es.current=e,ei.current=!0,n.scrollLeft=r.scrollLeft,ei.current=!1)},s=()=>{let e=Date.now();ei.current||e-eo.current<16||(eo.current=e,ei.current=!0,r.scrollLeft=n.scrollLeft,ei.current=!1)};if(r.addEventListener("scroll",i),n.addEventListener("scroll",s),l){let e=()=>{let e=Date.now();ei.current||e-ed.current<16||(ed.current=e,ei.current=!0,n.scrollTop=l.scrollTop,ei.current=!1)},t=()=>{let e=Date.now();ei.current||e-ed.current<16||(ed.current=e,ei.current=!0,l.scrollTop=n.scrollTop,ei.current=!1)};return l.addEventListener("scroll",e),n.addEventListener("scroll",t),()=>{r.removeEventListener("scroll",i),n.removeEventListener("scroll",s),l.removeEventListener("scroll",e),n.removeEventListener("scroll",t)}}return()=>{r.removeEventListener("scroll",i),n.removeEventListener("scroll",s)}},[]),(0,r.jsxs)("div",{className:"h-full flex flex-col transition-colors duration-200 relative bg-panel rounded-sm overflow-hidden",...{onDragEnter:e=>{e.preventDefault(),!e.dataTransfer.types.includes("application/x-timeline-element")&&(F.current+=1,N||S(!0))},onDragOver:e=>{e.preventDefault()},onDragLeave:e=>{e.preventDefault(),e.dataTransfer.types.includes("application/x-timeline-element")||(F.current-=1,0===F.current&&S(!1))},onDrop:ew},onMouseEnter:()=>U(!0),onMouseLeave:()=>U(!1),children:[(0,r.jsx)(G,{zoomLevel:V,setZoomLevel:Z}),(0,r.jsxs)("div",{className:"flex-1 flex flex-col overflow-hidden relative",ref:O,children:[(0,r.jsx)(Y,{currentTime:g,duration:v,zoomLevel:V,tracks:t,seek:j,rulerRef:_,rulerScrollRef:et,tracksScrollRef:ea,trackLabelsRef:er,timelineRef:O,playheadRef:en,isSnappingToPlayhead:ev&&(null==ep?void 0:ep.type)==="playhead"}),(0,r.jsx)(K,{snapPoint:ep,zoomLevel:V,tracks:t,timelineRef:O,trackLabelsRef:er,tracksScrollRef:ea,isVisible:ev}),(0,r.jsxs)("div",{className:"flex bg-panel sticky top-0 z-10",children:[(0,r.jsx)("div",{className:"w-28 shrink-0 bg-panel border-r flex items-center justify-between px-3 py-2",children:(0,r.jsx)("span",{className:"text-sm font-medium text-muted-foreground opacity-0",children:"."})}),(0,r.jsx)("div",{className:"flex-1 relative overflow-hidden h-10",onWheel:e=>{e.shiftKey||Math.abs(e.deltaX)>Math.abs(e.deltaY)||J(e)},onMouseDown:ef,onClick:ey,"data-ruler-area":!0,children:(0,r.jsx)(n.F,{className:"w-full",ref:et,children:(0,r.jsxs)("div",{ref:_,className:"relative h-10 select-none cursor-default",style:{width:"".concat(ee,"px")},onMouseDown:ec,children:[(()=>{let e=(e=>{let t=B.of.PIXELS_PER_SECOND*e;return t>=200?.1:t>=100?.5:t>=50?1:t>=25?2:t>=12?5:t>=6?10:30})(V);return Array.from({length:Math.ceil(v/e)+1},(t,a)=>{let n=a*e;if(n>v)return null;let l=n%(e>=1?Math.max(1,e):1)==0;return(0,r.jsx)("div",{className:"absolute top-0 h-4 ".concat(l?"border-l border-muted-foreground/40":"border-l border-muted-foreground/20"),style:{left:"".concat(n*B.of.PIXELS_PER_SECOND*V,"px")},children:(0,r.jsx)("span",{className:"absolute top-1 left-1 text-[0.6rem] ".concat(l?"text-muted-foreground font-medium":"text-muted-foreground/70"),children:(()=>{let t=Math.floor(n/3600),a=Math.floor(n%3600/60),r=n%60;return t>0?"".concat(t,":").concat(a.toString().padStart(2,"0"),":").concat(Math.floor(r).toString().padStart(2,"0")):a>0?"".concat(a,":").concat(Math.floor(r).toString().padStart(2,"0")):e>=1?"".concat(Math.floor(r),"s"):"".concat(r.toFixed(1),"s")})()})},a)}).filter(Boolean)})(),(()=>{var e;let{activeProject:t}=M.I.getState();return(null==t||null==(e=t.bookmarks)?void 0:e.length)?t.bookmarks.map((e,t)=>(0,r.jsx)("div",{className:"absolute top-0 h-10 w-0.5 !bg-primary cursor-pointer",style:{left:"".concat(e*B.of.PIXELS_PER_SECOND*V,"px")},onClick:t=>{t.stopPropagation(),R.E.getState().seek(e)},children:(0,r.jsx)("div",{className:"absolute top-[-1px] left-[-5px] text-primary",children:(0,r.jsx)(i.A,{className:"h-3 w-3 fill-primary"})})},"bookmark-".concat(t))):null})()]})})})]}),(0,r.jsxs)("div",{className:"flex-1 flex overflow-hidden",children:[t.length>0&&(0,r.jsx)("div",{ref:er,className:"w-28 shrink-0 border-r overflow-y-auto z-100 bg-panel","data-track-labels":!0,children:(0,r.jsx)(n.F,{className:"w-full h-full",ref:el,children:(0,r.jsx)("div",{className:"flex flex-col gap-1",children:t.map(e=>(0,r.jsx)("div",{className:"flex items-center px-3 group",style:{height:"".concat((0,B.t_)(e.type),"px")},children:(0,r.jsxs)("div",{className:"flex items-center justify-end flex-1 min-w-0 gap-2",children:[e.muted?(0,r.jsx)(s.A,{className:"h-4 w-4 text-destructive cursor-pointer",onClick:()=>m(e.id)}):(0,r.jsx)(o.A,{className:"h-4 w-4 text-muted-foreground cursor-pointer",onClick:()=>m(e.id)}),(0,r.jsx)(d.A,{className:"h-4 w-4 text-muted-foreground"}),(0,r.jsx)(Q,{track:e})]})},e.id))})})}),(0,r.jsxs)("div",{className:"flex-1 relative overflow-hidden",onWheel:e=>{e.shiftKey||Math.abs(e.deltaX)>Math.abs(e.deltaY)||J(e)},onMouseDown:e=>{eb(e),ef(e)},onClick:ey,ref:eu,children:[(0,r.jsx)(q,{startPos:(null==em?void 0:em.startPos)||null,currentPos:(null==em?void 0:em.currentPos)||null,containerRef:eu,isActive:(null==em?void 0:em.isActive)||!1}),(0,r.jsx)(n.F,{className:"w-full h-full",ref:ea,children:(0,r.jsx)("div",{className:"relative flex-1",style:{height:"".concat(Math.max(200,Math.min(800,(0,B.Ij)(t))),"px"),width:"".concat(ee,"px")},children:0===t.length?(0,r.jsx)("div",{}):(0,r.jsx)(r.Fragment,{children:t.map((e,a)=>(0,r.jsxs)(C.tz,{children:[(0,r.jsx)(C.Rc,{asChild:!0,children:(0,r.jsx)("div",{className:"absolute left-0 right-0",style:{top:"".concat((0,B.sn)(t,a),"px"),height:"".concat((0,B.t_)(e.type),"px")},onClick:e=>{e.target.closest(".timeline-element")||l()},children:(0,r.jsx)(H,{track:e,zoomLevel:V,onSnapPointChange:ej})})}),(0,r.jsxs)(C.Ip,{className:"z-200",children:[(0,r.jsx)(C.kt,{onClick:t=>{t.stopPropagation(),m(e.id)},children:e.muted?"Unmute Track":"Mute Track"}),(0,r.jsx)(C.kt,{onClick:e=>e.stopPropagation(),children:"Track settings (soon)"})]})]},e.id))})})})]})]})]})]})}function Q(e){let{track:t}=e;return(0,r.jsxs)(r.Fragment,{children:["media"===t.type&&(0,r.jsx)(c.A,{className:"w-4 h-4 shrink-0 text-muted-foreground"}),"text"===t.type&&(0,r.jsx)(u.A,{className:"w-4 h-4 shrink-0 text-muted-foreground"}),"audio"===t.type&&(0,r.jsx)(m.A,{className:"w-4 h-4 shrink-0 text-muted-foreground"})]})}function G(e){let{zoomLevel:t,setZoomLevel:a}=e,{tracks:n,addTrack:s,addElementToTrack:o,removeElementFromTrack:d,removeElementFromTrackWithRipple:c,selectedElements:u,clearSelectedElements:m,splitElement:C,splitAndKeepLeft:A,splitAndKeepRight:D,separateAudio:I,snappingEnabled:P,toggleSnapping:z,rippleEditingEnabled:F,toggleRippleEditing:O}=(0,T.A)(),{currentTime:_,duration:X,isPlaying:U,toggle:$}=(0,R.E)(),{toggleBookmark:H,isBookmarked:W}=(0,M.I)(),Y=async()=>{await H(_)},q=W(_);return(0,r.jsxs)("div",{className:"border-b flex items-center justify-between px-2 py-1",children:[(0,r.jsx)("div",{className:"flex items-center gap-1 w-full",children:(0,r.jsxs)(E.TooltipProvider,{delayDuration:500,children:[(0,r.jsxs)(E.m_,{children:[(0,r.jsx)(E.k$,{asChild:!0,children:(0,r.jsx)(l.$,{variant:"text",size:"icon",onClick:$,className:"mr-2",children:U?(0,r.jsx)(f.A,{className:"h-4 w-4"}):(0,r.jsx)(h.A,{className:"h-4 w-4"})})}),(0,r.jsx)(E.ZI,{children:U?"Pause (Space)":"Play (Space)"})]}),(0,r.jsx)("div",{className:"w-px h-6 bg-border mx-1"}),(0,r.jsxs)("div",{className:"text-xs text-muted-foreground font-mono px-2",style:{minWidth:"18ch",textAlign:"center"},children:[_.toFixed(1),"s / ",X.toFixed(1),"s"]}),0===n.length&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"w-px h-6 bg-border mx-1"}),(0,r.jsxs)(E.m_,{children:[(0,r.jsx)(E.k$,{asChild:!0,children:(0,r.jsx)(l.$,{variant:"outline",size:"sm",onClick:()=>{o(s("media"),{type:"media",mediaId:"test",name:"Test Clip",duration:B.of.DEFAULT_TEXT_DURATION,startTime:0,trimStart:0,trimEnd:0})},className:"text-xs",children:"Add Test Clip"})}),(0,r.jsx)(E.ZI,{children:"Add a test clip to try playback"})]})]}),(0,r.jsx)("div",{className:"w-px h-6 bg-border mx-1"}),(0,r.jsxs)(E.m_,{children:[(0,r.jsx)(E.k$,{asChild:!0,children:(0,r.jsx)(l.$,{variant:"text",size:"icon",onClick:()=>{if(0===u.length)return;let e=0;u.forEach(t=>{let{trackId:a,elementId:r}=t,l=n.find(e=>e.id===a),i=null==l?void 0:l.elements.find(e=>e.id===r);if(i&&l){let t=i.startTime,n=i.startTime+(i.duration-i.trimStart-i.trimEnd);_>t&&_<n&&C(a,r,_)&&e++}}),0===e&&L.oR.error("Playhead must be within selected elements to split")},children:(0,r.jsx)(x.A,{className:"h-4 w-4"})})}),(0,r.jsx)(E.ZI,{children:"Split element (Ctrl+S)"})]}),(0,r.jsxs)(E.m_,{children:[(0,r.jsx)(E.k$,{asChild:!0,children:(0,r.jsx)(l.$,{variant:"text",size:"icon",onClick:()=>{if(1!==u.length)return void L.oR.error("Select exactly one element");let{trackId:e,elementId:t}=u[0],a=n.find(t=>t.id===e),r=null==a?void 0:a.elements.find(e=>e.id===t);if(!r)return;let l=r.startTime,i=r.startTime+(r.duration-r.trimStart-r.trimEnd);if(_<=l||_>=i)return void L.oR.error("Playhead must be within selected element");A(e,t,_)},children:(0,r.jsx)(p.A,{className:"h-4 w-4"})})}),(0,r.jsx)(E.ZI,{children:"Split and keep left (Ctrl+Q)"})]}),(0,r.jsxs)(E.m_,{children:[(0,r.jsx)(E.k$,{asChild:!0,children:(0,r.jsx)(l.$,{variant:"text",size:"icon",onClick:()=>{if(1!==u.length)return void L.oR.error("Select exactly one element");let{trackId:e,elementId:t}=u[0],a=n.find(t=>t.id===e),r=null==a?void 0:a.elements.find(e=>e.id===t);if(!r)return;let l=r.startTime,i=r.startTime+(r.duration-r.trimStart-r.trimEnd);if(_<=l||_>=i)return void L.oR.error("Playhead must be within selected element");D(e,t,_)},children:(0,r.jsx)(g.A,{className:"h-4 w-4"})})}),(0,r.jsx)(E.ZI,{children:"Split and keep right (Ctrl+W)"})]}),(0,r.jsxs)(E.m_,{children:[(0,r.jsx)(E.k$,{asChild:!0,children:(0,r.jsx)(l.$,{variant:"text",size:"icon",onClick:()=>{if(1!==u.length)return void L.oR.error("Select exactly one media element to separate audio");let{trackId:e,elementId:t}=u[0],a=n.find(t=>t.id===e);if(!a||"media"!==a.type)return void L.oR.error("Select a media element to separate audio");I(e,t)},children:(0,r.jsx)(v.A,{className:"h-4 w-4"})})}),(0,r.jsx)(E.ZI,{children:"Separate audio (Ctrl+D)"})]}),(0,r.jsxs)(E.m_,{children:[(0,r.jsx)(E.k$,{asChild:!0,children:(0,r.jsx)(l.$,{variant:"text",size:"icon",onClick:()=>{0!==u.length&&1===u.length&&(u.forEach(e=>{let{trackId:t,elementId:a}=e,r=n.find(e=>e.id===t),l=null==r?void 0:r.elements.find(e=>e.id===a);if(l){let e=l.startTime+(l.duration-l.trimStart-l.trimEnd)+.1,{id:a,...r}=l;o(t,{...r,startTime:e})}}),m())},children:(0,r.jsx)(j.A,{className:"h-4 w-4"})})}),(0,r.jsx)(E.ZI,{children:"Duplicate element (Ctrl+D)"})]}),(0,r.jsxs)(E.m_,{children:[(0,r.jsx)(E.k$,{asChild:!0,children:(0,r.jsx)(l.$,{variant:"text",size:"icon",onClick:()=>{L.oR.info("Freeze frame functionality coming soon!")},children:(0,r.jsx)(b.A,{className:"h-4 w-4"})})}),(0,r.jsx)(E.ZI,{children:"Freeze frame (F)"})]}),(0,r.jsxs)(E.m_,{children:[(0,r.jsx)(E.k$,{asChild:!0,children:(0,r.jsx)(l.$,{variant:"text",size:"icon",onClick:()=>{0!==u.length&&(u.forEach(e=>{let{trackId:t,elementId:a}=e;F?c(t,a):d(t,a)}),m())},children:(0,r.jsx)(y.A,{className:"h-4 w-4"})})}),(0,r.jsx)(E.ZI,{children:"Delete element (Delete)"})]}),(0,r.jsx)("div",{className:"w-px h-6 bg-border mx-1"}),(0,r.jsxs)(E.m_,{children:[(0,r.jsx)(E.k$,{asChild:!0,children:(0,r.jsx)(l.$,{variant:"text",size:"icon",onClick:Y,children:(0,r.jsx)(i.A,{className:"h-4 w-4 ".concat(q?"fill-primary text-primary":"")})})}),(0,r.jsx)(E.ZI,{children:q?"Remove bookmark":"Add bookmark"})]})]})}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsxs)(E.TooltipProvider,{delayDuration:500,children:[(0,r.jsxs)(E.m_,{children:[(0,r.jsx)(E.k$,{asChild:!0,children:(0,r.jsx)(l.$,{variant:"text",size:"icon",onClick:z,children:P?(0,r.jsx)(w.A,{className:"h-4 w-4 text-primary"}):(0,r.jsx)(w.A,{className:"h-4 w-4"})})}),(0,r.jsx)(E.ZI,{children:"Auto snapping"})]}),(0,r.jsxs)(E.m_,{children:[(0,r.jsx)(E.k$,{asChild:!0,children:(0,r.jsx)(l.$,{variant:"text",size:"icon",onClick:O,children:(0,r.jsx)(N.A,{className:"h-4 w-4 ".concat(F?"text-primary":"")})})}),(0,r.jsx)(E.ZI,{children:F?"Disable Ripple Editing":"Enable Ripple Editing"})]})]}),(0,r.jsx)("div",{className:"h-6 w-px bg-border mx-1"}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)(l.$,{variant:"text",size:"icon",onClick:()=>{a(Math.max(.25,t-.25))},children:(0,r.jsx)(S.A,{className:"h-4 w-4"})}),(0,r.jsx)(V.A,{className:"w-24",value:[t],onValueChange:e=>{a(e[0])},min:.25,max:4,step:.25}),(0,r.jsx)(l.$,{variant:"text",size:"icon",onClick:()=>{a(Math.min(4,t+.25))},children:(0,r.jsx)(k.A,{className:"h-4 w-4"})})]})]})]})}},8435:(e,t,a)=>{a.d(t,{z:()=>j});var r=a(28064),n=a(74188),l=a(26880),i=a(75141);class s{subscribe(e){return this.listeners.push(e),()=>{this.listeners=this.listeners.filter(t=>t!==e)}}emit(e){this.listeners.forEach(t=>t(e))}constructor(){this.listeners=[]}}let o=new s,d={};function c(){let e=Object.keys(d);o.emit(e)}function u(e,t){if(d[e]){var a;null==(a=d[e])||a.push(t)}else d[e]=[t];c()}function m(e,t){var a,r;d[e]=null==(a=d[e])?void 0:a.filter(e=>e!==t),(null==(r=d[e])?void 0:r.length)===0&&delete d[e],c()}function f(e,t,a){let r=(0,n.useRef)(t),[l,i]=(0,n.useState)(!1);(0,n.useEffect)(()=>{r.current=t},[t]);let s=(0,n.useCallback)((e,t)=>{r.current(e,t)},[]);(0,n.useEffect)(()=>{let t=void 0===a||("boolean"==typeof a?a:a.current);return t&&!l?(u(e,s),i(!0)):!t&&l&&(m(e,s),i(!1)),()=>{l&&(m(e,s),i(!1))}},[e,s,a,l]),(0,n.useEffect)(()=>{if(a&&"object"==typeof a&&"current"in a){let t=setInterval(()=>{let t=a.current;t!==l&&(t?u(e,s):m(e,s),i(t))},100);return()=>clearInterval(t)}},[e,s,a,l])}var h=a(13893),x=a(8300),p=a(81925),g=a(82337),v=a(61557);function j(e){let{children:t}=e,{isInitializing:a,isPanelsReady:s,initializeApp:o}=(0,i.U)(),{disableKeybindings:c,enableKeybindings:u}=function(){let{disableKeybindings:e,enableKeybindings:t}=(0,h.y)();return{disableKeybindings:e,enableKeybindings:t}}(),{tracks:m,selectedElements:j,clearSelectedElements:b,setSelectedElements:y,removeElementFromTrack:w,splitElement:N,addElementToTrack:S,snappingEnabled:k,toggleSnapping:E,undo:C,redo:T}=(0,x.A)(),{currentTime:A,duration:R,isPlaying:M,toggle:D,seek:I}=(0,p.E)(),{activeProject:L}=(0,g.I)();f("toggle-play",()=>{D()},void 0),f("stop-playback",()=>{M&&D(),I(0)},void 0),f("seek-forward",e=>{var t;I(Math.min(R,A+(null!=(t=null==e?void 0:e.seconds)?t:1)))},void 0),f("seek-backward",e=>{var t;I(Math.max(0,A-(null!=(t=null==e?void 0:e.seconds)?t:1)))},void 0),f("frame-step-forward",()=>{I(Math.min(R,A+1/((null==L?void 0:L.fps)||30)))},void 0),f("frame-step-backward",()=>{I(Math.max(0,A-1/((null==L?void 0:L.fps)||30)))},void 0),f("jump-forward",e=>{var t;I(Math.min(R,A+(null!=(t=null==e?void 0:e.seconds)?t:5)))},void 0),f("jump-backward",e=>{var t;I(Math.max(0,A-(null!=(t=null==e?void 0:e.seconds)?t:5)))},void 0),f("goto-start",()=>{I(0)},void 0),f("goto-end",()=>{I(R)},void 0),f("split-element",()=>{if(1!==j.length)return void v.oR.error("Select exactly one element to split");let{trackId:e,elementId:t}=j[0],a=m.find(t=>t.id===e),r=null==a?void 0:a.elements.find(e=>e.id===t);if(r){let a=r.startTime,n=r.startTime+(r.duration-r.trimStart-r.trimEnd);A>a&&A<n?N(e,t,A):v.oR.error("Playhead must be within selected element")}},void 0),f("delete-selected",()=>{0!==j.length&&(j.forEach(e=>{let{trackId:t,elementId:a}=e;w(t,a)}),b())},void 0),f("select-all",()=>{y(m.flatMap(e=>e.elements.map(t=>({trackId:e.id,elementId:t.id}))))},void 0),f("duplicate-selected",()=>{if(1!==j.length)return void v.oR.error("Select exactly one element to duplicate");let{trackId:e,elementId:t}=j[0],a=m.find(t=>t.id===e),r=null==a?void 0:a.elements.find(e=>e.id===t);if(r){let t=r.startTime+(r.duration-r.trimStart-r.trimEnd)+.1,{id:a,...n}=r;S(e,{...n,startTime:t})}},void 0),f("toggle-snapping",()=>{E()},void 0),f("undo",()=>{C()},void 0),f("redo",()=>{T()},void 0);let{keybindings:P,getKeybindingString:z,keybindingsEnabled:F,isRecording:O}=(0,h.y)();return((0,n.useEffect)(()=>{let e=e=>{let t;if(!F||O)return;let a=z(e);if(!a)return;let r=P[a];if(!r)return;let n=document.activeElement;if(!(n&&("INPUT"===n.tagName||"TEXTAREA"===n.tagName||n.isContentEditable))){var l,i;e.preventDefault(),"seek-forward"===r||"seek-backward"===r?t={seconds:1}:"jump-forward"===r?t={seconds:5}:"jump-backward"===r&&(t={seconds:5}),l=t,null==(i=d[r])||i.forEach(e=>e(l,"keypress"))}};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[P,z,F,O]),(0,n.useEffect)(()=>{a||!s?c():u()},[a,s,c,u]),(0,n.useEffect)(()=>{o()},[o]),a||!s)?(0,r.jsx)("div",{className:"h-screen w-screen flex items-center justify-center bg-background",children:(0,r.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,r.jsx)(l.A,{className:"h-8 w-8 animate-spin text-muted-foreground"}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:"Loading editor..."})]})}):(0,r.jsx)(r.Fragment,{children:t})}},9466:(e,t,a)=>{a.d(t,{v:()=>i});var r=a(59467),n=a(20159);let l={toolsPanel:45,previewPanel:75,propertiesPanel:20,mainContent:70,timeline:30},i=(0,r.v)()((0,n.Zr)(e=>({...l,mediaViewMode:"grid",setToolsPanel:t=>e({toolsPanel:t}),setPreviewPanel:t=>e({previewPanel:t}),setPropertiesPanel:t=>e({propertiesPanel:t}),setMainContent:t=>e({mainContent:t}),setTimeline:t=>e({timeline:t}),setMediaViewMode:t=>e({mediaViewMode:t})}),{name:"panel-sizes"}))},13893:(e,t,a)=>{a.d(t,{y:()=>s});var r=a(59467),n=a(20159),l=a(93146);let i={space:"toggle-play",j:"seek-backward",k:"toggle-play",l:"seek-forward",left:"frame-step-backward",right:"frame-step-forward","shift+left":"jump-backward","shift+right":"jump-forward",home:"goto-start",end:"goto-end",s:"split-element",n:"toggle-snapping","ctrl+a":"select-all","ctrl+d":"duplicate-selected","ctrl+z":"undo","ctrl+shift+z":"redo","ctrl+y":"redo",delete:"delete-selected",backspace:"delete-selected"},s=(0,r.v)()((0,n.Zr)((e,t)=>({keybindings:{...i},isCustomized:!1,keybindingsEnabled:!0,isRecording:!1,updateKeybinding:(t,a)=>{e(e=>{let r={...e.keybindings};return r[t]=a,{keybindings:r,isCustomized:!0}})},removeKeybinding:t=>{e(e=>{let a={...e.keybindings};return delete a[t],{keybindings:a,isCustomized:!0}})},resetToDefaults:()=>{e({keybindings:{...i},isCustomized:!1})},enableKeybindings:()=>{e({keybindingsEnabled:!0})},disableKeybindings:()=>{e({keybindingsEnabled:!1})},importKeybindings:t=>{for(let[e,a]of Object.entries(t))if("string"!=typeof e||0===e.length)throw Error("Invalid key format: ".concat(e));e({keybindings:{...t},isCustomized:!0})},exportKeybindings:()=>t().keybindings,validateKeybinding:(e,a)=>{let{keybindings:r}=t(),n=r[e];return n&&n!==a?{key:e,existingAction:n,newAction:a}:null},setIsRecording:t=>{e({isRecording:t})},getKeybindingsForAction:e=>{let{keybindings:a}=t();return Object.keys(a).filter(t=>a[t]===e)},getKeybindingString:e=>(function(e){let t=e.target,a=function(e){let t={ctrl:(0,l.lg)()?e.metaKey:e.ctrlKey,alt:e.altKey,shift:e.shiftKey},a=Object.keys(t).filter(e=>t[e]).join("+");return""===a?null:a}(e),r=function(e){var t,a;let r=(null!=(t=e.key)?t:"").toLowerCase(),n=null!=(a=e.code)?a:"";if(r.startsWith("arrow"))return r.slice(5);if("tab"===r)return"tab";if(" "===r||"space"===r)return"space";if("home"===r)return"home";if("end"===r)return"end";if("delete"===r)return"delete";if("backspace"===r)return"backspace";if(n.startsWith("Key")){let e=n.slice(3).toLowerCase();if(1===e.length&&e>="a"&&e<="z")return e}if(n.startsWith("Digit")){let e=n.slice(5);if(1===e.length&&e>="0"&&e<="9")return e}return 1===r.length&&r>="0"&&r<="9"||"/"===r||"."===r||"enter"===r?r:null}(e);return r?a?"shift"===a&&(0,l.Fe)(t)&&(0,l.mr)(t)?null:"".concat(a,"+").concat(r):(0,l.Fe)(t)&&(0,l.mr)(t)?null:"".concat(r):null})(e)}),{name:"opencut-keybindings",version:1}))},14138:(e,t,a)=>{a.d(t,{A:()=>s});var r=a(28064),n=a(74188),l=a(39124),i=a(93146);let s=n.forwardRef((e,t)=>{let{className:a,...n}=e;return(0,r.jsxs)(l.Root,{ref:t,className:(0,i.cn)("relative flex w-full touch-none select-none items-center",a),...n,children:[(0,r.jsx)(l.Track,{className:"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20",children:(0,r.jsx)(l.Range,{className:"absolute h-full bg-primary"})}),(0,r.jsx)(l.Thumb,{className:"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow-sm transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"})]})});s.displayName=l.Root.displayName},15467:(e,t,a)=>{a.d(t,{H:()=>l});var r=a(28064),n=a(93146);function l(e){let{leftContent:t,centerContent:a,rightContent:l,className:i,children:s}=e;return s?(0,r.jsx)("header",{className:(0,n.cn)("px-6 h-16 flex items-center",i),children:s}):(0,r.jsxs)("header",{className:(0,n.cn)("px-6 h-14 flex justify-between items-center",i),children:[t&&(0,r.jsx)("div",{className:"flex items-center",children:t}),a&&(0,r.jsx)("div",{className:"flex items-center",children:a}),l&&(0,r.jsx)("div",{className:"flex items-center",children:l})]})}},18377:(e,t,a)=>{a.d(t,{X:()=>P});var r=a(28064),n=a(61309),l=a(90320),i=a(65803),s=a(80647),o=a(23392),d=a(59674),c=a(27940),u=a(8300),m=a(15467),f=a(4600),h=a(82337),x=a(30651),p=a(74188),g=a(61557),v=a(13893),j=a(93146);let b={"toggle-play":{description:"Play/Pause",category:"Playback"},"stop-playback":{description:"Stop playback",category:"Playback"},"seek-forward":{description:"Seek forward 1 second",category:"Playback"},"seek-backward":{description:"Seek backward 1 second",category:"Playback"},"frame-step-forward":{description:"Frame step forward",category:"Navigation"},"frame-step-backward":{description:"Frame step backward",category:"Navigation"},"jump-forward":{description:"Jump forward 5 seconds",category:"Navigation"},"jump-backward":{description:"Jump backward 5 seconds",category:"Navigation"},"goto-start":{description:"Go to timeline start",category:"Navigation"},"goto-end":{description:"Go to timeline end",category:"Navigation"},"split-element":{description:"Split element at playhead",category:"Editing"},"delete-selected":{description:"Delete selected elements",category:"Editing"},"select-all":{description:"Select all elements",category:"Selection"},"duplicate-selected":{description:"Duplicate selected element",category:"Selection"},"toggle-snapping":{description:"Toggle snapping",category:"Editing"},undo:{description:"Undo",category:"History"},redo:{description:"Redo",category:"History"}};var y=a(66981);let w=e=>{let{shortcut:t,isRecording:a,onStartRecording:n}=e,l=t.keys.filter(e=>!(e.includes("Cmd")&&t.keys.includes(e.replace("Cmd","Ctrl"))));return(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[t.icon&&(0,r.jsx)("div",{className:"text-muted-foreground",children:t.icon}),(0,r.jsx)("span",{className:"text-sm",children:t.description})]}),(0,r.jsx)("div",{className:"flex items-center gap-1",children:l.map((e,i)=>(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)("div",{className:"flex items-center",children:e.split("+").map((e,l)=>{let s="".concat(t.id,"-").concat(i,"-").concat(l);return(0,r.jsx)(N,{isRecording:a,onStartRecording:()=>n(t),children:e},s)})}),i<l.length-1&&(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:"or"})]},e))})]})},N=e=>{let{children:t,isRecording:a,onStartRecording:l}=e;return(0,r.jsx)(n.$,{variant:"text",size:"sm",className:"inline-flex font-sans text-xs rounded px-2 min-w-6 min-h-6 leading-none items-center justify-center shadow-xs border mr-1 cursor-pointer hover:bg-opacity-80 ".concat(a?"border-primary bg-primary/10":"border bg-accent"),onClick:e=>{e.preventDefault(),e.stopPropagation(),l()},title:a?"Press any key combination...":"Click to edit shortcut",children:t})},S=()=>{let[e,t]=(0,p.useState)(!1),[a,l]=(0,p.useState)(null),{updateKeybinding:i,removeKeybinding:s,getKeybindingString:o,validateKeybinding:d,getKeybindingsForAction:c,setIsRecording:u,resetToDefaults:m,isRecording:f}=(0,v.y)(),{shortcuts:h}=(()=>{let{keybindings:e}=(0,v.y)();return{shortcuts:(0,p.useMemo)(()=>{let t=[],a={};return Object.entries(e).forEach(e=>{let[t,r]=e;r&&(a[r]||(a[r]=[]),a[r].push(t.replace("ctrl",(0,j.C7)()).replace("alt",(0,j.bT)()).replace("shift","Shift").replace("left","←").replace("right","→").replace("up","↑").replace("down","↓").replace("space","Space").replace("home","Home").replace("end","End").replace("delete","Delete").replace("backspace","Backspace").replace("-","+")))}),Object.entries(a).forEach(e=>{let[a,r]=e,n=b[a];n&&t.push({id:a,keys:r,description:n.description,category:n.category,action:a})}),t.sort((e,t)=>e.category!==t.category?e.category.localeCompare(t.category):e.description.localeCompare(t.description))},[e])}})(),N=Array.from(new Set(h.map(e=>e.category)));(0,p.useEffect)(()=>{if(!f||!a)return;let e=e=>{e.preventDefault(),e.stopPropagation();let t=o(e);if(t){let e=d(t,a.action);if(e){g.oR.error('Key "'.concat(t,'" is already bound to "').concat(e.existingAction,'"')),l(null);return}c(a.action).forEach(e=>s(e)),i(t,a.action),u(!1),l(null)}},t=()=>{l(null),u(!1)};return document.addEventListener("keydown",e),document.addEventListener("click",t),()=>{document.removeEventListener("keydown",e),document.removeEventListener("click",t)}},[a,o,i,s,d,c,u,f]);let S=e=>{l(e),u(!0)};return(0,r.jsxs)(y.lG,{open:e,onOpenChange:t,children:[(0,r.jsx)(y.zM,{asChild:!0,children:(0,r.jsxs)(n.$,{variant:"text",size:"sm",className:"gap-2",children:[(0,r.jsx)(x.A,{className:"w-4 h-4"}),"Shortcuts"]})}),(0,r.jsxs)(y.Cf,{className:"max-w-2xl overflow-y-auto",children:[(0,r.jsxs)(y.c7,{children:[(0,r.jsxs)(y.L3,{className:"flex items-center gap-2",children:[(0,r.jsx)(x.A,{className:"w-5 h-5"}),"Keyboard Shortcuts"]}),(0,r.jsx)(y.rr,{children:"Speed up your video editing workflow with these keyboard shortcuts. Click any shortcut key to edit it."})]}),(0,r.jsx)("div",{className:"space-y-6",children:N.map(e=>(0,r.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,r.jsx)("h3",{className:"text-xs text-muted-foreground uppercase tracking-wide font-medium",children:e}),(0,r.jsx)("div",{className:"space-y-0.5",children:h.filter(t=>t.category===e).map(e=>(0,r.jsx)(w,{shortcut:e,isRecording:e.action===(null==a?void 0:a.action),onStartRecording:S},e.action))})]},e))}),(0,r.jsx)(y.Es,{children:(0,r.jsx)(n.$,{size:"sm",className:"mt-4",variant:"destructive",onClick:m,children:"Reset to Default"})})]})]})};var k=a(54678),E=a(35021),C=a.n(E),T=a(97215),A=a(44775),R=a(93442),M=a(59726),D=a(81009),I=a(60331),L=a(81925);function P(){let{getTotalDuration:e}=(0,u.A)(),{currentTime:t}=(0,L.E)(),{activeProject:a,renameProject:x,deleteProject:g}=(0,h.I)(),[v,j]=(0,p.useState)(!1),[b,y]=(0,p.useState)(!1);(0,M.useRouter)();let{theme:w,setTheme:N}=(0,I.D)(),E=async e=>{if(a&&e.trim()&&e!==a.name)try{await x(a.id,e.trim()),y(!1)}catch(e){}},P=(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)(k.rI,{children:[(0,r.jsx)(k.ty,{asChild:!0,children:(0,r.jsxs)(n.$,{variant:"secondary",className:"h-auto py-1.5 px-2.5 flex items-center justify-center",children:[(0,r.jsx)(l.A,{className:"text-muted-foreground"}),(0,r.jsx)("span",{className:"text-[0.85rem] mr-2",children:null==a?void 0:a.name})]})}),(0,r.jsxs)(k.SQ,{align:"start",className:"w-40",children:[(0,r.jsxs)(k._2,{className:"flex items-center gap-1.5",onClick:()=>(0,T.vv)(),children:[(0,r.jsx)(i.A,{className:"h-4 w-4"}),"Projects"]}),(0,r.jsxs)(k._2,{className:"flex items-center gap-1.5",onClick:()=>y(!0),children:[(0,r.jsx)(s.A,{className:"h-4 w-4"}),"Rename project"]}),(0,r.jsxs)(k._2,{variant:"destructive",className:"flex items-center gap-1.5",onClick:()=>j(!0),children:[(0,r.jsx)(o.A,{className:"h-4 w-4"}),"Delete Project"]}),(0,r.jsx)(k.mB,{}),(0,r.jsx)(k._2,{asChild:!0,children:(0,r.jsxs)(C(),{href:"https://discord.gg/zmR9N35cjK",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1.5",children:[(0,r.jsx)(D.O4U,{className:"h-4 w-4"}),"Discord"]})})]})]}),(0,r.jsx)(A.U,{isOpen:b,onOpenChange:y,onConfirm:E,projectName:(null==a?void 0:a.name)||""}),(0,r.jsx)(R.B,{isOpen:v,onOpenChange:j,onConfirm:()=>{a&&(g(a.id),j(!1),(0,T.vv)())},projectName:(null==a?void 0:a.name)||""})]}),z=(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,r.jsx)("span",{className:"text-foreground tabular-nums",children:(0,f.s)(t,"HH:MM:SS:FF",(null==a?void 0:a.fps)||30)}),(0,r.jsx)("span",{className:"text-foreground/50",children:"/"}),(0,r.jsx)("span",{className:"text-foreground/50 tabular-nums",children:(0,f.s)(e(),"HH:MM:SS:FF",(null==a?void 0:a.fps)||30)})]}),F=(0,r.jsxs)("nav",{className:"flex items-center gap-2",children:[(0,r.jsx)(S,{}),(0,r.jsxs)(n.$,{size:"sm",className:"h-8 text-xs !bg-linear-to-r from-cyan-400 to-blue-500 text-white hover:opacity-85 transition-opacity",onClick:()=>{window.open("https://youtube.com/watch?v=dQw4w9WgXcQ","_blank")},children:[(0,r.jsx)(d.A,{className:"h-4 w-4"}),(0,r.jsx)("span",{className:"text-sm pr-1",children:"Export"})]}),(0,r.jsxs)(n.$,{size:"icon",variant:"text",className:"h-7",onClick:()=>N("dark"===w?"light":"dark"),children:[(0,r.jsx)(c.A,{className:"!size-[1.1rem]"}),(0,r.jsx)("span",{className:"sr-only",children:"dark"===w?"Light":"Dark"})]})]});return(0,r.jsx)(m.H,{leftContent:P,centerContent:z,rightContent:F,className:"bg-background h-[3.2rem] px-3 items-center mt-0.5"})}},31744:(e,t,a)=>{a.d(t,{E:()=>y});var r=a(28064),n=a(80196),l=a(8300),i=a(10952);function s(e){let{element:t}=e;return(0,r.jsx)("div",{className:"space-y-4 p-5",children:"Audio properties"})}function o(e){let{element:t}=e;return(0,r.jsx)("div",{className:"space-y-4 p-5",children:"Media properties"})}var d=a(74188),c=a(93146);let u=d.forwardRef((e,t)=>{let{className:a,...n}=e;return(0,r.jsx)("textarea",{className:(0,c.cn)("flex min-h-[60px] w-full rounded-md border border-input bg-background px-3 py-2 text-base shadow-xs placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-0 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-xs",a),ref:t,...n})});u.displayName="Textarea";var m=a(52801);let f=[{value:"Arial",label:"Arial",category:"system",hasClassName:!1},{value:"Helvetica",label:"Helvetica",category:"system",hasClassName:!1},{value:"Times New Roman",label:"Times New Roman",category:"system",hasClassName:!1},{value:"Georgia",label:"Georgia",category:"system",hasClassName:!1},{value:"Inter",label:"Inter",category:"google",weights:[400,700],hasClassName:!0},{value:"Roboto",label:"Roboto",category:"google",weights:[400,700],hasClassName:!0},{value:"Open Sans",label:"Open Sans",category:"google",hasClassName:!0},{value:"Playfair Display",label:"Playfair Display",category:"google",hasClassName:!0},{value:"Comic Neue",label:"Comic Neue",category:"google",hasClassName:!1}];function h(e){let{defaultValue:t,onValueChange:a,className:n}=e;return(0,r.jsxs)(m.l6,{defaultValue:t,onValueChange:a,children:[(0,r.jsx)(m.bq,{className:"w-full text-xs ".concat(n||""),children:(0,r.jsx)(m.yv,{placeholder:"Select a font"})}),(0,r.jsx)(m.gC,{children:f.map(e=>(0,r.jsx)(m.eb,{value:e.value,className:"text-xs",style:{fontFamily:e.value},children:e.label},e.value))})]})}var x=a(14138),p=a(84843),g=a(61309),v=a(34248);function j(e){let{element:t,trackId:a}=e,{updateTextElement:n}=(0,l.A)(),[i,s]=(0,d.useState)(t.fontSize.toString()),[o,c]=(0,d.useState)(Math.round(100*t.opacity).toString()),m=(e,t,a,r)=>{let n=parseInt(e,10);return isNaN(n)?r:Math.max(t,Math.min(a,n))};return(0,r.jsxs)("div",{className:"space-y-6 p-5",children:[(0,r.jsx)(u,{placeholder:"Name",defaultValue:t.content,className:"min-h-18 resize-none bg-background/50",onChange:e=>n(a,t.id,{content:e.target.value})}),(0,r.jsxs)(v.DC,{direction:"row",children:[(0,r.jsx)(v.Tq,{children:"Font"}),(0,r.jsx)(v.Wg,{children:(0,r.jsx)(h,{defaultValue:t.fontFamily,onValueChange:e=>n(a,t.id,{fontFamily:e})})})]}),(0,r.jsxs)(v.DC,{direction:"column",children:[(0,r.jsxs)(v.DC,{direction:"row",children:[(0,r.jsx)(v.Tq,{children:"Style"}),(0,r.jsx)(v.Wg,{children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(g.$,{variant:"bold"===t.fontWeight?"default":"outline",size:"sm",onClick:()=>n(a,t.id,{fontWeight:"bold"===t.fontWeight?"normal":"bold"}),className:"h-8 px-3 font-bold",children:"B"}),(0,r.jsx)(g.$,{variant:"italic"===t.fontStyle?"default":"outline",size:"sm",onClick:()=>n(a,t.id,{fontStyle:"italic"===t.fontStyle?"normal":"italic"}),className:"h-8 px-3 italic",children:"I"}),(0,r.jsx)(g.$,{variant:"underline"===t.textDecoration?"default":"outline",size:"sm",onClick:()=>n(a,t.id,{textDecoration:"underline"===t.textDecoration?"none":"underline"}),className:"h-8 px-3 underline",children:"U"}),(0,r.jsx)(g.$,{variant:"line-through"===t.textDecoration?"default":"outline",size:"sm",onClick:()=>n(a,t.id,{textDecoration:"line-through"===t.textDecoration?"none":"line-through"}),className:"h-8 px-3 line-through",children:"S"})]})})]}),(0,r.jsx)(v.Tq,{children:"Font size"}),(0,r.jsx)(v.Wg,{children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(x.A,{value:[t.fontSize],min:8,max:300,step:1,onValueChange:e=>{let[r]=e;n(a,t.id,{fontSize:r}),s(r.toString())},className:"w-full"}),(0,r.jsx)(p.p,{type:"number",value:i,min:8,max:300,onChange:e=>(e=>{if(s(e),""!==e.trim()){let r=m(e,8,300,t.fontSize);n(a,t.id,{fontSize:r})}})(e.target.value),onBlur:()=>{let e=m(i,8,300,t.fontSize);s(e.toString()),n(a,t.id,{fontSize:e})},className:"w-12 !text-xs h-7 rounded-sm text-center [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none"})]})})]}),(0,r.jsxs)(v.DC,{direction:"row",children:[(0,r.jsx)(v.Tq,{children:"Color"}),(0,r.jsx)(v.Wg,{children:(0,r.jsx)(p.p,{type:"color",value:t.color||"#ffffff",onChange:e=>{let r=e.target.value;n(a,t.id,{color:r})},className:"w-full cursor-pointer rounded-full"})})]}),(0,r.jsxs)(v.DC,{direction:"row",children:[(0,r.jsx)(v.Tq,{children:"Background"}),(0,r.jsx)(v.Wg,{children:(0,r.jsx)(p.p,{type:"color",value:"transparent"===t.backgroundColor?"#000000":t.backgroundColor||"#000000",onChange:e=>{let r=e.target.value;n(a,t.id,{backgroundColor:r})},className:"w-full cursor-pointer rounded-full"})})]}),(0,r.jsxs)(v.DC,{direction:"column",children:[(0,r.jsx)(v.Tq,{children:"Opacity"}),(0,r.jsx)(v.Wg,{children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(x.A,{value:[100*t.opacity],min:0,max:100,step:1,onValueChange:e=>{let[r]=e;n(a,t.id,{opacity:r/100}),c(r.toString())},className:"w-full"}),(0,r.jsx)(p.p,{type:"number",value:o,min:0,max:100,onChange:e=>(e=>{if(c(e),""!==e.trim()){let r=m(e,0,100,Math.round(100*t.opacity));n(a,t.id,{opacity:r/100})}})(e.target.value),onBlur:()=>{let e=m(o,0,100,Math.round(100*t.opacity));c(e.toString()),n(a,t.id,{opacity:e/100})},className:"w-12 !text-xs h-7 rounded-sm text-center [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none"})]})})]})]})}var b=a(24565);function y(){let{selectedElements:e,tracks:t}=(0,l.A)(),{mediaItems:a}=(0,n.B)();return(0,r.jsx)(r.Fragment,{children:e.length>0?(0,r.jsx)(i.F,{className:"h-full bg-panel rounded-sm",children:e.map(e=>{let{trackId:n,elementId:l}=e,i=t.find(e=>e.id===n),d=null==i?void 0:i.elements.find(e=>e.id===l);if((null==d?void 0:d.type)==="text")return(0,r.jsx)("div",{children:(0,r.jsx)(j,{element:d,trackId:n})},l);if((null==d?void 0:d.type)==="media"){let e=a.find(e=>e.id===d.mediaId);return(null==e?void 0:e.type)==="audio"?(0,r.jsx)(s,{element:d},l):(0,r.jsx)("div",{children:(0,r.jsx)(o,{element:d})},l)}return null})}):(0,r.jsx)(w,{})})}function w(){return(0,r.jsxs)("div",{className:"bg-panel h-full p-4 flex flex-col items-center justify-center gap-3",children:[(0,r.jsx)(b.A,{className:"w-10 h-10 text-muted-foreground",strokeWidth:1.5}),(0,r.jsxs)("div",{className:"flex flex-col gap-2 text-center",children:[(0,r.jsx)("p",{className:"text-lg font-medium",children:"It’s empty here"}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground text-balance",children:"Click an element on the timeline to edit its properties"})]})]})}},34248:(e,t,a)=>{a.d(t,{DC:()=>s,Tq:()=>o,Wg:()=>d,Zf:()=>c});var r=a(28064),n=a(93146),l=a(90320),i=a(74188);function s(e){let{direction:t="row",children:a,className:l}=e;return(0,r.jsx)("div",{className:(0,n.cn)("flex gap-2","row"===t?"items-center justify-between gap-6":"flex-col gap-1.5",l),children:a})}function o(e){let{children:t,className:a}=e;return(0,r.jsx)("label",{className:(0,n.cn)("text-xs text-muted-foreground",a),children:t})}function d(e){let{children:t,className:a}=e;return(0,r.jsx)("div",{className:(0,n.cn)("flex-1 text-sm",a),children:t})}function c(e){let{title:t,children:a,defaultExpanded:c=!0,className:u}=e,[m,f]=(0,i.useState)(c);return(0,r.jsxs)(s,{direction:"column",className:(0,n.cn)("gap-3",u),children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5 cursor-pointer",onClick:()=>f(!m),children:[(0,r.jsx)(o,{className:"cursor-pointer",children:t}),(0,r.jsx)(l.A,{className:(0,n.cn)("size-3",!m&&"-rotate-90")})]}),m&&(0,r.jsx)(d,{children:a})]})}},41134:(e,t,a)=>{a.d(t,{T:()=>m});var r=a(61557),n=a(80196),l=a(19600),i=a(84945),s=a(3532);let o=null,d=async()=>{if(o)return o;o=new l.m;let e="".concat(s.J,"/ffmpeg");return await o.load({coreURL:await (0,i.KA)("".concat(e,"/ffmpeg-core.js"),"text/javascript"),wasmURL:await (0,i.KA)("".concat(e,"/ffmpeg-core.wasm"),"application/wasm")}),o},c=async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=await d(),r="input.mp4",n="thumbnail.jpg";await a.writeFile(r,new Uint8Array(await e.arrayBuffer())),await a.exec(["-i",r,"-ss",t.toString(),"-vframes","1","-vf","scale=320:240","-q:v","2",n]);let l=new Blob([await a.readFile(n)],{type:"image/jpeg"});return await a.deleteFile(r),await a.deleteFile(n),URL.createObjectURL(l)},u=async e=>{let t=await d(),a="input.mp4";await t.writeFile(a,new Uint8Array(await e.arrayBuffer()));let r="",n=!0;t.on("log",e=>{let{message:t}=e;n&&(r+=t)});try{await t.exec(["-i",a,"-f","null","-"])}catch(e){throw n=!1,await t.deleteFile(a),Error("Failed to extract video info. The file may be corrupted or in an unsupported format.")}n=!1,await t.deleteFile(a);let l=r.match(/Duration: (\d+):(\d+):([\d.]+)/),i=0;if(l){let[,e,t,a]=l;i=3600*parseInt(e)+60*parseInt(t)+parseFloat(a)}let s=r.match(/Video:.* (\d+)x(\d+)[^,]*, ([\d.]+) fps/),o=0,c=0,u=0;return s&&(o=parseInt(s[1]),c=parseInt(s[2]),u=parseFloat(s[3])),{duration:i,width:o,height:c,fps:u}};async function m(e,t){let a=Array.from(e),l=[],i=a.length,s=0;for(let e of a){let a,o,d,m,f,h=(0,n.getFileType)(e);if(!h){r.oR.error("Unsupported file type: ".concat(e.name));continue}let x=URL.createObjectURL(e);try{if("image"===h){let t=await (0,n.getImageDimensions)(e);d=t.width,m=t.height}else if("video"===h)try{let t=await u(e);o=t.duration,d=t.width,m=t.height,f=t.fps,a=await c(e,1)}catch(r){let t=await (0,n.generateVideoThumbnail)(e);a=t.thumbnailUrl,d=t.width,m=t.height,o=await (0,n.getMediaDuration)(e)}else"audio"===h&&(o=await (0,n.getMediaDuration)(e));if(l.push({name:e.name,type:h,file:e,url:x,thumbnailUrl:a,duration:o,width:d,height:m,fps:f}),await new Promise(e=>setTimeout(e,0)),s+=1,t){let e=Math.round(s/i*100);t(e)}}catch(t){r.oR.error("Failed to process ".concat(e.name)),URL.revokeObjectURL(x)}}return l}},46438:(e,t,a)=>{a.d(t,{TooltipProvider:()=>s,ZI:()=>c,k$:()=>d,m_:()=>o});var r=a(28064),n=a(74188),l=a(1005),i=a(93146);let s=l.Provider,o=l.Root,d=l.Trigger,c=n.forwardRef((e,t)=>{let{className:a,sideOffset:n=4,...s}=e;return(0,r.jsx)(l.Portal,{children:(0,r.jsx)(l.Content,{ref:t,sideOffset:n,className:(0,i.cn)("z-50 overflow-hidden rounded-md bg-foreground px-3 py-1.5 text-xs text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...s})})});c.displayName=l.Content.displayName},67034:(e,t,a)=>{a.d(t,{Separator:()=>s});var r=a(28064),n=a(74188),l=a(22276),i=a(93146);let s=n.forwardRef((e,t)=>{let{className:a,orientation:n="horizontal",decorative:s=!0,...o}=e;return(0,r.jsx)(l.b,{ref:t,decorative:s,orientation:n,className:(0,i.cn)("shrink-0 bg-border","horizontal"===n?"h-px w-full":"h-full w-px",a),...o})});s.displayName=l.b.displayName},68820:(e,t,a)=>{a.d(t,{HK:()=>i,WM:()=>o,wV:()=>s});var r=a(28064),n=a(11940),l=a(93146);let i=e=>{let{className:t,...a}=e;return(0,r.jsx)(n.YZ,{className:(0,l.cn)("flex h-full w-full data-[panel-group-direction=vertical]:flex-col",t),...a})},s=n.Zk,o=e=>{let{withHandle:t,className:a,...i}=e;return(0,r.jsx)(n.TW,{className:(0,l.cn)("relative flex w-px items-center justify-center bg-transparent after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",a),...i})}},81925:(e,t,a)=>{a.d(t,{E:()=>s});var r=a(59467),n=a(8300),l=a(82337);let i=null,s=(0,r.v)((e,t)=>({isPlaying:!1,currentTime:0,duration:0,volume:1,muted:!1,previousVolume:1,speed:1,play:()=>{e({isPlaying:!0}),(e=>{i&&cancelAnimationFrame(i);let t=()=>{let r=e();if(r.isPlaying&&r.currentTime<r.duration){let e=performance.now(),t=(e-a)/1e3;a=e;let i=r.currentTime+t*r.speed,o=n.A.getState().getTotalDuration(),d=o>0?o:r.duration;if(i>=d){var s;let e=null==(s=l.I.getState().activeProject)?void 0:s.fps,t=Math.max(0,d-1/(null!=e?e:30));r.pause(),r.setCurrentTime(t),window.dispatchEvent(new CustomEvent("playback-seek",{detail:{time:t}}))}else r.setCurrentTime(i),window.dispatchEvent(new CustomEvent("playback-update",{detail:{time:i}}))}i=requestAnimationFrame(t)},a=performance.now();i=requestAnimationFrame(t)})(t)},pause:()=>{e({isPlaying:!1}),i&&(cancelAnimationFrame(i),i=null)},toggle:()=>{let{isPlaying:e}=t();e?t().pause():t().play()},seek:a=>{let{duration:r}=t(),n=Math.max(0,Math.min(r,a));e({currentTime:n});let l=new CustomEvent("playback-seek",{detail:{time:n}});window.dispatchEvent(l)},setVolume:t=>e(e=>({volume:Math.max(0,Math.min(1,t)),muted:0===t,previousVolume:t>0?t:e.previousVolume})),setSpeed:t=>{let a=Math.max(.1,Math.min(2,t));e({speed:a});let r=new CustomEvent("playback-speed",{detail:{speed:a}});window.dispatchEvent(r)},setDuration:t=>e({duration:t}),setCurrentTime:t=>e({currentTime:t}),mute:()=>{let{volume:a,previousVolume:r}=t();e({muted:!0,previousVolume:a>0?a:r,volume:0})},unmute:()=>{let{previousVolume:a}=t();e({muted:!1,volume:null!=a?a:1})},toggleMute:()=>{let{muted:e}=t();e?t().unmute():t().mute()}}))},85877:(e,t,a)=>{a.d(t,{l:()=>eP});var r=a(28064),n=a(93146),l=a(43589),i=a(53093),s=a(81450),o=a(79649),d=a(38333),c=a(78456),u=a(40149),m=a(99469),f=a(26951),h=a(16219),x=a(59467);let p={media:{icon:l.A,label:"Media"},sounds:{icon:i.A,label:"Sounds"},text:{icon:s.A,label:"Text"},stickers:{icon:o.A,label:"Stickers"},effects:{icon:d.A,label:"Effects"},transitions:{icon:c.A,label:"Transitions"},captions:{icon:u.A,label:"Captions"},filters:{icon:m.A,label:"Filters"},adjustment:{icon:f.A,label:"Adjustment"},settings:{icon:h.A,label:"Settings"}},g=(0,x.v)(e=>({activeTab:"media",setActiveTab:t=>e({activeTab:t})}));var v=a(61309),j=a(68321),b=a(37770),y=a(74188);function w(){let{activeTab:e,setActiveTab:t}=g(),a=(0,y.useRef)(null),[l,i]=(0,y.useState)(!1),[s,o]=(0,y.useState)(!0),d=()=>{if(a.current){let{scrollLeft:e,scrollWidth:t,clientWidth:r}=a.current;i(e+r>=t-1),o(e<=1)}};return(0,y.useEffect)(()=>{let e=a.current;if(!e)return;d(),e.addEventListener("scroll",d);let t=new ResizeObserver(d);return t.observe(e),()=>{e.removeEventListener("scroll",d),t.disconnect()}},[]),(0,r.jsxs)("div",{className:"flex",children:[(0,r.jsx)(N,{direction:"left",onClick:()=>{a.current&&(a.current.scrollTo({left:0}),o(!0),i(!1))},isVisible:!s}),(0,r.jsx)("div",{ref:a,className:"h-full px-4 flex flex-col justify-start items-center gap-5 overflow-x-auto scrollbar-x-hidden relative w-full py-4",children:Object.keys(p).map(a=>{let l=p[a];return(0,r.jsx)("div",{className:(0,n.cn)("flex flex-col gap-0.5 items-center cursor-pointer opacity-100 hover:opacity-75",e===a?"text-primary !opacity-100":"text-muted-foreground"),onClick:()=>t(a),children:(0,r.jsx)(l.icon,{className:"size-[1.1rem]!"})},a)})}),(0,r.jsx)(N,{direction:"right",onClick:()=>{a.current&&(a.current.scrollTo({left:a.current.scrollWidth}),i(!0),o(!1))},isVisible:!l})]})}function N(e){let{direction:t,onClick:a,isVisible:n}=e;if(!n)return null;let l="left"===t?j.A:b.A;return(0,r.jsx)("div",{className:"bg-panel-accent w-12 h-full flex items-center justify-center",children:(0,r.jsx)(v.$,{size:"icon",className:"rounded-[0.4rem] w-4 h-7 bg-foreground/10!",onClick:a,children:(0,r.jsx)(l,{className:"size-4! text-foreground"})})})}let S=e=>!e.types.includes("application/x-media-item")&&e.types.includes("Files");var k=a(41134),E=a(80196),C=a(93843),T=a(26880),A=a(83091),R=a(97946),M=a(57107),D=a(80965),I=a(61557),L=a(95647);function P(e){let{isVisible:t,isProcessing:a=!1,progress:n=0,onClick:l,isEmptyState:i=!1}=e;return t?(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center gap-4 h-full text-center rounded-lg bg-foreground/5 hover:bg-foreground/10 transition-all duration-200 p-8",onClick:e=>{!a&&l&&(e.preventDefault(),e.stopPropagation(),l())},children:[(0,r.jsx)("div",{className:"flex items-center justify-center",children:(0,r.jsx)(L.A,{className:"h-10 w-10 text-foreground"})}),(0,r.jsx)("div",{className:"space-y-2",children:(0,r.jsx)("p",{className:"text-xs text-muted-foreground max-w-sm",children:a?"Processing your files (".concat(n,"%)"):"Drag and drop videos, photos, and audio files here"})}),a&&(0,r.jsx)("div",{className:"w-full max-w-xs",children:(0,r.jsx)("div",{className:"w-full bg-muted/50 rounded-full h-2",children:(0,r.jsx)("div",{className:"bg-primary h-2 rounded-full transition-all duration-300",style:{width:"".concat(n,"%")}})})})]}):null}var z=a(86434),F=a(54678);let O=a(26542).b;var _=a(46438),X=a(82749),B=a(85794),U=a(81925);function $(e){let{name:t,preview:a,dragData:l,onDragStart:i,onAddToTimeline:s,aspectRatio:o=16/9,className:d="",showPlusOnDrag:c=!0,showLabel:u=!0,rounded:m=!0,variant:f="card"}=e,[h,x]=(0,y.useState)(!1),[p,g]=(0,y.useState)({x:0,y:0}),v=(0,y.useRef)(null),j=(0,U.E)(e=>e.currentTime),b=()=>{null==s||s(j)},w=new window.Image;w.src="data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=",(0,y.useEffect)(()=>{if(!h)return;let e=e=>{g({x:e.clientX,y:e.clientY})};return document.addEventListener("dragover",e),()=>{document.removeEventListener("dragover",e)}},[h]);let N=e=>{e.dataTransfer.setDragImage(w,0,0),e.dataTransfer.setData("application/x-media-item",JSON.stringify(l)),e.dataTransfer.effectAllowed="copy",g({x:e.clientX,y:e.clientY}),x(!0),null==i||i(e)},S=()=>{x(!1)};return(0,r.jsxs)(r.Fragment,{children:["card"===f?(0,r.jsx)("div",{ref:v,className:"relative group w-28 h-28",children:(0,r.jsxs)("div",{className:"flex flex-col gap-1 p-0 h-auto w-full relative cursor-default ".concat(d),children:[(0,r.jsxs)(O,{ratio:o,className:(0,n.cn)("bg-panel-accent relative overflow-hidden",m&&"rounded-md","[&::-webkit-drag-ghost]:opacity-0"),draggable:!0,onDragStart:N,onDragEnd:S,children:[a,!h&&(0,r.jsx)(H,{className:"opacity-0 group-hover:opacity-100",onClick:b})]}),u&&(0,r.jsx)("span",{className:"text-[0.7rem] text-muted-foreground truncate w-full text-left","aria-label":t,title:t,children:t.length>8?"".concat(t.slice(0,16),"...").concat(t.slice(-3)):t})]})}):(0,r.jsx)("div",{ref:v,className:"relative group w-full",children:(0,r.jsxs)("div",{className:(0,n.cn)("h-10 flex items-center gap-3 cursor-default w-full","[&::-webkit-drag-ghost]:opacity-0",d),draggable:!0,onDragStart:N,onDragEnd:S,children:[(0,r.jsx)("div",{className:"w-6 h-6 flex-shrink-0 rounded overflow-hidden",children:a}),(0,r.jsx)("span",{className:"text-sm truncate flex-1 w-full",children:t})]})}),h&&"undefined"!=typeof document&&(0,X.createPortal)((0,r.jsx)("div",{className:"fixed pointer-events-none z-9999",style:{left:p.x-40,top:p.y-40},children:(0,r.jsx)("div",{className:"w-[80px]",children:(0,r.jsxs)(O,{ratio:1,className:"relative rounded-md overflow-hidden shadow-2xl ring-3 ring-primary",children:[(0,r.jsx)("div",{className:"w-full h-full [&_img]:w-full [&_img]:h-full [&_img]:object-cover [&_img]:rounded-none",children:a}),c&&(0,r.jsx)(H,{onClick:b,tooltipText:"Add to timeline or drag to position"})]})})}),document.body)]})}function H(e){let{className:t,onClick:a,tooltipText:l}=e,i=(0,r.jsx)(v.$,{size:"icon",className:(0,n.cn)("absolute bottom-2 right-2 size-4 bg-background text-foreground",t),onClick:e=>{e.preventDefault(),e.stopPropagation(),null==a||a()},title:l,children:(0,r.jsx)(B.A,{className:"size-3!"})});return l?(0,r.jsxs)(_.m_,{children:[(0,r.jsx)(_.k$,{asChild:!0,children:i}),(0,r.jsx)(_.ZI,{children:(0,r.jsx)("p",{children:l})})]}):i}var W=a(82337),Y=a(8300),q=a(9466);function K(e){let{item:t,children:a,onRemove:n}=e;return(0,r.jsxs)(z.tz,{children:[(0,r.jsx)(z.Rc,{children:a}),(0,r.jsxs)(z.Ip,{children:[(0,r.jsx)(z.kt,{children:"Export clips"}),(0,r.jsx)(z.kt,{variant:"destructive",onClick:e=>n(e,t.id),children:"Delete"})]})]})}function V(){let{mediaItems:e,addMediaItem:t,removeMediaItem:a}=(0,E.B)(),{activeProject:n}=(0,W.I)(),{mediaViewMode:s,setMediaViewMode:o}=(0,q.v)(),d=(0,y.useRef)(null),[c,u]=(0,y.useState)(!1),[m,f]=(0,y.useState)(0),[h,x]=(0,y.useState)(""),[p,g]=(0,y.useState)("all"),[j,b]=(0,y.useState)("name"),[w,N]=(0,y.useState)("asc"),L=async e=>{if(e&&0!==e.length){if(!n)return void I.oR.error("No active project");u(!0),f(0);try{for(let a of(await (0,k.T)(e,e=>f(e))))await t(n.id,a)}catch(e){I.oR.error("Failed to process files")}finally{u(!1),f(0)}}},{isDragOver:z,dragProps:O}=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},[t,a]=(0,y.useState)(!1),r=(0,y.useRef)(0);return{isDragOver:t,dragProps:{onDragEnter:e=>{e.preventDefault(),S(e.dataTransfer)&&(r.current+=1,t||a(!0))},onDragOver:e=>{if(e.preventDefault(),!S(e.dataTransfer))return},onDragLeave:e=>{e.preventDefault(),S(e.dataTransfer)&&(r.current-=1,0===r.current&&a(!1))},onDrop:t=>{t.preventDefault(),a(!1),r.current=0,e.onDrop&&t.dataTransfer.files&&S(t.dataTransfer)&&e.onDrop(t.dataTransfer.files)}}}}({onDrop:L}),X=()=>{var e;return null==(e=d.current)?void 0:e.click()},B=async(e,t)=>{if(e.stopPropagation(),!n)return void I.oR.error("No active project");await a(n.id,t)},U=e=>{let t=Math.floor(e/60),a=Math.floor(e%60);return"".concat(t,":").concat(a.toString().padStart(2,"0"))},[$,H]=(0,y.useState)(e);(0,y.useEffect)(()=>{let t=e.filter(e=>(!p||"all"===p||e.type===p)&&(!h||!!e.name.toLowerCase().includes(h.toLowerCase())));t.sort((e,t)=>{let a,r;switch(j){case"name":a=e.name.toLowerCase(),r=t.name.toLowerCase();break;case"type":a=e.type,r=t.type;break;case"duration":a=e.duration||0,r=t.duration||0;break;case"size":a=e.file.size,r=t.file.size;break;default:return 0}return a<r?"asc"===w?-1:1:a>r?"asc"===w?1:-1:0}),H(t)},[e,p,h,j,w]);let Y=(0,y.useMemo)(()=>{let e=new Map;return $.forEach(t=>{let a;a="image"===t.type?(0,r.jsx)("div",{className:"w-full h-full flex items-center justify-center",children:(0,r.jsx)("img",{src:t.url,alt:t.name,className:"max-w-full max-h-full object-contain",loading:"lazy"})}):"video"===t.type?t.thumbnailUrl?(0,r.jsxs)("div",{className:"relative w-full h-full",children:[(0,r.jsx)("img",{src:t.thumbnailUrl,alt:t.name,className:"w-full h-full object-cover rounded",loading:"lazy"}),(0,r.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-black/20 rounded",children:(0,r.jsx)(l.A,{className:"h-6 w-6 text-white drop-shadow-md"})}),t.duration&&(0,r.jsx)("div",{className:"absolute bottom-1 right-1 bg-black/70 text-white text-xs px-1 rounded",children:U(t.duration)})]}):(0,r.jsxs)("div",{className:"w-full h-full bg-muted/30 flex flex-col items-center justify-center text-muted-foreground rounded",children:[(0,r.jsx)(l.A,{className:"h-6 w-6 mb-1"}),(0,r.jsx)("span",{className:"text-xs",children:"Video"}),t.duration&&(0,r.jsx)("span",{className:"text-xs opacity-70",children:U(t.duration)})]}):"audio"===t.type?(0,r.jsxs)("div",{className:"w-full h-full bg-linear-to-br from-green-500/20 to-emerald-500/20 flex flex-col items-center justify-center text-muted-foreground rounded border border-green-500/20",children:[(0,r.jsx)(i.A,{className:"h-6 w-6 mb-1"}),(0,r.jsx)("span",{className:"text-xs",children:"Audio"}),t.duration&&(0,r.jsx)("span",{className:"text-xs opacity-70",children:U(t.duration)})]}):(0,r.jsxs)("div",{className:"w-full h-full bg-muted/30 flex flex-col items-center justify-center text-muted-foreground rounded",children:[(0,r.jsx)(C.A,{className:"h-6 w-6"}),(0,r.jsx)("span",{className:"text-xs mt-1",children:"Unknown"})]}),e.set(t.id,a)}),e},[$]),K=e=>Y.get(e.id);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("input",{ref:d,type:"file",accept:"image/*,video/*,audio/*",multiple:!0,className:"hidden",onChange:e=>{e.target.files&&L(e.target.files),e.target.value=""}}),(0,r.jsxs)("div",{className:"h-full flex flex-col gap-1 transition-colors relative ".concat(z?"bg-accent/30":""),...O,children:[(0,r.jsx)("div",{className:"p-3 pb-2 bg-panel",children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)(v.$,{variant:"outline",size:"lg",onClick:X,disabled:c,className:"!bg-background px-4 flex-1 justify-center items-center h-9 opacity-100 hover:opacity-75 transition-opacity",children:[c?(0,r.jsx)(T.A,{className:"h-4 w-4 animate-spin"}):(0,r.jsx)(A.A,{className:"h-4 w-4"}),(0,r.jsx)("span",{children:"Upload"})]}),(0,r.jsx)("div",{className:"flex items-center gap-0",children:(0,r.jsx)(_.TooltipProvider,{children:(0,r.jsxs)(_.m_,{children:[(0,r.jsx)(_.k$,{asChild:!0,children:(0,r.jsx)(v.$,{size:"icon",variant:"text",onClick:()=>o("grid"===s?"list":"grid"),disabled:c,className:"justify-center items-center",children:"grid"===s?(0,r.jsx)(R.A,{strokeWidth:1.5,className:"!size-[1.05rem]"}):(0,r.jsx)(M.A,{strokeWidth:1.5,className:"!size-[1.05rem]"})})}),(0,r.jsx)(_.ZI,{children:(0,r.jsx)("p",{children:"grid"===s?"Switch to list view":"Switch to grid view"})}),(0,r.jsxs)(_.m_,{children:[(0,r.jsxs)(F.rI,{children:[(0,r.jsx)(_.k$,{asChild:!0,children:(0,r.jsx)(F.ty,{asChild:!0,children:(0,r.jsx)(v.$,{size:"icon",variant:"text",disabled:c,className:"justify-center items-center",children:(0,r.jsx)(D.A,{strokeWidth:1.5,className:"!size-[1.05rem]"})})})}),(0,r.jsxs)(F.SQ,{align:"end",children:[(0,r.jsxs)(F._2,{onClick:()=>{"name"===j?N("asc"===w?"desc":"asc"):(b("name"),N("asc"))},children:["Name"," ","name"===j&&("asc"===w?"↑":"↓")]}),(0,r.jsxs)(F._2,{onClick:()=>{"type"===j?N("asc"===w?"desc":"asc"):(b("type"),N("asc"))},children:["Type"," ","type"===j&&("asc"===w?"↑":"↓")]}),(0,r.jsxs)(F._2,{onClick:()=>{"duration"===j?N("asc"===w?"desc":"asc"):(b("duration"),N("asc"))},children:["Duration"," ","duration"===j&&("asc"===w?"↑":"↓")]}),(0,r.jsxs)(F._2,{onClick:()=>{"size"===j?N("asc"===w?"desc":"asc"):(b("size"),N("asc"))},children:["File Size"," ","size"===j&&("asc"===w?"↑":"↓")]})]})]}),(0,r.jsx)(_.ZI,{children:(0,r.jsxs)("p",{children:["Sort by ",j," (","asc"===w?"ascending":"descending",")"]})})]})]})})})]})}),(0,r.jsx)("div",{className:"h-full w-full overflow-y-auto scrollbar-thin",children:(0,r.jsx)("div",{className:"flex-1 p-3 pt-0 w-full",children:z||0===$.length?(0,r.jsx)(P,{isVisible:!0,isProcessing:c,progress:m,onClick:X,isEmptyState:0===$.length&&!z}):"grid"===s?(0,r.jsx)(Z,{filteredMediaItems:$,renderPreview:K,handleRemove:B}):(0,r.jsx)(Q,{filteredMediaItems:$,renderPreview:K,handleRemove:B,formatDuration:U})})})]})]})}function Z(e){let{filteredMediaItems:t,renderPreview:a,handleRemove:n}=e;return(0,r.jsx)("div",{className:"grid gap-2",style:{gridTemplateColumns:"repeat(auto-fill, 160px)"},children:t.map(e=>(0,r.jsx)(K,{item:e,onRemove:n,children:(0,r.jsx)($,{name:e.name,preview:a(e),dragData:{id:e.id,type:e.type,name:e.name},showPlusOnDrag:!1,onAddToTimeline:t=>Y.A.getState().addMediaAtTime(e,t),rounded:!1,variant:"card"})},e.id))})}function Q(e){let{filteredMediaItems:t,renderPreview:a,handleRemove:n,formatDuration:l}=e;return(0,r.jsx)("div",{className:"space-y-1",children:t.map(e=>(0,r.jsx)(K,{item:e,onRemove:n,children:(0,r.jsx)($,{name:e.name,preview:a(e),dragData:{id:e.id,type:e.type,name:e.name},showPlusOnDrag:!1,onAddToTimeline:t=>Y.A.getState().addMediaAtTime(e,t),variant:"compact"})},e.id))})}var G=a(87100);let J={id:"default-text",type:"text",name:"Default text",content:"Default text",fontSize:48,fontFamily:"Arial",color:"#ffffff",backgroundColor:"transparent",textAlign:"center",fontWeight:"normal",fontStyle:"normal",textDecoration:"none",x:0,y:0,rotation:0,opacity:1,duration:G.of.DEFAULT_TEXT_DURATION,startTime:0,trimStart:0,trimEnd:0};function ee(){return(0,r.jsx)("div",{className:"p-4",children:(0,r.jsx)($,{name:"Default text",preview:(0,r.jsx)("div",{className:"flex items-center justify-center w-full h-full bg-panel-accent rounded",children:(0,r.jsx)("span",{className:"text-xs select-none",children:"Default text"})}),dragData:{id:J.id,type:J.type,name:J.name,content:J.content},aspectRatio:1,onAddToTimeline:e=>Y.A.getState().addTextAtTime(J,e),showLabel:!1})})}var et=a(84843),ea=a(67034),er=a(10952),en=a(91048);let el=en.Root,ei=y.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,r.jsx)(en.List,{ref:t,className:(0,n.cn)("inline-flex h-auto items-center justify-center gap-2 rounded-lg bg-transparent p-0 text-muted-foreground",a),...l})});ei.displayName=en.List.displayName;let es=y.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,r.jsx)(en.Trigger,{ref:t,className:(0,n.cn)("inline-flex items-center cursor-pointer justify-center whitespace-nowrap rounded-lg px-3 py-1 text-sm font-medium ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-card data-[state=active]:text-foreground",a),...l})});es.displayName=en.Trigger.displayName;let eo=y.forwardRef((e,t)=>{let{className:a,...l}=e;return(0,r.jsx)(en.Content,{ref:t,className:(0,n.cn)("mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",a),...l})});eo.displayName=en.Content.displayName;var ed=a(37975),ec=a(11566),eu=a(45440),em=a(47888),ef=a(19439);let eh=(0,x.v)((e,t)=>({topSoundEffects:[],isLoading:!1,error:null,hasLoaded:!1,showCommercialOnly:!0,toggleCommercialFilter:()=>{e(e=>({showCommercialOnly:!e.showCommercialOnly}))},searchQuery:"",searchResults:[],isSearching:!1,searchError:null,lastSearchQuery:"",scrollPosition:0,currentPage:1,hasNextPage:!1,totalCount:0,isLoadingMore:!1,savedSounds:[],isSavedSoundsLoaded:!1,isLoadingSavedSounds:!1,savedSoundsError:null,setTopSoundEffects:t=>e({topSoundEffects:t}),setLoading:t=>e({isLoading:t}),setError:t=>e({error:t}),setHasLoaded:t=>e({hasLoaded:t}),setSearchQuery:t=>e({searchQuery:t}),setSearchResults:t=>e({searchResults:t,currentPage:1}),setSearching:t=>e({isSearching:t}),setSearchError:t=>e({searchError:t}),setLastSearchQuery:t=>e({lastSearchQuery:t}),setScrollPosition:t=>e({scrollPosition:t}),setCurrentPage:t=>e({currentPage:t}),setHasNextPage:t=>e({hasNextPage:t}),setTotalCount:t=>e({totalCount:t}),setLoadingMore:t=>e({isLoadingMore:t}),appendSearchResults:t=>e(e=>({searchResults:[...e.searchResults,...t]})),appendTopSounds:t=>e(e=>({topSoundEffects:[...e.topSoundEffects,...t]})),resetPagination:()=>e({currentPage:1,hasNextPage:!1,totalCount:0,isLoadingMore:!1}),loadSavedSounds:async()=>{if(!t().isSavedSoundsLoaded)try{e({isLoadingSavedSounds:!0,savedSoundsError:null});let t=await ef.P.loadSavedSounds();e({savedSounds:t.sounds,isSavedSoundsLoaded:!0,isLoadingSavedSounds:!1})}catch(t){e({savedSoundsError:t instanceof Error?t.message:"Failed to load saved sounds",isLoadingSavedSounds:!1})}},saveSoundEffect:async t=>{try{await ef.P.saveSoundEffect(t);let a=await ef.P.loadSavedSounds();e({savedSounds:a.sounds})}catch(t){e({savedSoundsError:t instanceof Error?t.message:"Failed to save sound"}),I.oR.error("Failed to save sound")}},removeSavedSound:async t=>{try{await ef.P.removeSavedSound(t),e(e=>({savedSounds:e.savedSounds.filter(e=>e.id!==t)}))}catch(t){e({savedSoundsError:t instanceof Error?t.message:"Failed to remove sound"}),I.oR.error("Failed to remove sound")}},isSoundSaved:e=>{let{savedSounds:a}=t();return a.some(t=>t.id===e)},toggleSavedSound:async e=>{let{isSoundSaved:a,saveSoundEffect:r,removeSavedSound:n}=t();a(e.id)?await n(e.id):await r(e)},clearSavedSounds:async()=>{try{await ef.P.clearSavedSounds(),e({savedSounds:[],savedSoundsError:null})}catch(t){e({savedSoundsError:t instanceof Error?t.message:"Failed to clear saved sounds"}),I.oR.error("Failed to clear saved sounds")}},addSoundToTimeline:async e=>{let t=W.I.getState().activeProject;if(!t)return I.oR.error("No active project"),!1;let a=e.previewUrl;if(!a)return I.oR.error("Sound file not available"),!1;try{let r=await fetch(a);if(!r.ok)throw Error("Failed to download audio: ".concat(r.statusText));let n=await r.blob(),l=new File([n],"".concat(e.name,".mp3"),{type:"audio/mpeg"});await E.B.getState().addMediaItem(t.id,{name:e.name,type:"audio",file:l,duration:e.duration,url:URL.createObjectURL(l)});let i=E.B.getState().mediaItems.find(e=>e.file===l);if(!i)throw Error("Failed to create media item");if(Y.A.getState().addMediaAtTime(i,U.E.getState().currentTime))return!0;throw Error("Failed to add to timeline - check for overlaps")}catch(t){return I.oR.error(t instanceof Error?t.message:"Failed to add sound to timeline",{id:"sound-".concat(e.id)}),!1}}}));var ex=a(66981);function ep(){return(0,r.jsx)("div",{className:"h-full flex flex-col",children:(0,r.jsxs)(el,{defaultValue:"sound-effects",className:"flex flex-col h-full",children:[(0,r.jsx)("div",{className:"px-3 pt-4 pb-0",children:(0,r.jsxs)(ei,{children:[(0,r.jsx)(es,{value:"sound-effects",children:"Sound effects"}),(0,r.jsx)(es,{value:"songs",children:"Songs"}),(0,r.jsx)(es,{value:"saved",children:"Saved"})]})}),(0,r.jsx)(ea.Separator,{className:"my-4"}),(0,r.jsx)(eo,{value:"sound-effects",className:"p-5 pt-0 mt-0 flex-1 flex flex-col min-h-0",children:(0,r.jsx)(eg,{})}),(0,r.jsx)(eo,{value:"saved",className:"p-5 pt-0 mt-0 flex-1 flex flex-col min-h-0",children:(0,r.jsx)(ev,{})}),(0,r.jsx)(eo,{value:"songs",className:"p-5 pt-0 mt-0 flex-1 flex flex-col min-h-0",children:(0,r.jsx)(ej,{})})]})})}function eg(){let{topSoundEffects:e,isLoading:t,searchQuery:a,setSearchQuery:l,scrollPosition:i,setScrollPosition:s,loadSavedSounds:o,isSoundSaved:d,toggleSavedSound:c,showCommercialOnly:u,toggleCommercialFilter:m}=eh(),{results:f,isLoading:h,loadMore:x,hasNextPage:p,isLoadingMore:g}=function(e,t){let{searchResults:a,isSearching:r,searchError:n,lastSearchQuery:l,currentPage:i,hasNextPage:s,isLoadingMore:o,totalCount:d,setSearchResults:c,setSearching:u,setSearchError:m,setLastSearchQuery:f,setCurrentPage:h,setHasNextPage:x,setTotalCount:p,setLoadingMore:g,appendSearchResults:v,appendTopSounds:j,resetPagination:b}=eh(),w=async()=>{if(!o&&s)try{g(!0);let a=i+1,r=new URLSearchParams({page:a.toString(),type:"effects"});e.trim()&&r.set("q",e),r.set("commercial_only",t.toString());let n=await fetch("/api/sounds/search?".concat(r.toString()));if(n.ok){let t=await n.json();e.trim()?v(t.results):j(t.results),h(a),x(!!t.next),p(t.count)}else m("Load more failed: ".concat(n.status))}catch(e){m(e instanceof Error?e.message:"Load more failed")}finally{g(!1)}};return(0,y.useEffect)(()=>{if(!e.trim()){c([]),m(null),f("");return}if(e===l&&a.length>0)return;let t=!1,r=setTimeout(async()=>{try{u(!0),m(null),b();let a=await fetch("/api/sounds/search?q=".concat(encodeURIComponent(e),"&type=effects&page=1"));if(!t)if(a.ok){let t=await a.json();c(t.results),f(e),x(!!t.next),p(t.count),h(1)}else m("Search failed: ".concat(a.status))}catch(e){t||m(e instanceof Error?e.message:"Search failed")}finally{t||u(!1)}},300);return()=>{clearTimeout(r),t=!0}},[e,l,a.length,c,u,m,f,h,x,p,b]),{results:a,isLoading:r,error:n,loadMore:w,hasNextPage:s,isLoadingMore:o,totalCount:d}}(a,u),[j,b]=(0,y.useState)(null),[w,N]=(0,y.useState)(null),S=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(o(),S.current&&i>0){let e=setTimeout(()=>{var e;null==(e=S.current)||e.scrollTo({top:i})},100);return()=>clearTimeout(e)}},[]);let k=(0,y.useMemo)(()=>a?f:e,[a,f,e]);return(0,r.jsxs)("div",{className:"flex flex-col gap-5 mt-1 h-full",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)(et.p,{placeholder:"Search sound effects",className:"bg-panel-accent w-full",containerClassName:"w-full",value:a,onChange:e=>l(e.target.value),showClearIcon:!0,onClear:()=>l("")}),(0,r.jsxs)(F.rI,{children:[(0,r.jsx)(F.ty,{asChild:!0,children:(0,r.jsx)(v.$,{variant:"text",size:"icon",className:(0,n.cn)(u&&"text-primary"),children:(0,r.jsx)(ed.A,{className:"w-4 h-4"})})}),(0,r.jsxs)(F.SQ,{align:"end",className:"w-56",children:[(0,r.jsx)(F.hO,{checked:u,onCheckedChange:m,children:"Show only commercially licensed"}),(0,r.jsx)("div",{className:"px-2 py-1.5 text-xs text-muted-foreground",children:u?"Only showing sounds licensed for commercial use":"Showing all sounds regardless of license"})]})]})]}),(0,r.jsx)("div",{className:"relative h-full overflow-hidden",children:(0,r.jsx)(er.F,{className:"flex-1 h-full",ref:S,onScrollCapture:e=>{let{scrollTop:t,scrollHeight:a,clientHeight:r}=e.currentTarget;s(t),t+r>=a-200&&p&&!g&&!h&&x()},children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[t&&!a&&(0,r.jsx)("div",{className:"text-muted-foreground text-sm",children:"Loading sounds..."}),h&&a&&(0,r.jsx)("div",{className:"text-muted-foreground text-sm",children:"Searching..."}),k.map(e=>(0,r.jsx)(eb,{sound:e,isPlaying:j===e.id,onPlay:()=>(e=>{if(j===e.id){null==w||w.pause(),b(null);return}if(null==w||w.pause(),e.previewUrl){let t=new Audio(e.previewUrl);t.addEventListener("ended",()=>{b(null)}),t.addEventListener("error",e=>{b(null)}),t.play().catch(e=>{b(null)}),N(t),b(e.id)}})(e),isSaved:d(e.id),onToggleSaved:()=>c(e)},e.id)),!t&&!h&&0===k.length&&(0,r.jsx)("div",{className:"text-muted-foreground text-sm",children:a?"No sounds found":"No sounds available"}),g&&(0,r.jsx)("div",{className:"text-muted-foreground text-sm text-center py-4",children:"Loading more sounds..."})]})})})]})}function ev(){let{savedSounds:e,isLoadingSavedSounds:t,savedSoundsError:a,loadSavedSounds:n,isSoundSaved:l,toggleSavedSound:i,clearSavedSounds:s}=eh(),[o,d]=(0,y.useState)(null),[c,u]=(0,y.useState)(null),[m,f]=(0,y.useState)(!1);(0,y.useEffect)(()=>{n()},[n]);let h=e=>({id:e.id,name:e.name,description:"",url:"",previewUrl:e.previewUrl,downloadUrl:e.downloadUrl,duration:e.duration,filesize:0,type:"audio",channels:0,bitrate:0,bitdepth:0,samplerate:0,username:e.username,tags:e.tags,license:e.license,created:e.savedAt,downloads:0,rating:0,ratingCount:0});return t?(0,r.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,r.jsx)("div",{className:"text-muted-foreground text-sm",children:"Loading saved sounds..."})}):a?(0,r.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,r.jsxs)("div",{className:"text-destructive text-sm",children:["Error: ",a]})}):0===e.length?(0,r.jsxs)("div",{className:"bg-panel h-full p-4 flex flex-col items-center justify-center gap-3",children:[(0,r.jsx)(ec.A,{className:"w-10 h-10 text-muted-foreground",strokeWidth:1.5}),(0,r.jsxs)("div",{className:"flex flex-col gap-2 text-center",children:[(0,r.jsx)("p",{className:"text-lg font-medium",children:"No saved sounds"}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground text-balance",children:"Click the heart icon on any sound to save it here"})]})]}):(0,r.jsxs)("div",{className:"flex flex-col gap-5 mt-1 h-full",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("p",{className:"text-sm text-muted-foreground",children:[e.length," saved"," ",1===e.length?"sound":"sounds"]}),(0,r.jsxs)(ex.lG,{open:m,onOpenChange:f,children:[(0,r.jsx)(ex.zM,{asChild:!0,children:(0,r.jsx)(v.$,{variant:"text",size:"sm",className:"h-auto text-muted-foreground hover:text-destructive !opacity-100",children:"Clear all"})}),(0,r.jsxs)(ex.Cf,{children:[(0,r.jsxs)(ex.c7,{children:[(0,r.jsx)(ex.L3,{children:"Clear all saved sounds?"}),(0,r.jsxs)(ex.rr,{children:["This will permanently remove all ",e.length," saved sounds from your collection. This action cannot be undone."]})]}),(0,r.jsxs)(ex.Es,{children:[(0,r.jsx)(v.$,{variant:"text",onClick:()=>f(!1),children:"Cancel"}),(0,r.jsx)(v.$,{variant:"destructive",onClick:async()=>{await s(),f(!1)},children:"Clear all sounds"})]})]})]})]}),(0,r.jsx)("div",{className:"relative h-full overflow-hidden",children:(0,r.jsx)(er.F,{className:"flex-1 h-full",children:(0,r.jsx)("div",{className:"flex flex-col gap-4",children:e.map(e=>(0,r.jsx)(eb,{sound:h(e),isPlaying:o===e.id,onPlay:()=>(e=>{if(o===e.id){null==c||c.pause(),d(null);return}if(null==c||c.pause(),e.previewUrl){let t=new Audio(e.previewUrl);t.addEventListener("ended",()=>{d(null)}),t.addEventListener("error",e=>{d(null)}),t.play().catch(e=>{d(null)}),u(t),d(e.id)}})(e),isSaved:l(e.id),onToggleSaved:()=>i(h(e))},e.id))})})})]})}function ej(){return(0,r.jsx)("div",{children:"Songs"})}function eb(e){let{sound:t,isPlaying:a,onPlay:n,isSaved:l,onToggleSaved:i}=e,{addSoundToTimeline:s}=eh(),o=async e=>{e.stopPropagation(),await s(t)};return(0,r.jsxs)("div",{className:"group flex items-center gap-3 opacity-100 hover:opacity-75 transition-opacity cursor-pointer",onClick:()=>{n()},children:[(0,r.jsxs)("div",{className:"relative w-12 h-12 bg-accent rounded-md flex items-center justify-center overflow-hidden shrink-0",children:[(0,r.jsx)("div",{className:"absolute inset-0 bg-gradient-to-br from-primary/20 to-transparent"}),a?(0,r.jsx)(eu.A,{className:"w-5 h-5"}):(0,r.jsx)(em.A,{className:"w-5 h-5"})]}),(0,r.jsxs)("div",{className:"flex-1 min-w-0 overflow-hidden",children:[(0,r.jsx)("p",{className:"font-medium truncate text-sm",children:t.name}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground truncate block",children:t.username})]}),(0,r.jsxs)("div",{className:"flex items-center gap-3 pr-2",children:[(0,r.jsx)(v.$,{variant:"text",size:"icon",className:"text-muted-foreground hover:text-foreground !opacity-100 w-auto",onClick:o,title:"Add to timeline",children:(0,r.jsx)(B.A,{className:"w-4 h-4"})}),(0,r.jsx)(v.$,{variant:"text",size:"icon",className:"hover:text-foreground !opacity-100 w-auto ".concat(l?"text-red-500 hover:text-red-600":"text-muted-foreground"),onClick:e=>{e.stopPropagation(),i()},title:l?"Remove from saved":"Save sound",children:(0,r.jsx)(ec.A,{className:"w-4 h-4 ".concat(l?"fill-current":"")})})]})]})}var ey=a(52801),ew=a(34248),eN=a(75141),eS=a(30461);let ek=["#ffffff","#000000","#ffe2e2","#ffc9c9","#ffa2a2","#ff6467","#fb2c36","#e7000b","#c10007","#9f0712","#82181a","#460809","#fff7ed","#ffedd4","#ffd6a7","#ffb86a","#ff8904","#ff6900","#f54900","#ca3500","#9f2d00","#7e2a0c","#441306","#fffbeb","#fef3c6","#fee685","#ffd230","#ffb900","#fe9a00","#e17100","#bb4d00","#973c00","#7b3306","#461901","#fefce8","#fef9c2","#fff085","#ffdf20","#fdc700","#f0b100","#d08700","#a65f00","#894b00","#733e0a","#432004","#f7fee7","#ecfcca","#d8f999","#bbf451","#9ae600","#7ccf00","#5ea500","#497d00","#3c6300","#35530e","#192e03","#f0fdf4","#dcfce7","#b9f8cf","#7bf1a8","#05df72","#00c950","#00a63e","#008236","#016630","#0d542b","#032e15","#ecfdf5","#d0fae5","#a4f4cf","#5ee9b5","#00d492","#00bc7d","#009966","#007a55","#006045","#004f3b","#002c22","#f0fdfa","#cbfbf1","#96f7e4","#46ecd5","#00d5be","#00bba7","#009689","#00786f","#005f5a","#0b4f4a","#022f2e","#ecfeff","#cefafe","#a2f4fd","#53eafd","#00d3f2","#00b8db","#0092b8","#007595","#005f78","#104e64","#053345","#f0f9ff","#dff2fe","#b8e6fe","#74d4ff","#00bcff","#00a6f4","#0084d1","#0069a8","#00598a","#024a70","#052f4a","#eff6ff","#dbeafe","#bedbff","#8ec5ff","#51a2ff","#2b7fff","#155dfc","#1447e6","#193cb8","#1c398e","#162456","#eef2ff","#e0e7ff","#c6d2ff","#a3b3ff","#7c86ff","#615fff","#4f39f6","#432dd7","#372aac","#312c85","#1e1a4d","#f5f3ff","#ede9fe","#ddd6ff","#c4b4ff","#a684ff","#8e51ff","#7f22fe","#7008e7","#5d0ec0","#4d179a","#2f0d68","#faf5ff","#f3e8ff","#e9d4ff","#dab2ff","#c27aff","#ad46ff","#9810fa","#8200db","#6e11b0","#59168b","#3c0366","#fdf4ff","#fae8ff","#f6cfff","#f4a8ff","#ed6aff","#e12afb","#c800de","#a800b7","#8a0194","#721378","#4b004f","#fdf2f8","#fce7f3","#fccee8","#fda5d5","#fb64b6","#f6339a","#e60076","#c6005c","#a3004c","#861043","#510424","#fff1f2","#ffe4e6","#ffccd3","#ffa1ad","#ff637e","#ff2056","#ec003f","#c70036","#a50036","#8b0836","#4d0218","#f8fafc","#f1f5f9","#e2e8f0","#cad5e2","#90a1b9","#62748e","#45556c","#314158","#1d293d","#0f172b","#020618","#f9fafb","#f3f4f6","#e5e7eb","#d1d5dc","#99a1af","#6a7282","#4a5565","#364153","#1e2939","#101828","#030712","#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#9f9fa9","#71717b","#52525c","#3f3f46","#27272a","#18181b","#09090b","#f5f5f5","#e5e5e5","#d4d4d4","#a1a1a1","#737373","#525252","#404040","#262626","#171717","#0a0a0a","#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a6a09b","#79716b","#57534d","#44403b","#292524","#1c1917","#0c0a09"],eE=["radial-gradient(circle at 30% 70%, rgba(173, 216, 230, 0.35), transparent 60%), radial-gradient(circle at 70% 30%, rgba(255, 182, 193, 0.4), transparent 60%)","radial-gradient(circle at 20% 80%, rgba(255, 182, 153, 0.3) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(255, 244, 214, 0.5) 0%, transparent 50%), radial-gradient(circle at 40% 40%, rgba(255, 182, 153, 0.1) 0%, transparent 50%), #fff8f0","radial-gradient(circle at 20% 80%, rgba(255, 160, 146, 0.25) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(255, 244, 228, 0.3) 0%, transparent 50%), radial-gradient(circle at 40% 40%, rgba(255, 160, 146, 0.15) 0%, transparent 50%), #fef9f7","radial-gradient(circle at center, #8FFFB0, transparent), white","radial-gradient(circle at top right, rgba(173, 109, 244, 0.5), transparent 70%)","radial-gradient(circle at top right, rgba(56, 193, 182, 0.5), transparent 70%)","radial-gradient(circle at top right, rgba(255, 140, 60, 0.5), transparent 70%)","radial-gradient(circle at top right, rgba(70, 130, 180, 0.5), transparent 70%)","radial-gradient(circle at top left, rgba(173, 109, 244, 0.5), transparent 70%)"];var eC=a(2245);let eT=["linear-gradient(to right, #22d3ee, #0ea5e9, #0284c7)","linear-gradient(to right, #bfdbfe, #a5f3fc)","linear-gradient(to right, #22d3ee, #0ea5e9, #0284c7)","linear-gradient(to right, #e9d5ff, #d8b4fe, #c084fc)","linear-gradient(to right, #c4b5fd, #a78bfa, #8b5cf6)","linear-gradient(to right, #93c5fd, #60a5fa, #3b82f6)","linear-gradient(to right, #93c5fd, #60a5fa, #3b82f6)","linear-gradient(to right, #6ee7b7, #34d399, #10b981)","linear-gradient(to right, #d1fae5, #a7f3d0, #6ee7b7)","linear-gradient(to right, #fca5a5, #f87171, #ef4444)","linear-gradient(to right, #fde68a, #fbbf24, #f59e0b)","linear-gradient(to right, #fbcfe8, #f9a8d4, #f472b6)","radial-gradient(circle at bottom left, #ff00ff, #00ffff)"];function eA(){return(0,r.jsx)(eR,{})}function eR(){return(0,r.jsx)("div",{className:"h-full flex flex-col",children:(0,r.jsxs)(el,{defaultValue:"project-info",className:"flex flex-col h-full",children:[(0,r.jsx)("div",{className:"px-3 pt-4 pb-0",children:(0,r.jsxs)(ei,{children:[(0,r.jsx)(es,{value:"project-info",children:"Project info"}),(0,r.jsx)(es,{value:"background",children:"Background"})]})}),(0,r.jsx)(ea.Separator,{className:"my-4"}),(0,r.jsxs)(er.F,{className:"flex-1",children:[(0,r.jsx)(eo,{value:"project-info",className:"p-5 pt-0 mt-0",children:(0,r.jsx)(eM,{})}),(0,r.jsx)(eo,{value:"background",className:"p-4 pt-0",children:(0,r.jsx)(eL,{})})]})]})})}function eM(){let{activeProject:e,updateProjectFps:t}=(0,W.I)(),{canvasPresets:a,setCanvasSize:n}=(0,eN.U)(),{getDisplayName:l}=function(){let{canvasSize:e,canvasMode:t,canvasPresets:a}=(0,eN.U)(),{mediaItems:r}=(0,E.B)(),{tracks:n}=(0,Y.A)(),l=a.find(t=>t.width===e.width&&t.height===e.height),i=()=>e.width/e.height,s=e=>{for(let{ratio:t,label:a}of[{ratio:16/9,label:"16:9"},{ratio:9/16,label:"9:16"},{ratio:1,label:"1:1"},{ratio:4/3,label:"4:3"},{ratio:3/4,label:"3:4"},{ratio:21/9,label:"21:9"}])if(.01>Math.abs(e-t))return a;return e.toFixed(2)};return{currentPreset:l,canvasMode:t,isOriginal:"original"===t,getCurrentAspectRatio:i,getOriginalAspectRatio:()=>{for(let e of n)for(let t of e.elements)if("media"===t.type){let e=r.find(e=>e.id===t.mediaId);if(e&&("video"===e.type||"image"===e.type))return(0,E.C)(e)}return 16/9},formatAspectRatio:s,getDisplayName:()=>"original"===t?"Original":l?l.name:s(i()),canvasSize:e,canvasPresets:a}}();return(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsxs)(ew.DC,{direction:"column",children:[(0,r.jsx)(ew.Tq,{children:"Name"}),(0,r.jsx)(ew.Wg,{children:(null==e?void 0:e.name)||"Untitled project"})]}),(0,r.jsxs)(ew.DC,{direction:"column",children:[(0,r.jsx)(ew.Tq,{children:"Aspect ratio"}),(0,r.jsx)(ew.Wg,{children:(0,r.jsxs)(ey.l6,{value:l(),onValueChange:e=>{let t=a.find(t=>t.name===e);t&&n({width:t.width,height:t.height})},children:[(0,r.jsx)(ey.bq,{className:"bg-panel-accent",children:(0,r.jsx)(ey.yv,{placeholder:"Select an aspect ratio"})}),(0,r.jsx)(ey.gC,{children:a.map(e=>(0,r.jsx)(ey.eb,{value:e.name,children:e.name},e.name))})]})})]}),(0,r.jsxs)(ew.DC,{direction:"column",children:[(0,r.jsx)(ew.Tq,{children:"Frame rate"}),(0,r.jsx)(ew.Wg,{children:(0,r.jsxs)(ey.l6,{value:((null==e?void 0:e.fps)||30).toString(),onValueChange:e=>{t(parseFloat(e))},children:[(0,r.jsx)(ey.bq,{className:"bg-panel-accent",children:(0,r.jsx)(ey.yv,{placeholder:"Select a frame rate"})}),(0,r.jsx)(ey.gC,{children:G.Tm.map(e=>(0,r.jsx)(ey.eb,{value:e.value,children:e.label},e.value))})]})})]})]})}let eD=(0,y.memo)(e=>{let{blur:t,isSelected:a,onSelect:l}=e;return(0,r.jsxs)("div",{className:(0,n.cn)("w-full aspect-square rounded-sm cursor-pointer border border-foreground/15 hover:border-primary relative overflow-hidden",a&&"border-2 border-primary"),onClick:l,children:[(0,r.jsx)(eS.default,{src:"https://images.unsplash.com/photo-1501785888041-af3ef285b470?q=80&w=1470&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",alt:"Blur preview ".concat(t.label),fill:!0,className:"object-cover",style:{filter:"blur(".concat(t.value,"px)")},loading:"eager"}),(0,r.jsx)("div",{className:"absolute bottom-1 left-1 right-1 text-center",children:(0,r.jsx)("span",{className:"text-xs text-white bg-black/50 px-1 rounded",children:t.label})})]})});eD.displayName="BlurPreview";let eI=(0,y.memo)(e=>{let{backgrounds:t,currentBackgroundColor:a,isColorBackground:l,handleColorSelect:i,useBackgroundColor:s=!1}=e;return(0,y.useMemo)(()=>t.map(e=>(0,r.jsx)("div",{className:(0,n.cn)("w-full aspect-square rounded-sm cursor-pointer border border-foreground/15 hover:border-primary",l&&e===a&&"border-2 border-primary"),style:s?{backgroundColor:e}:{background:e,backgroundSize:"cover",backgroundPosition:"center",backgroundRepeat:"no-repeat"},onClick:()=>i(e)},e)),[t,l,a,i,s])});function eL(){let{activeProject:e,updateBackgroundType:t}=(0,W.I)(),a=(0,y.useMemo)(()=>[{label:"Light",value:4},{label:"Medium",value:8},{label:"Heavy",value:18}],[]),n=(0,y.useCallback)(async e=>{await t("blur",{blurIntensity:e})},[t]),l=(0,y.useCallback)(async e=>{await t("color",{backgroundColor:e})},[t]),i=(null==e?void 0:e.blurIntensity)||8,s=(null==e?void 0:e.backgroundType)==="blur",o=(null==e?void 0:e.backgroundColor)||"#000000",d=(null==e?void 0:e.backgroundType)==="color",c=(0,y.useMemo)(()=>a.map(e=>(0,r.jsx)(eD,{blur:e,isSelected:s&&i===e.value,onSelect:()=>n(e.value)},e.value)),[a,s,i,n]);return(0,r.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,r.jsx)(ew.Zf,{title:"Blur",defaultExpanded:!1,children:(0,r.jsx)("div",{className:"grid grid-cols-4 gap-2 w-full",children:c})}),(0,r.jsx)(ew.Zf,{title:"Colors",defaultExpanded:!1,children:(0,r.jsxs)("div",{className:"grid grid-cols-4 gap-2 w-full",children:[(0,r.jsx)("div",{className:"w-full aspect-square rounded-sm cursor-pointer border border-foreground/15 hover:border-primary flex items-center justify-center",children:(0,r.jsx)(eC.A,{className:"size-4"})}),(0,r.jsx)(eI,{backgrounds:ek,currentBackgroundColor:o,isColorBackground:d,handleColorSelect:l,useBackgroundColor:!0})]})}),(0,r.jsx)(ew.Zf,{title:"Pattern Craft",defaultExpanded:!1,children:(0,r.jsx)("div",{className:"grid grid-cols-4 gap-2 w-full",children:(0,r.jsx)(eI,{backgrounds:eE,currentBackgroundColor:o,isColorBackground:d,handleColorSelect:l})})}),(0,r.jsx)(ew.Zf,{title:"Syntax UI",defaultExpanded:!1,children:(0,r.jsx)("div",{className:"grid grid-cols-4 gap-2 w-full",children:(0,r.jsx)(eI,{backgrounds:eT,currentBackgroundColor:o,isColorBackground:d,handleColorSelect:l})})})]})}function eP(){let{activeTab:e}=g(),t={media:(0,r.jsx)(V,{}),sounds:(0,r.jsx)(ep,{}),text:(0,r.jsx)(ee,{}),stickers:(0,r.jsx)("div",{className:"p-4 text-muted-foreground",children:"Stickers view coming soon..."}),effects:(0,r.jsx)("div",{className:"p-4 text-muted-foreground",children:"Effects view coming soon..."}),transitions:(0,r.jsx)("div",{className:"p-4 text-muted-foreground",children:"Transitions view coming soon..."}),captions:(0,r.jsx)("div",{className:"p-4 text-muted-foreground",children:"Captions view coming soon..."}),filters:(0,r.jsx)("div",{className:"p-4 text-muted-foreground",children:"Filters view coming soon..."}),adjustment:(0,r.jsx)("div",{className:"p-4 text-muted-foreground",children:"Adjustment view coming soon..."}),settings:(0,r.jsx)(eA,{})};return(0,r.jsxs)("div",{className:"h-full flex bg-panel",children:[(0,r.jsx)(w,{}),(0,r.jsx)(ea.Separator,{orientation:"vertical"}),(0,r.jsx)("div",{className:"flex-1 overflow-hidden",children:t[e]})]})}eI.displayName="BackgroundPreviews"},86434:(e,t,a)=>{a.d(t,{Ip:()=>h,K5:()=>p,Rc:()=>m,kt:()=>x,tz:()=>u});var r=a(28064),n=a(74188),l=a(14219),i=a(37770),s=a(58090),o=a(57118),d=a(24827),c=a(93146);let u=l.Root,m=l.Trigger;l.Group,l.Portal,l.Sub,l.RadioGroup;let f=(0,d.F)("relative flex cursor-pointer select-none items-center gap-2 px-2 py-1.5 text-sm outline-hidden transition-opacity data-disabled:pointer-events-none data-disabled:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"focus:opacity-65 focus:text-accent-foreground",destructive:"text-destructive focus:text-destructive/80"}},defaultVariants:{variant:"default"}});n.forwardRef((e,t)=>{let{className:a,inset:n,children:s,variant:o="default",...d}=e;return(0,r.jsxs)(l.SubTrigger,{ref:t,className:(0,c.cn)(f({variant:o}),"data-[state=open]:bg-accent data-[state=open]:opacity-65",n&&"pl-8",a),...d,children:[s,(0,r.jsx)(i.A,{className:"ml-auto"})]})}).displayName=l.SubTrigger.displayName,n.forwardRef((e,t)=>{let{className:a,...n}=e;return(0,r.jsx)(l.SubContent,{ref:t,className:(0,c.cn)("z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...n})}).displayName=l.SubContent.displayName;let h=n.forwardRef((e,t)=>{let{className:a,...n}=e;return(0,r.jsx)(l.Portal,{children:(0,r.jsx)(l.Content,{ref:t,className:(0,c.cn)("z-50 min-w-32 overflow-hidden rounded-md border p-1 bg-popover text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...n})})});h.displayName=l.Content.displayName;let x=n.forwardRef((e,t)=>{let{className:a,inset:n,variant:i="default",...s}=e;return(0,r.jsx)(l.Item,{ref:t,className:(0,c.cn)(f({variant:i}),n&&"pl-8",a),...s})});x.displayName=l.Item.displayName,n.forwardRef((e,t)=>{let{className:a,children:n,checked:i,variant:o="default",...d}=e;return(0,r.jsxs)(l.CheckboxItem,{ref:t,className:(0,c.cn)(f({variant:o}),"pl-8 pr-2",a),checked:i,...d,children:[(0,r.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,r.jsx)(l.ItemIndicator,{children:(0,r.jsx)(s.A,{className:"h-4 w-4"})})}),n]})}).displayName=l.CheckboxItem.displayName,n.forwardRef((e,t)=>{let{className:a,children:n,variant:i="default",...s}=e;return(0,r.jsxs)(l.RadioItem,{ref:t,className:(0,c.cn)(f({variant:i}),"pl-8 pr-2",a),...s,children:[(0,r.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,r.jsx)(l.ItemIndicator,{children:(0,r.jsx)(o.A,{className:"h-2 w-2 fill-current"})})}),n]})}).displayName=l.RadioItem.displayName,n.forwardRef((e,t)=>{let{className:a,inset:n,...i}=e;return(0,r.jsx)(l.Label,{ref:t,className:(0,c.cn)("px-2 py-1.5 text-sm font-semibold",n&&"pl-8",a),...i})}).displayName=l.Label.displayName;let p=n.forwardRef((e,t)=>{let{className:a,...n}=e;return(0,r.jsx)(l.Separator,{ref:t,className:(0,c.cn)("-mx-1 my-1 h-px bg-foreground/10",a),...n})});p.displayName=l.Separator.displayName},87819:(e,t,a)=>{a.d(t,{M:()=>d});var r=a(28064),n=a(66981),l=a(61309),i=a(15700),s=a(74188),o=a(40124);function d(){let[e,t]=(0,s.useState)(0),[a,l]=(0,s.useState)(!1);(0,s.useEffect)(()=>{localStorage.getItem("hasSeenOnboarding")||l(!0)},[]);let i=()=>{t(e+1)},o=()=>{l(!1),localStorage.setItem("hasSeenOnboarding","true")},d=()=>{switch(e){case 0:return"Welcome to OpenCut Beta! \uD83C\uDF89";case 1:return"⚠️ This is a super early beta!";case 2:return"\uD83E\uDD8B Have fun testing!";default:return"OpenCut Onboarding"}};return(0,r.jsx)(n.lG,{open:a,onOpenChange:o,children:(0,r.jsxs)(n.Cf,{className:"sm:max-w-[425px] outline-hidden!",children:[(0,r.jsx)(n.L3,{children:(0,r.jsx)("span",{className:"sr-only",children:d()})}),(()=>{switch(e){case 0:return(0,r.jsxs)("div",{className:"space-y-5",children:[(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)(c,{title:"Welcome to OpenCut Beta! \uD83C\uDF89"}),(0,r.jsx)(u,{description:"You're among the first to try OpenCut - the fully open source CapCut alternative."})]}),(0,r.jsx)(m,{onClick:i,children:"Next"})]});case 1:return(0,r.jsxs)("div",{className:"space-y-5",children:[(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)(c,{title:d()}),(0,r.jsx)(u,{description:"OpenCut started just one month ago. There's still a ton of things to do to make this editor amazing."}),(0,r.jsx)(u,{description:"If you're curious, check out our roadmap [here](https://opencut.app/roadmap)"})]}),(0,r.jsx)(m,{onClick:i,children:"Next"})]});case 2:return(0,r.jsxs)("div",{className:"space-y-5",children:[(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)(c,{title:d()}),(0,r.jsx)(u,{description:"Join our [Discord](https://discord.gg/zmR9N35cjK), chat with cool people and share feedback to help make OpenCut the best editor ever."})]}),(0,r.jsx)(m,{onClick:o,children:"Finish"})]});default:return null}})()]})})}function c(e){let{title:t}=e;return(0,r.jsx)("h2",{className:"text-lg md:text-xl font-bold",children:t})}function u(e){let{description:t}=e;return(0,r.jsx)("div",{className:"text-muted-foreground",children:(0,r.jsx)(o.oz,{components:{p:e=>{let{children:t}=e;return(0,r.jsx)("p",{className:"mb-0",children:t})},a:e=>{let{href:t,children:a}=e;return(0,r.jsx)("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"text-foreground hover:text-foreground/80 underline",children:a})}},children:t})})}function m(e){let{children:t,onClick:a}=e;return(0,r.jsxs)(l.$,{onClick:a,variant:"default",className:"w-full",children:[t,(0,r.jsx)(i.A,{className:"w-4 h-4"})]})}},89100:(e,t,a)=>{a.d(t,{z:()=>s});var r=a(74188),n=a(81925),l=a(8300),i=a(61557);let s=()=>{let{isPlaying:e,currentTime:t,play:a,pause:s,seek:o}=(0,n.E)(),{selectedElements:d,tracks:c,splitElement:u,splitAndKeepLeft:m,splitAndKeepRight:f,separateAudio:h}=(0,l.A)();(0,r.useCallback)(()=>{if(1!==d.length)return void i.oR.error("Select exactly one element to split");let{trackId:e,elementId:a}=d[0],r=c.find(t=>t.id===e),n=null==r?void 0:r.elements.find(e=>e.id===a);if(!n)return;let l=n.startTime,s=n.startTime+(n.duration-n.trimStart-n.trimEnd);if(t<=l||t>=s)return void i.oR.error("Playhead must be within selected element");u(e,a,t)},[d,c,t,u]),(0,r.useCallback)(()=>{if(1!==d.length)return void i.oR.error("Select exactly one element");let{trackId:e,elementId:a}=d[0],r=c.find(t=>t.id===e),n=null==r?void 0:r.elements.find(e=>e.id===a);if(!n)return;let l=n.startTime,s=n.startTime+(n.duration-n.trimStart-n.trimEnd);if(t<=l||t>=s)return void i.oR.error("Playhead must be within selected element");m(e,a,t)},[d,c,t,m]),(0,r.useCallback)(()=>{if(1!==d.length)return void i.oR.error("Select exactly one element");let{trackId:e,elementId:a}=d[0],r=c.find(t=>t.id===e),n=null==r?void 0:r.elements.find(e=>e.id===a);if(!n)return;let l=n.startTime,s=n.startTime+(n.duration-n.trimStart-n.trimEnd);if(t<=l||t>=s)return void i.oR.error("Playhead must be within selected element");f(e,a,t)},[d,c,t,f]),(0,r.useCallback)(()=>{if(1!==d.length)return void i.oR.error("Select exactly one media element to separate audio");let{trackId:e,elementId:t}=d[0],a=c.find(t=>t.id===e);if(!a||"media"!==a.type)return void i.oR.error("Select a media element to separate audio");h(e,t)},[d,c,h])}}}]); +//# sourceMappingURL=622-ea09f038bcfadbb2.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/622-ea09f038bcfadbb2.js.map b/opencut-ui/_next/static/chunks/622-ea09f038bcfadbb2.js.map new file mode 100644 index 0000000..1ad8e86 --- /dev/null +++ b/opencut-ui/_next/static/chunks/622-ea09f038bcfadbb2.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/622-ea09f038bcfadbb2.js","mappings":"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AAAA,CAASA,CAAAA,CAACt0C,UAAW,WAAyC,OAA9BkzC,EAAU,eAAiB,aAKtE,qDEnfO,IAAMyB,GAAS,CACpB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAC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","sources":["webpack://_N_E/./src/components/ui/video-player.tsx","webpack://_N_E/./src/components/ui/audio-player.tsx","webpack://_N_E/./src/components/ui/editable-timecode.tsx","webpack://_N_E/./src/lib/font-config.ts","webpack://_N_E/./src/components/editor/preview-panel.tsx","webpack://_N_E/./src/lib/time.ts","webpack://_N_E/./src/hooks/use-timeline-zoom.ts","webpack://_N_E/./src/components/editor/audio-waveform.tsx","webpack://_N_E/./src/hooks/use-timeline-element-resize.ts","webpack://_N_E/./src/components/editor/timeline/timeline-element.tsx","webpack://_N_E/./src/hooks/use-timeline-snapping.ts","webpack://_N_E/./src/components/editor/timeline/timeline-track.tsx","webpack://_N_E/./src/hooks/use-timeline-playhead.ts","webpack://_N_E/./src/components/editor/timeline/timeline-playhead.tsx","webpack://_N_E/./src/components/editor/selection-box.tsx","webpack://_N_E/./src/hooks/use-selection-box.ts","webpack://_N_E/./src/components/editor/snap-indicator.tsx","webpack://_N_E/./src/components/editor/timeline/index.tsx","webpack://_N_E/./src/constants/actions.ts","webpack://_N_E/./src/hooks/use-keybindings.ts","webpack://_N_E/./src/hooks/use-editor-actions.ts","webpack://_N_E/./src/components/editor-provider.tsx","webpack://_N_E/./src/stores/panel-store.ts","webpack://_N_E/./src/stores/keybindings-store.ts","webpack://_N_E/./src/components/ui/slider.tsx","webpack://_N_E/./src/components/header-base.tsx","webpack://_N_E/./src/hooks/use-keyboard-shortcuts-help.ts","webpack://_N_E/./src/components/keyboard-shortcuts-help.tsx","webpack://_N_E/./src/components/editor-header.tsx","webpack://_N_E/./src/components/editor/properties-panel/audio-properties.tsx","webpack://_N_E/./src/components/editor/properties-panel/media-properties.tsx","webpack://_N_E/./src/components/ui/textarea.tsx","webpack://_N_E/./src/constants/font-constants.ts","webpack://_N_E/./src/components/ui/font-picker.tsx","webpack://_N_E/./src/components/editor/properties-panel/text-properties.tsx","webpack://_N_E/./src/components/editor/properties-panel/index.tsx","webpack://_N_E/./src/components/editor/properties-panel/property-item.tsx","webpack://_N_E/./src/lib/ffmpeg-utils.ts","webpack://_N_E/./src/lib/media-processing.ts","webpack://_N_E/./src/components/ui/tooltip.tsx","webpack://_N_E/./src/components/ui/separator.tsx","webpack://_N_E/./src/components/ui/resizable.tsx","webpack://_N_E/./src/stores/playback-store.ts","webpack://_N_E/./src/components/editor/media-panel/store.ts","webpack://_N_E/./src/components/editor/media-panel/tabbar.tsx","webpack://_N_E/./src/hooks/use-drag-drop.ts","webpack://_N_E/./src/components/editor/media-panel/drag-overlay.tsx","webpack://_N_E/./src/components/ui/aspect-ratio.tsx","webpack://_N_E/./src/components/ui/draggable-item.tsx","webpack://_N_E/./src/components/editor/media-panel/views/media.tsx","webpack://_N_E/./src/components/editor/media-panel/views/text.tsx","webpack://_N_E/./src/components/ui/tabs.tsx","webpack://_N_E/./src/stores/sounds-store.ts","webpack://_N_E/./src/hooks/use-sound-search.ts","webpack://_N_E/./src/components/editor/media-panel/views/sounds.tsx","webpack://_N_E/./src/hooks/use-aspect-ratio.ts","webpack://_N_E/./src/data/colors/solid.ts","webpack://_N_E/./src/data/colors/pattern-craft.ts","webpack://_N_E/./src/data/colors/syntax-ui.tsx","webpack://_N_E/./src/components/editor/media-panel/views/settings.tsx","webpack://_N_E/./src/components/editor/media-panel/index.tsx","webpack://_N_E/./src/components/ui/context-menu.tsx","webpack://_N_E/./src/components/onboarding.tsx","webpack://_N_E/./src/hooks/use-playback-controls.ts"],"sourcesContent":["\"use client\";\r\n\r\nimport { useRef, useEffect } from \"react\";\r\nimport { usePlaybackStore } from \"@/stores/playback-store\";\r\n\r\ninterface VideoPlayerProps {\r\n src: string;\r\n poster?: string;\r\n className?: string;\r\n clipStartTime: number;\r\n trimStart: number;\r\n trimEnd: number;\r\n clipDuration: number;\r\n}\r\n\r\nexport function VideoPlayer({\r\n src,\r\n poster,\r\n className = \"\",\r\n clipStartTime,\r\n trimStart,\r\n trimEnd,\r\n clipDuration,\r\n}: VideoPlayerProps) {\r\n const videoRef = useRef<HTMLVideoElement>(null);\r\n const { isPlaying, currentTime, volume, speed, muted } = usePlaybackStore();\r\n\r\n // Calculate if we're within this clip's timeline range\r\n const clipEndTime = clipStartTime + (clipDuration - trimStart - trimEnd);\r\n const isInClipRange =\r\n currentTime >= clipStartTime && currentTime < clipEndTime;\r\n\r\n // Sync playback events\r\n useEffect(() => {\r\n const video = videoRef.current;\r\n if (!video || !isInClipRange) return;\r\n\r\n const handleSeekEvent = (e: CustomEvent) => {\r\n // Always update video time, even if outside clip range\r\n const timelineTime = e.detail.time;\r\n const videoTime = Math.max(\r\n trimStart,\r\n Math.min(\r\n clipDuration - trimEnd,\r\n timelineTime - clipStartTime + trimStart\r\n )\r\n );\r\n video.currentTime = videoTime;\r\n };\r\n\r\n const handleUpdateEvent = (e: CustomEvent) => {\r\n // Always update video time, even if outside clip range\r\n const timelineTime = e.detail.time;\r\n const targetTime = Math.max(\r\n trimStart,\r\n Math.min(\r\n clipDuration - trimEnd,\r\n timelineTime - clipStartTime + trimStart\r\n )\r\n );\r\n\r\n if (Math.abs(video.currentTime - targetTime) > 0.5) {\r\n video.currentTime = targetTime;\r\n }\r\n };\r\n\r\n const handleSpeed = (e: CustomEvent) => {\r\n video.playbackRate = e.detail.speed;\r\n };\r\n\r\n window.addEventListener(\"playback-seek\", handleSeekEvent as EventListener);\r\n window.addEventListener(\r\n \"playback-update\",\r\n handleUpdateEvent as EventListener\r\n );\r\n window.addEventListener(\"playback-speed\", handleSpeed as EventListener);\r\n\r\n return () => {\r\n window.removeEventListener(\r\n \"playback-seek\",\r\n handleSeekEvent as EventListener\r\n );\r\n window.removeEventListener(\r\n \"playback-update\",\r\n handleUpdateEvent as EventListener\r\n );\r\n window.removeEventListener(\r\n \"playback-speed\",\r\n handleSpeed as EventListener\r\n );\r\n };\r\n }, [clipStartTime, trimStart, trimEnd, clipDuration, isInClipRange]);\r\n\r\n // Sync playback state\r\n useEffect(() => {\r\n const video = videoRef.current;\r\n if (!video) return;\r\n\r\n if (isPlaying && isInClipRange) {\r\n video.play().catch(() => {});\r\n } else {\r\n video.pause();\r\n }\r\n }, [isPlaying, isInClipRange]);\r\n\r\n // Sync volume and speed\r\n useEffect(() => {\r\n const video = videoRef.current;\r\n if (!video) return;\r\n\r\n video.volume = volume;\r\n video.muted = muted;\r\n video.playbackRate = speed;\r\n }, [volume, speed, muted]);\r\n\r\n return (\r\n <video\r\n ref={videoRef}\r\n src={src}\r\n poster={poster}\r\n className={`max-w-full max-h-full object-contain ${className}`}\r\n playsInline\r\n preload=\"auto\"\r\n controls={false}\r\n disablePictureInPicture\r\n disableRemotePlayback\r\n style={{ pointerEvents: \"none\" }}\r\n onContextMenu={(e) => e.preventDefault()}\r\n />\r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport { useRef, useEffect } from \"react\";\r\nimport { usePlaybackStore } from \"@/stores/playback-store\";\r\n\r\ninterface AudioPlayerProps {\r\n src: string;\r\n className?: string;\r\n clipStartTime: number;\r\n trimStart: number;\r\n trimEnd: number;\r\n clipDuration: number;\r\n trackMuted?: boolean;\r\n}\r\n\r\nexport function AudioPlayer({\r\n src,\r\n className = \"\",\r\n clipStartTime,\r\n trimStart,\r\n trimEnd,\r\n clipDuration,\r\n trackMuted = false,\r\n}: AudioPlayerProps) {\r\n const audioRef = useRef<HTMLAudioElement>(null);\r\n const { isPlaying, currentTime, volume, speed, muted } = usePlaybackStore();\r\n\r\n // Calculate if we're within this clip's timeline range\r\n const clipEndTime = clipStartTime + (clipDuration - trimStart - trimEnd);\r\n const isInClipRange =\r\n currentTime >= clipStartTime && currentTime < clipEndTime;\r\n\r\n // Sync playback events\r\n useEffect(() => {\r\n const audio = audioRef.current;\r\n if (!audio || !isInClipRange) return;\r\n\r\n const handleSeekEvent = (e: CustomEvent) => {\r\n // Always update audio time, even if outside clip range\r\n const timelineTime = e.detail.time;\r\n const audioTime = Math.max(\r\n trimStart,\r\n Math.min(\r\n clipDuration - trimEnd,\r\n timelineTime - clipStartTime + trimStart\r\n )\r\n );\r\n audio.currentTime = audioTime;\r\n };\r\n\r\n const handleUpdateEvent = (e: CustomEvent) => {\r\n // Always update audio time, even if outside clip range\r\n const timelineTime = e.detail.time;\r\n const targetTime = Math.max(\r\n trimStart,\r\n Math.min(\r\n clipDuration - trimEnd,\r\n timelineTime - clipStartTime + trimStart\r\n )\r\n );\r\n\r\n if (Math.abs(audio.currentTime - targetTime) > 0.5) {\r\n audio.currentTime = targetTime;\r\n }\r\n };\r\n\r\n const handleSpeed = (e: CustomEvent) => {\r\n audio.playbackRate = e.detail.speed;\r\n };\r\n\r\n window.addEventListener(\"playback-seek\", handleSeekEvent as EventListener);\r\n window.addEventListener(\r\n \"playback-update\",\r\n handleUpdateEvent as EventListener\r\n );\r\n window.addEventListener(\"playback-speed\", handleSpeed as EventListener);\r\n\r\n return () => {\r\n window.removeEventListener(\r\n \"playback-seek\",\r\n handleSeekEvent as EventListener\r\n );\r\n window.removeEventListener(\r\n \"playback-update\",\r\n handleUpdateEvent as EventListener\r\n );\r\n window.removeEventListener(\r\n \"playback-speed\",\r\n handleSpeed as EventListener\r\n );\r\n };\r\n }, [clipStartTime, trimStart, trimEnd, clipDuration, isInClipRange]);\r\n\r\n // Sync playback state\r\n useEffect(() => {\r\n const audio = audioRef.current;\r\n if (!audio) return;\r\n\r\n if (isPlaying && isInClipRange && !trackMuted) {\r\n audio.play().catch(() => {});\r\n } else {\r\n audio.pause();\r\n }\r\n }, [isPlaying, isInClipRange, trackMuted]);\r\n\r\n // Sync volume and speed\r\n useEffect(() => {\r\n const audio = audioRef.current;\r\n if (!audio) return;\r\n\r\n audio.volume = volume;\r\n audio.muted = muted || trackMuted;\r\n audio.playbackRate = speed;\r\n }, [volume, speed, muted, trackMuted]);\r\n\r\n return (\r\n <audio\r\n ref={audioRef}\r\n src={src}\r\n className={className}\r\n preload=\"auto\"\r\n controls={false}\r\n style={{ display: \"none\" }} // Audio elements don't need visual representation\r\n onContextMenu={(e) => e.preventDefault()}\r\n />\r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport { useState, useRef, useEffect } from \"react\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { formatTimeCode, parseTimeCode } from \"@/lib/time\";\r\n\r\ninterface EditableTimecodeProps {\r\n time: number;\r\n duration?: number;\r\n format?: \"MM:SS\" | \"HH:MM:SS\" | \"HH:MM:SS:CS\" | \"HH:MM:SS:FF\";\r\n fps?: number;\r\n onTimeChange?: (time: number) => void;\r\n className?: string;\r\n disabled?: boolean;\r\n}\r\n\r\nexport function EditableTimecode({\r\n time,\r\n duration,\r\n format = \"HH:MM:SS:FF\",\r\n fps = 30,\r\n onTimeChange,\r\n className,\r\n disabled = false,\r\n}: EditableTimecodeProps) {\r\n const [isEditing, setIsEditing] = useState(false);\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [hasError, setHasError] = useState(false);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const enterPressedRef = useRef(false);\r\n\r\n const formattedTime = formatTimeCode(time, format, fps);\r\n\r\n const startEditing = () => {\r\n if (disabled) return;\r\n setIsEditing(true);\r\n setInputValue(formattedTime);\r\n setHasError(false);\r\n enterPressedRef.current = false;\r\n };\r\n\r\n const cancelEditing = () => {\r\n setIsEditing(false);\r\n setInputValue(\"\");\r\n setHasError(false);\r\n enterPressedRef.current = false;\r\n };\r\n\r\n const applyEdit = () => {\r\n const parsedTime = parseTimeCode(inputValue, format, fps);\r\n\r\n if (parsedTime === null) {\r\n setHasError(true);\r\n return;\r\n }\r\n\r\n // Clamp time to valid range\r\n const clampedTime = Math.max(\r\n 0,\r\n duration ? Math.min(duration, parsedTime) : parsedTime\r\n );\r\n\r\n onTimeChange?.(clampedTime);\r\n setIsEditing(false);\r\n setInputValue(\"\");\r\n setHasError(false);\r\n enterPressedRef.current = false;\r\n };\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent) => {\r\n if (e.key === \"Enter\") {\r\n e.preventDefault();\r\n enterPressedRef.current = true;\r\n applyEdit();\r\n } else if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n cancelEditing();\r\n }\r\n };\r\n\r\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n setInputValue(e.target.value);\r\n setHasError(false);\r\n };\r\n\r\n const handleBlur = () => {\r\n // Only apply edit if Enter wasn't pressed (to avoid double processing)\r\n if (!enterPressedRef.current && isEditing) {\r\n applyEdit();\r\n }\r\n };\r\n\r\n // Focus input when entering edit mode\r\n useEffect(() => {\r\n if (isEditing && inputRef.current) {\r\n inputRef.current.focus();\r\n inputRef.current.select();\r\n }\r\n }, [isEditing]);\r\n\r\n if (isEditing) {\r\n return (\r\n <input\r\n ref={inputRef}\r\n type=\"text\"\r\n value={inputValue}\r\n onChange={handleInputChange}\r\n onKeyDown={handleKeyDown}\r\n onBlur={handleBlur}\r\n className={cn(\r\n \"text-xs font-mono bg-transparent border-none outline-none\",\r\n \"focus:bg-background focus:border focus:border-primary focus:px-1 focus:rounded\",\r\n \"tabular-nums text-primary\",\r\n hasError && \"text-destructive focus:border-destructive\",\r\n className\r\n )}\r\n style={{ width: `${formattedTime.length + 1}ch` }}\r\n placeholder={formattedTime}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <span\r\n onClick={startEditing}\r\n className={cn(\r\n \"text-xs font-mono tabular-nums text-primary cursor-pointer\",\r\n \"hover:bg-muted/50 hover:rounded px-1 -mx-1 transition-colors\",\r\n disabled && \"cursor-default hover:bg-transparent\",\r\n className\r\n )}\r\n title={disabled ? undefined : \"Click to edit time\"}\r\n >\r\n {formattedTime}\r\n </span>\r\n );\r\n}\r\n","import {\r\n Inter,\r\n Roboto,\r\n Open_Sans,\r\n Playfair_Display,\r\n Comic_Neue,\r\n} from \"next/font/google\";\r\n\r\n// Configure all fonts\r\nconst inter = Inter({ subsets: [\"latin\"] });\r\nconst roboto = Roboto({ subsets: [\"latin\"], weight: [\"400\", \"700\"] });\r\nconst openSans = Open_Sans({ subsets: [\"latin\"] });\r\nconst playfairDisplay = Playfair_Display({ subsets: [\"latin\"] });\r\nconst comicNeue = Comic_Neue({ subsets: [\"latin\"], weight: [\"400\", \"700\"] });\r\n\r\n// Export font class mapping for use in components\r\nexport const FONT_CLASS_MAP = {\r\n Inter: inter.className,\r\n Roboto: roboto.className,\r\n \"Open Sans\": openSans.className,\r\n \"Playfair Display\": playfairDisplay.className,\r\n \"Comic Neue\": comicNeue.className,\r\n Arial: \"\",\r\n Helvetica: \"\",\r\n \"Times New Roman\": \"\",\r\n Georgia: \"\",\r\n} as const;\r\n\r\n// Export individual fonts for use in layout\r\nexport const fonts = {\r\n inter,\r\n roboto,\r\n openSans,\r\n playfairDisplay,\r\n comicNeue,\r\n};\r\n\r\n// Default font for the body\r\nexport const defaultFont = inter;\r\n","\"use client\";\r\n\r\nimport { useTimelineStore } from \"@/stores/timeline-store\";\r\nimport { TimelineElement, TimelineTrack } from \"@/types/timeline\";\r\nimport { useMediaStore, type MediaItem } from \"@/stores/media-store\";\r\nimport { usePlaybackStore } from \"@/stores/playback-store\";\r\nimport { useEditorStore } from \"@/stores/editor-store\";\r\nimport { VideoPlayer } from \"@/components/ui/video-player\";\r\nimport { AudioPlayer } from \"@/components/ui/audio-player\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport { Play, Pause, Expand, SkipBack, SkipForward } from \"lucide-react\";\r\nimport { useState, useRef, useEffect, useCallback } from \"react\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { formatTimeCode } from \"@/lib/time\";\r\nimport { EditableTimecode } from \"@/components/ui/editable-timecode\";\r\nimport { FONT_CLASS_MAP } from \"@/lib/font-config\";\r\nimport { useProjectStore } from \"@/stores/project-store\";\r\nimport { TextElementDragState } from \"@/types/editor\";\r\n\r\ninterface ActiveElement {\r\n element: TimelineElement;\r\n track: TimelineTrack;\r\n mediaItem: MediaItem | null;\r\n}\r\n\r\nexport function PreviewPanel() {\r\n const { tracks, getTotalDuration, updateTextElement } = useTimelineStore();\r\n const { mediaItems } = useMediaStore();\r\n const { currentTime, toggle, setCurrentTime, isPlaying } = usePlaybackStore();\r\n const { canvasSize } = useEditorStore();\r\n const previewRef = useRef<HTMLDivElement>(null);\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const [previewDimensions, setPreviewDimensions] = useState({\r\n width: 0,\r\n height: 0,\r\n });\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const { activeProject } = useProjectStore();\r\n const [dragState, setDragState] = useState<TextElementDragState>({\r\n isDragging: false,\r\n elementId: null,\r\n trackId: null,\r\n startX: 0,\r\n startY: 0,\r\n initialElementX: 0,\r\n initialElementY: 0,\r\n currentX: 0,\r\n currentY: 0,\r\n elementWidth: 0,\r\n elementHeight: 0,\r\n });\r\n\r\n useEffect(() => {\r\n const updatePreviewSize = () => {\r\n if (!containerRef.current) return;\r\n\r\n let availableWidth, availableHeight;\r\n\r\n if (isExpanded) {\r\n const controlsHeight = 80;\r\n const marginSpace = 24;\r\n availableWidth = window.innerWidth - marginSpace;\r\n availableHeight = window.innerHeight - controlsHeight - marginSpace;\r\n } else {\r\n const container = containerRef.current.getBoundingClientRect();\r\n const computedStyle = getComputedStyle(containerRef.current);\r\n const paddingTop = parseFloat(computedStyle.paddingTop);\r\n const paddingBottom = parseFloat(computedStyle.paddingBottom);\r\n const paddingLeft = parseFloat(computedStyle.paddingLeft);\r\n const paddingRight = parseFloat(computedStyle.paddingRight);\r\n const gap = parseFloat(computedStyle.gap) || 16;\r\n const toolbar = containerRef.current.querySelector(\"[data-toolbar]\");\r\n const toolbarHeight = toolbar\r\n ? toolbar.getBoundingClientRect().height\r\n : 0;\r\n\r\n availableWidth = container.width - paddingLeft - paddingRight;\r\n availableHeight =\r\n container.height -\r\n paddingTop -\r\n paddingBottom -\r\n toolbarHeight -\r\n (toolbarHeight > 0 ? gap : 0);\r\n }\r\n\r\n const targetRatio = canvasSize.width / canvasSize.height;\r\n const containerRatio = availableWidth / availableHeight;\r\n let width, height;\r\n\r\n if (containerRatio > targetRatio) {\r\n height = availableHeight * (isExpanded ? 0.95 : 1);\r\n width = height * targetRatio;\r\n } else {\r\n width = availableWidth * (isExpanded ? 0.95 : 1);\r\n height = width / targetRatio;\r\n }\r\n\r\n setPreviewDimensions({ width, height });\r\n };\r\n\r\n updatePreviewSize();\r\n const resizeObserver = new ResizeObserver(updatePreviewSize);\r\n if (containerRef.current) {\r\n resizeObserver.observe(containerRef.current);\r\n }\r\n if (isExpanded) {\r\n window.addEventListener(\"resize\", updatePreviewSize);\r\n }\r\n\r\n return () => {\r\n resizeObserver.disconnect();\r\n if (isExpanded) {\r\n window.removeEventListener(\"resize\", updatePreviewSize);\r\n }\r\n };\r\n }, [canvasSize.width, canvasSize.height, isExpanded]);\r\n\r\n useEffect(() => {\r\n const handleEscapeKey = (event: KeyboardEvent) => {\r\n if (event.key === \"Escape\" && isExpanded) {\r\n setIsExpanded(false);\r\n }\r\n };\r\n\r\n if (isExpanded) {\r\n document.addEventListener(\"keydown\", handleEscapeKey);\r\n document.body.style.overflow = \"hidden\";\r\n } else {\r\n document.body.style.overflow = \"\";\r\n }\r\n\r\n return () => {\r\n document.removeEventListener(\"keydown\", handleEscapeKey);\r\n document.body.style.overflow = \"\";\r\n };\r\n }, [isExpanded]);\r\n\r\n useEffect(() => {\r\n const handleMouseMove = (e: MouseEvent) => {\r\n if (!dragState.isDragging) return;\r\n\r\n const deltaX = e.clientX - dragState.startX;\r\n const deltaY = e.clientY - dragState.startY;\r\n\r\n const scaleRatio = previewDimensions.width / canvasSize.width;\r\n const newX = dragState.initialElementX + deltaX / scaleRatio;\r\n const newY = dragState.initialElementY + deltaY / scaleRatio;\r\n\r\n const halfWidth = dragState.elementWidth / scaleRatio / 2;\r\n const halfHeight = dragState.elementHeight / scaleRatio / 2;\r\n\r\n const constrainedX = Math.max(\r\n -canvasSize.width / 2 + halfWidth,\r\n Math.min(canvasSize.width / 2 - halfWidth, newX)\r\n );\r\n const constrainedY = Math.max(\r\n -canvasSize.height / 2 + halfHeight,\r\n Math.min(canvasSize.height / 2 - halfHeight, newY)\r\n );\r\n\r\n setDragState((prev) => ({\r\n ...prev,\r\n currentX: constrainedX,\r\n currentY: constrainedY,\r\n }));\r\n };\r\n\r\n const handleMouseUp = () => {\r\n if (dragState.isDragging && dragState.trackId && dragState.elementId) {\r\n updateTextElement(dragState.trackId, dragState.elementId, {\r\n x: dragState.currentX,\r\n y: dragState.currentY,\r\n });\r\n }\r\n setDragState((prev) => ({ ...prev, isDragging: false }));\r\n };\r\n\r\n if (dragState.isDragging) {\r\n document.addEventListener(\"mousemove\", handleMouseMove);\r\n document.addEventListener(\"mouseup\", handleMouseUp);\r\n document.body.style.cursor = \"grabbing\";\r\n document.body.style.userSelect = \"none\";\r\n }\r\n\r\n return () => {\r\n document.removeEventListener(\"mousemove\", handleMouseMove);\r\n document.removeEventListener(\"mouseup\", handleMouseUp);\r\n document.body.style.cursor = \"\";\r\n document.body.style.userSelect = \"\";\r\n };\r\n }, [dragState, previewDimensions, canvasSize, updateTextElement]);\r\n\r\n const handleTextMouseDown = (\r\n e: React.MouseEvent<HTMLDivElement>,\r\n element: any,\r\n trackId: string\r\n ) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n const rect = e.currentTarget.getBoundingClientRect();\r\n\r\n setDragState({\r\n isDragging: true,\r\n elementId: element.id,\r\n trackId,\r\n startX: e.clientX,\r\n startY: e.clientY,\r\n initialElementX: element.x,\r\n initialElementY: element.y,\r\n currentX: element.x,\r\n currentY: element.y,\r\n elementWidth: rect.width,\r\n elementHeight: rect.height,\r\n });\r\n };\r\n\r\n const toggleExpanded = useCallback(() => {\r\n setIsExpanded((prev) => !prev);\r\n }, []);\r\n\r\n const hasAnyElements = tracks.some((track) => track.elements.length > 0);\r\n const getActiveElements = (): ActiveElement[] => {\r\n const activeElements: ActiveElement[] = [];\r\n\r\n tracks.forEach((track) => {\r\n track.elements.forEach((element) => {\r\n if (element.hidden) return;\r\n const elementStart = element.startTime;\r\n const elementEnd =\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd);\r\n\r\n if (currentTime >= elementStart && currentTime < elementEnd) {\r\n let mediaItem = null;\r\n if (element.type === \"media\") {\r\n mediaItem =\r\n element.mediaId === \"test\"\r\n ? null\r\n : mediaItems.find((item) => item.id === element.mediaId) ||\r\n null;\r\n }\r\n activeElements.push({ element, track, mediaItem });\r\n }\r\n });\r\n });\r\n\r\n return activeElements;\r\n };\r\n\r\n const activeElements = getActiveElements();\r\n\r\n // Get media elements for blur background (video/image only)\r\n const getBlurBackgroundElements = (): ActiveElement[] => {\r\n return activeElements.filter(\r\n ({ element, mediaItem }) =>\r\n element.type === \"media\" &&\r\n mediaItem &&\r\n (mediaItem.type === \"video\" || mediaItem.type === \"image\") &&\r\n element.mediaId !== \"test\" // Exclude test elements\r\n );\r\n };\r\n\r\n const blurBackgroundElements = getBlurBackgroundElements();\r\n\r\n // Render blur background layer\r\n const renderBlurBackground = () => {\r\n if (\r\n !activeProject?.backgroundType ||\r\n activeProject.backgroundType !== \"blur\" ||\r\n blurBackgroundElements.length === 0\r\n ) {\r\n return null;\r\n }\r\n\r\n // Use the first media element for background (could be enhanced to use primary/focused element)\r\n const backgroundElement = blurBackgroundElements[0];\r\n const { element, mediaItem } = backgroundElement;\r\n\r\n if (!mediaItem) return null;\r\n\r\n const blurIntensity = activeProject.blurIntensity || 8;\r\n\r\n if (mediaItem.type === \"video\") {\r\n return (\r\n <div\r\n key={`blur-${element.id}`}\r\n className=\"absolute inset-0 overflow-hidden\"\r\n style={{\r\n filter: `blur(${blurIntensity}px)`,\r\n transform: \"scale(1.1)\", // Slightly zoom to avoid blur edge artifacts\r\n transformOrigin: \"center\",\r\n }}\r\n >\r\n <VideoPlayer\r\n src={mediaItem.url!}\r\n poster={mediaItem.thumbnailUrl}\r\n clipStartTime={element.startTime}\r\n trimStart={element.trimStart}\r\n trimEnd={element.trimEnd}\r\n clipDuration={element.duration}\r\n className=\"w-full h-full object-cover\"\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n if (mediaItem.type === \"image\") {\r\n return (\r\n <div\r\n key={`blur-${element.id}`}\r\n className=\"absolute inset-0 overflow-hidden\"\r\n style={{\r\n filter: `blur(${blurIntensity}px)`,\r\n transform: \"scale(1.1)\", // Slightly zoom to avoid blur edge artifacts\r\n transformOrigin: \"center\",\r\n }}\r\n >\r\n <img\r\n src={mediaItem.url!}\r\n alt={mediaItem.name}\r\n className=\"w-full h-full object-cover\"\r\n draggable={false}\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n return null;\r\n };\r\n\r\n // Render an element\r\n const renderElement = (elementData: ActiveElement, index: number) => {\r\n const { element, mediaItem } = elementData;\r\n\r\n // Text elements\r\n if (element.type === \"text\") {\r\n const fontClassName =\r\n FONT_CLASS_MAP[element.fontFamily as keyof typeof FONT_CLASS_MAP] || \"\";\r\n\r\n const scaleRatio = previewDimensions.width / canvasSize.width;\r\n\r\n return (\r\n <div\r\n key={element.id}\r\n className=\"absolute flex items-center justify-center cursor-grab\"\r\n onMouseDown={(e) =>\r\n handleTextMouseDown(e, element, elementData.track.id)\r\n }\r\n style={{\r\n left: `${\r\n 50 +\r\n ((dragState.isDragging && dragState.elementId === element.id\r\n ? dragState.currentX\r\n : element.x) /\r\n canvasSize.width) *\r\n 100\r\n }%`,\r\n top: `${\r\n 50 +\r\n ((dragState.isDragging && dragState.elementId === element.id\r\n ? dragState.currentY\r\n : element.y) /\r\n canvasSize.height) *\r\n 100\r\n }%`,\r\n transform: `translate(-50%, -50%) rotate(${element.rotation}deg) scale(${scaleRatio})`,\r\n opacity: element.opacity,\r\n zIndex: 100 + index, // Text elements on top\r\n }}\r\n >\r\n <div\r\n className={fontClassName}\r\n style={{\r\n fontSize: `${element.fontSize}px`,\r\n color: element.color,\r\n backgroundColor: element.backgroundColor,\r\n textAlign: element.textAlign,\r\n fontWeight: element.fontWeight,\r\n fontStyle: element.fontStyle,\r\n textDecoration: element.textDecoration,\r\n padding: \"4px 8px\",\r\n borderRadius: \"2px\",\r\n whiteSpace: \"pre-wrap\",\r\n // Fallback for system fonts that don't have classes\r\n ...(fontClassName === \"\" && { fontFamily: element.fontFamily }),\r\n }}\r\n >\r\n {element.content}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // Media elements\r\n if (element.type === \"media\") {\r\n // Test elements\r\n if (!mediaItem || element.mediaId === \"test\") {\r\n return (\r\n <div\r\n key={element.id}\r\n className=\"absolute inset-0 bg-linear-to-br from-blue-500/20 to-purple-500/20 flex items-center justify-center\"\r\n >\r\n <div className=\"text-center\">\r\n <div className=\"text-2xl mb-2\">🎬</div>\r\n <p className=\"text-xs text-foreground\">{element.name}</p>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // Video elements\r\n if (mediaItem.type === \"video\") {\r\n return (\r\n <div\r\n key={element.id}\r\n className=\"absolute inset-0 flex items-center justify-center\"\r\n >\r\n <VideoPlayer\r\n src={mediaItem.url!}\r\n poster={mediaItem.thumbnailUrl}\r\n clipStartTime={element.startTime}\r\n trimStart={element.trimStart}\r\n trimEnd={element.trimEnd}\r\n clipDuration={element.duration}\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n // Image elements\r\n if (mediaItem.type === \"image\") {\r\n return (\r\n <div\r\n key={element.id}\r\n className=\"absolute inset-0 flex items-center justify-center\"\r\n >\r\n <img\r\n src={mediaItem.url!}\r\n alt={mediaItem.name}\r\n className=\"max-w-full max-h-full object-contain\"\r\n draggable={false}\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n // Audio elements (no visual representation)\r\n if (mediaItem.type === \"audio\") {\r\n return (\r\n <div key={element.id} className=\"absolute inset-0\">\r\n <AudioPlayer\r\n src={mediaItem.url!}\r\n clipStartTime={element.startTime}\r\n trimStart={element.trimStart}\r\n trimEnd={element.trimEnd}\r\n clipDuration={element.duration}\r\n trackMuted={elementData.track.muted}\r\n />\r\n </div>\r\n );\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n return (\r\n <>\r\n <div className=\"h-full w-full flex flex-col min-h-0 min-w-0 bg-panel rounded-sm relative\">\r\n <div\r\n ref={containerRef}\r\n className=\"flex-1 flex flex-col items-center justify-center min-h-0 min-w-0\"\r\n >\r\n <div className=\"flex-1\" />\r\n {hasAnyElements ? (\r\n <div\r\n ref={previewRef}\r\n className=\"relative overflow-hidden border\"\r\n style={{\r\n width: previewDimensions.width,\r\n height: previewDimensions.height,\r\n background:\r\n activeProject?.backgroundType === \"blur\"\r\n ? \"transparent\"\r\n : activeProject?.backgroundColor || \"#000000\",\r\n }}\r\n >\r\n {renderBlurBackground()}\r\n {activeElements.length === 0 ? (\r\n <div className=\"absolute inset-0 flex items-center justify-center text-muted-foreground\">\r\n No elements at current time\r\n </div>\r\n ) : (\r\n activeElements.map((elementData, index) =>\r\n renderElement(elementData, index)\r\n )\r\n )}\r\n {activeProject?.backgroundType === \"blur\" &&\r\n blurBackgroundElements.length === 0 &&\r\n activeElements.length > 0 && (\r\n <div className=\"absolute bottom-2 left-2 right-2 bg-black/70 text-white text-xs p-2 rounded\">\r\n Add a video or image to use blur background\r\n </div>\r\n )}\r\n </div>\r\n ) : null}\r\n\r\n <div className=\"flex-1\" />\r\n\r\n <PreviewToolbar\r\n hasAnyElements={hasAnyElements}\r\n onToggleExpanded={toggleExpanded}\r\n isExpanded={isExpanded}\r\n currentTime={currentTime}\r\n setCurrentTime={setCurrentTime}\r\n toggle={toggle}\r\n getTotalDuration={getTotalDuration}\r\n />\r\n </div>\r\n </div>\r\n\r\n {isExpanded && (\r\n <FullscreenPreview\r\n previewDimensions={previewDimensions}\r\n activeProject={activeProject}\r\n renderBlurBackground={renderBlurBackground}\r\n activeElements={activeElements}\r\n renderElement={renderElement}\r\n blurBackgroundElements={blurBackgroundElements}\r\n hasAnyElements={hasAnyElements}\r\n toggleExpanded={toggleExpanded}\r\n currentTime={currentTime}\r\n setCurrentTime={setCurrentTime}\r\n toggle={toggle}\r\n getTotalDuration={getTotalDuration}\r\n />\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nfunction FullscreenToolbar({\r\n hasAnyElements,\r\n onToggleExpanded,\r\n currentTime,\r\n setCurrentTime,\r\n toggle,\r\n getTotalDuration,\r\n}: {\r\n hasAnyElements: boolean;\r\n onToggleExpanded: () => void;\r\n currentTime: number;\r\n setCurrentTime: (time: number) => void;\r\n toggle: () => void;\r\n getTotalDuration: () => number;\r\n}) {\r\n const { isPlaying, seek } = usePlaybackStore();\r\n const { activeProject } = useProjectStore();\r\n const [isDragging, setIsDragging] = useState(false);\r\n\r\n const totalDuration = getTotalDuration();\r\n const progress = totalDuration > 0 ? (currentTime / totalDuration) * 100 : 0;\r\n\r\n const handleTimelineClick = (e: React.MouseEvent<HTMLDivElement>) => {\r\n if (!hasAnyElements) return;\r\n const rect = e.currentTarget.getBoundingClientRect();\r\n const clickX = e.clientX - rect.left;\r\n const percentage = Math.max(0, Math.min(1, clickX / rect.width));\r\n const newTime = percentage * totalDuration;\r\n setCurrentTime(Math.max(0, Math.min(newTime, totalDuration)));\r\n };\r\n\r\n const handleTimelineDrag = (e: React.MouseEvent<HTMLDivElement>) => {\r\n if (!hasAnyElements) return;\r\n e.preventDefault();\r\n e.stopPropagation();\r\n const rect = e.currentTarget.getBoundingClientRect();\r\n setIsDragging(true);\r\n\r\n const handleMouseMove = (moveEvent: MouseEvent) => {\r\n moveEvent.preventDefault();\r\n const dragX = moveEvent.clientX - rect.left;\r\n const percentage = Math.max(0, Math.min(1, dragX / rect.width));\r\n const newTime = percentage * totalDuration;\r\n setCurrentTime(Math.max(0, Math.min(newTime, totalDuration)));\r\n };\r\n\r\n const handleMouseUp = () => {\r\n setIsDragging(false);\r\n document.removeEventListener(\"mousemove\", handleMouseMove);\r\n document.removeEventListener(\"mouseup\", handleMouseUp);\r\n document.body.style.userSelect = \"\";\r\n };\r\n\r\n document.body.style.userSelect = \"none\";\r\n document.addEventListener(\"mousemove\", handleMouseMove);\r\n document.addEventListener(\"mouseup\", handleMouseUp);\r\n handleMouseMove(e.nativeEvent);\r\n };\r\n\r\n const skipBackward = () => {\r\n const newTime = Math.max(0, currentTime - 1);\r\n setCurrentTime(newTime);\r\n };\r\n\r\n const skipForward = () => {\r\n const newTime = Math.min(totalDuration, currentTime + 1);\r\n setCurrentTime(newTime);\r\n };\r\n\r\n return (\r\n <div\r\n data-toolbar\r\n className=\"flex items-center gap-2 p-1 pt-2 w-full text-foreground relative\"\r\n >\r\n <div className=\"flex items-center gap-1 text-[0.70rem] tabular-nums text-foreground/90\">\r\n <EditableTimecode\r\n time={currentTime}\r\n duration={totalDuration}\r\n format=\"HH:MM:SS:FF\"\r\n fps={activeProject?.fps || 30}\r\n onTimeChange={seek}\r\n disabled={!hasAnyElements}\r\n className=\"text-foreground/90 hover:bg-white/10\"\r\n />\r\n <span className=\"opacity-50\">/</span>\r\n <span>\r\n {formatTimeCode(\r\n totalDuration,\r\n \"HH:MM:SS:FF\",\r\n activeProject?.fps || 30\r\n )}\r\n </span>\r\n </div>\r\n\r\n <div className=\"flex items-center gap-1\">\r\n <Button\r\n variant=\"text\"\r\n size=\"icon\"\r\n onClick={skipBackward}\r\n disabled={!hasAnyElements}\r\n className=\"h-auto p-0 text-foreground\"\r\n title=\"Skip backward 1s\"\r\n >\r\n <SkipBack className=\"h-3 w-3\" />\r\n </Button>\r\n <Button\r\n variant=\"text\"\r\n size=\"icon\"\r\n onClick={toggle}\r\n disabled={!hasAnyElements}\r\n className=\"h-auto p-0 text-foreground hover:text-foreground/80\"\r\n >\r\n {isPlaying ? (\r\n <Pause className=\"h-3 w-3\" />\r\n ) : (\r\n <Play className=\"h-3 w-3\" />\r\n )}\r\n </Button>\r\n <Button\r\n variant=\"text\"\r\n size=\"icon\"\r\n onClick={skipForward}\r\n disabled={!hasAnyElements}\r\n className=\"h-auto p-0 text-foreground hover:text-foreground/80\"\r\n title=\"Skip forward 1s\"\r\n >\r\n <SkipForward className=\"h-3 w-3\" />\r\n </Button>\r\n </div>\r\n\r\n <div className=\"flex-1 flex items-center gap-2\">\r\n <div\r\n className={cn(\r\n \"relative h-1 rounded-full cursor-pointer flex-1 bg-foreground/20\",\r\n !hasAnyElements && \"opacity-50 cursor-not-allowed\"\r\n )}\r\n onClick={hasAnyElements ? handleTimelineClick : undefined}\r\n onMouseDown={hasAnyElements ? handleTimelineDrag : undefined}\r\n style={{ userSelect: \"none\" }}\r\n >\r\n <div\r\n className={cn(\r\n \"absolute top-0 left-0 h-full rounded-full bg-foreground\",\r\n !isDragging && \"duration-100\"\r\n )}\r\n style={{ width: `${progress}%` }}\r\n />\r\n <div\r\n className=\"absolute top-1/2 w-3 h-3 rounded-full -translate-y-1/2 -translate-x-1/2 shadow-xs bg-foreground border border-black/20\"\r\n style={{ left: `${progress}%` }}\r\n />\r\n </div>\r\n </div>\r\n\r\n <Button\r\n variant=\"text\"\r\n size=\"icon\"\r\n className=\"size-4! text-foreground/80 hover:text-foreground\"\r\n onClick={onToggleExpanded}\r\n title=\"Exit fullscreen (Esc)\"\r\n >\r\n <Expand className=\"size-4!\" />\r\n </Button>\r\n </div>\r\n );\r\n}\r\n\r\nfunction FullscreenPreview({\r\n previewDimensions,\r\n activeProject,\r\n renderBlurBackground,\r\n activeElements,\r\n renderElement,\r\n blurBackgroundElements,\r\n hasAnyElements,\r\n toggleExpanded,\r\n currentTime,\r\n setCurrentTime,\r\n toggle,\r\n getTotalDuration,\r\n}: {\r\n previewDimensions: { width: number; height: number };\r\n activeProject: any;\r\n renderBlurBackground: () => React.ReactNode;\r\n activeElements: ActiveElement[];\r\n renderElement: (elementData: ActiveElement, index: number) => React.ReactNode;\r\n blurBackgroundElements: ActiveElement[];\r\n hasAnyElements: boolean;\r\n toggleExpanded: () => void;\r\n currentTime: number;\r\n setCurrentTime: (time: number) => void;\r\n toggle: () => void;\r\n getTotalDuration: () => number;\r\n}) {\r\n return (\r\n <div className=\"fixed inset-0 z-9999 flex flex-col\">\r\n <div className=\"flex-1 flex items-center justify-center bg-background\">\r\n <div\r\n className=\"relative overflow-hidden border border-border m-3\"\r\n style={{\r\n width: previewDimensions.width,\r\n height: previewDimensions.height,\r\n background:\r\n activeProject?.backgroundType === \"blur\"\r\n ? \"#1a1a1a\"\r\n : activeProject?.backgroundColor || \"#1a1a1a\",\r\n }}\r\n >\r\n {renderBlurBackground()}\r\n {activeElements.length === 0 ? (\r\n <div className=\"absolute inset-0 flex items-center justify-center text-white/60\">\r\n No elements at current time\r\n </div>\r\n ) : (\r\n activeElements.map((elementData, index) =>\r\n renderElement(elementData, index)\r\n )\r\n )}\r\n {activeProject?.backgroundType === \"blur\" &&\r\n blurBackgroundElements.length === 0 &&\r\n activeElements.length > 0 && (\r\n <div className=\"absolute bottom-2 left-2 right-2 bg-black/70 text-white text-xs p-2 rounded\">\r\n Add a video or image to use blur background\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n <div className=\"p-4 bg-background\">\r\n <FullscreenToolbar\r\n hasAnyElements={hasAnyElements}\r\n onToggleExpanded={toggleExpanded}\r\n currentTime={currentTime}\r\n setCurrentTime={setCurrentTime}\r\n toggle={toggle}\r\n getTotalDuration={getTotalDuration}\r\n />\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction PreviewToolbar({\r\n hasAnyElements,\r\n onToggleExpanded,\r\n isExpanded,\r\n currentTime,\r\n setCurrentTime,\r\n toggle,\r\n getTotalDuration,\r\n}: {\r\n hasAnyElements: boolean;\r\n onToggleExpanded: () => void;\r\n isExpanded: boolean;\r\n currentTime: number;\r\n setCurrentTime: (time: number) => void;\r\n toggle: () => void;\r\n getTotalDuration: () => number;\r\n}) {\r\n const { isPlaying } = usePlaybackStore();\r\n\r\n if (isExpanded) {\r\n return (\r\n <FullscreenToolbar\r\n {...{\r\n hasAnyElements,\r\n onToggleExpanded,\r\n currentTime,\r\n setCurrentTime,\r\n toggle,\r\n getTotalDuration,\r\n }}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n data-toolbar\r\n className=\"flex justify-between gap-2 px-1.5 pr-4 py-1.5 border border-border/50 w-auto absolute bottom-4 right-4 bg-black/20 rounded-full backdrop-blur-l text-white\"\r\n >\r\n <div className=\"flex items-center gap-2\">\r\n <Button\r\n variant=\"text\"\r\n size=\"icon\"\r\n onClick={toggle}\r\n disabled={!hasAnyElements}\r\n className=\"h-auto p-0\"\r\n >\r\n {isPlaying ? (\r\n <Pause className=\"h-3 w-3\" />\r\n ) : (\r\n <Play className=\"h-3 w-3\" />\r\n )}\r\n </Button>\r\n <Button\r\n variant=\"text\"\r\n size=\"icon\"\r\n className=\"size-4!\"\r\n onClick={onToggleExpanded}\r\n title=\"Enter fullscreen\"\r\n >\r\n <Expand className=\"size-4!\" />\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","// Time-related utility functions\r\n\r\n// Helper function to format time in various formats (MM:SS, HH:MM:SS, HH:MM:SS:CS, HH:MM:SS:FF)\r\nexport const formatTimeCode = (\r\n timeInSeconds: number,\r\n format: \"MM:SS\" | \"HH:MM:SS\" | \"HH:MM:SS:CS\" | \"HH:MM:SS:FF\" = \"HH:MM:SS:CS\",\r\n fps = 30\r\n): string => {\r\n const hours = Math.floor(timeInSeconds / 3600);\r\n const minutes = Math.floor((timeInSeconds % 3600) / 60);\r\n const seconds = Math.floor(timeInSeconds % 60);\r\n const centiseconds = Math.floor((timeInSeconds % 1) * 100);\r\n const frames = Math.floor((timeInSeconds % 1) * fps);\r\n\r\n switch (format) {\r\n case \"MM:SS\":\r\n return `${minutes.toString().padStart(2, \"0\")}:${seconds.toString().padStart(2, \"0\")}`;\r\n case \"HH:MM:SS\":\r\n return `${hours.toString().padStart(2, \"0\")}:${minutes.toString().padStart(2, \"0\")}:${seconds.toString().padStart(2, \"0\")}`;\r\n case \"HH:MM:SS:CS\":\r\n return `${hours.toString().padStart(2, \"0\")}:${minutes.toString().padStart(2, \"0\")}:${seconds.toString().padStart(2, \"0\")}:${centiseconds.toString().padStart(2, \"0\")}`;\r\n case \"HH:MM:SS:FF\":\r\n return `${hours.toString().padStart(2, \"0\")}:${minutes.toString().padStart(2, \"0\")}:${seconds.toString().padStart(2, \"0\")}:${frames.toString().padStart(2, \"0\")}`;\r\n }\r\n};\r\n\r\nexport const parseTimeCode = (\r\n timeCode: string,\r\n format: \"MM:SS\" | \"HH:MM:SS\" | \"HH:MM:SS:CS\" | \"HH:MM:SS:FF\" = \"HH:MM:SS:CS\",\r\n fps = 30\r\n): number | null => {\r\n if (!timeCode || typeof timeCode !== \"string\") return null;\r\n\r\n // Remove any extra whitespace\r\n const cleanTimeCode = timeCode.trim();\r\n\r\n try {\r\n switch (format) {\r\n case \"MM:SS\": {\r\n const parts = cleanTimeCode.split(\":\");\r\n if (parts.length !== 2) return null;\r\n const [minutes, seconds] = parts.map((part) => parseInt(part, 10));\r\n if (isNaN(minutes) || isNaN(seconds)) return null;\r\n if (minutes < 0 || seconds < 0 || seconds >= 60) return null;\r\n return minutes * 60 + seconds;\r\n }\r\n\r\n case \"HH:MM:SS\": {\r\n const parts = cleanTimeCode.split(\":\");\r\n if (parts.length !== 3) return null;\r\n const [hours, minutes, seconds] = parts.map((part) =>\r\n parseInt(part, 10)\r\n );\r\n if (isNaN(hours) || isNaN(minutes) || isNaN(seconds)) return null;\r\n if (\r\n hours < 0 ||\r\n minutes < 0 ||\r\n seconds < 0 ||\r\n minutes >= 60 ||\r\n seconds >= 60\r\n )\r\n return null;\r\n return hours * 3600 + minutes * 60 + seconds;\r\n }\r\n\r\n case \"HH:MM:SS:CS\": {\r\n const parts = cleanTimeCode.split(\":\");\r\n if (parts.length !== 4) return null;\r\n const [hours, minutes, seconds, centiseconds] = parts.map((part) =>\r\n parseInt(part, 10)\r\n );\r\n if (\r\n isNaN(hours) ||\r\n isNaN(minutes) ||\r\n isNaN(seconds) ||\r\n isNaN(centiseconds)\r\n )\r\n return null;\r\n if (\r\n hours < 0 ||\r\n minutes < 0 ||\r\n seconds < 0 ||\r\n centiseconds < 0 ||\r\n minutes >= 60 ||\r\n seconds >= 60 ||\r\n centiseconds >= 100\r\n )\r\n return null;\r\n return hours * 3600 + minutes * 60 + seconds + centiseconds / 100;\r\n }\r\n\r\n case \"HH:MM:SS:FF\": {\r\n const parts = cleanTimeCode.split(\":\");\r\n if (parts.length !== 4) return null;\r\n const [hours, minutes, seconds, frames] = parts.map((part) =>\r\n parseInt(part, 10)\r\n );\r\n if (isNaN(hours) || isNaN(minutes) || isNaN(seconds) || isNaN(frames))\r\n return null;\r\n if (\r\n hours < 0 ||\r\n minutes < 0 ||\r\n seconds < 0 ||\r\n frames < 0 ||\r\n minutes >= 60 ||\r\n seconds >= 60 ||\r\n frames >= fps\r\n )\r\n return null;\r\n return hours * 3600 + minutes * 60 + seconds + frames / fps;\r\n }\r\n }\r\n } catch {\r\n return null;\r\n }\r\n\r\n return null;\r\n};\r\n","import { useState, useCallback, useEffect, RefObject } from \"react\";\r\n\r\ninterface UseTimelineZoomProps {\r\n containerRef: RefObject<HTMLDivElement>;\r\n isInTimeline?: boolean;\r\n}\r\n\r\ninterface UseTimelineZoomReturn {\r\n zoomLevel: number;\r\n setZoomLevel: (zoomLevel: number | ((prev: number) => number)) => void;\r\n handleWheel: (e: React.WheelEvent) => void;\r\n}\r\n\r\nexport function useTimelineZoom({\r\n containerRef,\r\n isInTimeline = false,\r\n}: UseTimelineZoomProps): UseTimelineZoomReturn {\r\n const [zoomLevel, setZoomLevel] = useState(1);\r\n\r\n const handleWheel = useCallback((e: React.WheelEvent) => {\r\n // Only zoom if user is using pinch gesture (ctrlKey or metaKey is true)\r\n if (e.ctrlKey || e.metaKey) {\r\n e.preventDefault();\r\n const delta = e.deltaY > 0 ? -0.15 : 0.15;\r\n setZoomLevel((prev) => Math.max(0.1, Math.min(10, prev + delta)));\r\n }\r\n // For horizontal scrolling (when shift is held or horizontal wheel movement),\r\n // let the event bubble up to allow ScrollArea to handle it\r\n else if (e.shiftKey || Math.abs(e.deltaX) > Math.abs(e.deltaY)) {\r\n // Don't prevent default - let ScrollArea handle horizontal scrolling\r\n return;\r\n }\r\n // Otherwise, allow normal scrolling\r\n }, []);\r\n\r\n // Prevent browser zooming in/out when in timeline\r\n useEffect(() => {\r\n const preventZoom = (e: WheelEvent) => {\r\n if (\r\n isInTimeline &&\r\n (e.ctrlKey || e.metaKey) &&\r\n containerRef.current?.contains(e.target as Node)\r\n ) {\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n document.addEventListener(\"wheel\", preventZoom, { passive: false });\r\n\r\n return () => {\r\n document.removeEventListener(\"wheel\", preventZoom);\r\n };\r\n }, [isInTimeline, containerRef]);\r\n\r\n return {\r\n zoomLevel,\r\n setZoomLevel,\r\n handleWheel,\r\n };\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport WaveSurfer from \"wavesurfer.js\";\r\n\r\ninterface AudioWaveformProps {\r\n audioUrl: string;\r\n height?: number;\r\n className?: string;\r\n}\r\n\r\nconst AudioWaveform: React.FC<AudioWaveformProps> = ({\r\n audioUrl,\r\n height = 32,\r\n className = \"\",\r\n}) => {\r\n const waveformRef = useRef<HTMLDivElement>(null);\r\n const wavesurfer = useRef<WaveSurfer | null>(null);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [error, setError] = useState(false);\r\n\r\n useEffect(() => {\r\n let mounted = true;\r\n let ws = wavesurfer.current;\r\n \r\n const initWaveSurfer = async () => {\r\n if (!waveformRef.current || !audioUrl) return;\r\n\r\n try {\r\n // Clear any existing instance safely\r\n if (ws) {\r\n // Instead of immediately destroying, just set to null\r\n // We'll destroy it outside this function\r\n wavesurfer.current = null;\r\n }\r\n\r\n // Create a fresh instance\r\n const newWaveSurfer = WaveSurfer.create({\r\n container: waveformRef.current,\r\n waveColor: \"rgba(255, 255, 255, 0.6)\",\r\n progressColor: \"rgba(255, 255, 255, 0.9)\",\r\n cursorColor: \"transparent\",\r\n barWidth: 2,\r\n barGap: 1,\r\n height,\r\n normalize: true,\r\n interact: false,\r\n });\r\n\r\n // Assign to ref only if component is still mounted\r\n if (mounted) {\r\n wavesurfer.current = newWaveSurfer;\r\n } else {\r\n // Component unmounted during initialization, clean up\r\n try {\r\n newWaveSurfer.destroy();\r\n } catch (e) {\r\n // Ignore destroy errors\r\n }\r\n return;\r\n }\r\n\r\n // Event listeners\r\n newWaveSurfer.on(\"ready\", () => {\r\n if (mounted) {\r\n setIsLoading(false);\r\n setError(false);\r\n }\r\n });\r\n\r\n newWaveSurfer.on(\"error\", (err) => {\r\n console.error(\"WaveSurfer error:\", err);\r\n if (mounted) {\r\n setError(true);\r\n setIsLoading(false);\r\n }\r\n });\r\n\r\n await newWaveSurfer.load(audioUrl);\r\n } catch (err) {\r\n console.error(\"Failed to initialize WaveSurfer:\", err);\r\n if (mounted) {\r\n setError(true);\r\n setIsLoading(false);\r\n }\r\n }\r\n };\r\n\r\n // First safely destroy previous instance if it exists\r\n if (ws) {\r\n // Use this pattern to safely destroy the previous instance\r\n const wsToDestroy = ws;\r\n // Detach from ref immediately\r\n wavesurfer.current = null;\r\n \r\n // Wait a tick to destroy so any pending operations can complete\r\n requestAnimationFrame(() => {\r\n try {\r\n wsToDestroy.destroy();\r\n } catch (e) {\r\n // Ignore errors during destroy\r\n }\r\n // Only initialize new instance after destroying the old one\r\n if (mounted) {\r\n initWaveSurfer();\r\n }\r\n });\r\n } else {\r\n // No previous instance to clean up, initialize directly\r\n initWaveSurfer();\r\n }\r\n\r\n return () => {\r\n // Mark component as unmounted\r\n mounted = false;\r\n \r\n // Store reference to current wavesurfer instance\r\n const wsToDestroy = wavesurfer.current;\r\n \r\n // Immediately clear the ref to prevent accessing it after unmount\r\n wavesurfer.current = null;\r\n \r\n // If we have an instance to clean up, do it safely\r\n if (wsToDestroy) {\r\n // Delay destruction to avoid race conditions\r\n requestAnimationFrame(() => {\r\n try {\r\n wsToDestroy.destroy();\r\n } catch (e) {\r\n // Ignore destroy errors - they're expected\r\n }\r\n });\r\n }\r\n };\r\n }, [audioUrl, height]);\r\n\r\n if (error) {\r\n return (\r\n <div\r\n className={`flex items-center justify-center ${className}`}\r\n style={{ height }}\r\n >\r\n <span className=\"text-xs text-foreground/60\">Audio unavailable</span>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className={`relative ${className}`}>\r\n {isLoading && (\r\n <div className=\"absolute inset-0 flex items-center justify-center\">\r\n <span className=\"text-xs text-foreground/60\">Loading...</span>\r\n </div>\r\n )}\r\n <div\r\n ref={waveformRef}\r\n className={`w-full transition-opacity duration-200 ${isLoading ? \"opacity-0\" : \"opacity-100\"}`}\r\n style={{ height }}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default AudioWaveform;\r\n","import { useState, useEffect } from \"react\";\r\nimport { ResizeState, TimelineElement, TimelineTrack } from \"@/types/timeline\";\r\nimport { useMediaStore } from \"@/stores/media-store\";\r\nimport { useTimelineStore } from \"@/stores/timeline-store\";\r\nimport { useProjectStore } from \"@/stores/project-store\";\r\nimport { snapTimeToFrame } from \"@/constants/timeline-constants\";\r\n\r\ninterface UseTimelineElementResizeProps {\r\n element: TimelineElement;\r\n track: TimelineTrack;\r\n zoomLevel: number;\r\n onUpdateTrim: (\r\n trackId: string,\r\n elementId: string,\r\n trimStart: number,\r\n trimEnd: number\r\n ) => void;\r\n onUpdateDuration: (\r\n trackId: string,\r\n elementId: string,\r\n duration: number\r\n ) => void;\r\n}\r\n\r\nexport function useTimelineElementResize({\r\n element,\r\n track,\r\n zoomLevel,\r\n onUpdateTrim,\r\n onUpdateDuration,\r\n}: UseTimelineElementResizeProps) {\r\n const [resizing, setResizing] = useState<ResizeState | null>(null);\r\n const { mediaItems } = useMediaStore();\r\n const {\r\n updateElementStartTime,\r\n updateElementTrim,\r\n updateElementDuration,\r\n pushHistory,\r\n } = useTimelineStore();\r\n\r\n // Set up document-level mouse listeners during resize (like proper drag behavior)\r\n useEffect(() => {\r\n if (!resizing) return;\r\n\r\n const handleDocumentMouseMove = (e: MouseEvent) => {\r\n updateTrimFromMouseMove({ clientX: e.clientX });\r\n };\r\n\r\n const handleDocumentMouseUp = () => {\r\n handleResizeEnd();\r\n };\r\n\r\n // Add document-level listeners for proper drag behavior\r\n document.addEventListener(\"mousemove\", handleDocumentMouseMove);\r\n document.addEventListener(\"mouseup\", handleDocumentMouseUp);\r\n\r\n return () => {\r\n document.removeEventListener(\"mousemove\", handleDocumentMouseMove);\r\n document.removeEventListener(\"mouseup\", handleDocumentMouseUp);\r\n };\r\n }, [resizing]); // Re-run when resizing state changes\r\n\r\n const handleResizeStart = (\r\n e: React.MouseEvent,\r\n elementId: string,\r\n side: \"left\" | \"right\"\r\n ) => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n // Push history once at the start of the resize operation\r\n pushHistory();\r\n\r\n setResizing({\r\n elementId,\r\n side,\r\n startX: e.clientX,\r\n initialTrimStart: element.trimStart,\r\n initialTrimEnd: element.trimEnd,\r\n });\r\n };\r\n\r\n const canExtendElementDuration = () => {\r\n // Text elements can always be extended\r\n if (element.type === \"text\") {\r\n return true;\r\n }\r\n\r\n // Media elements - check the media type\r\n if (element.type === \"media\") {\r\n const mediaItem = mediaItems.find((item) => item.id === element.mediaId);\r\n if (!mediaItem) return false;\r\n\r\n // Images can be extended (static content)\r\n if (mediaItem.type === \"image\") {\r\n return true;\r\n }\r\n\r\n // Videos and audio cannot be extended beyond their natural duration\r\n // (no additional content exists)\r\n return false;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n const updateTrimFromMouseMove = (e: { clientX: number }) => {\r\n if (!resizing) return;\r\n\r\n const deltaX = e.clientX - resizing.startX;\r\n // Reasonable sensitivity for resize operations - similar to timeline scale\r\n const deltaTime = deltaX / (50 * zoomLevel);\r\n\r\n // Get project FPS for frame snapping\r\n const projectStore = useProjectStore.getState();\r\n const projectFps = projectStore.activeProject?.fps || 30;\r\n\r\n if (resizing.side === \"left\") {\r\n // Left resize - different behavior for media vs text/image elements\r\n const maxAllowed = element.duration - resizing.initialTrimEnd - 0.1;\r\n const calculated = resizing.initialTrimStart + deltaTime;\r\n\r\n if (calculated >= 0) {\r\n // Normal trimming within available content\r\n const newTrimStart = snapTimeToFrame(\r\n Math.min(maxAllowed, calculated),\r\n projectFps\r\n );\r\n const trimDelta = newTrimStart - resizing.initialTrimStart;\r\n const newStartTime = snapTimeToFrame(\r\n element.startTime + trimDelta,\r\n projectFps\r\n );\r\n\r\n updateElementTrim(\r\n track.id,\r\n element.id,\r\n newTrimStart,\r\n resizing.initialTrimEnd,\r\n false\r\n );\r\n updateElementStartTime(track.id, element.id, newStartTime, false);\r\n } else {\r\n // Trying to extend beyond trimStart = 0\r\n if (canExtendElementDuration()) {\r\n // Text/Image: extend element to the left by moving startTime and increasing duration\r\n const extensionAmount = Math.abs(calculated);\r\n const maxExtension = element.startTime;\r\n const actualExtension = Math.min(extensionAmount, maxExtension);\r\n const newStartTime = snapTimeToFrame(\r\n element.startTime - actualExtension,\r\n projectFps\r\n );\r\n const newDuration = snapTimeToFrame(\r\n element.duration + actualExtension,\r\n projectFps\r\n );\r\n\r\n // Keep trimStart at 0 and extend the element\r\n updateElementTrim(\r\n track.id,\r\n element.id,\r\n 0,\r\n resizing.initialTrimEnd,\r\n false\r\n );\r\n updateElementDuration(track.id, element.id, newDuration, false);\r\n updateElementStartTime(track.id, element.id, newStartTime, false);\r\n } else {\r\n // Video/Audio: can't extend beyond original content - limit to trimStart = 0\r\n const newTrimStart = 0;\r\n const trimDelta = newTrimStart - resizing.initialTrimStart;\r\n const newStartTime = snapTimeToFrame(\r\n element.startTime + trimDelta,\r\n projectFps\r\n );\r\n\r\n updateElementTrim(\r\n track.id,\r\n element.id,\r\n newTrimStart,\r\n resizing.initialTrimEnd,\r\n false\r\n );\r\n updateElementStartTime(track.id, element.id, newStartTime, false);\r\n }\r\n }\r\n } else {\r\n // Right resize - can extend duration for supported element types\r\n const calculated = resizing.initialTrimEnd - deltaTime;\r\n\r\n if (calculated < 0) {\r\n // We're trying to extend beyond original duration\r\n if (canExtendElementDuration()) {\r\n // Extend the duration instead of reducing trimEnd further\r\n const extensionNeeded = Math.abs(calculated);\r\n const newDuration = snapTimeToFrame(\r\n element.duration + extensionNeeded,\r\n projectFps\r\n );\r\n const newTrimEnd = 0; // Reset trimEnd to 0 since we're extending\r\n\r\n // Update duration first, then trim\r\n updateElementDuration(track.id, element.id, newDuration, false);\r\n updateElementTrim(\r\n track.id,\r\n element.id,\r\n resizing.initialTrimStart,\r\n newTrimEnd,\r\n false\r\n );\r\n } else {\r\n // Can't extend - just set trimEnd to 0 (maximum possible extension)\r\n updateElementTrim(\r\n track.id,\r\n element.id,\r\n resizing.initialTrimStart,\r\n 0,\r\n false\r\n );\r\n }\r\n } else {\r\n // Normal trimming within original duration\r\n // Calculate the desired end time based on mouse movement\r\n const currentEndTime =\r\n element.startTime +\r\n element.duration -\r\n element.trimStart -\r\n element.trimEnd;\r\n const desiredEndTime = currentEndTime + deltaTime;\r\n\r\n // Snap the desired end time to frame\r\n const snappedEndTime = snapTimeToFrame(desiredEndTime, projectFps);\r\n\r\n // Calculate what trimEnd should be to achieve this snapped end time\r\n const newTrimEnd = Math.max(\r\n 0,\r\n element.duration -\r\n element.trimStart -\r\n (snappedEndTime - element.startTime)\r\n );\r\n\r\n // Ensure we don't trim more than available content (leave at least 0.1s visible)\r\n const maxTrimEnd = element.duration - element.trimStart - 0.1;\r\n const finalTrimEnd = Math.min(maxTrimEnd, newTrimEnd);\r\n\r\n updateElementTrim(\r\n track.id,\r\n element.id,\r\n element.trimStart,\r\n finalTrimEnd,\r\n false\r\n );\r\n }\r\n }\r\n };\r\n\r\n const handleResizeEnd = () => {\r\n setResizing(null);\r\n };\r\n\r\n return {\r\n resizing,\r\n isResizing: resizing !== null,\r\n handleResizeStart,\r\n // Return empty handlers since we use document listeners now\r\n handleResizeMove: () => {}, // Not used anymore\r\n handleResizeEnd: () => {}, // Not used anymore\r\n };\r\n}\r\n","\"use client\";\r\n\r\nimport {\r\n Scissors,\r\n Trash2,\r\n Copy,\r\n RefreshCw,\r\n EyeOff,\r\n Eye,\r\n Volume2,\r\n VolumeX,\r\n} from \"lucide-react\";\r\nimport { useMediaStore } from \"@/stores/media-store\";\r\nimport { useTimelineStore } from \"@/stores/timeline-store\";\r\nimport { usePlaybackStore } from \"@/stores/playback-store\";\r\nimport AudioWaveform from \"../audio-waveform\";\r\nimport { toast } from \"sonner\";\r\nimport { TimelineElementProps } from \"@/types/timeline\";\r\nimport { useTimelineElementResize } from \"@/hooks/use-timeline-element-resize\";\r\nimport {\r\n getTrackElementClasses,\r\n TIMELINE_CONSTANTS,\r\n getTrackHeight,\r\n} from \"@/constants/timeline-constants\";\r\nimport {\r\n ContextMenu,\r\n ContextMenuContent,\r\n ContextMenuItem,\r\n ContextMenuSeparator,\r\n ContextMenuTrigger,\r\n} from \"../../ui/context-menu\";\r\n\r\nexport function TimelineElement({\r\n element,\r\n track,\r\n zoomLevel,\r\n isSelected,\r\n onElementMouseDown,\r\n onElementClick,\r\n}: TimelineElementProps) {\r\n const { mediaItems } = useMediaStore();\r\n const {\r\n updateElementTrim,\r\n updateElementDuration,\r\n removeElementFromTrack,\r\n removeElementFromTrackWithRipple,\r\n dragState,\r\n splitElement,\r\n addElementToTrack,\r\n replaceElementMedia,\r\n rippleEditingEnabled,\r\n toggleElementHidden,\r\n } = useTimelineStore();\r\n const { currentTime } = usePlaybackStore();\r\n\r\n const mediaItem =\r\n element.type === \"media\"\r\n ? mediaItems.find((item) => item.id === element.mediaId)\r\n : null;\r\n const isAudio = mediaItem?.type === \"audio\";\r\n\r\n const { resizing, handleResizeStart, handleResizeMove, handleResizeEnd } =\r\n useTimelineElementResize({\r\n element,\r\n track,\r\n zoomLevel,\r\n onUpdateTrim: updateElementTrim,\r\n onUpdateDuration: updateElementDuration,\r\n });\r\n\r\n const effectiveDuration =\r\n element.duration - element.trimStart - element.trimEnd;\r\n const elementWidth = Math.max(\r\n TIMELINE_CONSTANTS.ELEMENT_MIN_WIDTH,\r\n effectiveDuration * TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevel\r\n );\r\n\r\n // Use real-time position during drag, otherwise use stored position\r\n const isBeingDragged = dragState.elementId === element.id;\r\n const elementStartTime =\r\n isBeingDragged && dragState.isDragging\r\n ? dragState.currentTime\r\n : element.startTime;\r\n\r\n // Element should always be positioned at startTime - trimStart only affects content, not position\r\n const elementLeft = elementStartTime * 50 * zoomLevel;\r\n\r\n const handleElementSplitContext = (e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n const effectiveStart = element.startTime;\r\n const effectiveEnd =\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd);\r\n\r\n if (currentTime > effectiveStart && currentTime < effectiveEnd) {\r\n const secondElementId = splitElement(track.id, element.id, currentTime);\r\n if (!secondElementId) {\r\n toast.error(\"Failed to split element\");\r\n }\r\n } else {\r\n toast.error(\"Playhead must be within element to split\");\r\n }\r\n };\r\n\r\n const handleElementDuplicateContext = (e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n const { id, ...elementWithoutId } = element;\r\n addElementToTrack(track.id, {\r\n ...elementWithoutId,\r\n name: element.name + \" (copy)\",\r\n startTime:\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd) +\r\n 0.1,\r\n });\r\n };\r\n\r\n const handleElementDeleteContext = (e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n if (rippleEditingEnabled) {\r\n removeElementFromTrackWithRipple(track.id, element.id);\r\n } else {\r\n removeElementFromTrack(track.id, element.id);\r\n }\r\n };\r\n\r\n const handleToggleElementHidden = (e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n toggleElementHidden(track.id, element.id);\r\n };\r\n\r\n const handleReplaceClip = (e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n if (element.type !== \"media\") {\r\n toast.error(\"Replace is only available for media clips\");\r\n return;\r\n }\r\n\r\n // Create a file input to select replacement media\r\n const input = document.createElement(\"input\");\r\n input.type = \"file\";\r\n input.accept = \"video/*,audio/*,image/*\";\r\n input.onchange = async (e) => {\r\n const file = (e.target as HTMLInputElement).files?.[0];\r\n if (!file) return;\r\n\r\n try {\r\n const result = await replaceElementMedia(track.id, element.id, file);\r\n if (result.success) {\r\n toast.success(\"Clip replaced successfully\");\r\n } else {\r\n toast.error(result.error || \"Failed to replace clip\");\r\n }\r\n } catch (error) {\r\n console.error(\"Unexpected error replacing clip:\", error);\r\n toast.error(\r\n `Unexpected error: ${error instanceof Error ? error.message : \"Unknown error\"}`\r\n );\r\n }\r\n };\r\n input.click();\r\n };\r\n\r\n const renderElementContent = () => {\r\n if (element.type === \"text\") {\r\n return (\r\n <div className=\"w-full h-full flex items-center justify-start pl-2\">\r\n <span className=\"text-xs text-white truncate\">{element.content}</span>\r\n </div>\r\n );\r\n }\r\n\r\n // Render media element ->\r\n const mediaItem = mediaItems.find((item) => item.id === element.mediaId);\r\n if (!mediaItem) {\r\n return (\r\n <span className=\"text-xs text-foreground/80 truncate\">\r\n {element.name}\r\n </span>\r\n );\r\n }\r\n\r\n const TILE_ASPECT_RATIO = 16 / 9;\r\n\r\n if (\r\n mediaItem.type === \"image\" ||\r\n (mediaItem.type === \"video\" && mediaItem.thumbnailUrl)\r\n ) {\r\n // Calculate tile size based on 16:9 aspect ratio\r\n const trackHeight = getTrackHeight(track.type);\r\n const tileHeight = trackHeight;\r\n const tileWidth = tileHeight * TILE_ASPECT_RATIO;\r\n\r\n const imageUrl =\r\n mediaItem.type === \"image\" ? mediaItem.url : mediaItem.thumbnailUrl;\r\n const isImage = mediaItem.type === \"image\";\r\n\r\n return (\r\n <div className=\"w-full h-full flex items-center justify-center\">\r\n <div\r\n className={`w-full h-full relative ${\r\n isSelected ? \"bg-primary\" : \"bg-transparent\"\r\n }`}\r\n >\r\n <div\r\n className={`absolute top-[0.15rem] bottom-[0.15rem] left-0 right-0`}\r\n style={{\r\n backgroundImage: imageUrl ? `url(${imageUrl})` : \"none\",\r\n backgroundRepeat: \"repeat-x\",\r\n backgroundSize: `${tileWidth}px ${tileHeight}px`,\r\n backgroundPosition: \"left center\",\r\n pointerEvents: \"none\",\r\n }}\r\n aria-label={`Tiled ${isImage ? \"background\" : \"thumbnail\"} of ${mediaItem.name}`}\r\n />\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // Render audio element ->\r\n if (mediaItem.type === \"audio\") {\r\n return (\r\n <div className=\"w-full h-full flex items-center gap-2\">\r\n <div className=\"flex-1 min-w-0\">\r\n <AudioWaveform\r\n audioUrl={mediaItem.url || \"\"}\r\n height={24}\r\n className=\"w-full\"\r\n />\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <span className=\"text-xs text-foreground/80 truncate\">\r\n {element.name}\r\n </span>\r\n );\r\n };\r\n\r\n const handleElementMouseDown = (e: React.MouseEvent) => {\r\n if (onElementMouseDown) {\r\n onElementMouseDown(e, element);\r\n }\r\n };\r\n\r\n return (\r\n <ContextMenu>\r\n <ContextMenuTrigger asChild>\r\n <div\r\n className={`absolute top-0 h-full select-none timeline-element ${\r\n isBeingDragged ? \"z-50\" : \"z-10\"\r\n }`}\r\n style={{\r\n left: `${elementLeft}px`,\r\n width: `${elementWidth}px`,\r\n }}\r\n data-element-id={element.id}\r\n data-track-id={track.id}\r\n onMouseMove={resizing ? handleResizeMove : undefined}\r\n onMouseUp={resizing ? handleResizeEnd : undefined}\r\n onMouseLeave={resizing ? handleResizeEnd : undefined}\r\n >\r\n <div\r\n className={`relative h-full rounded-[0.15rem] cursor-pointer overflow-hidden ${getTrackElementClasses(\r\n track.type\r\n )} ${isSelected ? \"\" : \"\"} ${\r\n isBeingDragged ? \"z-50\" : \"z-10\"\r\n } ${element.hidden ? \"opacity-50\" : \"\"}`}\r\n onClick={(e) => onElementClick && onElementClick(e, element)}\r\n onMouseDown={handleElementMouseDown}\r\n onContextMenu={(e) =>\r\n onElementMouseDown && onElementMouseDown(e, element)\r\n }\r\n >\r\n <div className=\"absolute inset-0 flex items-center h-full\">\r\n {renderElementContent()}\r\n </div>\r\n\r\n {element.hidden && (\r\n <div className=\"absolute inset-0 bg-black bg-opacity-50 flex items-center justify-center pointer-events-none\">\r\n {isAudio ? (\r\n <VolumeX className=\"h-6 w-6 text-white\" />\r\n ) : (\r\n <EyeOff className=\"h-6 w-6 text-white\" />\r\n )}\r\n </div>\r\n )}\r\n\r\n {isSelected && (\r\n <>\r\n <div\r\n className=\"absolute left-0 top-0 bottom-0 w-[0.2rem] cursor-w-resize bg-primary z-50\"\r\n onMouseDown={(e) => handleResizeStart(e, element.id, \"left\")}\r\n />\r\n <div\r\n className=\"absolute right-0 top-0 bottom-0 w-[0.2rem] cursor-e-resize bg-primary z-50\"\r\n onMouseDown={(e) => handleResizeStart(e, element.id, \"right\")}\r\n />\r\n </>\r\n )}\r\n </div>\r\n </div>\r\n </ContextMenuTrigger>\r\n <ContextMenuContent className=\"z-200\">\r\n <ContextMenuItem onClick={handleElementSplitContext}>\r\n <Scissors className=\"h-4 w-4 mr-2\" />\r\n Split at playhead\r\n </ContextMenuItem>\r\n <ContextMenuItem onClick={handleToggleElementHidden}>\r\n {isAudio ? (\r\n element.hidden ? (\r\n <Volume2 className=\"h-4 w-4 mr-2\" />\r\n ) : (\r\n <VolumeX className=\"h-4 w-4 mr-2\" />\r\n )\r\n ) : element.hidden ? (\r\n <Eye className=\"h-4 w-4 mr-2\" />\r\n ) : (\r\n <EyeOff className=\"h-4 w-4 mr-2\" />\r\n )}\r\n <span>\r\n {isAudio\r\n ? element.hidden\r\n ? \"Unmute\"\r\n : \"Mute\"\r\n : element.hidden\r\n ? \"Show\"\r\n : \"Hide\"}{\" \"}\r\n {element.type === \"text\" ? \"text\" : \"clip\"}\r\n </span>\r\n </ContextMenuItem>\r\n <ContextMenuItem onClick={handleElementDuplicateContext}>\r\n <Copy className=\"h-4 w-4 mr-2\" />\r\n Duplicate {element.type === \"text\" ? \"text\" : \"clip\"}\r\n </ContextMenuItem>\r\n {element.type === \"media\" && (\r\n <ContextMenuItem onClick={handleReplaceClip}>\r\n <RefreshCw className=\"h-4 w-4 mr-2\" />\r\n Replace clip\r\n </ContextMenuItem>\r\n )}\r\n <ContextMenuSeparator />\r\n <ContextMenuItem\r\n onClick={handleElementDeleteContext}\r\n className=\"text-destructive focus:text-destructive\"\r\n >\r\n <Trash2 className=\"h-4 w-4 mr-2\" />\r\n Delete {element.type === \"text\" ? \"text\" : \"clip\"}\r\n </ContextMenuItem>\r\n </ContextMenuContent>\r\n </ContextMenu>\r\n );\r\n}\r\n","import { useCallback } from \"react\";\r\nimport { TimelineTrack } from \"@/types/timeline\";\r\nimport { TIMELINE_CONSTANTS } from \"@/constants/timeline-constants\";\r\n\r\nexport interface SnapPoint {\r\n time: number;\r\n type: \"element-start\" | \"element-end\" | \"playhead\";\r\n elementId?: string;\r\n trackId?: string;\r\n}\r\n\r\nexport interface SnapResult {\r\n snappedTime: number;\r\n snapPoint: SnapPoint | null;\r\n snapDistance: number;\r\n}\r\n\r\nexport interface UseTimelineSnappingOptions {\r\n snapThreshold?: number; // Distance in pixels to trigger snapping\r\n enableElementSnapping?: boolean;\r\n enablePlayheadSnapping?: boolean;\r\n}\r\n\r\nexport function useTimelineSnapping({\r\n snapThreshold = 10,\r\n enableElementSnapping = true,\r\n enablePlayheadSnapping = true,\r\n}: UseTimelineSnappingOptions = {}) {\r\n const findSnapPoints = useCallback(\r\n (\r\n tracks: TimelineTrack[],\r\n currentTime: number,\r\n playheadTime: number,\r\n zoomLevel: number,\r\n excludeElementId?: string\r\n ): SnapPoint[] => {\r\n const snapPoints: SnapPoint[] = [];\r\n\r\n // Add element snap points\r\n if (enableElementSnapping) {\r\n tracks.forEach((track) => {\r\n track.elements.forEach((element) => {\r\n // Skip the element being dragged\r\n if (element.id === excludeElementId) return;\r\n\r\n const elementStart = element.startTime;\r\n const elementEnd =\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd);\r\n\r\n snapPoints.push(\r\n {\r\n time: elementStart,\r\n type: \"element-start\",\r\n elementId: element.id,\r\n trackId: track.id,\r\n },\r\n {\r\n time: elementEnd,\r\n type: \"element-end\",\r\n elementId: element.id,\r\n trackId: track.id,\r\n }\r\n );\r\n });\r\n });\r\n }\r\n\r\n // Add playhead snap point\r\n if (enablePlayheadSnapping) {\r\n snapPoints.push({\r\n time: playheadTime,\r\n type: \"playhead\",\r\n });\r\n }\r\n\r\n return snapPoints;\r\n },\r\n [enableElementSnapping, enablePlayheadSnapping]\r\n );\r\n\r\n const snapToNearestPoint = useCallback(\r\n (\r\n targetTime: number,\r\n snapPoints: SnapPoint[],\r\n zoomLevel: number\r\n ): SnapResult => {\r\n const pixelsPerSecond = TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevel;\r\n const thresholdInSeconds = snapThreshold / pixelsPerSecond;\r\n\r\n let closestSnapPoint: SnapPoint | null = null;\r\n let closestDistance = Infinity;\r\n\r\n snapPoints.forEach((snapPoint) => {\r\n const distance = Math.abs(targetTime - snapPoint.time);\r\n if (distance < thresholdInSeconds && distance < closestDistance) {\r\n closestDistance = distance;\r\n closestSnapPoint = snapPoint;\r\n }\r\n });\r\n\r\n return {\r\n snappedTime: closestSnapPoint\r\n ? (closestSnapPoint as SnapPoint).time\r\n : targetTime,\r\n snapPoint: closestSnapPoint,\r\n snapDistance: closestDistance,\r\n };\r\n },\r\n [snapThreshold]\r\n );\r\n\r\n const snapElementPosition = useCallback(\r\n (\r\n targetTime: number,\r\n tracks: TimelineTrack[],\r\n playheadTime: number,\r\n zoomLevel: number,\r\n excludeElementId?: string\r\n ): SnapResult => {\r\n const snapPoints = findSnapPoints(\r\n tracks,\r\n targetTime,\r\n playheadTime,\r\n zoomLevel,\r\n excludeElementId\r\n );\r\n\r\n return snapToNearestPoint(targetTime, snapPoints, zoomLevel);\r\n },\r\n [findSnapPoints, snapToNearestPoint]\r\n );\r\n\r\n const snapElementEdge = useCallback(\r\n (\r\n targetTime: number,\r\n elementDuration: number,\r\n tracks: TimelineTrack[],\r\n playheadTime: number,\r\n zoomLevel: number,\r\n excludeElementId?: string,\r\n snapToStart = true // true for start edge, false for end edge\r\n ): SnapResult => {\r\n const snapPoints = findSnapPoints(\r\n tracks,\r\n targetTime,\r\n playheadTime,\r\n zoomLevel,\r\n excludeElementId\r\n );\r\n\r\n // For end edge snapping, we need to account for element duration\r\n const effectiveTargetTime = snapToStart\r\n ? targetTime\r\n : targetTime + elementDuration;\r\n const snapResult = snapToNearestPoint(\r\n effectiveTargetTime,\r\n snapPoints,\r\n zoomLevel\r\n );\r\n\r\n // Adjust the snapped time back for end edge\r\n if (!snapToStart && snapResult.snapPoint) {\r\n snapResult.snappedTime = snapResult.snappedTime - elementDuration;\r\n }\r\n\r\n return snapResult;\r\n },\r\n [findSnapPoints, snapToNearestPoint]\r\n );\r\n\r\n return {\r\n snapElementPosition,\r\n snapElementEdge,\r\n findSnapPoints,\r\n snapToNearestPoint,\r\n };\r\n}\r\n","\"use client\";\r\n\r\nimport { useRef, useState, useEffect } from \"react\";\r\nimport { useTimelineStore } from \"@/stores/timeline-store\";\r\nimport { useMediaStore } from \"@/stores/media-store\";\r\nimport { toast } from \"sonner\";\r\nimport { TimelineElement } from \"./timeline-element\";\r\nimport {\r\n TimelineTrack,\r\n sortTracksByOrder,\r\n ensureMainTrack,\r\n getMainTrack,\r\n canElementGoOnTrack,\r\n} from \"@/types/timeline\";\r\nimport { usePlaybackStore } from \"@/stores/playback-store\";\r\nimport type {\r\n TimelineElement as TimelineElementType,\r\n DragData,\r\n} from \"@/types/timeline\";\r\nimport {\r\n snapTimeToFrame,\r\n TIMELINE_CONSTANTS,\r\n} from \"@/constants/timeline-constants\";\r\nimport { useProjectStore } from \"@/stores/project-store\";\r\nimport { useTimelineSnapping, SnapPoint } from \"@/hooks/use-timeline-snapping\";\r\n\r\nexport function TimelineTrackContent({\r\n track,\r\n zoomLevel,\r\n onSnapPointChange,\r\n}: {\r\n track: TimelineTrack;\r\n zoomLevel: number;\r\n onSnapPointChange?: (snapPoint: SnapPoint | null) => void;\r\n}) {\r\n const { mediaItems } = useMediaStore();\r\n const {\r\n tracks,\r\n addTrack,\r\n moveElementToTrack,\r\n updateElementStartTime,\r\n updateElementStartTimeWithRipple,\r\n addElementToTrack,\r\n selectedElements,\r\n selectElement,\r\n dragState,\r\n startDrag: startDragAction,\r\n updateDragTime,\r\n endDrag: endDragAction,\r\n clearSelectedElements,\r\n insertTrackAt,\r\n snappingEnabled,\r\n rippleEditingEnabled,\r\n } = useTimelineStore();\r\n\r\n const { currentTime } = usePlaybackStore();\r\n\r\n // Initialize snapping hook\r\n const { snapElementPosition, snapElementEdge } = useTimelineSnapping({\r\n snapThreshold: 10,\r\n enableElementSnapping: snappingEnabled,\r\n enablePlayheadSnapping: snappingEnabled,\r\n });\r\n\r\n // Helper function for drop snapping that tries both edges\r\n const getDropSnappedTime = (\r\n dropTime: number,\r\n elementDuration: number,\r\n excludeElementId?: string\r\n ) => {\r\n // Always apply frame snapping first\r\n const projectStore = useProjectStore.getState();\r\n const projectFps = projectStore.activeProject?.fps || 30;\r\n let finalTime = snapTimeToFrame(dropTime, projectFps);\r\n\r\n // Additionally apply element snapping if enabled\r\n if (snappingEnabled) {\r\n // Try snapping both start and end edges for drops\r\n const startSnapResult = snapElementEdge(\r\n dropTime,\r\n elementDuration,\r\n tracks,\r\n currentTime,\r\n zoomLevel,\r\n excludeElementId,\r\n true // snap to start edge\r\n );\r\n\r\n const endSnapResult = snapElementEdge(\r\n dropTime,\r\n elementDuration,\r\n tracks,\r\n currentTime,\r\n zoomLevel,\r\n excludeElementId,\r\n false // snap to end edge\r\n );\r\n\r\n // Choose the snap result with the smaller distance (closer snap)\r\n let bestSnapResult = startSnapResult;\r\n if (\r\n endSnapResult.snapPoint &&\r\n (!startSnapResult.snapPoint ||\r\n endSnapResult.snapDistance < startSnapResult.snapDistance)\r\n ) {\r\n bestSnapResult = endSnapResult;\r\n }\r\n\r\n // Only use element snapping if it found a snap point, otherwise keep frame-snapped time\r\n if (bestSnapResult.snapPoint) {\r\n finalTime = bestSnapResult.snappedTime;\r\n }\r\n }\r\n\r\n return finalTime;\r\n };\r\n\r\n const timelineRef = useRef<HTMLDivElement>(null);\r\n const [isDropping, setIsDropping] = useState(false);\r\n const [dropPosition, setDropPosition] = useState<number | null>(null);\r\n const [wouldOverlap, setWouldOverlap] = useState(false);\r\n const dragCounterRef = useRef(0);\r\n const [mouseDownLocation, setMouseDownLocation] = useState<{\r\n x: number;\r\n y: number;\r\n } | null>(null);\r\n\r\n // Set up mouse event listeners for drag\r\n useEffect(() => {\r\n if (!dragState.isDragging) return;\r\n\r\n const handleMouseMove = (e: MouseEvent) => {\r\n if (!timelineRef.current) return;\r\n\r\n // On first mouse move during drag, ensure the element is selected\r\n if (dragState.elementId && dragState.trackId) {\r\n const isSelected = selectedElements.some(\r\n (c) =>\r\n c.trackId === dragState.trackId &&\r\n c.elementId === dragState.elementId\r\n );\r\n\r\n if (!isSelected) {\r\n // Select this element (replacing other selections) since we're dragging it\r\n selectElement(dragState.trackId, dragState.elementId, false);\r\n }\r\n }\r\n\r\n const timelineRect = timelineRef.current.getBoundingClientRect();\r\n const mouseX = e.clientX - timelineRect.left;\r\n const mouseTime = Math.max(\r\n 0,\r\n mouseX / (TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevel)\r\n );\r\n const adjustedTime = Math.max(0, mouseTime - dragState.clickOffsetTime);\r\n\r\n // Always apply frame snapping first\r\n const projectStore = useProjectStore.getState();\r\n const projectFps = projectStore.activeProject?.fps || 30;\r\n let finalTime = snapTimeToFrame(adjustedTime, projectFps);\r\n let snapPoint = null;\r\n\r\n // Additionally apply element snapping if enabled\r\n if (snappingEnabled) {\r\n // Find the element being dragged to get its duration\r\n let elementDuration = 5; // fallback duration\r\n if (dragState.elementId && dragState.trackId) {\r\n const sourceTrack = tracks.find((t) => t.id === dragState.trackId);\r\n const element = sourceTrack?.elements.find(\r\n (e) => e.id === dragState.elementId\r\n );\r\n if (element) {\r\n elementDuration =\r\n element.duration - element.trimStart - element.trimEnd;\r\n }\r\n }\r\n\r\n // Try snapping both start and end edges\r\n const startSnapResult = snapElementEdge(\r\n adjustedTime,\r\n elementDuration,\r\n tracks,\r\n currentTime,\r\n zoomLevel,\r\n dragState.elementId || undefined,\r\n true // snap to start edge\r\n );\r\n\r\n const endSnapResult = snapElementEdge(\r\n adjustedTime,\r\n elementDuration,\r\n tracks,\r\n currentTime,\r\n zoomLevel,\r\n dragState.elementId || undefined,\r\n false // snap to end edge\r\n );\r\n\r\n // Choose the snap result with the smaller distance (closer snap)\r\n let bestSnapResult = startSnapResult;\r\n if (\r\n endSnapResult.snapPoint &&\r\n (!startSnapResult.snapPoint ||\r\n endSnapResult.snapDistance < startSnapResult.snapDistance)\r\n ) {\r\n bestSnapResult = endSnapResult;\r\n }\r\n\r\n // Only use element snapping if it found a snap point, otherwise keep frame-snapped time\r\n if (bestSnapResult.snapPoint) {\r\n finalTime = bestSnapResult.snappedTime;\r\n snapPoint = bestSnapResult.snapPoint;\r\n }\r\n\r\n // Notify parent component about snap point change\r\n onSnapPointChange?.(snapPoint);\r\n } else {\r\n // Clear snap point when element snapping is disabled\r\n onSnapPointChange?.(null);\r\n }\r\n\r\n updateDragTime(finalTime);\r\n };\r\n\r\n const handleMouseUp = (e: MouseEvent) => {\r\n if (!dragState.elementId || !dragState.trackId) return;\r\n\r\n // If this track initiated the drag, we should handle the mouse up regardless of where it occurs\r\n const isTrackThatStartedDrag = dragState.trackId === track.id;\r\n\r\n const timelineRect = timelineRef.current?.getBoundingClientRect();\r\n if (!timelineRect) {\r\n if (isTrackThatStartedDrag) {\r\n if (rippleEditingEnabled) {\r\n updateElementStartTimeWithRipple(\r\n track.id,\r\n dragState.elementId,\r\n dragState.currentTime\r\n );\r\n } else {\r\n updateElementStartTime(\r\n track.id,\r\n dragState.elementId,\r\n dragState.currentTime\r\n );\r\n }\r\n endDragAction();\r\n // Clear snap point when drag ends\r\n onSnapPointChange?.(null);\r\n }\r\n return;\r\n }\r\n\r\n const isMouseOverThisTrack =\r\n e.clientY >= timelineRect.top && e.clientY <= timelineRect.bottom;\r\n\r\n if (!isMouseOverThisTrack && !isTrackThatStartedDrag) return;\r\n\r\n const finalTime = dragState.currentTime;\r\n\r\n if (isMouseOverThisTrack) {\r\n const sourceTrack = tracks.find((t) => t.id === dragState.trackId);\r\n const movingElement = sourceTrack?.elements.find(\r\n (c) => c.id === dragState.elementId\r\n );\r\n\r\n if (movingElement) {\r\n const movingElementDuration =\r\n movingElement.duration -\r\n movingElement.trimStart -\r\n movingElement.trimEnd;\r\n const movingElementEnd = finalTime + movingElementDuration;\r\n\r\n const targetTrack = tracks.find((t) => t.id === track.id);\r\n const hasOverlap = targetTrack?.elements.some((existingElement) => {\r\n if (\r\n dragState.trackId === track.id &&\r\n existingElement.id === dragState.elementId\r\n ) {\r\n return false;\r\n }\r\n const existingStart = existingElement.startTime;\r\n const existingEnd =\r\n existingElement.startTime +\r\n (existingElement.duration -\r\n existingElement.trimStart -\r\n existingElement.trimEnd);\r\n return finalTime < existingEnd && movingElementEnd > existingStart;\r\n });\r\n\r\n if (!hasOverlap) {\r\n if (dragState.trackId === track.id) {\r\n if (rippleEditingEnabled) {\r\n updateElementStartTimeWithRipple(\r\n track.id,\r\n dragState.elementId,\r\n finalTime\r\n );\r\n } else {\r\n updateElementStartTime(\r\n track.id,\r\n dragState.elementId,\r\n finalTime\r\n );\r\n }\r\n } else {\r\n moveElementToTrack(\r\n dragState.trackId,\r\n track.id,\r\n dragState.elementId\r\n );\r\n requestAnimationFrame(() => {\r\n if (rippleEditingEnabled) {\r\n updateElementStartTimeWithRipple(\r\n track.id,\r\n dragState.elementId!,\r\n finalTime\r\n );\r\n } else {\r\n updateElementStartTime(\r\n track.id,\r\n dragState.elementId!,\r\n finalTime\r\n );\r\n }\r\n });\r\n }\r\n }\r\n }\r\n } else if (isTrackThatStartedDrag) {\r\n // Mouse is not over this track, but this track started the drag\r\n // This means user released over ruler/outside - update position within same track\r\n const sourceTrack = tracks.find((t) => t.id === dragState.trackId);\r\n const movingElement = sourceTrack?.elements.find(\r\n (c) => c.id === dragState.elementId\r\n );\r\n\r\n if (movingElement) {\r\n const movingElementDuration =\r\n movingElement.duration -\r\n movingElement.trimStart -\r\n movingElement.trimEnd;\r\n const movingElementEnd = finalTime + movingElementDuration;\r\n\r\n const hasOverlap = track.elements.some((existingElement) => {\r\n if (existingElement.id === dragState.elementId) {\r\n return false;\r\n }\r\n const existingStart = existingElement.startTime;\r\n const existingEnd =\r\n existingElement.startTime +\r\n (existingElement.duration -\r\n existingElement.trimStart -\r\n existingElement.trimEnd);\r\n return finalTime < existingEnd && movingElementEnd > existingStart;\r\n });\r\n\r\n if (!hasOverlap) {\r\n if (rippleEditingEnabled) {\r\n updateElementStartTimeWithRipple(\r\n track.id,\r\n dragState.elementId,\r\n finalTime\r\n );\r\n } else {\r\n updateElementStartTime(track.id, dragState.elementId, finalTime);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (isTrackThatStartedDrag) {\r\n endDragAction();\r\n // Clear snap point when drag ends\r\n onSnapPointChange?.(null);\r\n }\r\n };\r\n\r\n document.addEventListener(\"mousemove\", handleMouseMove);\r\n document.addEventListener(\"mouseup\", handleMouseUp);\r\n\r\n return () => {\r\n document.removeEventListener(\"mousemove\", handleMouseMove);\r\n document.removeEventListener(\"mouseup\", handleMouseUp);\r\n };\r\n }, [\r\n dragState.isDragging,\r\n dragState.clickOffsetTime,\r\n dragState.elementId,\r\n dragState.trackId,\r\n dragState.currentTime,\r\n zoomLevel,\r\n tracks,\r\n track.id,\r\n updateDragTime,\r\n updateElementStartTime,\r\n moveElementToTrack,\r\n endDragAction,\r\n selectedElements,\r\n selectElement,\r\n onSnapPointChange,\r\n ]);\r\n\r\n const handleElementMouseDown = (\r\n e: React.MouseEvent,\r\n element: TimelineElementType\r\n ) => {\r\n setMouseDownLocation({ x: e.clientX, y: e.clientY });\r\n\r\n // Detect right-click (button 2) and handle selection without starting drag\r\n const isRightClick = e.button === 2;\r\n const isMultiSelect = e.metaKey || e.ctrlKey || e.shiftKey;\r\n\r\n if (isRightClick) {\r\n // Handle right-click selection\r\n const isSelected = selectedElements.some(\r\n (c) => c.trackId === track.id && c.elementId === element.id\r\n );\r\n\r\n // If element is not selected, select it (keep other selections if multi-select)\r\n if (!isSelected) {\r\n selectElement(track.id, element.id, isMultiSelect);\r\n }\r\n // If element is already selected, keep it selected\r\n\r\n // Don't start drag action for right-clicks\r\n return;\r\n }\r\n\r\n // Handle multi-selection for left-click with modifiers\r\n if (isMultiSelect) {\r\n selectElement(track.id, element.id, true);\r\n }\r\n\r\n // Calculate the offset from the left edge of the element to where the user clicked\r\n const elementElement = e.currentTarget as HTMLElement;\r\n const elementRect = elementElement.getBoundingClientRect();\r\n const clickOffsetX = e.clientX - elementRect.left;\r\n const clickOffsetTime =\r\n clickOffsetX / (TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevel);\r\n\r\n startDragAction(\r\n element.id,\r\n track.id,\r\n e.clientX,\r\n element.startTime,\r\n clickOffsetTime\r\n );\r\n };\r\n\r\n const handleElementClick = (\r\n e: React.MouseEvent,\r\n element: TimelineElementType\r\n ) => {\r\n e.stopPropagation();\r\n\r\n // Check if mouse moved significantly\r\n if (mouseDownLocation) {\r\n const deltaX = Math.abs(e.clientX - mouseDownLocation.x);\r\n const deltaY = Math.abs(e.clientY - mouseDownLocation.y);\r\n // If it moved more than a few pixels, consider it a drag and not a click.\r\n if (deltaX > 5 || deltaY > 5) {\r\n setMouseDownLocation(null); // Reset for next interaction\r\n return;\r\n }\r\n }\r\n\r\n // Skip selection logic for multi-selection (handled in mousedown)\r\n if (e.metaKey || e.ctrlKey || e.shiftKey) {\r\n return;\r\n }\r\n\r\n // Handle single selection\r\n const isSelected = selectedElements.some(\r\n (c) => c.trackId === track.id && c.elementId === element.id\r\n );\r\n\r\n if (!isSelected) {\r\n // If element is not selected, select it (replacing other selections)\r\n selectElement(track.id, element.id, false);\r\n }\r\n // If element is already selected, keep it selected (do nothing)\r\n };\r\n\r\n const handleTrackDragOver = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n\r\n // Handle both timeline elements and media items\r\n const hasTimelineElement = e.dataTransfer.types.includes(\r\n \"application/x-timeline-element\"\r\n );\r\n const hasMediaItem = e.dataTransfer.types.includes(\r\n \"application/x-media-item\"\r\n );\r\n\r\n if (!hasTimelineElement && !hasMediaItem) return;\r\n\r\n // Calculate drop position for overlap checking\r\n const trackContainer = e.currentTarget.querySelector(\r\n \".track-elements-container\"\r\n ) as HTMLElement;\r\n let dropTime = 0;\r\n if (trackContainer) {\r\n const rect = trackContainer.getBoundingClientRect();\r\n const mouseX = Math.max(0, e.clientX - rect.left);\r\n dropTime = mouseX / (TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevel);\r\n }\r\n\r\n // Check for potential overlaps and show appropriate feedback\r\n let wouldOverlap = false;\r\n\r\n if (hasMediaItem) {\r\n try {\r\n const mediaItemData = e.dataTransfer.getData(\r\n \"application/x-media-item\"\r\n );\r\n if (mediaItemData) {\r\n const dragData: DragData = JSON.parse(mediaItemData);\r\n\r\n if (dragData.type === \"text\") {\r\n // Text elements have default duration of 5 seconds\r\n const newElementDuration = 5;\r\n const snappedTime = getDropSnappedTime(\r\n dropTime,\r\n newElementDuration\r\n );\r\n const newElementEnd = snappedTime + newElementDuration;\r\n\r\n wouldOverlap = track.elements.some((existingElement) => {\r\n const existingStart = existingElement.startTime;\r\n const existingEnd =\r\n existingElement.startTime +\r\n (existingElement.duration -\r\n existingElement.trimStart -\r\n existingElement.trimEnd);\r\n return snappedTime < existingEnd && newElementEnd > existingStart;\r\n });\r\n } else {\r\n // Media elements\r\n const mediaItem = mediaItems.find(\r\n (item) => item.id === dragData.id\r\n );\r\n if (mediaItem) {\r\n const newElementDuration = mediaItem.duration || 5;\r\n const snappedTime = getDropSnappedTime(\r\n dropTime,\r\n newElementDuration\r\n );\r\n const newElementEnd = snappedTime + newElementDuration;\r\n\r\n wouldOverlap = track.elements.some((existingElement) => {\r\n const existingStart = existingElement.startTime;\r\n const existingEnd =\r\n existingElement.startTime +\r\n (existingElement.duration -\r\n existingElement.trimStart -\r\n existingElement.trimEnd);\r\n return (\r\n snappedTime < existingEnd && newElementEnd > existingStart\r\n );\r\n });\r\n }\r\n }\r\n }\r\n } catch (error) {\r\n // Continue with default behavior\r\n }\r\n } else if (hasTimelineElement) {\r\n try {\r\n const timelineElementData = e.dataTransfer.getData(\r\n \"application/x-timeline-element\"\r\n );\r\n if (timelineElementData) {\r\n const { elementId, trackId: fromTrackId } =\r\n JSON.parse(timelineElementData);\r\n const sourceTrack = tracks.find(\r\n (t: TimelineTrack) => t.id === fromTrackId\r\n );\r\n const movingElement = sourceTrack?.elements.find(\r\n (c: any) => c.id === elementId\r\n );\r\n\r\n if (movingElement) {\r\n const movingElementDuration =\r\n movingElement.duration -\r\n movingElement.trimStart -\r\n movingElement.trimEnd;\r\n const snappedTime = getDropSnappedTime(\r\n dropTime,\r\n movingElementDuration,\r\n elementId\r\n );\r\n const movingElementEnd = snappedTime + movingElementDuration;\r\n\r\n wouldOverlap = track.elements.some((existingElement) => {\r\n if (fromTrackId === track.id && existingElement.id === elementId)\r\n return false;\r\n\r\n const existingStart = existingElement.startTime;\r\n const existingEnd =\r\n existingElement.startTime +\r\n (existingElement.duration -\r\n existingElement.trimStart -\r\n existingElement.trimEnd);\r\n return (\r\n snappedTime < existingEnd && movingElementEnd > existingStart\r\n );\r\n });\r\n }\r\n }\r\n } catch (error) {\r\n // Continue with default behavior\r\n }\r\n }\r\n\r\n if (wouldOverlap) {\r\n e.dataTransfer.dropEffect = \"none\";\r\n setWouldOverlap(true);\r\n // Use default duration for position indicator\r\n setDropPosition(getDropSnappedTime(dropTime, 5));\r\n return;\r\n }\r\n\r\n e.dataTransfer.dropEffect = hasTimelineElement ? \"move\" : \"copy\";\r\n setWouldOverlap(false);\r\n // Use default duration for position indicator\r\n setDropPosition(getDropSnappedTime(dropTime, 5));\r\n };\r\n\r\n const handleTrackDragEnter = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n\r\n const hasTimelineElement = e.dataTransfer.types.includes(\r\n \"application/x-timeline-element\"\r\n );\r\n const hasMediaItem = e.dataTransfer.types.includes(\r\n \"application/x-media-item\"\r\n );\r\n\r\n if (!hasTimelineElement && !hasMediaItem) return;\r\n\r\n dragCounterRef.current++;\r\n setIsDropping(true);\r\n };\r\n\r\n const handleTrackDragLeave = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n\r\n const hasTimelineElement = e.dataTransfer.types.includes(\r\n \"application/x-timeline-element\"\r\n );\r\n const hasMediaItem = e.dataTransfer.types.includes(\r\n \"application/x-media-item\"\r\n );\r\n\r\n if (!hasTimelineElement && !hasMediaItem) return;\r\n\r\n dragCounterRef.current--;\r\n\r\n if (dragCounterRef.current === 0) {\r\n setIsDropping(false);\r\n setWouldOverlap(false);\r\n setDropPosition(null);\r\n }\r\n };\r\n\r\n const handleTrackDrop = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n // Debug logging\r\n console.log(\r\n JSON.stringify({\r\n message: \"Drop event started in timeline track\",\r\n dataTransferTypes: Array.from(e.dataTransfer.types),\r\n trackId: track.id,\r\n trackType: track.type,\r\n })\r\n );\r\n\r\n // Reset all drag states\r\n dragCounterRef.current = 0;\r\n setIsDropping(false);\r\n setWouldOverlap(false);\r\n\r\n const hasTimelineElement = e.dataTransfer.types.includes(\r\n \"application/x-timeline-element\"\r\n );\r\n const hasMediaItem = e.dataTransfer.types.includes(\r\n \"application/x-media-item\"\r\n );\r\n\r\n if (!hasTimelineElement && !hasMediaItem) return;\r\n\r\n const trackContainer = e.currentTarget.querySelector(\r\n \".track-elements-container\"\r\n ) as HTMLElement;\r\n if (!trackContainer) return;\r\n\r\n const rect = trackContainer.getBoundingClientRect();\r\n const mouseX = Math.max(0, e.clientX - rect.left);\r\n const mouseY = e.clientY - rect.top; // Get Y position relative to this track\r\n const newStartTime =\r\n mouseX / (TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevel);\r\n const projectStore = useProjectStore.getState();\r\n const projectFps = projectStore.activeProject?.fps || 30;\r\n const snappedTime = snapTimeToFrame(newStartTime, projectFps);\r\n\r\n // Calculate drop position relative to tracks\r\n const currentTrackIndex = tracks.findIndex((t) => t.id === track.id);\r\n\r\n // Determine drop zone within the track (top 20px, middle 20px, bottom 20px)\r\n let dropPosition: \"above\" | \"on\" | \"below\";\r\n if (mouseY < 20) {\r\n dropPosition = \"above\";\r\n } else if (mouseY > 40) {\r\n dropPosition = \"below\";\r\n } else {\r\n dropPosition = \"on\";\r\n }\r\n\r\n try {\r\n if (hasTimelineElement) {\r\n // Handle timeline element movement\r\n const timelineElementData = e.dataTransfer.getData(\r\n \"application/x-timeline-element\"\r\n );\r\n if (!timelineElementData) return;\r\n\r\n const {\r\n elementId,\r\n trackId: fromTrackId,\r\n clickOffsetTime = 0,\r\n } = JSON.parse(timelineElementData);\r\n\r\n // Find the element being moved\r\n const sourceTrack = tracks.find(\r\n (t: TimelineTrack) => t.id === fromTrackId\r\n );\r\n const movingElement = sourceTrack?.elements.find(\r\n (c: TimelineElementType) => c.id === elementId\r\n );\r\n\r\n if (!movingElement) {\r\n toast.error(\"Element not found\");\r\n return;\r\n }\r\n\r\n // Check for overlaps with existing elements (excluding the moving element itself)\r\n const movingElementDuration =\r\n movingElement.duration -\r\n movingElement.trimStart -\r\n movingElement.trimEnd;\r\n\r\n // Adjust position based on where user clicked on the element\r\n const adjustedStartTime = newStartTime - clickOffsetTime;\r\n const snappedStartTime = getDropSnappedTime(\r\n adjustedStartTime,\r\n movingElementDuration,\r\n elementId\r\n );\r\n const finalStartTime = Math.max(0, snappedStartTime);\r\n const movingElementEnd = finalStartTime + movingElementDuration;\r\n\r\n const hasOverlap = track.elements.some((existingElement) => {\r\n // Skip the element being moved if it's on the same track\r\n if (fromTrackId === track.id && existingElement.id === elementId)\r\n return false;\r\n\r\n const existingStart = existingElement.startTime;\r\n const existingEnd =\r\n existingElement.startTime +\r\n (existingElement.duration -\r\n existingElement.trimStart -\r\n existingElement.trimEnd);\r\n\r\n // Check if elements overlap\r\n return (\r\n finalStartTime < existingEnd && movingElementEnd > existingStart\r\n );\r\n });\r\n\r\n if (hasOverlap) {\r\n toast.error(\r\n \"Cannot move element here - it would overlap with existing elements\"\r\n );\r\n return;\r\n }\r\n\r\n if (fromTrackId === track.id) {\r\n // Moving within same track\r\n if (rippleEditingEnabled) {\r\n updateElementStartTimeWithRipple(\r\n track.id,\r\n elementId,\r\n finalStartTime\r\n );\r\n } else {\r\n updateElementStartTime(track.id, elementId, finalStartTime);\r\n }\r\n } else {\r\n // Moving to different track\r\n moveElementToTrack(fromTrackId, track.id, elementId);\r\n requestAnimationFrame(() => {\r\n if (rippleEditingEnabled) {\r\n updateElementStartTimeWithRipple(\r\n track.id,\r\n elementId,\r\n finalStartTime\r\n );\r\n } else {\r\n updateElementStartTime(track.id, elementId, finalStartTime);\r\n }\r\n });\r\n }\r\n } else if (hasMediaItem) {\r\n // Handle media item drop\r\n const mediaItemData = e.dataTransfer.getData(\r\n \"application/x-media-item\"\r\n );\r\n if (!mediaItemData) return;\r\n\r\n const dragData: DragData = JSON.parse(mediaItemData);\r\n\r\n if (dragData.type === \"text\") {\r\n let targetTrackId = track.id;\r\n let targetTrack = track;\r\n\r\n // Handle position-aware track creation for text\r\n if (track.type !== \"text\" || dropPosition !== \"on\") {\r\n // Text tracks should go above the main track\r\n const mainTrack = getMainTrack(tracks);\r\n let insertIndex: number;\r\n\r\n if (dropPosition === \"above\") {\r\n insertIndex = currentTrackIndex;\r\n } else if (dropPosition === \"below\") {\r\n insertIndex = currentTrackIndex + 1;\r\n } else {\r\n // dropPosition === \"on\" but track is not text type\r\n // Insert above main track if main track exists, otherwise at top\r\n if (mainTrack) {\r\n const mainTrackIndex = tracks.findIndex(\r\n (t) => t.id === mainTrack.id\r\n );\r\n insertIndex = mainTrackIndex;\r\n } else {\r\n insertIndex = 0; // Top of timeline\r\n }\r\n }\r\n\r\n targetTrackId = insertTrackAt(\"text\", insertIndex);\r\n // Get the updated tracks array after creating the new track\r\n const updatedTracks = useTimelineStore.getState().tracks;\r\n const newTargetTrack = updatedTracks.find(\r\n (t) => t.id === targetTrackId\r\n );\r\n if (!newTargetTrack) return;\r\n targetTrack = newTargetTrack;\r\n }\r\n\r\n // Check for overlaps with existing elements in target track\r\n const newElementDuration = 5; // Default text duration\r\n const textSnappedTime = getDropSnappedTime(\r\n newStartTime,\r\n newElementDuration\r\n );\r\n const newElementEnd = textSnappedTime + newElementDuration;\r\n\r\n const hasOverlap = targetTrack.elements.some((existingElement) => {\r\n const existingStart = existingElement.startTime;\r\n const existingEnd =\r\n existingElement.startTime +\r\n (existingElement.duration -\r\n existingElement.trimStart -\r\n existingElement.trimEnd);\r\n\r\n // Check if elements overlap\r\n return (\r\n textSnappedTime < existingEnd && newElementEnd > existingStart\r\n );\r\n });\r\n\r\n if (hasOverlap) {\r\n toast.error(\r\n \"Cannot place element here - it would overlap with existing elements\"\r\n );\r\n return;\r\n }\r\n\r\n addElementToTrack(targetTrackId, {\r\n type: \"text\",\r\n name: dragData.name || \"Text\",\r\n content: dragData.content || \"Default Text\",\r\n duration: TIMELINE_CONSTANTS.DEFAULT_TEXT_DURATION,\r\n startTime: textSnappedTime,\r\n trimStart: 0,\r\n trimEnd: 0,\r\n fontSize: 48,\r\n fontFamily: \"Arial\",\r\n color: \"#ffffff\",\r\n backgroundColor: \"transparent\",\r\n textAlign: \"center\",\r\n fontWeight: \"normal\",\r\n fontStyle: \"normal\",\r\n textDecoration: \"none\",\r\n x: 0,\r\n y: 0,\r\n rotation: 0,\r\n opacity: 1,\r\n });\r\n } else {\r\n // Handle media items\r\n const mediaItem = mediaItems.find((item) => item.id === dragData.id);\r\n\r\n if (!mediaItem) {\r\n toast.error(\"Media item not found\");\r\n return;\r\n }\r\n\r\n let targetTrackId = track.id;\r\n\r\n // Check if track type is compatible\r\n const isVideoOrImage =\r\n dragData.type === \"video\" || dragData.type === \"image\";\r\n const isAudio = dragData.type === \"audio\";\r\n const isCompatible = isVideoOrImage\r\n ? canElementGoOnTrack(\"media\", track.type)\r\n : isAudio\r\n ? canElementGoOnTrack(\"media\", track.type)\r\n : false;\r\n\r\n let targetTrack = tracks.find((t) => t.id === targetTrackId);\r\n\r\n // Handle position-aware track creation for media elements\r\n if (!isCompatible || dropPosition !== \"on\") {\r\n if (isVideoOrImage) {\r\n // For video/image, check if we need a main track or additional media track\r\n const mainTrack = getMainTrack(tracks);\r\n\r\n if (!mainTrack) {\r\n // No main track exists, create it\r\n targetTrackId = addTrack(\"media\");\r\n const updatedTracks = useTimelineStore.getState().tracks;\r\n const newTargetTrack = updatedTracks.find(\r\n (t) => t.id === targetTrackId\r\n );\r\n if (!newTargetTrack) return;\r\n targetTrack = newTargetTrack;\r\n } else if (\r\n mainTrack.elements.length === 0 &&\r\n dropPosition === \"on\"\r\n ) {\r\n // Main track exists and is empty, use it\r\n targetTrackId = mainTrack.id;\r\n targetTrack = mainTrack;\r\n } else {\r\n // Create new media track\r\n let insertIndex: number;\r\n\r\n if (dropPosition === \"above\") {\r\n insertIndex = currentTrackIndex;\r\n } else if (dropPosition === \"below\") {\r\n insertIndex = currentTrackIndex + 1;\r\n } else {\r\n // Insert above main track\r\n const mainTrackIndex = tracks.findIndex(\r\n (t) => t.id === mainTrack.id\r\n );\r\n insertIndex = mainTrackIndex;\r\n }\r\n\r\n targetTrackId = insertTrackAt(\"media\", insertIndex);\r\n const updatedTracks = useTimelineStore.getState().tracks;\r\n const newTargetTrack = updatedTracks.find(\r\n (t) => t.id === targetTrackId\r\n );\r\n if (!newTargetTrack) return;\r\n targetTrack = newTargetTrack;\r\n }\r\n } else if (isAudio) {\r\n // Audio tracks go at the bottom\r\n const mainTrack = getMainTrack(tracks);\r\n let insertIndex: number;\r\n\r\n if (dropPosition === \"above\") {\r\n insertIndex = currentTrackIndex;\r\n } else if (dropPosition === \"below\") {\r\n insertIndex = currentTrackIndex + 1;\r\n } else {\r\n // Insert after main track (bottom area)\r\n if (mainTrack) {\r\n const mainTrackIndex = tracks.findIndex(\r\n (t) => t.id === mainTrack.id\r\n );\r\n insertIndex = mainTrackIndex + 1;\r\n } else {\r\n insertIndex = tracks.length; // Bottom of timeline\r\n }\r\n }\r\n\r\n targetTrackId = insertTrackAt(\"audio\", insertIndex);\r\n const updatedTracks = useTimelineStore.getState().tracks;\r\n const newTargetTrack = updatedTracks.find(\r\n (t) => t.id === targetTrackId\r\n );\r\n if (!newTargetTrack) return;\r\n targetTrack = newTargetTrack;\r\n }\r\n }\r\n\r\n if (!targetTrack) return;\r\n\r\n // Check for overlaps with existing elements in target track\r\n const newElementDuration = mediaItem.duration || 5;\r\n const mediaSnappedTime = getDropSnappedTime(\r\n newStartTime,\r\n newElementDuration\r\n );\r\n const newElementEnd = mediaSnappedTime + newElementDuration;\r\n\r\n const hasOverlap = targetTrack.elements.some((existingElement) => {\r\n const existingStart = existingElement.startTime;\r\n const existingEnd =\r\n existingElement.startTime +\r\n (existingElement.duration -\r\n existingElement.trimStart -\r\n existingElement.trimEnd);\r\n\r\n // Check if elements overlap\r\n return (\r\n mediaSnappedTime < existingEnd && newElementEnd > existingStart\r\n );\r\n });\r\n\r\n if (hasOverlap) {\r\n toast.error(\r\n \"Cannot place element here - it would overlap with existing elements\"\r\n );\r\n return;\r\n }\r\n\r\n addElementToTrack(targetTrackId, {\r\n type: \"media\",\r\n mediaId: mediaItem.id,\r\n name: mediaItem.name,\r\n duration: mediaItem.duration || 5,\r\n startTime: mediaSnappedTime,\r\n trimStart: 0,\r\n trimEnd: 0,\r\n });\r\n }\r\n }\r\n } catch (error) {\r\n console.error(\"Error handling drop:\", error);\r\n toast.error(\"Failed to add media to track\");\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n className=\"w-full h-full hover:bg-muted/20\"\r\n onClick={(e) => {\r\n // If clicking empty area (not on an element), deselect all elements\r\n if (!(e.target as HTMLElement).closest(\".timeline-element\")) {\r\n clearSelectedElements();\r\n }\r\n }}\r\n onDragOver={handleTrackDragOver}\r\n onDragEnter={handleTrackDragEnter}\r\n onDragLeave={handleTrackDragLeave}\r\n onDrop={handleTrackDrop}\r\n >\r\n <div\r\n ref={timelineRef}\r\n className=\"h-full relative track-elements-container min-w-full\"\r\n >\r\n {track.elements.length === 0 ? (\r\n <div\r\n className={`h-full w-full rounded-sm border-2 border-dashed flex items-center justify-center text-xs text-muted-foreground transition-colors ${\r\n isDropping\r\n ? wouldOverlap\r\n ? \"border-red-500 bg-red-500/10 text-red-600\"\r\n : \"border-blue-500 bg-blue-500/10 text-blue-600\"\r\n : \"border-muted/30\"\r\n }`}\r\n >\r\n {isDropping\r\n ? wouldOverlap\r\n ? \"Cannot drop - would overlap\"\r\n : \"Drop element here\"\r\n : \"\"}\r\n </div>\r\n ) : (\r\n <>\r\n {track.elements.map((element) => {\r\n const isSelected = selectedElements.some(\r\n (c) => c.trackId === track.id && c.elementId === element.id\r\n );\r\n\r\n const handleElementSplit = () => {\r\n const { currentTime } = usePlaybackStore();\r\n const { splitElement } = useTimelineStore();\r\n const splitTime = currentTime;\r\n const effectiveStart = element.startTime;\r\n const effectiveEnd =\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd);\r\n\r\n if (splitTime > effectiveStart && splitTime < effectiveEnd) {\r\n const secondElementId = splitElement(\r\n track.id,\r\n element.id,\r\n splitTime\r\n );\r\n if (!secondElementId) {\r\n toast.error(\"Failed to split element\");\r\n }\r\n } else {\r\n toast.error(\"Playhead must be within element to split\");\r\n }\r\n };\r\n\r\n const handleElementDuplicate = () => {\r\n const { addElementToTrack } = useTimelineStore.getState();\r\n const { id, ...elementWithoutId } = element;\r\n addElementToTrack(track.id, {\r\n ...elementWithoutId,\r\n name: element.name + \" (copy)\",\r\n startTime:\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd) +\r\n 0.1,\r\n });\r\n };\r\n\r\n const handleElementDelete = () => {\r\n const { removeElementFromTrack } = useTimelineStore.getState();\r\n removeElementFromTrack(track.id, element.id);\r\n };\r\n\r\n return (\r\n <TimelineElement\r\n key={element.id}\r\n element={element}\r\n track={track}\r\n zoomLevel={zoomLevel}\r\n isSelected={isSelected}\r\n onElementMouseDown={handleElementMouseDown}\r\n onElementClick={handleElementClick}\r\n />\r\n );\r\n })}\r\n </>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { snapTimeToFrame } from \"@/constants/timeline-constants\";\r\nimport { useProjectStore } from \"@/stores/project-store\";\r\nimport { usePlaybackStore } from \"@/stores/playback-store\";\r\nimport { useState, useEffect, useCallback, useRef } from \"react\";\r\n\r\ninterface UseTimelinePlayheadProps {\r\n currentTime: number;\r\n duration: number;\r\n zoomLevel: number;\r\n seek: (time: number) => void;\r\n rulerRef: React.RefObject<HTMLDivElement>;\r\n rulerScrollRef: React.RefObject<HTMLDivElement>;\r\n tracksScrollRef: React.RefObject<HTMLDivElement>;\r\n playheadRef?: React.RefObject<HTMLDivElement>;\r\n}\r\n\r\nexport function useTimelinePlayhead({\r\n currentTime,\r\n duration,\r\n zoomLevel,\r\n seek,\r\n rulerRef,\r\n rulerScrollRef,\r\n tracksScrollRef,\r\n playheadRef,\r\n}: UseTimelinePlayheadProps) {\r\n // Playhead scrubbing state\r\n const [isScrubbing, setIsScrubbing] = useState(false);\r\n const [scrubTime, setScrubTime] = useState<number | null>(null);\r\n\r\n // Ruler drag detection state\r\n const [isDraggingRuler, setIsDraggingRuler] = useState(false);\r\n const [hasDraggedRuler, setHasDraggedRuler] = useState(false);\r\n\r\n // Auto-scroll state during dragging\r\n const autoScrollRef = useRef<number | null>(null);\r\n const lastMouseXRef = useRef<number>(0);\r\n\r\n const playheadPosition =\r\n isScrubbing && scrubTime !== null ? scrubTime : currentTime;\r\n\r\n // --- Playhead Scrubbing Handlers ---\r\n const handlePlayheadMouseDown = useCallback(\r\n (e: React.MouseEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation(); // Prevent ruler drag from triggering\r\n setIsScrubbing(true);\r\n handleScrub(e);\r\n },\r\n [duration, zoomLevel]\r\n );\r\n\r\n // Ruler mouse down handler\r\n const handleRulerMouseDown = useCallback(\r\n (e: React.MouseEvent) => {\r\n // Only handle left mouse button\r\n if (e.button !== 0) return;\r\n\r\n // Don't interfere if clicking on the playhead itself\r\n if (playheadRef?.current?.contains(e.target as Node)) return;\r\n\r\n e.preventDefault();\r\n setIsDraggingRuler(true);\r\n setHasDraggedRuler(false);\r\n\r\n // Start scrubbing immediately\r\n setIsScrubbing(true);\r\n handleScrub(e);\r\n },\r\n [duration, zoomLevel]\r\n );\r\n\r\n const handleScrub = useCallback(\r\n (e: MouseEvent | React.MouseEvent) => {\r\n const ruler = rulerRef.current;\r\n if (!ruler) return;\r\n const rect = ruler.getBoundingClientRect();\r\n const rawX = e.clientX - rect.left;\r\n\r\n // Get the timeline content width based on duration and zoom\r\n const timelineContentWidth = duration * 50 * zoomLevel; // TIMELINE_CONSTANTS.PIXELS_PER_SECOND = 50\r\n\r\n // Constrain x to be within the timeline content bounds\r\n const x = Math.max(0, Math.min(timelineContentWidth, rawX));\r\n\r\n const rawTime = Math.max(0, Math.min(duration, x / (50 * zoomLevel)));\r\n // Use frame snapping for playhead scrubbing\r\n const projectStore = useProjectStore.getState();\r\n const projectFps = projectStore.activeProject?.fps || 30;\r\n const time = snapTimeToFrame(rawTime, projectFps);\r\n\r\n // Debug logging\r\n if (rawX < 0 || x !== rawX) {\r\n console.log(\r\n \"PLAYHEAD DEBUG:\",\r\n JSON.stringify({\r\n mouseX: e.clientX,\r\n rulerLeft: rect.left,\r\n rawX,\r\n constrainedX: x,\r\n timelineContentWidth,\r\n rawTime,\r\n finalTime: time,\r\n duration,\r\n zoomLevel,\r\n playheadPx: time * 50 * zoomLevel,\r\n })\r\n );\r\n }\r\n\r\n setScrubTime(time);\r\n seek(time); // update video preview in real time\r\n\r\n // Store mouse position for auto-scrolling\r\n lastMouseXRef.current = e.clientX;\r\n },\r\n [duration, zoomLevel, seek, rulerRef]\r\n );\r\n\r\n // Auto-scroll function during dragging\r\n const performAutoScroll = useCallback(() => {\r\n const rulerViewport = rulerScrollRef.current?.querySelector(\r\n \"[data-radix-scroll-area-viewport]\"\r\n ) as HTMLElement;\r\n const tracksViewport = tracksScrollRef.current?.querySelector(\r\n \"[data-radix-scroll-area-viewport]\"\r\n ) as HTMLElement;\r\n\r\n if (!rulerViewport || !tracksViewport || !isScrubbing) return;\r\n\r\n const viewportRect = rulerViewport.getBoundingClientRect();\r\n const mouseX = lastMouseXRef.current;\r\n const mouseXRelative = mouseX - viewportRect.left;\r\n\r\n const edgeThreshold = 100; // pixels from edge to start scrolling\r\n const maxScrollSpeed = 15; // max pixels per frame\r\n const viewportWidth = rulerViewport.clientWidth;\r\n\r\n // Calculate timeline content boundaries\r\n const timelineContentWidth = duration * 50 * zoomLevel; // TIMELINE_CONSTANTS.PIXELS_PER_SECOND = 50\r\n const scrollMax = Math.max(0, timelineContentWidth - viewportWidth);\r\n\r\n let scrollSpeed = 0;\r\n\r\n // Check if near left edge (and can scroll left)\r\n if (mouseXRelative < edgeThreshold && rulerViewport.scrollLeft > 0) {\r\n const edgeDistance = Math.max(0, mouseXRelative);\r\n const intensity = 1 - edgeDistance / edgeThreshold;\r\n scrollSpeed = -maxScrollSpeed * intensity;\r\n }\r\n // Check if near right edge (and can scroll right, and haven't reached timeline end)\r\n else if (\r\n mouseXRelative > viewportWidth - edgeThreshold &&\r\n rulerViewport.scrollLeft < scrollMax\r\n ) {\r\n const edgeDistance = Math.max(\r\n 0,\r\n viewportWidth - edgeThreshold - mouseXRelative\r\n );\r\n const intensity = 1 - edgeDistance / edgeThreshold;\r\n scrollSpeed = maxScrollSpeed * intensity;\r\n }\r\n\r\n if (scrollSpeed !== 0) {\r\n const newScrollLeft = Math.max(\r\n 0,\r\n Math.min(scrollMax, rulerViewport.scrollLeft + scrollSpeed)\r\n );\r\n rulerViewport.scrollLeft = newScrollLeft;\r\n tracksViewport.scrollLeft = newScrollLeft;\r\n }\r\n\r\n if (isScrubbing) {\r\n autoScrollRef.current = requestAnimationFrame(performAutoScroll);\r\n }\r\n }, [isScrubbing, rulerScrollRef, tracksScrollRef, duration, zoomLevel]);\r\n\r\n // Mouse move/up event handlers\r\n useEffect(() => {\r\n if (!isScrubbing) return;\r\n\r\n const onMouseMove = (e: MouseEvent) => {\r\n handleScrub(e);\r\n // Mark that we've dragged if ruler drag is active\r\n if (isDraggingRuler) {\r\n setHasDraggedRuler(true);\r\n }\r\n };\r\n\r\n const onMouseUp = (e: MouseEvent) => {\r\n setIsScrubbing(false);\r\n if (scrubTime !== null) seek(scrubTime); // finalize seek\r\n setScrubTime(null);\r\n\r\n // Stop auto-scrolling\r\n if (autoScrollRef.current) {\r\n cancelAnimationFrame(autoScrollRef.current);\r\n autoScrollRef.current = null;\r\n }\r\n\r\n // Handle ruler click vs drag\r\n if (isDraggingRuler) {\r\n setIsDraggingRuler(false);\r\n // If we didn't drag, treat it as a click-to-seek\r\n if (!hasDraggedRuler) {\r\n handleScrub(e);\r\n }\r\n setHasDraggedRuler(false);\r\n }\r\n };\r\n\r\n window.addEventListener(\"mousemove\", onMouseMove);\r\n window.addEventListener(\"mouseup\", onMouseUp);\r\n\r\n // Start auto-scrolling\r\n autoScrollRef.current = requestAnimationFrame(performAutoScroll);\r\n\r\n return () => {\r\n window.removeEventListener(\"mousemove\", onMouseMove);\r\n window.removeEventListener(\"mouseup\", onMouseUp);\r\n if (autoScrollRef.current) {\r\n cancelAnimationFrame(autoScrollRef.current);\r\n autoScrollRef.current = null;\r\n }\r\n };\r\n }, [\r\n isScrubbing,\r\n scrubTime,\r\n seek,\r\n handleScrub,\r\n isDraggingRuler,\r\n hasDraggedRuler,\r\n performAutoScroll,\r\n ]);\r\n\r\n // --- Playhead auto-scroll effect (only during playback) ---\r\n useEffect(() => {\r\n const { isPlaying } = usePlaybackStore.getState();\r\n\r\n // Only auto-scroll during playback, not during manual interactions\r\n if (!isPlaying || isScrubbing) return;\r\n\r\n const rulerViewport = rulerScrollRef.current?.querySelector(\r\n \"[data-radix-scroll-area-viewport]\"\r\n ) as HTMLElement;\r\n const tracksViewport = tracksScrollRef.current?.querySelector(\r\n \"[data-radix-scroll-area-viewport]\"\r\n ) as HTMLElement;\r\n if (!rulerViewport || !tracksViewport) return;\r\n\r\n const playheadPx = playheadPosition * 50 * zoomLevel; // TIMELINE_CONSTANTS.PIXELS_PER_SECOND = 50\r\n const viewportWidth = rulerViewport.clientWidth;\r\n const scrollMin = 0;\r\n const scrollMax = rulerViewport.scrollWidth - viewportWidth;\r\n\r\n // Only auto-scroll if playhead is completely out of view (no buffer)\r\n const needsScroll =\r\n playheadPx < rulerViewport.scrollLeft ||\r\n playheadPx > rulerViewport.scrollLeft + viewportWidth;\r\n\r\n if (needsScroll) {\r\n // Center the playhead in the viewport\r\n const desiredScroll = Math.max(\r\n scrollMin,\r\n Math.min(scrollMax, playheadPx - viewportWidth / 2)\r\n );\r\n rulerViewport.scrollLeft = tracksViewport.scrollLeft = desiredScroll;\r\n }\r\n }, [\r\n playheadPosition,\r\n duration,\r\n zoomLevel,\r\n rulerScrollRef,\r\n tracksScrollRef,\r\n isScrubbing,\r\n ]);\r\n\r\n return {\r\n playheadPosition,\r\n handlePlayheadMouseDown,\r\n handleRulerMouseDown,\r\n isDraggingRuler,\r\n };\r\n}\r\n","\"use client\";\r\n\r\nimport { useRef, useState, useEffect } from \"react\";\r\nimport { TimelineTrack } from \"@/types/timeline\";\r\nimport { TIMELINE_CONSTANTS } from \"@/constants/timeline-constants\";\r\nimport { useTimelinePlayhead } from \"@/hooks/use-timeline-playhead\";\r\n\r\ninterface TimelinePlayheadProps {\r\n currentTime: number;\r\n duration: number;\r\n zoomLevel: number;\r\n tracks: TimelineTrack[];\r\n seek: (time: number) => void;\r\n rulerRef: React.RefObject<HTMLDivElement>;\r\n rulerScrollRef: React.RefObject<HTMLDivElement>;\r\n tracksScrollRef: React.RefObject<HTMLDivElement>;\r\n trackLabelsRef?: React.RefObject<HTMLDivElement>;\r\n timelineRef: React.RefObject<HTMLDivElement>;\r\n playheadRef?: React.RefObject<HTMLDivElement>;\r\n isSnappingToPlayhead?: boolean;\r\n}\r\n\r\nexport function TimelinePlayhead({\r\n currentTime,\r\n duration,\r\n zoomLevel,\r\n tracks,\r\n seek,\r\n rulerRef,\r\n rulerScrollRef,\r\n tracksScrollRef,\r\n trackLabelsRef,\r\n timelineRef,\r\n playheadRef: externalPlayheadRef,\r\n isSnappingToPlayhead = false,\r\n}: TimelinePlayheadProps) {\r\n const internalPlayheadRef = useRef<HTMLDivElement>(null);\r\n const playheadRef = externalPlayheadRef || internalPlayheadRef;\r\n const [scrollLeft, setScrollLeft] = useState(0);\r\n\r\n const { playheadPosition, handlePlayheadMouseDown } = useTimelinePlayhead({\r\n currentTime,\r\n duration,\r\n zoomLevel,\r\n seek,\r\n rulerRef,\r\n rulerScrollRef,\r\n tracksScrollRef,\r\n playheadRef,\r\n });\r\n\r\n // Track scroll position to lock playhead to frame\r\n useEffect(() => {\r\n const tracksViewport = tracksScrollRef.current?.querySelector(\r\n \"[data-radix-scroll-area-viewport]\"\r\n ) as HTMLElement;\r\n\r\n if (!tracksViewport) return;\r\n\r\n const handleScroll = () => {\r\n setScrollLeft(tracksViewport.scrollLeft);\r\n };\r\n\r\n // Set initial scroll position\r\n setScrollLeft(tracksViewport.scrollLeft);\r\n\r\n tracksViewport.addEventListener(\"scroll\", handleScroll);\r\n return () => tracksViewport.removeEventListener(\"scroll\", handleScroll);\r\n }, [tracksScrollRef]);\r\n\r\n // Use timeline container height minus a few pixels for breathing room\r\n const timelineContainerHeight = timelineRef.current?.offsetHeight || 400;\r\n const totalHeight = timelineContainerHeight - 4;\r\n\r\n // Get dynamic track labels width, fallback to 0 if no tracks or no ref\r\n const trackLabelsWidth =\r\n tracks.length > 0 && trackLabelsRef?.current\r\n ? trackLabelsRef.current.offsetWidth\r\n : 0;\r\n\r\n // Calculate position locked to timeline content (accounting for scroll)\r\n const timelinePosition =\r\n playheadPosition * TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevel;\r\n const rawLeftPosition = trackLabelsWidth + timelinePosition - scrollLeft;\r\n\r\n // Get the timeline content width and viewport width for right boundary\r\n const timelineContentWidth =\r\n duration * TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevel;\r\n const tracksViewport = tracksScrollRef.current?.querySelector(\r\n \"[data-radix-scroll-area-viewport]\"\r\n ) as HTMLElement;\r\n const viewportWidth = tracksViewport?.clientWidth || 1000;\r\n\r\n // Constrain playhead to never appear outside the timeline area\r\n const leftBoundary = trackLabelsWidth;\r\n const rightBoundary = Math.min(\r\n trackLabelsWidth + timelineContentWidth - scrollLeft, // Don't go beyond timeline content\r\n trackLabelsWidth + viewportWidth // Don't go beyond viewport\r\n );\r\n\r\n const leftPosition = Math.max(\r\n leftBoundary,\r\n Math.min(rightBoundary, rawLeftPosition)\r\n );\r\n\r\n // Debug logging when playhead might go outside\r\n if (rawLeftPosition < leftBoundary || rawLeftPosition > rightBoundary) {\r\n console.log(\r\n \"PLAYHEAD VISUAL DEBUG:\",\r\n JSON.stringify({\r\n playheadPosition,\r\n timelinePosition,\r\n trackLabelsWidth,\r\n scrollLeft,\r\n rawLeftPosition,\r\n constrainedLeftPosition: leftPosition,\r\n leftBoundary,\r\n rightBoundary,\r\n timelineContentWidth,\r\n viewportWidth,\r\n zoomLevel,\r\n })\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n ref={playheadRef}\r\n className=\"absolute pointer-events-auto z-150\"\r\n style={{\r\n left: `${leftPosition}px`,\r\n top: 0,\r\n height: `${totalHeight}px`,\r\n width: \"2px\", // Slightly wider for better click target\r\n }}\r\n onMouseDown={handlePlayheadMouseDown}\r\n >\r\n {/* The playhead line spanning full height */}\r\n <div\r\n className={`absolute left-0 w-0.5 cursor-col-resize h-full ${isSnappingToPlayhead ? \"bg-foreground\" : \"bg-foreground\"}`}\r\n />\r\n\r\n {/* Playhead dot indicator at the top (in ruler area) */}\r\n <div\r\n className={`absolute top-1 left-1/2 transform -translate-x-1/2 w-3 h-3 rounded-full border-2 shadow-xs ${isSnappingToPlayhead ? \"bg-foreground border-foreground\" : \"bg-foreground border-foreground/50\"}`}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\n// Also export a hook for getting ruler handlers\r\nexport function useTimelinePlayheadRuler({\r\n currentTime,\r\n duration,\r\n zoomLevel,\r\n seek,\r\n rulerRef,\r\n rulerScrollRef,\r\n tracksScrollRef,\r\n playheadRef,\r\n}: Omit<TimelinePlayheadProps, \"tracks\" | \"trackLabelsRef\" | \"timelineRef\">) {\r\n const { handleRulerMouseDown, isDraggingRuler } = useTimelinePlayhead({\r\n currentTime,\r\n duration,\r\n zoomLevel,\r\n seek,\r\n rulerRef,\r\n rulerScrollRef,\r\n tracksScrollRef,\r\n playheadRef,\r\n });\r\n\r\n return { handleRulerMouseDown, isDraggingRuler };\r\n}\r\n\r\nexport { TimelinePlayhead as default };\r\n","\"use client\";\r\n\r\nimport { useEffect, useRef } from \"react\";\r\n\r\ninterface SelectionBoxProps {\r\n startPos: { x: number; y: number } | null;\r\n currentPos: { x: number; y: number } | null;\r\n containerRef: React.RefObject<HTMLElement>;\r\n isActive: boolean;\r\n}\r\n\r\nexport function SelectionBox({\r\n startPos,\r\n currentPos,\r\n containerRef,\r\n isActive,\r\n}: SelectionBoxProps) {\r\n const selectionBoxRef = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n if (!isActive || !startPos || !currentPos || !containerRef.current) return;\r\n\r\n const container = containerRef.current;\r\n const containerRect = container.getBoundingClientRect();\r\n\r\n // Calculate relative positions within the container\r\n const startX = startPos.x - containerRect.left;\r\n const startY = startPos.y - containerRect.top;\r\n const currentX = currentPos.x - containerRect.left;\r\n const currentY = currentPos.y - containerRect.top;\r\n\r\n // Calculate the selection rectangle bounds\r\n const left = Math.min(startX, currentX);\r\n const top = Math.min(startY, currentY);\r\n const width = Math.abs(currentX - startX);\r\n const height = Math.abs(currentY - startY);\r\n\r\n // Update the selection box position and size\r\n if (selectionBoxRef.current) {\r\n selectionBoxRef.current.style.left = `${left}px`;\r\n selectionBoxRef.current.style.top = `${top}px`;\r\n selectionBoxRef.current.style.width = `${width}px`;\r\n selectionBoxRef.current.style.height = `${height}px`;\r\n }\r\n }, [startPos, currentPos, isActive, containerRef]);\r\n\r\n if (!isActive || !startPos || !currentPos) return null;\r\n\r\n return (\r\n <div\r\n ref={selectionBoxRef}\r\n className=\"absolute pointer-events-none z-50 bg-foreground/10\"\r\n />\r\n );\r\n}\r\n","import { useState, useEffect, useCallback } from \"react\";\r\n\r\ninterface UseSelectionBoxProps {\r\n containerRef: React.RefObject<HTMLElement>;\r\n playheadRef?: React.RefObject<HTMLElement>;\r\n onSelectionComplete: (\r\n elements: { trackId: string; elementId: string }[]\r\n ) => void;\r\n isEnabled?: boolean;\r\n}\r\n\r\ninterface SelectionBoxState {\r\n startPos: { x: number; y: number };\r\n currentPos: { x: number; y: number };\r\n isActive: boolean;\r\n}\r\n\r\nexport function useSelectionBox({\r\n containerRef,\r\n playheadRef,\r\n onSelectionComplete,\r\n isEnabled = true,\r\n}: UseSelectionBoxProps) {\r\n const [selectionBox, setSelectionBox] = useState<SelectionBoxState | null>(\r\n null\r\n );\r\n const [justFinishedSelecting, setJustFinishedSelecting] = useState(false);\r\n\r\n // Mouse down handler to start selection\r\n const handleMouseDown = useCallback(\r\n (e: React.MouseEvent) => {\r\n if (!isEnabled) return;\r\n\r\n // Only start selection on empty space clicks\r\n if ((e.target as HTMLElement).closest(\".timeline-element\")) {\r\n return;\r\n }\r\n if (playheadRef?.current?.contains(e.target as Node)) {\r\n return;\r\n }\r\n if ((e.target as HTMLElement).closest(\"[data-track-labels]\")) {\r\n return;\r\n }\r\n // Don't start selection when clicking in the ruler area - this interferes with playhead dragging\r\n if ((e.target as HTMLElement).closest(\"[data-ruler-area]\")) {\r\n return;\r\n }\r\n\r\n setSelectionBox({\r\n startPos: { x: e.clientX, y: e.clientY },\r\n currentPos: { x: e.clientX, y: e.clientY },\r\n isActive: false, // Will become active when mouse moves\r\n });\r\n },\r\n [isEnabled, playheadRef]\r\n );\r\n\r\n // Function to select elements within the selection box\r\n const selectElementsInBox = useCallback(\r\n (startPos: { x: number; y: number }, endPos: { x: number; y: number }) => {\r\n if (!containerRef.current) return;\r\n\r\n const container = containerRef.current;\r\n const containerRect = container.getBoundingClientRect();\r\n\r\n // Calculate selection rectangle in container coordinates\r\n const startX = startPos.x - containerRect.left;\r\n const startY = startPos.y - containerRect.top;\r\n const endX = endPos.x - containerRect.left;\r\n const endY = endPos.y - containerRect.top;\r\n\r\n const selectionRect = {\r\n left: Math.min(startX, endX),\r\n top: Math.min(startY, endY),\r\n right: Math.max(startX, endX),\r\n bottom: Math.max(startY, endY),\r\n };\r\n\r\n // Find all timeline elements within the selection rectangle\r\n const timelineElements = container.querySelectorAll(\".timeline-element\");\r\n\r\n const selectedElements: { trackId: string; elementId: string }[] = [];\r\n\r\n timelineElements.forEach((element) => {\r\n const elementRect = element.getBoundingClientRect();\r\n // Use absolute coordinates for more accurate intersection detection\r\n const elementAbsolute = {\r\n left: elementRect.left,\r\n top: elementRect.top,\r\n right: elementRect.right,\r\n bottom: elementRect.bottom,\r\n };\r\n\r\n const selectionAbsolute = {\r\n left: startPos.x,\r\n top: startPos.y,\r\n right: endPos.x,\r\n bottom: endPos.y,\r\n };\r\n\r\n // Normalize selection rectangle (handle dragging in any direction)\r\n const normalizedSelection = {\r\n left: Math.min(selectionAbsolute.left, selectionAbsolute.right),\r\n top: Math.min(selectionAbsolute.top, selectionAbsolute.bottom),\r\n right: Math.max(selectionAbsolute.left, selectionAbsolute.right),\r\n bottom: Math.max(selectionAbsolute.top, selectionAbsolute.bottom),\r\n };\r\n\r\n const elementId = element.getAttribute(\"data-element-id\");\r\n const trackId = element.getAttribute(\"data-track-id\");\r\n\r\n // Check if element intersects with selection rectangle (any overlap)\r\n // Using absolute coordinates for more precise detection\r\n const intersects = !(\r\n elementAbsolute.right < normalizedSelection.left ||\r\n elementAbsolute.left > normalizedSelection.right ||\r\n elementAbsolute.bottom < normalizedSelection.top ||\r\n elementAbsolute.top > normalizedSelection.bottom\r\n );\r\n\r\n if (intersects && elementId && trackId) {\r\n selectedElements.push({ trackId, elementId });\r\n }\r\n });\r\n\r\n // Always call the callback - with elements or empty array to clear selection\r\n console.log(\r\n JSON.stringify({ selectElementsInBox: selectedElements.length })\r\n );\r\n onSelectionComplete(selectedElements);\r\n },\r\n [containerRef, onSelectionComplete]\r\n );\r\n\r\n // Effect to track selection box movement\r\n useEffect(() => {\r\n if (!selectionBox) return;\r\n\r\n const handleMouseMove = (e: MouseEvent) => {\r\n const deltaX = Math.abs(e.clientX - selectionBox.startPos.x);\r\n const deltaY = Math.abs(e.clientY - selectionBox.startPos.y);\r\n\r\n // Start selection if mouse moved more than 5px\r\n const shouldActivate = deltaX > 5 || deltaY > 5;\r\n\r\n const newSelectionBox = {\r\n ...selectionBox,\r\n currentPos: { x: e.clientX, y: e.clientY },\r\n isActive: shouldActivate || selectionBox.isActive,\r\n };\r\n\r\n setSelectionBox(newSelectionBox);\r\n\r\n // Real-time visual feedback: update selection as we drag\r\n if (newSelectionBox.isActive) {\r\n selectElementsInBox(\r\n newSelectionBox.startPos,\r\n newSelectionBox.currentPos\r\n );\r\n }\r\n };\r\n\r\n const handleMouseUp = () => {\r\n console.log(\r\n JSON.stringify({ mouseUp: { wasActive: selectionBox?.isActive } })\r\n );\r\n\r\n // If we had an active selection, mark that we just finished selecting\r\n if (selectionBox?.isActive) {\r\n console.log(JSON.stringify({ settingJustFinishedSelecting: true }));\r\n setJustFinishedSelecting(true);\r\n // Clear the flag after a short delay to allow click events to check it\r\n setTimeout(() => {\r\n console.log(JSON.stringify({ clearingJustFinishedSelecting: true }));\r\n setJustFinishedSelecting(false);\r\n }, 50);\r\n }\r\n\r\n // Don't call selectElementsInBox again - real-time selection already handled it\r\n // Just clean up the selection box visual\r\n setSelectionBox(null);\r\n };\r\n\r\n window.addEventListener(\"mousemove\", handleMouseMove);\r\n window.addEventListener(\"mouseup\", handleMouseUp);\r\n\r\n return () => {\r\n window.removeEventListener(\"mousemove\", handleMouseMove);\r\n window.removeEventListener(\"mouseup\", handleMouseUp);\r\n };\r\n }, [selectionBox, selectElementsInBox]);\r\n\r\n return {\r\n selectionBox,\r\n handleMouseDown,\r\n isSelecting: selectionBox?.isActive || false,\r\n justFinishedSelecting,\r\n };\r\n}\r\n","\"use client\";\r\n\r\nimport { SnapPoint } from \"@/hooks/use-timeline-snapping\";\r\nimport { TIMELINE_CONSTANTS } from \"@/constants/timeline-constants\";\r\nimport type { TimelineTrack } from \"@/types/timeline\";\r\nimport { useState, useEffect } from \"react\";\r\n\r\ninterface SnapIndicatorProps {\r\n snapPoint: SnapPoint | null;\r\n zoomLevel: number;\r\n isVisible: boolean;\r\n tracks: TimelineTrack[];\r\n timelineRef: React.RefObject<HTMLDivElement>;\r\n trackLabelsRef?: React.RefObject<HTMLDivElement>;\r\n tracksScrollRef: React.RefObject<HTMLDivElement>;\r\n}\r\n\r\nexport function SnapIndicator({\r\n snapPoint,\r\n zoomLevel,\r\n isVisible,\r\n tracks,\r\n timelineRef,\r\n trackLabelsRef,\r\n tracksScrollRef,\r\n}: SnapIndicatorProps) {\r\n const [scrollLeft, setScrollLeft] = useState(0);\r\n\r\n // Track scroll position to lock snap indicator to frame\r\n useEffect(() => {\r\n const tracksViewport = tracksScrollRef.current?.querySelector(\r\n \"[data-radix-scroll-area-viewport]\"\r\n ) as HTMLElement;\r\n\r\n if (!tracksViewport) return;\r\n\r\n const handleScroll = () => {\r\n setScrollLeft(tracksViewport.scrollLeft);\r\n };\r\n\r\n // Set initial scroll position\r\n setScrollLeft(tracksViewport.scrollLeft);\r\n\r\n tracksViewport.addEventListener(\"scroll\", handleScroll);\r\n return () => tracksViewport.removeEventListener(\"scroll\", handleScroll);\r\n }, [tracksScrollRef]);\r\n\r\n if (!isVisible || !snapPoint) {\r\n return null;\r\n }\r\n\r\n const timelineContainerHeight = timelineRef.current?.offsetHeight || 400;\r\n const totalHeight = timelineContainerHeight - 8; // 8px padding from edges\r\n\r\n // Get dynamic track labels width, fallback to 0 if no tracks or no ref\r\n const trackLabelsWidth =\r\n tracks.length > 0 && trackLabelsRef?.current\r\n ? trackLabelsRef.current.offsetWidth\r\n : 0;\r\n\r\n // Calculate position locked to timeline content (accounting for scroll)\r\n const timelinePosition =\r\n snapPoint.time * TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevel;\r\n const leftPosition = trackLabelsWidth + timelinePosition - scrollLeft;\r\n\r\n return (\r\n <div\r\n className=\"absolute pointer-events-none z-90\"\r\n style={{\r\n left: `${leftPosition}px`,\r\n top: 0,\r\n height: `${totalHeight}px`,\r\n width: \"2px\",\r\n }}\r\n >\r\n <div className={\"w-0.5 h-full bg-primary/40 opacity-80\"} />\r\n </div>\r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\r\nimport { Button } from \"../../ui/button\";\r\nimport {\r\n Scissors,\r\n ArrowLeftToLine,\r\n ArrowRightToLine,\r\n Trash2,\r\n Snowflake,\r\n Copy,\r\n SplitSquareHorizontal,\r\n Pause,\r\n Play,\r\n Video,\r\n Music,\r\n TypeIcon,\r\n Magnet,\r\n Link,\r\n ZoomIn,\r\n ZoomOut,\r\n Bookmark,\r\n Eye,\r\n MicOff,\r\n Mic,\r\n} from \"lucide-react\";\r\nimport {\r\n Tooltip,\r\n TooltipContent,\r\n TooltipTrigger,\r\n TooltipProvider,\r\n} from \"../../ui/tooltip\";\r\nimport {\r\n ContextMenu,\r\n ContextMenuContent,\r\n ContextMenuItem,\r\n ContextMenuTrigger,\r\n} from \"../../ui/context-menu\";\r\nimport { useTimelineStore } from \"@/stores/timeline-store\";\r\nimport { useMediaStore } from \"@/stores/media-store\";\r\nimport { usePlaybackStore } from \"@/stores/playback-store\";\r\nimport { useProjectStore } from \"@/stores/project-store\";\r\nimport { useTimelineZoom } from \"@/hooks/use-timeline-zoom\";\r\nimport { processMediaFiles } from \"@/lib/media-processing\";\r\nimport { toast } from \"sonner\";\r\nimport { useState, useRef, useEffect, useCallback } from \"react\";\r\nimport { TimelineTrackContent } from \"./timeline-track\";\r\nimport {\r\n TimelinePlayhead,\r\n useTimelinePlayheadRuler,\r\n} from \"./timeline-playhead\";\r\nimport { SelectionBox } from \"../selection-box\";\r\nimport { useSelectionBox } from \"@/hooks/use-selection-box\";\r\nimport { SnapIndicator } from \"../snap-indicator\";\r\nimport { SnapPoint } from \"@/hooks/use-timeline-snapping\";\r\nimport type { DragData, TimelineTrack } from \"@/types/timeline\";\r\nimport {\r\n getTrackHeight,\r\n getCumulativeHeightBefore,\r\n getTotalTracksHeight,\r\n TIMELINE_CONSTANTS,\r\n snapTimeToFrame,\r\n} from \"@/constants/timeline-constants\";\r\nimport { Slider } from \"@/components/ui/slider\";\r\n\r\nexport function Timeline() {\r\n // Timeline shows all tracks (video, audio, effects) and their elements.\r\n // You can drag media here to add it to your project.\r\n // elements can be trimmed, deleted, and moved.\r\n\r\n const {\r\n tracks,\r\n getTotalDuration,\r\n clearSelectedElements,\r\n snappingEnabled,\r\n setSelectedElements,\r\n toggleTrackMute,\r\n dragState,\r\n } = useTimelineStore();\r\n const { mediaItems, addMediaItem } = useMediaStore();\r\n const { activeProject } = useProjectStore();\r\n const { currentTime, duration, seek, setDuration, isPlaying, toggle } =\r\n usePlaybackStore();\r\n const [isDragOver, setIsDragOver] = useState(false);\r\n const [isProcessing, setIsProcessing] = useState(false);\r\n const [progress, setProgress] = useState(0);\r\n const dragCounterRef = useRef(0);\r\n const timelineRef = useRef<HTMLDivElement>(null);\r\n const rulerRef = useRef<HTMLDivElement>(null);\r\n const [isInTimeline, setIsInTimeline] = useState(false);\r\n\r\n // Track mouse down/up for distinguishing clicks from drag/resize ends\r\n const mouseTrackingRef = useRef({\r\n isMouseDown: false,\r\n downX: 0,\r\n downY: 0,\r\n downTime: 0,\r\n });\r\n\r\n // Timeline zoom functionality\r\n const { zoomLevel, setZoomLevel, handleWheel } = useTimelineZoom({\r\n containerRef: timelineRef,\r\n isInTimeline,\r\n });\r\n\r\n // Old marquee selection removed - using new SelectionBox component instead\r\n\r\n // Dynamic timeline width calculation based on playhead position and duration\r\n const dynamicTimelineWidth = Math.max(\r\n (duration || 0) * TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevel, // Base width from duration\r\n (currentTime + 30) * TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevel, // Width to show current time + 30 seconds buffer\r\n timelineRef.current?.clientWidth || 1000 // Minimum width\r\n );\r\n\r\n // Scroll synchronization and auto-scroll to playhead\r\n const rulerScrollRef = useRef<HTMLDivElement>(null);\r\n const tracksScrollRef = useRef<HTMLDivElement>(null);\r\n const trackLabelsRef = useRef<HTMLDivElement>(null);\r\n const playheadRef = useRef<HTMLDivElement>(null);\r\n const trackLabelsScrollRef = useRef<HTMLDivElement>(null);\r\n const isUpdatingRef = useRef(false);\r\n const lastRulerSync = useRef(0);\r\n const lastTracksSync = useRef(0);\r\n const lastVerticalSync = useRef(0);\r\n\r\n // Timeline playhead ruler handlers\r\n const { handleRulerMouseDown } = useTimelinePlayheadRuler({\r\n currentTime,\r\n duration,\r\n zoomLevel,\r\n seek,\r\n rulerRef,\r\n rulerScrollRef,\r\n tracksScrollRef,\r\n playheadRef,\r\n });\r\n\r\n // Selection box functionality\r\n const tracksContainerRef = useRef<HTMLDivElement>(null);\r\n const {\r\n selectionBox,\r\n handleMouseDown: handleSelectionMouseDown,\r\n isSelecting,\r\n justFinishedSelecting,\r\n } = useSelectionBox({\r\n containerRef: tracksContainerRef,\r\n playheadRef,\r\n onSelectionComplete: (elements) => {\r\n console.log(JSON.stringify({ onSelectionComplete: elements.length }));\r\n setSelectedElements(elements);\r\n },\r\n });\r\n\r\n // Calculate snap indicator state\r\n const [currentSnapPoint, setCurrentSnapPoint] = useState<SnapPoint | null>(\r\n null\r\n );\r\n const showSnapIndicator =\r\n dragState.isDragging && snappingEnabled && currentSnapPoint !== null;\r\n\r\n // Callback to handle snap point changes from TimelineTrackContent\r\n const handleSnapPointChange = useCallback((snapPoint: SnapPoint | null) => {\r\n setCurrentSnapPoint(snapPoint);\r\n }, []);\r\n\r\n // Track mouse down to distinguish real clicks from drag/resize ends\r\n const handleTimelineMouseDown = useCallback((e: React.MouseEvent) => {\r\n // Only track mouse down on timeline background areas (not elements)\r\n const target = e.target as HTMLElement;\r\n const isTimelineBackground =\r\n !target.closest(\".timeline-element\") &&\r\n !playheadRef.current?.contains(target) &&\r\n !target.closest(\"[data-track-labels]\");\r\n\r\n if (isTimelineBackground) {\r\n mouseTrackingRef.current = {\r\n isMouseDown: true,\r\n downX: e.clientX,\r\n downY: e.clientY,\r\n downTime: e.timeStamp,\r\n };\r\n }\r\n }, []);\r\n\r\n // Timeline content click to seek handler\r\n const handleTimelineContentClick = useCallback(\r\n (e: React.MouseEvent) => {\r\n const { isMouseDown, downX, downY, downTime } = mouseTrackingRef.current;\r\n\r\n // Reset mouse tracking\r\n mouseTrackingRef.current = {\r\n isMouseDown: false,\r\n downX: 0,\r\n downY: 0,\r\n downTime: 0,\r\n };\r\n\r\n // Only process as click if we tracked a mouse down on timeline background\r\n if (!isMouseDown) {\r\n console.log(\r\n JSON.stringify({\r\n ignoredClickWithoutMouseDown: true,\r\n timeStamp: e.timeStamp,\r\n })\r\n );\r\n return;\r\n }\r\n\r\n // Check if mouse moved significantly (indicates drag, not click)\r\n const deltaX = Math.abs(e.clientX - downX);\r\n const deltaY = Math.abs(e.clientY - downY);\r\n const deltaTime = e.timeStamp - downTime;\r\n\r\n if (deltaX > 5 || deltaY > 5 || deltaTime > 500) {\r\n console.log(\r\n JSON.stringify({\r\n ignoredDragNotClick: true,\r\n deltaX,\r\n deltaY,\r\n deltaTime,\r\n timeStamp: e.timeStamp,\r\n })\r\n );\r\n return;\r\n }\r\n\r\n // Don't seek if this was a selection box operation\r\n if (isSelecting || justFinishedSelecting) {\r\n return;\r\n }\r\n\r\n // Don't seek if clicking on timeline elements, but still deselect\r\n if ((e.target as HTMLElement).closest(\".timeline-element\")) {\r\n return;\r\n }\r\n\r\n // Don't seek if clicking on playhead\r\n if (playheadRef.current?.contains(e.target as Node)) {\r\n return;\r\n }\r\n\r\n // Don't seek if clicking on track labels\r\n if ((e.target as HTMLElement).closest(\"[data-track-labels]\")) {\r\n clearSelectedElements();\r\n return;\r\n }\r\n\r\n // Clear selected elements when clicking empty timeline area\r\n console.log(JSON.stringify({ clearingSelectedElements: true }));\r\n clearSelectedElements();\r\n\r\n // Determine if we're clicking in ruler or tracks area\r\n const isRulerClick = (e.target as HTMLElement).closest(\r\n \"[data-ruler-area]\"\r\n );\r\n\r\n let mouseX: number;\r\n let scrollLeft = 0;\r\n\r\n if (isRulerClick) {\r\n // Calculate based on ruler position\r\n const rulerContent = rulerScrollRef.current?.querySelector(\r\n \"[data-radix-scroll-area-viewport]\"\r\n ) as HTMLElement;\r\n if (!rulerContent) return;\r\n const rect = rulerContent.getBoundingClientRect();\r\n mouseX = e.clientX - rect.left;\r\n scrollLeft = rulerContent.scrollLeft;\r\n } else {\r\n // Calculate based on tracks content position\r\n const tracksContent = tracksScrollRef.current?.querySelector(\r\n \"[data-radix-scroll-area-viewport]\"\r\n ) as HTMLElement;\r\n if (!tracksContent) return;\r\n const rect = tracksContent.getBoundingClientRect();\r\n mouseX = e.clientX - rect.left;\r\n scrollLeft = tracksContent.scrollLeft;\r\n }\r\n\r\n const rawTime = Math.max(\r\n 0,\r\n Math.min(\r\n duration,\r\n (mouseX + scrollLeft) /\r\n (TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevel)\r\n )\r\n );\r\n\r\n // Use frame snapping for timeline clicking\r\n const projectFps = activeProject?.fps || 30;\r\n const time = snapTimeToFrame(rawTime, projectFps);\r\n\r\n seek(time);\r\n },\r\n [\r\n duration,\r\n zoomLevel,\r\n seek,\r\n rulerScrollRef,\r\n tracksScrollRef,\r\n clearSelectedElements,\r\n isSelecting,\r\n justFinishedSelecting,\r\n ]\r\n );\r\n\r\n // Update timeline duration when tracks change\r\n useEffect(() => {\r\n const totalDuration = getTotalDuration();\r\n setDuration(Math.max(totalDuration, 10)); // Minimum 10 seconds for empty timeline\r\n }, [tracks, setDuration, getTotalDuration]);\r\n\r\n // Old marquee system removed - using new SelectionBox component instead\r\n\r\n const handleDragEnter = (e: React.DragEvent) => {\r\n // When something is dragged over the timeline, show overlay\r\n e.preventDefault();\r\n // Don't show overlay for timeline elements - they're handled by tracks\r\n if (e.dataTransfer.types.includes(\"application/x-timeline-element\")) {\r\n return;\r\n }\r\n dragCounterRef.current += 1;\r\n if (!isDragOver) {\r\n setIsDragOver(true);\r\n }\r\n };\r\n\r\n const handleDragOver = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n };\r\n\r\n const handleDragLeave = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n\r\n // Don't update state for timeline elements - they're handled by tracks\r\n if (e.dataTransfer.types.includes(\"application/x-timeline-element\")) {\r\n return;\r\n }\r\n\r\n dragCounterRef.current -= 1;\r\n if (dragCounterRef.current === 0) {\r\n setIsDragOver(false);\r\n }\r\n };\r\n\r\n const handleDrop = async (e: React.DragEvent) => {\r\n // When media is dropped, add it as a new track/element\r\n e.preventDefault();\r\n setIsDragOver(false);\r\n dragCounterRef.current = 0;\r\n\r\n // Ignore timeline element drags - they're handled by track-specific handlers\r\n const hasTimelineElement = e.dataTransfer.types.includes(\r\n \"application/x-timeline-element\"\r\n );\r\n if (hasTimelineElement) {\r\n return;\r\n }\r\n\r\n const itemData = e.dataTransfer.getData(\"application/x-media-item\");\r\n if (itemData) {\r\n try {\r\n const dragData: DragData = JSON.parse(itemData);\r\n\r\n if (dragData.type === \"text\") {\r\n // Always create new text track to avoid overlaps\r\n useTimelineStore.getState().addTextToNewTrack(dragData);\r\n } else {\r\n // Handle media items\r\n const mediaItem = mediaItems.find(\r\n (item: any) => item.id === dragData.id\r\n );\r\n if (!mediaItem) {\r\n toast.error(\"Media item not found\");\r\n return;\r\n }\r\n\r\n useTimelineStore.getState().addMediaToNewTrack(mediaItem);\r\n }\r\n } catch (error) {\r\n console.error(\"Error parsing dropped item data:\", error);\r\n toast.error(\"Failed to add item to timeline\");\r\n }\r\n } else if (e.dataTransfer.files?.length > 0) {\r\n // Handle file drops by creating new tracks\r\n if (!activeProject) {\r\n toast.error(\"No active project\");\r\n return;\r\n }\r\n\r\n setIsProcessing(true);\r\n setProgress(0);\r\n try {\r\n const processedItems = await processMediaFiles(\r\n e.dataTransfer.files,\r\n (p) => setProgress(p)\r\n );\r\n for (const processedItem of processedItems) {\r\n await addMediaItem(activeProject.id, processedItem);\r\n const currentMediaItems = useMediaStore.getState().mediaItems;\r\n const addedItem = currentMediaItems.find(\r\n (item) =>\r\n item.name === processedItem.name && item.url === processedItem.url\r\n );\r\n if (addedItem) {\r\n useTimelineStore.getState().addMediaToNewTrack(addedItem);\r\n }\r\n }\r\n } catch (error) {\r\n // Show error if file processing fails\r\n console.error(\"Error processing external files:\", error);\r\n toast.error(\"Failed to process dropped files\");\r\n } finally {\r\n setIsProcessing(false);\r\n setProgress(0);\r\n }\r\n }\r\n };\r\n\r\n const dragProps = {\r\n onDragEnter: handleDragEnter,\r\n onDragOver: handleDragOver,\r\n onDragLeave: handleDragLeave,\r\n onDrop: handleDrop,\r\n };\r\n\r\n // --- Scroll synchronization effect ---\r\n useEffect(() => {\r\n const rulerViewport = rulerScrollRef.current?.querySelector(\r\n \"[data-radix-scroll-area-viewport]\"\r\n ) as HTMLElement;\r\n const tracksViewport = tracksScrollRef.current?.querySelector(\r\n \"[data-radix-scroll-area-viewport]\"\r\n ) as HTMLElement;\r\n const trackLabelsViewport = trackLabelsScrollRef.current?.querySelector(\r\n \"[data-radix-scroll-area-viewport]\"\r\n ) as HTMLElement;\r\n\r\n if (!rulerViewport || !tracksViewport) return;\r\n\r\n // Horizontal scroll synchronization between ruler and tracks\r\n const handleRulerScroll = () => {\r\n const now = Date.now();\r\n if (isUpdatingRef.current || now - lastRulerSync.current < 16) return;\r\n lastRulerSync.current = now;\r\n isUpdatingRef.current = true;\r\n tracksViewport.scrollLeft = rulerViewport.scrollLeft;\r\n isUpdatingRef.current = false;\r\n };\r\n const handleTracksScroll = () => {\r\n const now = Date.now();\r\n if (isUpdatingRef.current || now - lastTracksSync.current < 16) return;\r\n lastTracksSync.current = now;\r\n isUpdatingRef.current = true;\r\n rulerViewport.scrollLeft = tracksViewport.scrollLeft;\r\n isUpdatingRef.current = false;\r\n };\r\n\r\n rulerViewport.addEventListener(\"scroll\", handleRulerScroll);\r\n tracksViewport.addEventListener(\"scroll\", handleTracksScroll);\r\n\r\n // Vertical scroll synchronization between track labels and tracks content\r\n if (trackLabelsViewport) {\r\n const handleTrackLabelsScroll = () => {\r\n const now = Date.now();\r\n if (isUpdatingRef.current || now - lastVerticalSync.current < 16)\r\n return;\r\n lastVerticalSync.current = now;\r\n isUpdatingRef.current = true;\r\n tracksViewport.scrollTop = trackLabelsViewport.scrollTop;\r\n isUpdatingRef.current = false;\r\n };\r\n const handleTracksVerticalScroll = () => {\r\n const now = Date.now();\r\n if (isUpdatingRef.current || now - lastVerticalSync.current < 16)\r\n return;\r\n lastVerticalSync.current = now;\r\n isUpdatingRef.current = true;\r\n trackLabelsViewport.scrollTop = tracksViewport.scrollTop;\r\n isUpdatingRef.current = false;\r\n };\r\n\r\n trackLabelsViewport.addEventListener(\"scroll\", handleTrackLabelsScroll);\r\n tracksViewport.addEventListener(\"scroll\", handleTracksVerticalScroll);\r\n\r\n return () => {\r\n rulerViewport.removeEventListener(\"scroll\", handleRulerScroll);\r\n tracksViewport.removeEventListener(\"scroll\", handleTracksScroll);\r\n trackLabelsViewport.removeEventListener(\r\n \"scroll\",\r\n handleTrackLabelsScroll\r\n );\r\n tracksViewport.removeEventListener(\r\n \"scroll\",\r\n handleTracksVerticalScroll\r\n );\r\n };\r\n }\r\n\r\n return () => {\r\n rulerViewport.removeEventListener(\"scroll\", handleRulerScroll);\r\n tracksViewport.removeEventListener(\"scroll\", handleTracksScroll);\r\n };\r\n }, []);\r\n\r\n return (\r\n <div\r\n className={\r\n \"h-full flex flex-col transition-colors duration-200 relative bg-panel rounded-sm overflow-hidden\"\r\n }\r\n {...dragProps}\r\n onMouseEnter={() => setIsInTimeline(true)}\r\n onMouseLeave={() => setIsInTimeline(false)}\r\n >\r\n <TimelineToolbar zoomLevel={zoomLevel} setZoomLevel={setZoomLevel} />\r\n\r\n {/* Timeline Container */}\r\n <div\r\n className=\"flex-1 flex flex-col overflow-hidden relative\"\r\n ref={timelineRef}\r\n >\r\n <TimelinePlayhead\r\n currentTime={currentTime}\r\n duration={duration}\r\n zoomLevel={zoomLevel}\r\n tracks={tracks}\r\n seek={seek}\r\n rulerRef={rulerRef}\r\n rulerScrollRef={rulerScrollRef}\r\n tracksScrollRef={tracksScrollRef}\r\n trackLabelsRef={trackLabelsRef}\r\n timelineRef={timelineRef}\r\n playheadRef={playheadRef}\r\n isSnappingToPlayhead={\r\n showSnapIndicator && currentSnapPoint?.type === \"playhead\"\r\n }\r\n />\r\n <SnapIndicator\r\n snapPoint={currentSnapPoint}\r\n zoomLevel={zoomLevel}\r\n tracks={tracks}\r\n timelineRef={timelineRef}\r\n trackLabelsRef={trackLabelsRef}\r\n tracksScrollRef={tracksScrollRef}\r\n isVisible={showSnapIndicator}\r\n />\r\n {/* Timeline Header with Ruler */}\r\n <div className=\"flex bg-panel sticky top-0 z-10\">\r\n {/* Track Labels Header */}\r\n <div className=\"w-28 shrink-0 bg-panel border-r flex items-center justify-between px-3 py-2\">\r\n {/* Empty space */}\r\n <span className=\"text-sm font-medium text-muted-foreground opacity-0\">\r\n .\r\n </span>\r\n </div>\r\n\r\n {/* Timeline Ruler */}\r\n <div\r\n className=\"flex-1 relative overflow-hidden h-10\"\r\n onWheel={(e) => {\r\n // Check if this is horizontal scrolling - if so, don't handle it here\r\n if (e.shiftKey || Math.abs(e.deltaX) > Math.abs(e.deltaY)) {\r\n return; // Let ScrollArea handle horizontal scrolling\r\n }\r\n handleWheel(e);\r\n }}\r\n onMouseDown={handleSelectionMouseDown}\r\n onClick={handleTimelineContentClick}\r\n data-ruler-area\r\n >\r\n <ScrollArea className=\"w-full\" ref={rulerScrollRef}>\r\n <div\r\n ref={rulerRef}\r\n className=\"relative h-10 select-none cursor-default\"\r\n style={{\r\n width: `${dynamicTimelineWidth}px`,\r\n }}\r\n onMouseDown={handleRulerMouseDown}\r\n >\r\n {/* Time markers */}\r\n {(() => {\r\n // Calculate appropriate time interval based on zoom level\r\n const getTimeInterval = (zoom: number) => {\r\n const pixelsPerSecond =\r\n TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoom;\r\n if (pixelsPerSecond >= 200) return 0.1; // Every 0.1s when very zoomed in\r\n if (pixelsPerSecond >= 100) return 0.5; // Every 0.5s when zoomed in\r\n if (pixelsPerSecond >= 50) return 1; // Every 1s at normal zoom\r\n if (pixelsPerSecond >= 25) return 2; // Every 2s when zoomed out\r\n if (pixelsPerSecond >= 12) return 5; // Every 5s when more zoomed out\r\n if (pixelsPerSecond >= 6) return 10; // Every 10s when very zoomed out\r\n return 30; // Every 30s when extremely zoomed out\r\n };\r\n\r\n const interval = getTimeInterval(zoomLevel);\r\n const markerCount = Math.ceil(duration / interval) + 1;\r\n\r\n return Array.from({ length: markerCount }, (_, i) => {\r\n const time = i * interval;\r\n if (time > duration) return null;\r\n\r\n const isMainMarker =\r\n time % (interval >= 1 ? Math.max(1, interval) : 1) === 0;\r\n\r\n return (\r\n <div\r\n key={i}\r\n className={`absolute top-0 h-4 ${\r\n isMainMarker\r\n ? \"border-l border-muted-foreground/40\"\r\n : \"border-l border-muted-foreground/20\"\r\n }`}\r\n style={{\r\n left: `${\r\n time *\r\n TIMELINE_CONSTANTS.PIXELS_PER_SECOND *\r\n zoomLevel\r\n }px`,\r\n }}\r\n >\r\n <span\r\n className={`absolute top-1 left-1 text-[0.6rem] ${\r\n isMainMarker\r\n ? \"text-muted-foreground font-medium\"\r\n : \"text-muted-foreground/70\"\r\n }`}\r\n >\r\n {(() => {\r\n const formatTime = (seconds: number) => {\r\n const hours = Math.floor(seconds / 3600);\r\n const minutes = Math.floor((seconds % 3600) / 60);\r\n const secs = seconds % 60;\r\n\r\n if (hours > 0) {\r\n return `${hours}:${minutes\r\n .toString()\r\n .padStart(2, \"0\")}:${Math.floor(secs)\r\n .toString()\r\n .padStart(2, \"0\")}`;\r\n }\r\n if (minutes > 0) {\r\n return `${minutes}:${Math.floor(secs)\r\n .toString()\r\n .padStart(2, \"0\")}`;\r\n }\r\n if (interval >= 1) {\r\n return `${Math.floor(secs)}s`;\r\n }\r\n return `${secs.toFixed(1)}s`;\r\n };\r\n return formatTime(time);\r\n })()}\r\n </span>\r\n </div>\r\n );\r\n }).filter(Boolean);\r\n })()}\r\n\r\n {/* Bookmark markers */}\r\n {(() => {\r\n const { activeProject } = useProjectStore.getState();\r\n if (!activeProject?.bookmarks?.length) return null;\r\n\r\n return activeProject.bookmarks.map((bookmarkTime, i) => (\r\n <div\r\n key={`bookmark-${i}`}\r\n className=\"absolute top-0 h-10 w-0.5 !bg-primary cursor-pointer\"\r\n style={{\r\n left: `${bookmarkTime * TIMELINE_CONSTANTS.PIXELS_PER_SECOND * zoomLevel}px`,\r\n }}\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n usePlaybackStore.getState().seek(bookmarkTime);\r\n }}\r\n >\r\n <div className=\"absolute top-[-1px] left-[-5px] text-primary\">\r\n <Bookmark className=\"h-3 w-3 fill-primary\" />\r\n </div>\r\n </div>\r\n ));\r\n })()}\r\n </div>\r\n </ScrollArea>\r\n </div>\r\n </div>\r\n\r\n {/* Tracks Area */}\r\n <div className=\"flex-1 flex overflow-hidden\">\r\n {/* Track Labels */}\r\n {tracks.length > 0 && (\r\n <div\r\n ref={trackLabelsRef}\r\n className=\"w-28 shrink-0 border-r overflow-y-auto z-100 bg-panel\"\r\n data-track-labels\r\n >\r\n <ScrollArea className=\"w-full h-full\" ref={trackLabelsScrollRef}>\r\n <div className=\"flex flex-col gap-1\">\r\n {tracks.map((track) => (\r\n <div\r\n key={track.id}\r\n className=\"flex items-center px-3 group\"\r\n style={{ height: `${getTrackHeight(track.type)}px` }}\r\n >\r\n <div className=\"flex items-center justify-end flex-1 min-w-0 gap-2\">\r\n {track.muted ? (\r\n <MicOff\r\n className=\"h-4 w-4 text-destructive cursor-pointer\"\r\n onClick={() => toggleTrackMute(track.id)}\r\n />\r\n ) : (\r\n <Mic\r\n className=\"h-4 w-4 text-muted-foreground cursor-pointer\"\r\n onClick={() => toggleTrackMute(track.id)}\r\n />\r\n )}\r\n <Eye className=\"h-4 w-4 text-muted-foreground\" />\r\n <TrackIcon track={track} />\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </ScrollArea>\r\n </div>\r\n )}\r\n\r\n {/* Timeline Tracks Content */}\r\n <div\r\n className=\"flex-1 relative overflow-hidden\"\r\n onWheel={(e) => {\r\n // Check if this is horizontal scrolling - if so, don't handle it here\r\n if (e.shiftKey || Math.abs(e.deltaX) > Math.abs(e.deltaY)) {\r\n return; // Let ScrollArea handle horizontal scrolling\r\n }\r\n handleWheel(e);\r\n }}\r\n onMouseDown={(e) => {\r\n handleTimelineMouseDown(e);\r\n handleSelectionMouseDown(e);\r\n }}\r\n onClick={handleTimelineContentClick}\r\n ref={tracksContainerRef}\r\n >\r\n <SelectionBox\r\n startPos={selectionBox?.startPos || null}\r\n currentPos={selectionBox?.currentPos || null}\r\n containerRef={tracksContainerRef}\r\n isActive={selectionBox?.isActive || false}\r\n />\r\n <ScrollArea className=\"w-full h-full\" ref={tracksScrollRef}>\r\n <div\r\n className=\"relative flex-1\"\r\n style={{\r\n height: `${Math.max(\r\n 200,\r\n Math.min(800, getTotalTracksHeight(tracks))\r\n )}px`,\r\n width: `${dynamicTimelineWidth}px`,\r\n }}\r\n >\r\n {tracks.length === 0 ? (\r\n <div />\r\n ) : (\r\n <>\r\n {tracks.map((track, index) => (\r\n <ContextMenu key={track.id}>\r\n <ContextMenuTrigger asChild>\r\n <div\r\n className=\"absolute left-0 right-0\"\r\n style={{\r\n top: `${getCumulativeHeightBefore(\r\n tracks,\r\n index\r\n )}px`,\r\n height: `${getTrackHeight(track.type)}px`,\r\n }}\r\n onClick={(e) => {\r\n // If clicking empty area (not on a element), deselect all elements\r\n if (\r\n !(e.target as HTMLElement).closest(\r\n \".timeline-element\"\r\n )\r\n ) {\r\n clearSelectedElements();\r\n }\r\n }}\r\n >\r\n <TimelineTrackContent\r\n track={track}\r\n zoomLevel={zoomLevel}\r\n onSnapPointChange={handleSnapPointChange}\r\n />\r\n </div>\r\n </ContextMenuTrigger>\r\n <ContextMenuContent className=\"z-200\">\r\n <ContextMenuItem\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n toggleTrackMute(track.id);\r\n }}\r\n >\r\n {track.muted ? \"Unmute Track\" : \"Mute Track\"}\r\n </ContextMenuItem>\r\n <ContextMenuItem onClick={(e) => e.stopPropagation()}>\r\n Track settings (soon)\r\n </ContextMenuItem>\r\n </ContextMenuContent>\r\n </ContextMenu>\r\n ))}\r\n </>\r\n )}\r\n </div>\r\n </ScrollArea>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction TrackIcon({ track }: { track: TimelineTrack }) {\r\n return (\r\n <>\r\n {track.type === \"media\" && (\r\n <Video className=\"w-4 h-4 shrink-0 text-muted-foreground\" />\r\n )}\r\n {track.type === \"text\" && (\r\n <TypeIcon className=\"w-4 h-4 shrink-0 text-muted-foreground\" />\r\n )}\r\n {track.type === \"audio\" && (\r\n <Music className=\"w-4 h-4 shrink-0 text-muted-foreground\" />\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nfunction TimelineToolbar({\r\n zoomLevel,\r\n setZoomLevel,\r\n}: {\r\n zoomLevel: number;\r\n setZoomLevel: (zoom: number) => void;\r\n}) {\r\n const {\r\n tracks,\r\n addTrack,\r\n addElementToTrack,\r\n removeElementFromTrack,\r\n removeElementFromTrackWithRipple,\r\n selectedElements,\r\n clearSelectedElements,\r\n splitElement,\r\n splitAndKeepLeft,\r\n splitAndKeepRight,\r\n separateAudio,\r\n snappingEnabled,\r\n toggleSnapping,\r\n rippleEditingEnabled,\r\n toggleRippleEditing,\r\n } = useTimelineStore();\r\n const { currentTime, duration, isPlaying, toggle } = usePlaybackStore();\r\n const { toggleBookmark, isBookmarked } = useProjectStore();\r\n\r\n // Action handlers\r\n const handleSplitSelected = () => {\r\n if (selectedElements.length === 0) return;\r\n let splitCount = 0;\r\n selectedElements.forEach(({ trackId, elementId }) => {\r\n const track = tracks.find((t) => t.id === trackId);\r\n const element = track?.elements.find((c) => c.id === elementId);\r\n if (element && track) {\r\n const effectiveStart = element.startTime;\r\n const effectiveEnd =\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd);\r\n if (currentTime > effectiveStart && currentTime < effectiveEnd) {\r\n const newElementId = splitElement(trackId, elementId, currentTime);\r\n if (newElementId) splitCount++;\r\n }\r\n }\r\n });\r\n if (splitCount === 0) {\r\n toast.error(\"Playhead must be within selected elements to split\");\r\n }\r\n };\r\n\r\n const handleDuplicateSelected = () => {\r\n if (selectedElements.length === 0) return;\r\n const canDuplicate = selectedElements.length === 1;\r\n if (!canDuplicate) return;\r\n\r\n selectedElements.forEach(({ trackId, elementId }) => {\r\n const track = tracks.find((t) => t.id === trackId);\r\n const element = track?.elements.find((el) => el.id === elementId);\r\n if (element) {\r\n const newStartTime =\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd) +\r\n 0.1;\r\n const { id, ...elementWithoutId } = element;\r\n addElementToTrack(trackId, {\r\n ...elementWithoutId,\r\n startTime: newStartTime,\r\n });\r\n }\r\n });\r\n clearSelectedElements();\r\n };\r\n\r\n const handleFreezeSelected = () => {\r\n toast.info(\"Freeze frame functionality coming soon!\");\r\n };\r\n\r\n const handleSplitAndKeepLeft = () => {\r\n if (selectedElements.length !== 1) {\r\n toast.error(\"Select exactly one element\");\r\n return;\r\n }\r\n const { trackId, elementId } = selectedElements[0];\r\n const track = tracks.find((t) => t.id === trackId);\r\n const element = track?.elements.find((c) => c.id === elementId);\r\n if (!element) return;\r\n const effectiveStart = element.startTime;\r\n const effectiveEnd =\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd);\r\n if (currentTime <= effectiveStart || currentTime >= effectiveEnd) {\r\n toast.error(\"Playhead must be within selected element\");\r\n return;\r\n }\r\n splitAndKeepLeft(trackId, elementId, currentTime);\r\n };\r\n\r\n const handleSplitAndKeepRight = () => {\r\n if (selectedElements.length !== 1) {\r\n toast.error(\"Select exactly one element\");\r\n return;\r\n }\r\n const { trackId, elementId } = selectedElements[0];\r\n const track = tracks.find((t) => t.id === trackId);\r\n const element = track?.elements.find((c) => c.id === elementId);\r\n if (!element) return;\r\n const effectiveStart = element.startTime;\r\n const effectiveEnd =\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd);\r\n if (currentTime <= effectiveStart || currentTime >= effectiveEnd) {\r\n toast.error(\"Playhead must be within selected element\");\r\n return;\r\n }\r\n splitAndKeepRight(trackId, elementId, currentTime);\r\n };\r\n\r\n const handleSeparateAudio = () => {\r\n if (selectedElements.length !== 1) {\r\n toast.error(\"Select exactly one media element to separate audio\");\r\n return;\r\n }\r\n const { trackId, elementId } = selectedElements[0];\r\n const track = tracks.find((t) => t.id === trackId);\r\n if (!track || track.type !== \"media\") {\r\n toast.error(\"Select a media element to separate audio\");\r\n return;\r\n }\r\n separateAudio(trackId, elementId);\r\n };\r\n\r\n const handleDeleteSelected = () => {\r\n if (selectedElements.length === 0) return;\r\n selectedElements.forEach(({ trackId, elementId }) => {\r\n if (rippleEditingEnabled) {\r\n removeElementFromTrackWithRipple(trackId, elementId);\r\n } else {\r\n removeElementFromTrack(trackId, elementId);\r\n }\r\n });\r\n clearSelectedElements();\r\n };\r\n\r\n // Zoom handlers\r\n const handleZoomIn = () => {\r\n setZoomLevel(Math.min(4, zoomLevel + 0.25));\r\n };\r\n\r\n const handleZoomOut = () => {\r\n setZoomLevel(Math.max(0.25, zoomLevel - 0.25));\r\n };\r\n\r\n const handleZoomSliderChange = (values: number[]) => {\r\n setZoomLevel(values[0]);\r\n };\r\n\r\n const handleToggleBookmark = async () => {\r\n await toggleBookmark(currentTime);\r\n };\r\n\r\n // Check if the current time is bookmarked\r\n const currentBookmarked = isBookmarked(currentTime);\r\n return (\r\n <div className=\"border-b flex items-center justify-between px-2 py-1\">\r\n <div className=\"flex items-center gap-1 w-full\">\r\n <TooltipProvider delayDuration={500}>\r\n {/* Play/Pause Button */}\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button\r\n variant=\"text\"\r\n size=\"icon\"\r\n onClick={toggle}\r\n className=\"mr-2\"\r\n >\r\n {isPlaying ? (\r\n <Pause className=\"h-4 w-4\" />\r\n ) : (\r\n <Play className=\"h-4 w-4\" />\r\n )}\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent>\r\n {isPlaying ? \"Pause (Space)\" : \"Play (Space)\"}\r\n </TooltipContent>\r\n </Tooltip>\r\n <div className=\"w-px h-6 bg-border mx-1\" />\r\n {/* Time Display */}\r\n <div\r\n className=\"text-xs text-muted-foreground font-mono px-2\"\r\n style={{ minWidth: \"18ch\", textAlign: \"center\" }}\r\n >\r\n {currentTime.toFixed(1)}s / {duration.toFixed(1)}s\r\n </div>\r\n {/* Test Clip Button - for debugging */}\r\n {tracks.length === 0 && (\r\n <>\r\n <div className=\"w-px h-6 bg-border mx-1\" />\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button\r\n variant=\"outline\"\r\n size=\"sm\"\r\n onClick={() => {\r\n const trackId = addTrack(\"media\");\r\n addElementToTrack(trackId, {\r\n type: \"media\",\r\n mediaId: \"test\",\r\n name: \"Test Clip\",\r\n duration: TIMELINE_CONSTANTS.DEFAULT_TEXT_DURATION,\r\n startTime: 0,\r\n trimStart: 0,\r\n trimEnd: 0,\r\n });\r\n }}\r\n className=\"text-xs\"\r\n >\r\n Add Test Clip\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent>Add a test clip to try playback</TooltipContent>\r\n </Tooltip>\r\n </>\r\n )}\r\n <div className=\"w-px h-6 bg-border mx-1\" />\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button variant=\"text\" size=\"icon\" onClick={handleSplitSelected}>\r\n <Scissors className=\"h-4 w-4\" />\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent>Split element (Ctrl+S)</TooltipContent>\r\n </Tooltip>\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button\r\n variant=\"text\"\r\n size=\"icon\"\r\n onClick={handleSplitAndKeepLeft}\r\n >\r\n <ArrowLeftToLine className=\"h-4 w-4\" />\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent>Split and keep left (Ctrl+Q)</TooltipContent>\r\n </Tooltip>\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button\r\n variant=\"text\"\r\n size=\"icon\"\r\n onClick={handleSplitAndKeepRight}\r\n >\r\n <ArrowRightToLine className=\"h-4 w-4\" />\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent>Split and keep right (Ctrl+W)</TooltipContent>\r\n </Tooltip>\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button variant=\"text\" size=\"icon\" onClick={handleSeparateAudio}>\r\n <SplitSquareHorizontal className=\"h-4 w-4\" />\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent>Separate audio (Ctrl+D)</TooltipContent>\r\n </Tooltip>\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button\r\n variant=\"text\"\r\n size=\"icon\"\r\n onClick={handleDuplicateSelected}\r\n >\r\n <Copy className=\"h-4 w-4\" />\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent>Duplicate element (Ctrl+D)</TooltipContent>\r\n </Tooltip>\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button variant=\"text\" size=\"icon\" onClick={handleFreezeSelected}>\r\n <Snowflake className=\"h-4 w-4\" />\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent>Freeze frame (F)</TooltipContent>\r\n </Tooltip>\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button variant=\"text\" size=\"icon\" onClick={handleDeleteSelected}>\r\n <Trash2 className=\"h-4 w-4\" />\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent>Delete element (Delete)</TooltipContent>\r\n </Tooltip>\r\n <div className=\"w-px h-6 bg-border mx-1\" />\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button variant=\"text\" size=\"icon\" onClick={handleToggleBookmark}>\r\n <Bookmark\r\n className={`h-4 w-4 ${currentBookmarked ? \"fill-primary text-primary\" : \"\"}`}\r\n />\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent>\r\n {currentBookmarked ? \"Remove bookmark\" : \"Add bookmark\"}\r\n </TooltipContent>\r\n </Tooltip>\r\n </TooltipProvider>\r\n </div>\r\n <div className=\"flex items-center gap-1\">\r\n <TooltipProvider delayDuration={500}>\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button variant=\"text\" size=\"icon\" onClick={toggleSnapping}>\r\n {snappingEnabled ? (\r\n <Magnet className=\"h-4 w-4 text-primary\" />\r\n ) : (\r\n <Magnet className=\"h-4 w-4\" />\r\n )}\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent>Auto snapping</TooltipContent>\r\n </Tooltip>\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button variant=\"text\" size=\"icon\" onClick={toggleRippleEditing}>\r\n <Link\r\n className={`h-4 w-4 ${\r\n rippleEditingEnabled ? \"text-primary\" : \"\"\r\n }`}\r\n />\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent>\r\n {rippleEditingEnabled\r\n ? \"Disable Ripple Editing\"\r\n : \"Enable Ripple Editing\"}\r\n </TooltipContent>\r\n </Tooltip>\r\n </TooltipProvider>\r\n\r\n <div className=\"h-6 w-px bg-border mx-1\" />\r\n <div className=\"flex items-center gap-1\">\r\n <Button variant=\"text\" size=\"icon\" onClick={handleZoomOut}>\r\n <ZoomOut className=\"h-4 w-4\" />\r\n </Button>\r\n <Slider\r\n className=\"w-24\"\r\n value={[zoomLevel]}\r\n onValueChange={handleZoomSliderChange}\r\n min={0.25}\r\n max={4}\r\n step={0.25}\r\n />\r\n <Button variant=\"text\" size=\"icon\" onClick={handleZoomIn}>\r\n <ZoomIn className=\"h-4 w-4\" />\r\n </Button>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","/* An `action` is a unique verb that is associated with certain thing that can be done on OpenCut.\r\n * For example, toggling playback or seeking.\r\n */\r\n\r\nimport {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useCallback,\r\n MutableRefObject,\r\n} from \"react\";\r\n\r\n// Simple event emitter for action changes\r\nclass ActionEmitter {\r\n private listeners: Array<(actions: Action[]) => void> = [];\r\n\r\n subscribe(listener: (actions: Action[]) => void) {\r\n this.listeners.push(listener);\r\n return () => {\r\n this.listeners = this.listeners.filter((l) => l !== listener);\r\n };\r\n }\r\n\r\n emit(actions: Action[]) {\r\n this.listeners.forEach((listener) => listener(actions));\r\n }\r\n}\r\n\r\nconst actionEmitter = new ActionEmitter();\r\n\r\nexport type Action =\r\n | \"toggle-play\" // Toggle play/pause state\r\n | \"stop-playback\" // Stop playback\r\n | \"seek-forward\" // Seek forward in playback\r\n | \"seek-backward\" // Seek backward in playback\r\n | \"frame-step-forward\" // Step forward by one frame\r\n | \"frame-step-backward\" // Step backward by one frame\r\n | \"jump-forward\" // Jump forward by 5 seconds\r\n | \"jump-backward\" // Jump backward by 5 seconds\r\n | \"goto-start\" // Go to timeline start\r\n | \"goto-end\" // Go to timeline end\r\n | \"split-element\" // Split element at current time\r\n | \"delete-selected\" // Delete selected elements\r\n | \"select-all\" // Select all elements\r\n | \"duplicate-selected\" // Duplicate selected element\r\n | \"toggle-snapping\" // Toggle snapping\r\n | \"undo\" // Undo last action\r\n | \"redo\"; // Redo last undone action\r\n\r\n/**\r\n * Defines the arguments, if present for a given type that is required to be passed on\r\n * invocation and will be passed to action handlers.\r\n *\r\n * This type is supposed to be an object with the key being one of the actions mentioned above.\r\n * The value to the key can be anything.\r\n * If an action has no argument, you do not need to add it to this type.\r\n *\r\n * NOTE: We can't enforce type checks to make sure the key is Action, you\r\n * will know if you got something wrong if there is a type error in this file\r\n */\r\ntype ActionArgsMap = {\r\n \"seek-forward\": { seconds: number } | undefined; // Args needed for seeking forward (default: 1)\r\n \"seek-backward\": { seconds: number } | undefined; // Args needed for seeking backward (default: 1)\r\n \"jump-forward\": { seconds: number } | undefined; // Args needed for jumping forward (default: 5)\r\n \"jump-backward\": { seconds: number } | undefined; // Args needed for jumping backward (default: 5)\r\n};\r\n\r\ntype KeysWithValueUndefined<T> = {\r\n [K in keyof T]: undefined extends T[K] ? K : never;\r\n}[keyof T];\r\n\r\n/**\r\n * Actions which require arguments for their invocation\r\n */\r\nexport type ActionWithArgs = keyof ActionArgsMap;\r\n\r\n/**\r\n * Actions which optionally takes in arguments for their invocation\r\n */\r\n\r\nexport type ActionWithOptionalArgs =\r\n | ActionWithNoArgs\r\n | KeysWithValueUndefined<ActionArgsMap>;\r\n\r\n/**\r\n * Actions which do not require arguments for their invocation\r\n */\r\nexport type ActionWithNoArgs = Exclude<Action, ActionWithArgs>;\r\n\r\n/**\r\n * Resolves the argument type for a given Action\r\n */\r\ntype ArgOfHoppAction<A extends Action> = A extends ActionWithArgs\r\n ? ActionArgsMap[A]\r\n : undefined;\r\n\r\n/**\r\n * Resolves the action function for a given Action, used by action handler function defs\r\n */\r\ntype ActionFunc<A extends Action> = A extends ActionWithArgs\r\n ? (arg: ArgOfHoppAction<A>, trigger?: InvocationTriggers) => void\r\n : (_?: undefined, trigger?: InvocationTriggers) => void;\r\n\r\ntype BoundActionList = {\r\n [A in Action]?: Array<ActionFunc<A>>;\r\n};\r\n\r\nconst boundActions: BoundActionList = {};\r\n\r\nlet currentActiveActions: Action[] = [];\r\n\r\nfunction updateActiveActions() {\r\n const newActions = Object.keys(boundActions) as Action[];\r\n currentActiveActions = newActions;\r\n actionEmitter.emit(newActions);\r\n}\r\n\r\nexport function bindAction<A extends Action>(\r\n action: A,\r\n handler: ActionFunc<A>\r\n) {\r\n if (boundActions[action]) {\r\n boundActions[action]?.push(handler);\r\n } else {\r\n // 'any' assertion because TypeScript doesn't seem to be able to figure out the links.\r\n boundActions[action] = [handler] as any;\r\n }\r\n\r\n updateActiveActions();\r\n}\r\n\r\nexport type InvocationTriggers = \"keypress\" | \"mouseclick\";\r\n\r\ntype InvokeActionFunc = {\r\n (\r\n action: ActionWithOptionalArgs,\r\n args?: undefined,\r\n trigger?: InvocationTriggers\r\n ): void;\r\n <A extends ActionWithArgs>(action: A, args: ActionArgsMap[A]): void;\r\n};\r\n\r\n/**\r\n * Invokes an action, triggering action handlers if any registered.\r\n * The second and third arguments are optional\r\n * @param action The action to fire\r\n * @param args The argument passed to the action handler. Optional if action has no args required\r\n * @param trigger Optionally supply the trigger that invoked the action (keypress/mouseclick)\r\n */\r\nexport const invokeAction: InvokeActionFunc = <A extends Action>(\r\n action: A,\r\n args?: ArgOfHoppAction<A>,\r\n trigger?: InvocationTriggers\r\n) => {\r\n boundActions[action]?.forEach((handler) => (handler as any)(args, trigger));\r\n};\r\n\r\nexport function unbindAction<A extends Action>(\r\n action: A,\r\n handler: ActionFunc<A>\r\n) {\r\n // 'any' assertion because TypeScript doesn't seem to be able to figure out the links.\r\n boundActions[action] = boundActions[action]?.filter(\r\n (x) => x !== handler\r\n ) as any;\r\n\r\n if (boundActions[action]?.length === 0) {\r\n delete boundActions[action];\r\n }\r\n\r\n updateActiveActions();\r\n}\r\n\r\n/**\r\n * Returns whether a given action is bound at a given time\r\n *\r\n * @param action The action to check\r\n */\r\nexport function isActionBound(action: Action): boolean {\r\n return !!boundActions[action];\r\n}\r\n\r\n/**\r\n * A React hook that defines a component can handle a given\r\n * Action. The handler will be bound when the component is mounted\r\n * and unbound when the component is unmounted.\r\n * @param action The action to be bound\r\n * @param handler The function to be called when the action is invoked\r\n * @param isActive A ref that indicates whether the action is active\r\n */\r\nexport function useActionHandler<A extends Action>(\r\n action: A,\r\n handler: ActionFunc<A>,\r\n isActive: MutableRefObject<boolean> | boolean | undefined\r\n) {\r\n const handlerRef = useRef(handler);\r\n const [isBound, setIsBound] = useState(false);\r\n\r\n // Update handler ref when handler changes\r\n useEffect(() => {\r\n handlerRef.current = handler;\r\n }, [handler]);\r\n\r\n // Create a stable handler wrapper\r\n const stableHandler = useCallback(\r\n (args: any, trigger?: InvocationTriggers) => {\r\n (handlerRef.current as any)(args, trigger);\r\n },\r\n []\r\n ) as ActionFunc<A>;\r\n\r\n useEffect(() => {\r\n const shouldBind =\r\n isActive === undefined ||\r\n (typeof isActive === \"boolean\" ? isActive : isActive.current);\r\n\r\n if (shouldBind && !isBound) {\r\n bindAction(action, stableHandler);\r\n setIsBound(true);\r\n } else if (!shouldBind && isBound) {\r\n unbindAction(action, stableHandler);\r\n setIsBound(false);\r\n }\r\n\r\n return () => {\r\n if (isBound) {\r\n unbindAction(action, stableHandler);\r\n setIsBound(false);\r\n }\r\n };\r\n }, [action, stableHandler, isActive, isBound]);\r\n\r\n // Handle ref-based isActive changes\r\n useEffect(() => {\r\n if (isActive && typeof isActive === \"object\" && \"current\" in isActive) {\r\n // Poll for ref changes\r\n const interval = setInterval(() => {\r\n const shouldBind = isActive.current;\r\n if (shouldBind !== isBound) {\r\n if (shouldBind) {\r\n bindAction(action, stableHandler);\r\n } else {\r\n unbindAction(action, stableHandler);\r\n }\r\n setIsBound(shouldBind);\r\n }\r\n }, 100);\r\n return () => clearInterval(interval);\r\n }\r\n }, [action, stableHandler, isActive, isBound]);\r\n}\r\n\r\n/**\r\n * A React hook that returns the current list of active actions\r\n * and re-renders when the list changes\r\n */\r\nexport function useActiveActions(): Action[] {\r\n const [activeActions, setActiveActions] = useState<Action[]>([]);\r\n\r\n useEffect(() => {\r\n // Set initial value\r\n setActiveActions(currentActiveActions);\r\n\r\n // Subscribe to changes\r\n const unsubscribe = actionEmitter.subscribe(setActiveActions);\r\n return unsubscribe;\r\n }, []);\r\n\r\n return activeActions;\r\n}\r\n\r\n/**\r\n * A React hook that returns whether a specific action is currently bound\r\n * and re-renders when the binding state changes\r\n */\r\nexport function useIsActionBound(action: Action): boolean {\r\n const [isBound, setIsBound] = useState(() => isActionBound(action));\r\n\r\n useEffect(() => {\r\n const updateBoundState = () => {\r\n setIsBound(isActionBound(action));\r\n };\r\n\r\n // Set initial value\r\n updateBoundState();\r\n\r\n // Subscribe to changes\r\n const unsubscribe = actionEmitter.subscribe(updateBoundState);\r\n return unsubscribe;\r\n }, [action]);\r\n\r\n return isBound;\r\n}\r\n","import { useEffect } from \"react\";\r\nimport { invokeAction } from \"../constants/actions\";\r\nimport { useKeybindingsStore } from \"@/stores/keybindings-store\";\r\n\r\n/**\r\n * A composable that hooks to the caller component's\r\n * lifecycle and hooks to the keyboard events to fire\r\n * the appropriate actions based on keybindings\r\n */\r\nexport function useKeybindingsListener() {\r\n const { keybindings, getKeybindingString, keybindingsEnabled, isRecording } =\r\n useKeybindingsStore();\r\n\r\n useEffect(() => {\r\n const handleKeyDown = (ev: KeyboardEvent) => {\r\n // Do not check keybinds if the mode is disabled\r\n if (!keybindingsEnabled) return;\r\n // ignore key events if user is changing keybindings\r\n if (isRecording) return;\r\n\r\n const binding = getKeybindingString(ev);\r\n if (!binding) return;\r\n\r\n const boundAction = keybindings[binding];\r\n if (!boundAction) return;\r\n\r\n const activeElement = document.activeElement;\r\n const isTextInput =\r\n activeElement &&\r\n (activeElement.tagName === \"INPUT\" ||\r\n activeElement.tagName === \"TEXTAREA\" ||\r\n (activeElement as HTMLElement).isContentEditable);\r\n\r\n if (isTextInput) return;\r\n\r\n ev.preventDefault();\r\n\r\n // Handle actions with default arguments\r\n let actionArgs: any;\r\n\r\n if (boundAction === \"seek-forward\") {\r\n actionArgs = { seconds: 1 };\r\n } else if (boundAction === \"seek-backward\") {\r\n actionArgs = { seconds: 1 };\r\n } else if (boundAction === \"jump-forward\") {\r\n actionArgs = { seconds: 5 };\r\n } else if (boundAction === \"jump-backward\") {\r\n actionArgs = { seconds: 5 };\r\n }\r\n\r\n invokeAction(boundAction, actionArgs, \"keypress\");\r\n };\r\n\r\n document.addEventListener(\"keydown\", handleKeyDown);\r\n\r\n return () => {\r\n document.removeEventListener(\"keydown\", handleKeyDown);\r\n };\r\n }, [keybindings, getKeybindingString, keybindingsEnabled, isRecording]);\r\n}\r\n\r\n/**\r\n * This composable allows for the UI component to be disabled if the component in question is mounted\r\n */\r\nexport function useKeybindingDisabler() {\r\n const { disableKeybindings, enableKeybindings } = useKeybindingsStore();\r\n\r\n return {\r\n disableKeybindings,\r\n enableKeybindings,\r\n };\r\n}\r\n\r\n// Export the bindings for backward compatibility\r\nexport const bindings = {};\r\n","\"use client\";\r\n\r\nimport { useEffect } from \"react\";\r\nimport { useActionHandler } from \"@/constants/actions\";\r\nimport { useTimelineStore } from \"@/stores/timeline-store\";\r\nimport { usePlaybackStore } from \"@/stores/playback-store\";\r\nimport { useProjectStore } from \"@/stores/project-store\";\r\nimport { toast } from \"sonner\";\r\n\r\nexport function useEditorActions() {\r\n const {\r\n tracks,\r\n selectedElements,\r\n clearSelectedElements,\r\n setSelectedElements,\r\n removeElementFromTrack,\r\n splitElement,\r\n addElementToTrack,\r\n snappingEnabled,\r\n toggleSnapping,\r\n undo,\r\n redo,\r\n } = useTimelineStore();\r\n\r\n const { currentTime, duration, isPlaying, toggle, seek } = usePlaybackStore();\r\n const { activeProject } = useProjectStore();\r\n\r\n // Playback actions\r\n useActionHandler(\r\n \"toggle-play\",\r\n () => {\r\n toggle();\r\n },\r\n undefined\r\n );\r\n\r\n useActionHandler(\r\n \"stop-playback\",\r\n () => {\r\n if (isPlaying) {\r\n toggle();\r\n }\r\n seek(0);\r\n },\r\n undefined\r\n );\r\n\r\n useActionHandler(\r\n \"seek-forward\",\r\n (args) => {\r\n const seconds = args?.seconds ?? 1;\r\n seek(Math.min(duration, currentTime + seconds));\r\n },\r\n undefined\r\n );\r\n\r\n useActionHandler(\r\n \"seek-backward\",\r\n (args) => {\r\n const seconds = args?.seconds ?? 1;\r\n seek(Math.max(0, currentTime - seconds));\r\n },\r\n undefined\r\n );\r\n\r\n useActionHandler(\r\n \"frame-step-forward\",\r\n () => {\r\n const projectFps = activeProject?.fps || 30;\r\n seek(Math.min(duration, currentTime + 1 / projectFps));\r\n },\r\n undefined\r\n );\r\n\r\n useActionHandler(\r\n \"frame-step-backward\",\r\n () => {\r\n const projectFps = activeProject?.fps || 30;\r\n seek(Math.max(0, currentTime - 1 / projectFps));\r\n },\r\n undefined\r\n );\r\n\r\n useActionHandler(\r\n \"jump-forward\",\r\n (args) => {\r\n const seconds = args?.seconds ?? 5;\r\n seek(Math.min(duration, currentTime + seconds));\r\n },\r\n undefined\r\n );\r\n\r\n useActionHandler(\r\n \"jump-backward\",\r\n (args) => {\r\n const seconds = args?.seconds ?? 5;\r\n seek(Math.max(0, currentTime - seconds));\r\n },\r\n undefined\r\n );\r\n\r\n useActionHandler(\r\n \"goto-start\",\r\n () => {\r\n seek(0);\r\n },\r\n undefined\r\n );\r\n\r\n useActionHandler(\r\n \"goto-end\",\r\n () => {\r\n seek(duration);\r\n },\r\n undefined\r\n );\r\n\r\n // Timeline editing actions\r\n useActionHandler(\r\n \"split-element\",\r\n () => {\r\n if (selectedElements.length !== 1) {\r\n toast.error(\"Select exactly one element to split\");\r\n return;\r\n }\r\n\r\n const { trackId, elementId } = selectedElements[0];\r\n const track = tracks.find((t: any) => t.id === trackId);\r\n const element = track?.elements.find((el: any) => el.id === elementId);\r\n\r\n if (element) {\r\n const effectiveStart = element.startTime;\r\n const effectiveEnd =\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd);\r\n\r\n if (currentTime > effectiveStart && currentTime < effectiveEnd) {\r\n splitElement(trackId, elementId, currentTime);\r\n } else {\r\n toast.error(\"Playhead must be within selected element\");\r\n }\r\n }\r\n },\r\n undefined\r\n );\r\n\r\n useActionHandler(\r\n \"delete-selected\",\r\n () => {\r\n if (selectedElements.length === 0) {\r\n return;\r\n }\r\n selectedElements.forEach(\r\n ({ trackId, elementId }: { trackId: string; elementId: string }) => {\r\n removeElementFromTrack(trackId, elementId);\r\n }\r\n );\r\n clearSelectedElements();\r\n },\r\n undefined\r\n );\r\n\r\n useActionHandler(\r\n \"select-all\",\r\n () => {\r\n const allElements = tracks.flatMap((track: any) =>\r\n track.elements.map((element: any) => ({\r\n trackId: track.id,\r\n elementId: element.id,\r\n }))\r\n );\r\n setSelectedElements(allElements);\r\n },\r\n undefined\r\n );\r\n\r\n useActionHandler(\r\n \"duplicate-selected\",\r\n () => {\r\n if (selectedElements.length !== 1) {\r\n toast.error(\"Select exactly one element to duplicate\");\r\n return;\r\n }\r\n\r\n const { trackId, elementId } = selectedElements[0];\r\n const track = tracks.find((t: any) => t.id === trackId);\r\n const element = track?.elements.find((el: any) => el.id === elementId);\r\n\r\n if (element) {\r\n const newStartTime =\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd) +\r\n 0.1;\r\n const { id, ...elementWithoutId } = element;\r\n\r\n addElementToTrack(trackId, {\r\n ...elementWithoutId,\r\n startTime: newStartTime,\r\n });\r\n }\r\n },\r\n undefined\r\n );\r\n\r\n useActionHandler(\r\n \"toggle-snapping\",\r\n () => {\r\n toggleSnapping();\r\n },\r\n undefined\r\n );\r\n\r\n // History actions\r\n useActionHandler(\r\n \"undo\",\r\n () => {\r\n undo();\r\n },\r\n undefined\r\n );\r\n\r\n useActionHandler(\r\n \"redo\",\r\n () => {\r\n redo();\r\n },\r\n undefined\r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport { useEffect } from \"react\";\r\nimport { Loader2 } from \"lucide-react\";\r\nimport { useEditorStore } from \"@/stores/editor-store\";\r\nimport {\r\n useKeybindingsListener,\r\n useKeybindingDisabler,\r\n} from \"@/hooks/use-keybindings\";\r\nimport { useEditorActions } from \"@/hooks/use-editor-actions\";\r\n\r\ninterface EditorProviderProps {\r\n children: React.ReactNode;\r\n}\r\n\r\nexport function EditorProvider({ children }: EditorProviderProps) {\r\n const { isInitializing, isPanelsReady, initializeApp } = useEditorStore();\r\n const { disableKeybindings, enableKeybindings } = useKeybindingDisabler();\r\n\r\n // Set up action handlers\r\n useEditorActions();\r\n\r\n // Set up keybinding listener\r\n useKeybindingsListener();\r\n\r\n // Disable keybindings when initializing\r\n useEffect(() => {\r\n if (isInitializing || !isPanelsReady) {\r\n disableKeybindings();\r\n } else {\r\n enableKeybindings();\r\n }\r\n }, [isInitializing, isPanelsReady, disableKeybindings, enableKeybindings]);\r\n\r\n useEffect(() => {\r\n initializeApp();\r\n }, [initializeApp]);\r\n\r\n // Show loading screen while initializing\r\n if (isInitializing || !isPanelsReady) {\r\n return (\r\n <div className=\"h-screen w-screen flex items-center justify-center bg-background\">\r\n <div className=\"flex flex-col items-center gap-4\">\r\n <Loader2 className=\"h-8 w-8 animate-spin text-muted-foreground\" />\r\n <p className=\"text-sm text-muted-foreground\">Loading editor...</p>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // App is ready, render children\r\n return <>{children}</>;\r\n}\r\n","import { create } from \"zustand\";\r\nimport { persist } from \"zustand/middleware\";\r\n\r\nconst DEFAULT_PANEL_SIZES = {\r\n toolsPanel: 45,\r\n previewPanel: 75,\r\n propertiesPanel: 20,\r\n mainContent: 70,\r\n timeline: 30,\r\n} as const;\r\n\r\ninterface PanelState {\r\n // Panel sizes as percentages\r\n toolsPanel: number;\r\n previewPanel: number;\r\n propertiesPanel: number;\r\n mainContent: number;\r\n timeline: number;\r\n\r\n mediaViewMode: \"grid\" | \"list\";\r\n\r\n // Actions\r\n setToolsPanel: (size: number) => void;\r\n setPreviewPanel: (size: number) => void;\r\n setPropertiesPanel: (size: number) => void;\r\n setMainContent: (size: number) => void;\r\n setTimeline: (size: number) => void;\r\n setMediaViewMode: (mode: \"grid\" | \"list\") => void;\r\n}\r\n\r\nexport const usePanelStore = create<PanelState>()(\r\n persist(\r\n (set) => ({\r\n // Default sizes - optimized for responsiveness\r\n ...DEFAULT_PANEL_SIZES,\r\n\r\n mediaViewMode: \"grid\" as const,\r\n\r\n // Actions\r\n setToolsPanel: (size) => set({ toolsPanel: size }),\r\n setPreviewPanel: (size) => set({ previewPanel: size }),\r\n setPropertiesPanel: (size) => set({ propertiesPanel: size }),\r\n setMainContent: (size) => set({ mainContent: size }),\r\n setTimeline: (size) => set({ timeline: size }),\r\n setMediaViewMode: (mode) => set({ mediaViewMode: mode }),\r\n }),\r\n {\r\n name: \"panel-sizes\",\r\n }\r\n )\r\n);\r\n","\"use client\";\r\n\r\nimport { create } from \"zustand\";\r\nimport { persist } from \"zustand/middleware\";\r\nimport { ActionWithOptionalArgs } from \"@/constants/actions\";\r\nimport { isAppleDevice, isDOMElement, isTypableElement } from \"@/lib/utils\";\r\nimport { KeybindingConfig, ShortcutKey } from \"@/types/keybinding\";\r\n\r\n// Default keybindings configuration\r\nexport const defaultKeybindings: KeybindingConfig = {\r\n space: \"toggle-play\",\r\n j: \"seek-backward\",\r\n k: \"toggle-play\",\r\n l: \"seek-forward\",\r\n left: \"frame-step-backward\",\r\n right: \"frame-step-forward\",\r\n \"shift+left\": \"jump-backward\",\r\n \"shift+right\": \"jump-forward\",\r\n home: \"goto-start\",\r\n end: \"goto-end\",\r\n s: \"split-element\",\r\n n: \"toggle-snapping\",\r\n \"ctrl+a\": \"select-all\",\r\n \"ctrl+d\": \"duplicate-selected\",\r\n \"ctrl+z\": \"undo\",\r\n \"ctrl+shift+z\": \"redo\",\r\n \"ctrl+y\": \"redo\",\r\n delete: \"delete-selected\",\r\n backspace: \"delete-selected\",\r\n};\r\n\r\nexport interface KeybindingConflict {\r\n key: ShortcutKey;\r\n existingAction: ActionWithOptionalArgs;\r\n newAction: ActionWithOptionalArgs;\r\n}\r\n\r\ninterface KeybindingsState {\r\n keybindings: KeybindingConfig;\r\n isCustomized: boolean;\r\n keybindingsEnabled: boolean;\r\n isRecording: boolean;\r\n\r\n // Actions\r\n updateKeybinding: (key: ShortcutKey, action: ActionWithOptionalArgs) => void;\r\n removeKeybinding: (key: ShortcutKey) => void;\r\n resetToDefaults: () => void;\r\n importKeybindings: (config: KeybindingConfig) => void;\r\n exportKeybindings: () => KeybindingConfig;\r\n enableKeybindings: () => void;\r\n disableKeybindings: () => void;\r\n setIsRecording: (isRecording: boolean) => void;\r\n\r\n // Validation\r\n validateKeybinding: (\r\n key: ShortcutKey,\r\n action: ActionWithOptionalArgs\r\n ) => KeybindingConflict | null;\r\n getKeybindingsForAction: (action: ActionWithOptionalArgs) => ShortcutKey[];\r\n\r\n // Utility\r\n getKeybindingString: (ev: KeyboardEvent) => ShortcutKey | null;\r\n}\r\n\r\nexport const useKeybindingsStore = create<KeybindingsState>()(\r\n persist(\r\n (set, get) => ({\r\n keybindings: { ...defaultKeybindings },\r\n isCustomized: false,\r\n keybindingsEnabled: true,\r\n isRecording: false,\r\n\r\n updateKeybinding: (key: ShortcutKey, action: ActionWithOptionalArgs) => {\r\n set((state) => {\r\n const newKeybindings = { ...state.keybindings };\r\n newKeybindings[key] = action;\r\n\r\n return {\r\n keybindings: newKeybindings,\r\n isCustomized: true,\r\n };\r\n });\r\n },\r\n\r\n removeKeybinding: (key: ShortcutKey) => {\r\n set((state) => {\r\n const newKeybindings = { ...state.keybindings };\r\n delete newKeybindings[key];\r\n\r\n return {\r\n keybindings: newKeybindings,\r\n isCustomized: true,\r\n };\r\n });\r\n },\r\n\r\n resetToDefaults: () => {\r\n set({\r\n keybindings: { ...defaultKeybindings },\r\n isCustomized: false,\r\n });\r\n },\r\n\r\n enableKeybindings: () => {\r\n set({ keybindingsEnabled: true });\r\n },\r\n\r\n disableKeybindings: () => {\r\n set({ keybindingsEnabled: false });\r\n },\r\n\r\n importKeybindings: (config: KeybindingConfig) => {\r\n // Validate all keys and actions\r\n for (const [key, action] of Object.entries(config)) {\r\n // Validate the key format\r\n if (typeof key !== \"string\" || key.length === 0) {\r\n throw new Error(`Invalid key format: ${key}`);\r\n }\r\n }\r\n set({\r\n keybindings: { ...config },\r\n isCustomized: true,\r\n });\r\n },\r\n\r\n exportKeybindings: () => {\r\n return get().keybindings;\r\n },\r\n\r\n validateKeybinding: (\r\n key: ShortcutKey,\r\n action: ActionWithOptionalArgs\r\n ) => {\r\n const { keybindings } = get();\r\n const existingAction = keybindings[key];\r\n\r\n if (existingAction && existingAction !== action) {\r\n return {\r\n key,\r\n existingAction,\r\n newAction: action,\r\n };\r\n }\r\n\r\n return null;\r\n },\r\n setIsRecording: (isRecording: boolean) => {\r\n set({ isRecording });\r\n },\r\n\r\n getKeybindingsForAction: (action: ActionWithOptionalArgs) => {\r\n const { keybindings } = get();\r\n return Object.keys(keybindings).filter(\r\n (key) => keybindings[key as ShortcutKey] === action\r\n ) as ShortcutKey[];\r\n },\r\n\r\n getKeybindingString: (ev: KeyboardEvent) => {\r\n return generateKeybindingString(ev) as ShortcutKey | null;\r\n },\r\n }),\r\n {\r\n name: \"opencut-keybindings\",\r\n version: 1,\r\n }\r\n )\r\n);\r\n\r\n// Utility functions\r\nfunction generateKeybindingString(ev: KeyboardEvent): ShortcutKey | null {\r\n const target = ev.target;\r\n\r\n // We may or may not have a modifier key\r\n const modifierKey = getActiveModifier(ev);\r\n\r\n // We will always have a non-modifier key\r\n const key = getPressedKey(ev);\r\n if (!key) return null;\r\n\r\n // All key combos backed by modifiers are valid shortcuts (whether currently typing or not)\r\n if (modifierKey) {\r\n // If the modifier is shift and the target is an input, we ignore\r\n if (\r\n modifierKey === \"shift\" &&\r\n isDOMElement(target) &&\r\n isTypableElement(target)\r\n ) {\r\n return null;\r\n }\r\n\r\n return `${modifierKey}+${key}` as ShortcutKey;\r\n }\r\n\r\n // no modifier key here then we do not do anything while on input\r\n if (isDOMElement(target) && isTypableElement(target)) return null;\r\n\r\n // single key while not input\r\n return `${key}` as ShortcutKey;\r\n}\r\n\r\nfunction getPressedKey(ev: KeyboardEvent): string | null {\r\n // Sometimes the property code is not available on the KeyboardEvent object\r\n const key = (ev.key ?? \"\").toLowerCase();\r\n const code = ev.code ?? \"\";\r\n\r\n // Check arrow keys\r\n if (key.startsWith(\"arrow\")) {\r\n return key.slice(5);\r\n }\r\n\r\n // Check for special keys\r\n if (key === \"tab\") return \"tab\";\r\n if (key === \" \" || key === \"space\") return \"space\";\r\n if (key === \"home\") return \"home\";\r\n if (key === \"end\") return \"end\";\r\n if (key === \"delete\") return \"delete\";\r\n if (key === \"backspace\") return \"backspace\";\r\n\r\n // Check letter keys\r\n if (code.startsWith(\"Key\")) {\r\n const letter = code.slice(3).toLowerCase();\r\n if (letter.length === 1 && letter >= \"a\" && letter <= \"z\") {\r\n return letter;\r\n }\r\n }\r\n\r\n // Check number keys using physical position for AZERTY support\r\n if (code.startsWith(\"Digit\")) {\r\n const digit = code.slice(5);\r\n if (digit.length === 1 && digit >= \"0\" && digit <= \"9\") {\r\n return digit;\r\n }\r\n }\r\n\r\n // Fallback for other layouts\r\n const isDigit = key.length === 1 && key >= \"0\" && key <= \"9\";\r\n if (isDigit) return key;\r\n\r\n // Check if slash, period or enter\r\n if (key === \"/\" || key === \".\" || key === \"enter\") return key;\r\n\r\n // If no other cases match, this is not a valid key\r\n return null;\r\n}\r\n\r\nfunction getActiveModifier(ev: KeyboardEvent): string | null {\r\n const modifierKeys = {\r\n ctrl: isAppleDevice() ? ev.metaKey : ev.ctrlKey,\r\n alt: ev.altKey,\r\n shift: ev.shiftKey,\r\n };\r\n\r\n // active modifier: ctrl | alt | ctrl+alt | ctrl+shift | ctrl+alt+shift | alt+shift\r\n // modiferKeys object's keys are sorted to match the above order\r\n const activeModifier = Object.keys(modifierKeys)\r\n .filter((key) => modifierKeys[key as keyof typeof modifierKeys])\r\n .join(\"+\");\r\n\r\n return activeModifier === \"\" ? null : activeModifier;\r\n}\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { Slider as SliderPrimitive } from \"radix-ui\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst Slider = React.forwardRef<\r\n React.ElementRef<typeof SliderPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\r\n>(({ className, ...props }, ref) => (\r\n <SliderPrimitive.Root\r\n ref={ref}\r\n className={cn(\r\n \"relative flex w-full touch-none select-none items-center\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <SliderPrimitive.Track className=\"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20\">\r\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\r\n </SliderPrimitive.Track>\r\n <SliderPrimitive.Thumb className=\"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow-sm transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\" />\r\n </SliderPrimitive.Root>\r\n));\r\nSlider.displayName = SliderPrimitive.Root.displayName;\r\n\r\nexport { Slider };\r\n","\"use client\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\nimport { ReactNode } from \"react\";\r\n\r\ninterface HeaderBaseProps {\r\n leftContent?: ReactNode;\r\n centerContent?: ReactNode;\r\n rightContent?: ReactNode;\r\n className?: string;\r\n children?: ReactNode;\r\n}\r\n\r\nexport function HeaderBase({\r\n leftContent,\r\n centerContent,\r\n rightContent,\r\n className,\r\n children,\r\n}: HeaderBaseProps) {\r\n // If children is provided, render it directly without the grid layout\r\n if (children) {\r\n return (\r\n <header className={cn(\"px-6 h-16 flex items-center\", className)}>\r\n {children}\r\n </header>\r\n );\r\n }\r\n\r\n return (\r\n <header\r\n className={cn(\"px-6 h-14 flex justify-between items-center\", className)}\r\n >\r\n {leftContent && <div className=\"flex items-center\">{leftContent}</div>}\r\n {centerContent && (\r\n <div className=\"flex items-center\">{centerContent}</div>\r\n )}\r\n {rightContent && <div className=\"flex items-center\">{rightContent}</div>}\r\n </header>\r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport { useMemo } from \"react\";\r\nimport { useKeybindingsStore } from \"@/stores/keybindings-store\";\r\nimport { Action } from \"@/constants/actions\";\r\nimport { getPlatformAlternateKey, getPlatformSpecialKey } from \"@/lib/utils\";\r\n\r\nexport interface KeyboardShortcut {\r\n id: string;\r\n keys: string[];\r\n description: string;\r\n category: string;\r\n action: Action;\r\n icon?: React.ReactNode;\r\n}\r\n\r\n// Map actions to their descriptions and categories\r\nconst actionDescriptions: Record<\r\n Action,\r\n { description: string; category: string }\r\n> = {\r\n \"toggle-play\": { description: \"Play/Pause\", category: \"Playback\" },\r\n \"stop-playback\": { description: \"Stop playback\", category: \"Playback\" },\r\n \"seek-forward\": {\r\n description: \"Seek forward 1 second\",\r\n category: \"Playback\",\r\n },\r\n \"seek-backward\": {\r\n description: \"Seek backward 1 second\",\r\n category: \"Playback\",\r\n },\r\n \"frame-step-forward\": {\r\n description: \"Frame step forward\",\r\n category: \"Navigation\",\r\n },\r\n \"frame-step-backward\": {\r\n description: \"Frame step backward\",\r\n category: \"Navigation\",\r\n },\r\n \"jump-forward\": {\r\n description: \"Jump forward 5 seconds\",\r\n category: \"Navigation\",\r\n },\r\n \"jump-backward\": {\r\n description: \"Jump backward 5 seconds\",\r\n category: \"Navigation\",\r\n },\r\n \"goto-start\": { description: \"Go to timeline start\", category: \"Navigation\" },\r\n \"goto-end\": { description: \"Go to timeline end\", category: \"Navigation\" },\r\n \"split-element\": {\r\n description: \"Split element at playhead\",\r\n category: \"Editing\",\r\n },\r\n \"delete-selected\": {\r\n description: \"Delete selected elements\",\r\n category: \"Editing\",\r\n },\r\n \"select-all\": { description: \"Select all elements\", category: \"Selection\" },\r\n \"duplicate-selected\": {\r\n description: \"Duplicate selected element\",\r\n category: \"Selection\",\r\n },\r\n \"toggle-snapping\": { description: \"Toggle snapping\", category: \"Editing\" },\r\n undo: { description: \"Undo\", category: \"History\" },\r\n redo: { description: \"Redo\", category: \"History\" },\r\n};\r\n\r\n// Convert key binding format to display format\r\nconst formatKey = (key: string): string => {\r\n return key\r\n .replace(\"ctrl\", getPlatformSpecialKey())\r\n .replace(\"alt\", getPlatformAlternateKey())\r\n .replace(\"shift\", \"Shift\")\r\n .replace(\"left\", \"←\")\r\n .replace(\"right\", \"→\")\r\n .replace(\"up\", \"↑\")\r\n .replace(\"down\", \"↓\")\r\n .replace(\"space\", \"Space\")\r\n .replace(\"home\", \"Home\")\r\n .replace(\"end\", \"End\")\r\n .replace(\"delete\", \"Delete\")\r\n .replace(\"backspace\", \"Backspace\")\r\n .replace(\"-\", \"+\");\r\n};\r\n\r\nexport const useKeyboardShortcutsHelp = () => {\r\n const { keybindings } = useKeybindingsStore();\r\n\r\n const shortcuts = useMemo(() => {\r\n const result: KeyboardShortcut[] = [];\r\n\r\n // Group keybindings by action\r\n const actionToKeys: Record<Action, string[]> = {} as any;\r\n\r\n Object.entries(keybindings).forEach(([key, action]) => {\r\n if (action) {\r\n if (!actionToKeys[action]) {\r\n actionToKeys[action] = [];\r\n }\r\n actionToKeys[action].push(formatKey(key));\r\n }\r\n });\r\n\r\n // Convert to shortcuts format\r\n Object.entries(actionToKeys).forEach(([action, keys]) => {\r\n const actionInfo = actionDescriptions[action as Action];\r\n if (actionInfo) {\r\n result.push({\r\n id: action,\r\n keys,\r\n description: actionInfo.description,\r\n category: actionInfo.category,\r\n action: action as Action,\r\n });\r\n }\r\n });\r\n\r\n // Sort shortcuts by category first, then by description to ensure consistent ordering\r\n return result.sort((a, b) => {\r\n if (a.category !== b.category) {\r\n return a.category.localeCompare(b.category);\r\n }\r\n return a.description.localeCompare(b.description);\r\n });\r\n }, [keybindings]);\r\n\r\n return {\r\n shortcuts,\r\n };\r\n};\r\n","\"use client\";\r\n\r\nimport { Keyboard } from \"lucide-react\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { toast } from \"sonner\";\r\nimport {\r\n type KeyboardShortcut,\r\n useKeyboardShortcutsHelp,\r\n} from \"@/hooks/use-keyboard-shortcuts-help\";\r\nimport { useKeybindingsStore } from \"@/stores/keybindings-store\";\r\nimport { Button } from \"./ui/button\";\r\nimport {\r\n Dialog,\r\n DialogContent,\r\n DialogDescription,\r\n DialogFooter,\r\n DialogHeader,\r\n DialogTitle,\r\n DialogTrigger,\r\n} from \"./ui/dialog\";\r\n\r\nconst ShortcutItem = ({\r\n shortcut,\r\n isRecording,\r\n onStartRecording,\r\n}: {\r\n shortcut: KeyboardShortcut;\r\n isRecording: boolean;\r\n onStartRecording: (shortcut: KeyboardShortcut) => void;\r\n}) => {\r\n // Filter out lowercase duplicates for display - if both \"j\" and \"J\" exist, only show \"J\"\r\n const displayKeys = shortcut.keys.filter((key: string) => {\r\n if (\r\n key.includes(\"Cmd\") &&\r\n shortcut.keys.includes(key.replace(\"Cmd\", \"Ctrl\"))\r\n )\r\n return false;\r\n\r\n return true;\r\n });\r\n\r\n return (\r\n <div className=\"flex items-center justify-between\">\r\n <div className=\"flex items-center gap-3\">\r\n {shortcut.icon && (\r\n <div className=\"text-muted-foreground\">{shortcut.icon}</div>\r\n )}\r\n <span className=\"text-sm\">{shortcut.description}</span>\r\n </div>\r\n <div className=\"flex items-center gap-1\">\r\n {displayKeys.map((key: string, index: number) => (\r\n <div key={key} className=\"flex items-center gap-1\">\r\n <div className=\"flex items-center\">\r\n {key.split(\"+\").map((keyPart: string, partIndex: number) => {\r\n const keyId = `${shortcut.id}-${index}-${partIndex}`;\r\n return (\r\n <EditableShortcutKey\r\n key={keyId}\r\n isRecording={isRecording}\r\n onStartRecording={() => onStartRecording(shortcut)}\r\n >\r\n {keyPart}\r\n </EditableShortcutKey>\r\n );\r\n })}\r\n </div>\r\n {index < displayKeys.length - 1 && (\r\n <span className=\"text-xs text-muted-foreground\">or</span>\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nconst EditableShortcutKey = ({\r\n children,\r\n isRecording,\r\n onStartRecording,\r\n}: {\r\n children: React.ReactNode;\r\n isRecording: boolean;\r\n onStartRecording: () => void;\r\n}) => {\r\n const handleClick = (e: React.MouseEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n onStartRecording();\r\n };\r\n\r\n return (\r\n <Button\r\n variant=\"text\"\r\n size=\"sm\"\r\n className={`inline-flex font-sans text-xs rounded px-2 min-w-6 min-h-6 leading-none items-center justify-center shadow-xs border mr-1 cursor-pointer hover:bg-opacity-80 ${\r\n isRecording\r\n ? \"border-primary bg-primary/10\"\r\n : \"border bg-accent\"\r\n }`}\r\n onClick={handleClick}\r\n title={\r\n isRecording ? \"Press any key combination...\" : \"Click to edit shortcut\"\r\n }\r\n >\r\n {children}\r\n </Button>\r\n );\r\n};\r\n\r\nexport const KeyboardShortcutsHelp = () => {\r\n const [open, setOpen] = useState(false);\r\n const [recordingShortcut, setRecordingShortcut] =\r\n useState<KeyboardShortcut | null>(null);\r\n\r\n const {\r\n updateKeybinding,\r\n removeKeybinding,\r\n getKeybindingString,\r\n validateKeybinding,\r\n getKeybindingsForAction,\r\n setIsRecording,\r\n resetToDefaults,\r\n isRecording,\r\n } = useKeybindingsStore();\r\n\r\n // Get shortcuts from centralized hook\r\n const { shortcuts } = useKeyboardShortcutsHelp();\r\n\r\n const categories = Array.from(new Set(shortcuts.map((s) => s.category)));\r\n\r\n useEffect(() => {\r\n if (!isRecording || !recordingShortcut) return;\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n const keyString = getKeybindingString(e);\r\n if (keyString) {\r\n // Auto-save the new keybinding\r\n const conflict = validateKeybinding(\r\n keyString,\r\n recordingShortcut.action\r\n );\r\n if (conflict) {\r\n toast.error(\r\n `Key \"${keyString}\" is already bound to \"${conflict.existingAction}\"`\r\n );\r\n setRecordingShortcut(null);\r\n return;\r\n }\r\n\r\n // Remove old keybindings for this action\r\n const oldKeys = getKeybindingsForAction(recordingShortcut.action);\r\n oldKeys.forEach((key) => removeKeybinding(key));\r\n\r\n // Add new keybinding\r\n updateKeybinding(keyString, recordingShortcut.action);\r\n\r\n setIsRecording(false);\r\n setRecordingShortcut(null);\r\n }\r\n };\r\n\r\n const handleClickOutside = () => {\r\n setRecordingShortcut(null);\r\n setIsRecording(false);\r\n };\r\n\r\n document.addEventListener(\"keydown\", handleKeyDown);\r\n document.addEventListener(\"click\", handleClickOutside);\r\n\r\n return () => {\r\n document.removeEventListener(\"keydown\", handleKeyDown);\r\n document.removeEventListener(\"click\", handleClickOutside);\r\n };\r\n }, [\r\n recordingShortcut,\r\n getKeybindingString,\r\n updateKeybinding,\r\n removeKeybinding,\r\n validateKeybinding,\r\n getKeybindingsForAction,\r\n setIsRecording,\r\n isRecording,\r\n ]);\r\n\r\n const handleStartRecording = (shortcut: KeyboardShortcut) => {\r\n setRecordingShortcut(shortcut);\r\n setIsRecording(true);\r\n };\r\n\r\n return (\r\n <Dialog open={open} onOpenChange={setOpen}>\r\n <DialogTrigger asChild>\r\n <Button variant=\"text\" size=\"sm\" className=\"gap-2\">\r\n <Keyboard className=\"w-4 h-4\" />\r\n Shortcuts\r\n </Button>\r\n </DialogTrigger>\r\n <DialogContent className=\"max-w-2xl overflow-y-auto\">\r\n <DialogHeader>\r\n <DialogTitle className=\"flex items-center gap-2\">\r\n <Keyboard className=\"w-5 h-5\" />\r\n Keyboard Shortcuts\r\n </DialogTitle>\r\n <DialogDescription>\r\n Speed up your video editing workflow with these keyboard shortcuts.\r\n Click any shortcut key to edit it.\r\n </DialogDescription>\r\n </DialogHeader>\r\n\r\n <div className=\"space-y-6\">\r\n {categories.map((category) => (\r\n <div key={category} className=\"flex flex-col gap-1\">\r\n <h3 className=\"text-xs text-muted-foreground uppercase tracking-wide font-medium\">\r\n {category}\r\n </h3>\r\n <div className=\"space-y-0.5\">\r\n {shortcuts\r\n .filter((shortcut) => shortcut.category === category)\r\n .map((shortcut) => (\r\n <ShortcutItem\r\n key={shortcut.action}\r\n shortcut={shortcut}\r\n isRecording={\r\n shortcut.action === recordingShortcut?.action\r\n }\r\n onStartRecording={handleStartRecording}\r\n />\r\n ))}\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n <DialogFooter>\r\n <Button\r\n size=\"sm\"\r\n className=\"mt-4\"\r\n variant=\"destructive\"\r\n onClick={resetToDefaults}\r\n >\r\n Reset to Default\r\n </Button>\r\n </DialogFooter>\r\n </DialogContent>\r\n </Dialog>\r\n );\r\n};\r\n","\"use client\";\r\n\r\nimport { Button } from \"./ui/button\";\r\nimport {\r\n ChevronDown,\r\n ArrowLeft,\r\n Download,\r\n SquarePen,\r\n Trash,\r\n Sun,\r\n} from \"lucide-react\";\r\nimport { useTimelineStore } from \"@/stores/timeline-store\";\r\nimport { HeaderBase } from \"./header-base\";\r\nimport { formatTimeCode } from \"@/lib/time\";\r\nimport { useProjectStore } from \"@/stores/project-store\";\r\nimport { KeyboardShortcutsHelp } from \"./keyboard-shortcuts-help\";\r\nimport { useState } from \"react\";\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n DropdownMenuSeparator,\r\n DropdownMenuTrigger,\r\n} from \"./ui/dropdown-menu\";\r\nimport Link from \"next/link\";\r\nimport { navigateToProjects, navigateToHome } from \"@/lib/navigation\";\r\nimport { RenameProjectDialog } from \"./rename-project-dialog\";\r\nimport { DeleteProjectDialog } from \"./delete-project-dialog\";\r\nimport { useRouter } from \"next/navigation\";\r\nimport { FaDiscord } from \"react-icons/fa6\";\r\nimport { useTheme } from \"next-themes\";\r\nimport { usePlaybackStore } from \"@/stores/playback-store\";\r\n\r\nexport function EditorHeader() {\r\n const { getTotalDuration } = useTimelineStore();\r\n const { currentTime } = usePlaybackStore();\r\n const { activeProject, renameProject, deleteProject } = useProjectStore();\r\n const [isDeleteDialogOpen, setIsDeleteDialogOpen] = useState(false);\r\n const [isRenameDialogOpen, setIsRenameDialogOpen] = useState(false);\r\n const router = useRouter();\r\n const { theme, setTheme } = useTheme();\r\n\r\n const handleExport = () => {\r\n // TODO: Implement export functionality\r\n // NOTE: This is already being worked on\r\n console.log(\"Export project\");\r\n window.open(\"https://youtube.com/watch?v=dQw4w9WgXcQ\", \"_blank\");\r\n };\r\n\r\n const handleNameSave = async (newName: string) => {\r\n console.log(\"handleNameSave\", newName);\r\n if (activeProject && newName.trim() && newName !== activeProject.name) {\r\n try {\r\n await renameProject(activeProject.id, newName.trim());\r\n setIsRenameDialogOpen(false);\r\n } catch (error) {\r\n console.error(\"Failed to rename project:\", error);\r\n }\r\n }\r\n };\r\n\r\n const handleDelete = () => {\r\n if (activeProject) {\r\n deleteProject(activeProject.id);\r\n setIsDeleteDialogOpen(false);\r\n navigateToProjects();\r\n }\r\n };\r\n\r\n const leftContent = (\r\n <div className=\"flex items-center gap-2\">\r\n <DropdownMenu>\r\n <DropdownMenuTrigger asChild>\r\n <Button\r\n variant=\"secondary\"\r\n className=\"h-auto py-1.5 px-2.5 flex items-center justify-center\"\r\n >\r\n <ChevronDown className=\"text-muted-foreground\" />\r\n <span className=\"text-[0.85rem] mr-2\">{activeProject?.name}</span>\r\n </Button>\r\n </DropdownMenuTrigger>\r\n <DropdownMenuContent align=\"start\" className=\"w-40\">\r\n <DropdownMenuItem \r\n className=\"flex items-center gap-1.5\"\r\n onClick={() => navigateToProjects()}\r\n >\r\n <ArrowLeft className=\"h-4 w-4\" />\r\n Projects\r\n </DropdownMenuItem>\r\n <DropdownMenuItem\r\n className=\"flex items-center gap-1.5\"\r\n onClick={() => setIsRenameDialogOpen(true)}\r\n >\r\n <SquarePen className=\"h-4 w-4\" />\r\n Rename project\r\n </DropdownMenuItem>\r\n <DropdownMenuItem\r\n variant=\"destructive\"\r\n className=\"flex items-center gap-1.5\"\r\n onClick={() => setIsDeleteDialogOpen(true)}\r\n >\r\n <Trash className=\"h-4 w-4\" />\r\n Delete Project\r\n </DropdownMenuItem>\r\n <DropdownMenuSeparator />\r\n <DropdownMenuItem asChild>\r\n <Link\r\n href=\"https://discord.gg/zmR9N35cjK\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n className=\"flex items-center gap-1.5\"\r\n >\r\n <FaDiscord className=\"h-4 w-4\" />\r\n Discord\r\n </Link>\r\n </DropdownMenuItem>\r\n </DropdownMenuContent>\r\n </DropdownMenu>\r\n <RenameProjectDialog\r\n isOpen={isRenameDialogOpen}\r\n onOpenChange={setIsRenameDialogOpen}\r\n onConfirm={handleNameSave}\r\n projectName={activeProject?.name || \"\"}\r\n />\r\n <DeleteProjectDialog\r\n isOpen={isDeleteDialogOpen}\r\n onOpenChange={setIsDeleteDialogOpen}\r\n onConfirm={handleDelete}\r\n projectName={activeProject?.name || \"\"}\r\n />\r\n </div>\r\n );\r\n\r\n const centerContent = (\r\n <div className=\"flex items-center gap-2 text-xs\">\r\n <span className=\"text-foreground tabular-nums\">\r\n {formatTimeCode(currentTime, \"HH:MM:SS:FF\", activeProject?.fps || 30)}\r\n </span>\r\n <span className=\"text-foreground/50\">/</span>\r\n <span className=\"text-foreground/50 tabular-nums\">\r\n {formatTimeCode(\r\n getTotalDuration(),\r\n \"HH:MM:SS:FF\",\r\n activeProject?.fps || 30\r\n )}\r\n </span>\r\n </div>\r\n );\r\n\r\n const rightContent = (\r\n <nav className=\"flex items-center gap-2\">\r\n <KeyboardShortcutsHelp />\r\n <Button\r\n size=\"sm\"\r\n className=\"h-8 text-xs !bg-linear-to-r from-cyan-400 to-blue-500 text-white hover:opacity-85 transition-opacity\"\r\n onClick={handleExport}\r\n >\r\n <Download className=\"h-4 w-4\" />\r\n <span className=\"text-sm pr-1\">Export</span>\r\n </Button>\r\n <Button\r\n size=\"icon\"\r\n variant=\"text\"\r\n className=\"h-7\"\r\n onClick={() => setTheme(theme === \"dark\" ? \"light\" : \"dark\")}\r\n >\r\n <Sun className=\"!size-[1.1rem]\" />\r\n <span className=\"sr-only\">{theme === \"dark\" ? \"Light\" : \"Dark\"}</span>\r\n </Button>\r\n </nav>\r\n );\r\n\r\n return (\r\n <HeaderBase\r\n leftContent={leftContent}\r\n centerContent={centerContent}\r\n rightContent={rightContent}\r\n className=\"bg-background h-[3.2rem] px-3 items-center mt-0.5\"\r\n />\r\n );\r\n}\r\n","import { MediaElement } from \"@/types/timeline\";\r\n\r\nexport function AudioProperties({ element }: { element: MediaElement }) {\r\n return <div className=\"space-y-4 p-5\">Audio properties</div>;\r\n}\r\n","import { MediaElement } from \"@/types/timeline\";\r\n\r\nexport function MediaProperties({ element }: { element: MediaElement }) {\r\n return <div className=\"space-y-4 p-5\">Media properties</div>;\r\n}\r\n","import * as React from \"react\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst Textarea = React.forwardRef<\r\n HTMLTextAreaElement,\r\n React.ComponentProps<\"textarea\">\r\n>(({ className, ...props }, ref) => {\r\n return (\r\n <textarea\r\n className={cn(\r\n \"flex min-h-[60px] w-full rounded-md border border-input bg-background px-3 py-2 text-base shadow-xs placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-0 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-xs\",\r\n className\r\n )}\r\n ref={ref}\r\n {...props}\r\n />\r\n );\r\n});\r\nTextarea.displayName = \"Textarea\";\r\n\r\nexport { Textarea };\r\n","export interface FontOption {\r\n value: string;\r\n label: string;\r\n category: \"system\" | \"google\" | \"custom\";\r\n weights?: number[];\r\n hasClassName?: boolean;\r\n}\r\n\r\nexport const FONT_OPTIONS: FontOption[] = [\r\n // System fonts (always available)\r\n { value: \"Arial\", label: \"Arial\", category: \"system\", hasClassName: false },\r\n {\r\n value: \"Helvetica\",\r\n label: \"Helvetica\",\r\n category: \"system\",\r\n hasClassName: false,\r\n },\r\n {\r\n value: \"Times New Roman\",\r\n label: \"Times New Roman\",\r\n category: \"system\",\r\n hasClassName: false,\r\n },\r\n {\r\n value: \"Georgia\",\r\n label: \"Georgia\",\r\n category: \"system\",\r\n hasClassName: false,\r\n },\r\n\r\n // Google Fonts (loaded in layout.tsx)\r\n {\r\n value: \"Inter\",\r\n label: \"Inter\",\r\n category: \"google\",\r\n weights: [400, 700],\r\n hasClassName: true,\r\n },\r\n {\r\n value: \"Roboto\",\r\n label: \"Roboto\",\r\n category: \"google\",\r\n weights: [400, 700],\r\n hasClassName: true,\r\n },\r\n {\r\n value: \"Open Sans\",\r\n label: \"Open Sans\",\r\n category: \"google\",\r\n hasClassName: true,\r\n },\r\n {\r\n value: \"Playfair Display\",\r\n label: \"Playfair Display\",\r\n category: \"google\",\r\n hasClassName: true,\r\n },\r\n {\r\n value: \"Comic Neue\",\r\n label: \"Comic Neue\",\r\n category: \"google\",\r\n hasClassName: false,\r\n },\r\n] as const;\r\n\r\nexport const DEFAULT_FONT = \"Arial\";\r\n\r\n// Type-safe font family union\r\nexport type FontFamily = (typeof FONT_OPTIONS)[number][\"value\"];\r\n\r\n// Helper functions\r\nexport const getFontByValue = (value: string): FontOption | undefined =>\r\n FONT_OPTIONS.find((font) => font.value === value);\r\n\r\nexport const getGoogleFonts = (): FontOption[] =>\r\n FONT_OPTIONS.filter((font) => font.category === \"google\");\r\n\r\nexport const getSystemFonts = (): FontOption[] =>\r\n FONT_OPTIONS.filter((font) => font.category === \"system\");\r\n","import {\r\n Select,\r\n SelectContent,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from \"@/components/ui/select\";\r\nimport { FONT_OPTIONS, FontFamily } from \"@/constants/font-constants\";\r\n\r\ninterface FontPickerProps {\r\n defaultValue?: FontFamily;\r\n onValueChange?: (value: FontFamily) => void;\r\n className?: string;\r\n}\r\n\r\nexport function FontPicker({\r\n defaultValue,\r\n onValueChange,\r\n className,\r\n}: FontPickerProps) {\r\n return (\r\n <Select defaultValue={defaultValue} onValueChange={onValueChange}>\r\n <SelectTrigger className={`w-full text-xs ${className || \"\"}`}>\r\n <SelectValue placeholder=\"Select a font\" />\r\n </SelectTrigger>\r\n <SelectContent>\r\n {FONT_OPTIONS.map((font) => (\r\n <SelectItem\r\n key={font.value}\r\n value={font.value}\r\n className=\"text-xs\"\r\n style={{ fontFamily: font.value }}\r\n >\r\n {font.label}\r\n </SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n );\r\n}\r\n","import { Textarea } from \"@/components/ui/textarea\";\r\nimport { FontPicker } from \"@/components/ui/font-picker\";\r\nimport { FontFamily } from \"@/constants/font-constants\";\r\nimport { TextElement } from \"@/types/timeline\";\r\nimport { useTimelineStore } from \"@/stores/timeline-store\";\r\nimport { Slider } from \"@/components/ui/slider\";\r\nimport { Input } from \"@/components/ui/input\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport { useState } from \"react\";\r\nimport {\r\n PropertyItem,\r\n PropertyItemLabel,\r\n PropertyItemValue,\r\n} from \"./property-item\";\r\n\r\nexport function TextProperties({\r\n element,\r\n trackId,\r\n}: {\r\n element: TextElement;\r\n trackId: string;\r\n}) {\r\n const { updateTextElement } = useTimelineStore();\r\n\r\n // Local state for input values to allow temporary empty/invalid states\r\n const [fontSizeInput, setFontSizeInput] = useState(\r\n element.fontSize.toString()\r\n );\r\n const [opacityInput, setOpacityInput] = useState(\r\n Math.round(element.opacity * 100).toString()\r\n );\r\n\r\n const parseAndValidateNumber = (\r\n value: string,\r\n min: number,\r\n max: number,\r\n fallback: number\r\n ): number => {\r\n const parsed = parseInt(value, 10);\r\n if (isNaN(parsed)) return fallback;\r\n return Math.max(min, Math.min(max, parsed));\r\n };\r\n\r\n const handleFontSizeChange = (value: string) => {\r\n setFontSizeInput(value);\r\n\r\n if (value.trim() !== \"\") {\r\n const fontSize = parseAndValidateNumber(value, 8, 300, element.fontSize);\r\n updateTextElement(trackId, element.id, { fontSize });\r\n }\r\n };\r\n\r\n const handleFontSizeBlur = () => {\r\n const fontSize = parseAndValidateNumber(\r\n fontSizeInput,\r\n 8,\r\n 300,\r\n element.fontSize\r\n );\r\n setFontSizeInput(fontSize.toString());\r\n updateTextElement(trackId, element.id, { fontSize });\r\n };\r\n\r\n const handleOpacityChange = (value: string) => {\r\n setOpacityInput(value);\r\n\r\n if (value.trim() !== \"\") {\r\n const opacityPercent = parseAndValidateNumber(\r\n value,\r\n 0,\r\n 100,\r\n Math.round(element.opacity * 100)\r\n );\r\n updateTextElement(trackId, element.id, { opacity: opacityPercent / 100 });\r\n }\r\n };\r\n\r\n const handleOpacityBlur = () => {\r\n const opacityPercent = parseAndValidateNumber(\r\n opacityInput,\r\n 0,\r\n 100,\r\n Math.round(element.opacity * 100)\r\n );\r\n setOpacityInput(opacityPercent.toString());\r\n updateTextElement(trackId, element.id, { opacity: opacityPercent / 100 });\r\n };\r\n\r\n return (\r\n <div className=\"space-y-6 p-5\">\r\n <Textarea\r\n placeholder=\"Name\"\r\n defaultValue={element.content}\r\n className=\"min-h-18 resize-none bg-background/50\"\r\n onChange={(e) =>\r\n updateTextElement(trackId, element.id, { content: e.target.value })\r\n }\r\n />\r\n <PropertyItem direction=\"row\">\r\n <PropertyItemLabel>Font</PropertyItemLabel>\r\n <PropertyItemValue>\r\n <FontPicker\r\n defaultValue={element.fontFamily}\r\n onValueChange={(value: FontFamily) =>\r\n updateTextElement(trackId, element.id, { fontFamily: value })\r\n }\r\n />\r\n </PropertyItemValue>\r\n </PropertyItem>\r\n <PropertyItem direction=\"column\">\r\n <PropertyItem direction=\"row\">\r\n <PropertyItemLabel>Style</PropertyItemLabel>\r\n <PropertyItemValue>\r\n <div className=\"flex items-center gap-2\">\r\n <Button\r\n variant={element.fontWeight === \"bold\" ? \"default\" : \"outline\"}\r\n size=\"sm\"\r\n onClick={() =>\r\n updateTextElement(trackId, element.id, {\r\n fontWeight:\r\n element.fontWeight === \"bold\" ? \"normal\" : \"bold\",\r\n })\r\n }\r\n className=\"h-8 px-3 font-bold\"\r\n >\r\n B\r\n </Button>\r\n <Button\r\n variant={element.fontStyle === \"italic\" ? \"default\" : \"outline\"}\r\n size=\"sm\"\r\n onClick={() =>\r\n updateTextElement(trackId, element.id, {\r\n fontStyle:\r\n element.fontStyle === \"italic\" ? \"normal\" : \"italic\",\r\n })\r\n }\r\n className=\"h-8 px-3 italic\"\r\n >\r\n I\r\n </Button>\r\n <Button\r\n variant={\r\n element.textDecoration === \"underline\" ? \"default\" : \"outline\"\r\n }\r\n size=\"sm\"\r\n onClick={() =>\r\n updateTextElement(trackId, element.id, {\r\n textDecoration:\r\n element.textDecoration === \"underline\"\r\n ? \"none\"\r\n : \"underline\",\r\n })\r\n }\r\n className=\"h-8 px-3 underline\"\r\n >\r\n U\r\n </Button>\r\n <Button\r\n variant={\r\n element.textDecoration === \"line-through\"\r\n ? \"default\"\r\n : \"outline\"\r\n }\r\n size=\"sm\"\r\n onClick={() =>\r\n updateTextElement(trackId, element.id, {\r\n textDecoration:\r\n element.textDecoration === \"line-through\"\r\n ? \"none\"\r\n : \"line-through\",\r\n })\r\n }\r\n className=\"h-8 px-3 line-through\"\r\n >\r\n S\r\n </Button>\r\n </div>\r\n </PropertyItemValue>\r\n </PropertyItem>\r\n <PropertyItemLabel>Font size</PropertyItemLabel>\r\n <PropertyItemValue>\r\n <div className=\"flex items-center gap-2\">\r\n <Slider\r\n value={[element.fontSize]}\r\n min={8}\r\n max={300}\r\n step={1}\r\n onValueChange={([value]) => {\r\n updateTextElement(trackId, element.id, { fontSize: value });\r\n setFontSizeInput(value.toString());\r\n }}\r\n className=\"w-full\"\r\n />\r\n <Input\r\n type=\"number\"\r\n value={fontSizeInput}\r\n min={8}\r\n max={300}\r\n onChange={(e) => handleFontSizeChange(e.target.value)}\r\n onBlur={handleFontSizeBlur}\r\n className=\"w-12 !text-xs h-7 rounded-sm text-center\r\n [appearance:textfield]\r\n [&::-webkit-outer-spin-button]:appearance-none\r\n [&::-webkit-inner-spin-button]:appearance-none\"\r\n />\r\n </div>\r\n </PropertyItemValue>\r\n </PropertyItem>\r\n <PropertyItem direction=\"row\">\r\n <PropertyItemLabel>Color</PropertyItemLabel>\r\n <PropertyItemValue>\r\n <Input\r\n type=\"color\"\r\n value={element.color || \"#ffffff\"}\r\n onChange={(e) => {\r\n const color = e.target.value;\r\n updateTextElement(trackId, element.id, { color });\r\n }}\r\n className=\"w-full cursor-pointer rounded-full\"\r\n />\r\n </PropertyItemValue>\r\n </PropertyItem>\r\n <PropertyItem direction=\"row\">\r\n <PropertyItemLabel>Background</PropertyItemLabel>\r\n <PropertyItemValue>\r\n <Input\r\n type=\"color\"\r\n value={\r\n element.backgroundColor === \"transparent\"\r\n ? \"#000000\"\r\n : element.backgroundColor || \"#000000\"\r\n }\r\n onChange={(e) => {\r\n const backgroundColor = e.target.value;\r\n updateTextElement(trackId, element.id, { backgroundColor });\r\n }}\r\n className=\"w-full cursor-pointer rounded-full\"\r\n />\r\n </PropertyItemValue>\r\n </PropertyItem>\r\n <PropertyItem direction=\"column\">\r\n <PropertyItemLabel>Opacity</PropertyItemLabel>\r\n <PropertyItemValue>\r\n <div className=\"flex items-center gap-2\">\r\n <Slider\r\n value={[element.opacity * 100]}\r\n min={0}\r\n max={100}\r\n step={1}\r\n onValueChange={([value]) => {\r\n updateTextElement(trackId, element.id, {\r\n opacity: value / 100,\r\n });\r\n setOpacityInput(value.toString());\r\n }}\r\n className=\"w-full\"\r\n />\r\n <Input\r\n type=\"number\"\r\n value={opacityInput}\r\n min={0}\r\n max={100}\r\n onChange={(e) => handleOpacityChange(e.target.value)}\r\n onBlur={handleOpacityBlur}\r\n className=\"w-12 !text-xs h-7 rounded-sm text-center\r\n [appearance:textfield]\r\n [&::-webkit-outer-spin-button]:appearance-none\r\n [&::-webkit-inner-spin-button]:appearance-none\"\r\n />\r\n </div>\r\n </PropertyItemValue>\r\n </PropertyItem>\r\n </div>\r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport { useMediaStore } from \"@/stores/media-store\";\r\nimport { useTimelineStore } from \"@/stores/timeline-store\";\r\nimport { ScrollArea } from \"../../ui/scroll-area\";\r\nimport { AudioProperties } from \"./audio-properties\";\r\nimport { MediaProperties } from \"./media-properties\";\r\nimport { TextProperties } from \"./text-properties\";\r\nimport { SquareSlashIcon } from \"lucide-react\";\r\n\r\nexport function PropertiesPanel() {\r\n const { selectedElements, tracks } = useTimelineStore();\r\n const { mediaItems } = useMediaStore();\r\n\r\n return (\r\n <>\r\n {selectedElements.length > 0 ? (\r\n <ScrollArea className=\"h-full bg-panel rounded-sm\">\r\n {selectedElements.map(({ trackId, elementId }) => {\r\n const track = tracks.find((t) => t.id === trackId);\r\n const element = track?.elements.find((e) => e.id === elementId);\r\n\r\n if (element?.type === \"text\") {\r\n return (\r\n <div key={elementId}>\r\n <TextProperties element={element} trackId={trackId} />\r\n </div>\r\n );\r\n }\r\n if (element?.type === \"media\") {\r\n const mediaItem = mediaItems.find(\r\n (item) => item.id === element.mediaId\r\n );\r\n\r\n if (mediaItem?.type === \"audio\") {\r\n return <AudioProperties key={elementId} element={element} />;\r\n }\r\n\r\n return (\r\n <div key={elementId}>\r\n <MediaProperties element={element} />\r\n </div>\r\n );\r\n }\r\n return null;\r\n })}\r\n </ScrollArea>\r\n ) : (\r\n <EmptyView />\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nfunction EmptyView() {\r\n return (\r\n <div className=\"bg-panel h-full p-4 flex flex-col items-center justify-center gap-3\">\r\n <SquareSlashIcon\r\n className=\"w-10 h-10 text-muted-foreground\"\r\n strokeWidth={1.5}\r\n />\r\n <div className=\"flex flex-col gap-2 text-center\">\r\n <p className=\"text-lg font-medium\">It’s empty here</p>\r\n <p className=\"text-sm text-muted-foreground text-balance\">\r\n Click an element on the timeline to edit its properties\r\n </p>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { cn } from \"@/lib/utils\";\r\nimport { ChevronDown } from \"lucide-react\";\r\nimport { useState } from \"react\";\r\n\r\ninterface PropertyItemProps {\r\n direction?: \"row\" | \"column\";\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\nexport function PropertyItem({\r\n direction = \"row\",\r\n children,\r\n className,\r\n}: PropertyItemProps) {\r\n return (\r\n <div\r\n className={cn(\r\n \"flex gap-2\",\r\n direction === \"row\"\r\n ? \"items-center justify-between gap-6\"\r\n : \"flex-col gap-1.5\",\r\n className\r\n )}\r\n >\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\nexport function PropertyItemLabel({\r\n children,\r\n className,\r\n}: {\r\n children: React.ReactNode;\r\n className?: string;\r\n}) {\r\n return (\r\n <label className={cn(\"text-xs text-muted-foreground\", className)}>\r\n {children}\r\n </label>\r\n );\r\n}\r\n\r\nexport function PropertyItemValue({\r\n children,\r\n className,\r\n}: {\r\n children: React.ReactNode;\r\n className?: string;\r\n}) {\r\n return <div className={cn(\"flex-1 text-sm\", className)}>{children}</div>;\r\n}\r\n\r\ninterface PropertyGroupProps {\r\n title: string;\r\n children: React.ReactNode;\r\n defaultExpanded?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport function PropertyGroup({\r\n title,\r\n children,\r\n defaultExpanded = true,\r\n className,\r\n}: PropertyGroupProps) {\r\n const [isExpanded, setIsExpanded] = useState(defaultExpanded);\r\n\r\n return (\r\n <PropertyItem direction=\"column\" className={cn(\"gap-3\", className)}>\r\n <div\r\n className=\"flex items-center gap-1.5 cursor-pointer\"\r\n onClick={() => setIsExpanded(!isExpanded)}\r\n >\r\n <PropertyItemLabel className=\"cursor-pointer\">\r\n {title}\r\n </PropertyItemLabel>\r\n <ChevronDown className={cn(\"size-3\", !isExpanded && \"-rotate-90\")} />\r\n </div>\r\n {isExpanded && <PropertyItemValue>{children}</PropertyItemValue>}\r\n </PropertyItem>\r\n );\r\n}\r\n","import { FFmpeg } from \"@ffmpeg/ffmpeg\";\r\nimport { toBlobURL } from \"@ffmpeg/util\";\r\nimport { basePath } from \"./base-path\";\r\n\r\nlet ffmpeg: FFmpeg | null = null;\r\n\r\nexport const initFFmpeg = async (): Promise<FFmpeg> => {\r\n if (ffmpeg) return ffmpeg;\r\n\r\n ffmpeg = new FFmpeg();\r\n\r\n // Use locally hosted files instead of CDN\r\n const baseURL = `${basePath}/ffmpeg`;\r\n\r\n await ffmpeg.load({\r\n coreURL: await toBlobURL(`${baseURL}/ffmpeg-core.js`, \"text/javascript\"),\r\n wasmURL: await toBlobURL(`${baseURL}/ffmpeg-core.wasm`, \"application/wasm\"),\r\n });\r\n\r\n return ffmpeg;\r\n};\r\n\r\nexport const generateThumbnail = async (\r\n videoFile: File,\r\n timeInSeconds = 1\r\n): Promise<string> => {\r\n const ffmpeg = await initFFmpeg();\r\n\r\n const inputName = \"input.mp4\";\r\n const outputName = \"thumbnail.jpg\";\r\n\r\n // Write input file\r\n await ffmpeg.writeFile(\r\n inputName,\r\n new Uint8Array(await videoFile.arrayBuffer())\r\n );\r\n\r\n // Generate thumbnail at specific time\r\n await ffmpeg.exec([\r\n \"-i\",\r\n inputName,\r\n \"-ss\",\r\n timeInSeconds.toString(),\r\n \"-vframes\",\r\n \"1\",\r\n \"-vf\",\r\n \"scale=320:240\",\r\n \"-q:v\",\r\n \"2\",\r\n outputName,\r\n ]);\r\n\r\n // Read output file\r\n const data = await ffmpeg.readFile(outputName);\r\n const blob = new Blob([data], { type: \"image/jpeg\" });\r\n\r\n // Cleanup\r\n await ffmpeg.deleteFile(inputName);\r\n await ffmpeg.deleteFile(outputName);\r\n\r\n return URL.createObjectURL(blob);\r\n};\r\n\r\nexport const trimVideo = async (\r\n videoFile: File,\r\n startTime: number,\r\n endTime: number,\r\n onProgress?: (progress: number) => void\r\n): Promise<Blob> => {\r\n const ffmpeg = await initFFmpeg();\r\n\r\n const inputName = \"input.mp4\";\r\n const outputName = \"output.mp4\";\r\n\r\n // Set up progress callback\r\n if (onProgress) {\r\n ffmpeg.on(\"progress\", ({ progress }) => {\r\n onProgress(progress * 100);\r\n });\r\n }\r\n\r\n // Write input file\r\n await ffmpeg.writeFile(\r\n inputName,\r\n new Uint8Array(await videoFile.arrayBuffer())\r\n );\r\n\r\n const duration = endTime - startTime;\r\n\r\n // Trim video\r\n await ffmpeg.exec([\r\n \"-i\",\r\n inputName,\r\n \"-ss\",\r\n startTime.toString(),\r\n \"-t\",\r\n duration.toString(),\r\n \"-c\",\r\n \"copy\", // Use stream copy for faster processing\r\n outputName,\r\n ]);\r\n\r\n // Read output file\r\n const data = await ffmpeg.readFile(outputName);\r\n const blob = new Blob([data], { type: \"video/mp4\" });\r\n\r\n // Cleanup\r\n await ffmpeg.deleteFile(inputName);\r\n await ffmpeg.deleteFile(outputName);\r\n\r\n return blob;\r\n};\r\n\r\nexport const getVideoInfo = async (\r\n videoFile: File\r\n): Promise<{\r\n duration: number;\r\n width: number;\r\n height: number;\r\n fps: number;\r\n}> => {\r\n const ffmpeg = await initFFmpeg();\r\n\r\n const inputName = \"input.mp4\";\r\n\r\n // Write input file\r\n await ffmpeg.writeFile(\r\n inputName,\r\n new Uint8Array(await videoFile.arrayBuffer())\r\n );\r\n\r\n // Capture FFmpeg stderr output with a one-time listener pattern\r\n let ffmpegOutput = \"\";\r\n let listening = true;\r\n const listener = (data: string) => {\r\n if (listening) ffmpegOutput += data;\r\n };\r\n ffmpeg.on(\"log\", ({ message }) => listener(message));\r\n\r\n // Run ffmpeg to get info (stderr will contain the info)\r\n try {\r\n await ffmpeg.exec([\"-i\", inputName, \"-f\", \"null\", \"-\"]);\r\n } catch (error) {\r\n listening = false;\r\n await ffmpeg.deleteFile(inputName);\r\n console.error(\"FFmpeg execution failed:\", error);\r\n throw new Error(\r\n \"Failed to extract video info. The file may be corrupted or in an unsupported format.\"\r\n );\r\n }\r\n\r\n // Disable listener after exec completes\r\n listening = false;\r\n\r\n // Cleanup\r\n await ffmpeg.deleteFile(inputName);\r\n\r\n // Parse output for duration, resolution, and fps\r\n // Example: Duration: 00:00:10.00, start: 0.000000, bitrate: 1234 kb/s\r\n // Example: Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 90k tbn, 60 tbc\r\n\r\n const durationMatch = ffmpegOutput.match(/Duration: (\\d+):(\\d+):([\\d.]+)/);\r\n let duration = 0;\r\n if (durationMatch) {\r\n const [, h, m, s] = durationMatch;\r\n duration = parseInt(h) * 3600 + parseInt(m) * 60 + parseFloat(s);\r\n }\r\n\r\n const videoStreamMatch = ffmpegOutput.match(\r\n /Video:.* (\\d+)x(\\d+)[^,]*, ([\\d.]+) fps/\r\n );\r\n let width = 0,\r\n height = 0,\r\n fps = 0;\r\n if (videoStreamMatch) {\r\n width = parseInt(videoStreamMatch[1]);\r\n height = parseInt(videoStreamMatch[2]);\r\n fps = parseFloat(videoStreamMatch[3]);\r\n }\r\n\r\n return {\r\n duration,\r\n width,\r\n height,\r\n fps,\r\n };\r\n};\r\n\r\nexport const convertToWebM = async (\r\n videoFile: File,\r\n onProgress?: (progress: number) => void\r\n): Promise<Blob> => {\r\n const ffmpeg = await initFFmpeg();\r\n\r\n const inputName = \"input.mp4\";\r\n const outputName = \"output.webm\";\r\n\r\n // Set up progress callback\r\n if (onProgress) {\r\n ffmpeg.on(\"progress\", ({ progress }) => {\r\n onProgress(progress * 100);\r\n });\r\n }\r\n\r\n // Write input file\r\n await ffmpeg.writeFile(\r\n inputName,\r\n new Uint8Array(await videoFile.arrayBuffer())\r\n );\r\n\r\n // Convert to WebM\r\n await ffmpeg.exec([\r\n \"-i\",\r\n inputName,\r\n \"-c:v\",\r\n \"libvpx-vp9\",\r\n \"-crf\",\r\n \"30\",\r\n \"-b:v\",\r\n \"0\",\r\n \"-c:a\",\r\n \"libopus\",\r\n outputName,\r\n ]);\r\n\r\n // Read output file\r\n const data = await ffmpeg.readFile(outputName);\r\n const blob = new Blob([data], { type: \"video/webm\" });\r\n\r\n // Cleanup\r\n await ffmpeg.deleteFile(inputName);\r\n await ffmpeg.deleteFile(outputName);\r\n\r\n return blob;\r\n};\r\n\r\nexport const extractAudio = async (\r\n videoFile: File,\r\n format: \"mp3\" | \"wav\" = \"mp3\"\r\n): Promise<Blob> => {\r\n const ffmpeg = await initFFmpeg();\r\n\r\n const inputName = \"input.mp4\";\r\n const outputName = `output.${format}`;\r\n\r\n // Write input file\r\n await ffmpeg.writeFile(\r\n inputName,\r\n new Uint8Array(await videoFile.arrayBuffer())\r\n );\r\n\r\n // Extract audio\r\n await ffmpeg.exec([\r\n \"-i\",\r\n inputName,\r\n \"-vn\", // Disable video\r\n \"-acodec\",\r\n format === \"mp3\" ? \"libmp3lame\" : \"pcm_s16le\",\r\n outputName,\r\n ]);\r\n\r\n // Read output file\r\n const data = await ffmpeg.readFile(outputName);\r\n const blob = new Blob([data], { type: `audio/${format}` });\r\n\r\n // Cleanup\r\n await ffmpeg.deleteFile(inputName);\r\n await ffmpeg.deleteFile(outputName);\r\n\r\n return blob;\r\n};\r\n","import { toast } from \"sonner\";\r\nimport {\r\n getFileType,\r\n generateVideoThumbnail,\r\n getMediaDuration,\r\n getImageDimensions,\r\n type MediaItem,\r\n} from \"@/stores/media-store\";\r\nimport { generateThumbnail, getVideoInfo } from \"./ffmpeg-utils\";\r\n\r\nexport interface ProcessedMediaItem extends Omit<MediaItem, \"id\"> {}\r\n\r\nexport async function processMediaFiles(\r\n files: FileList | File[],\r\n onProgress?: (progress: number) => void\r\n): Promise<ProcessedMediaItem[]> {\r\n const fileArray = Array.from(files);\r\n const processedItems: ProcessedMediaItem[] = [];\r\n\r\n const total = fileArray.length;\r\n let completed = 0;\r\n\r\n for (const file of fileArray) {\r\n const fileType = getFileType(file);\r\n\r\n if (!fileType) {\r\n toast.error(`Unsupported file type: ${file.name}`);\r\n continue;\r\n }\r\n\r\n const url = URL.createObjectURL(file);\r\n let thumbnailUrl: string | undefined;\r\n let duration: number | undefined;\r\n let width: number | undefined;\r\n let height: number | undefined;\r\n let fps: number | undefined;\r\n\r\n try {\r\n if (fileType === \"image\") {\r\n // Get image dimensions\r\n const dimensions = await getImageDimensions(file);\r\n width = dimensions.width;\r\n height = dimensions.height;\r\n } else if (fileType === \"video\") {\r\n try {\r\n // Use FFmpeg for comprehensive video info extraction\r\n const videoInfo = await getVideoInfo(file);\r\n duration = videoInfo.duration;\r\n width = videoInfo.width;\r\n height = videoInfo.height;\r\n fps = videoInfo.fps;\r\n\r\n // Generate thumbnail using FFmpeg\r\n thumbnailUrl = await generateThumbnail(file, 1);\r\n } catch (error) {\r\n console.warn(\r\n \"FFmpeg processing failed, falling back to basic processing:\",\r\n error\r\n );\r\n // Fallback to basic processing\r\n const videoResult = await generateVideoThumbnail(file);\r\n thumbnailUrl = videoResult.thumbnailUrl;\r\n width = videoResult.width;\r\n height = videoResult.height;\r\n duration = await getMediaDuration(file);\r\n // FPS will remain undefined for fallback\r\n }\r\n } else if (fileType === \"audio\") {\r\n // For audio, we don't set width/height/fps (they'll be undefined)\r\n duration = await getMediaDuration(file);\r\n }\r\n\r\n processedItems.push({\r\n name: file.name,\r\n type: fileType,\r\n file,\r\n url,\r\n thumbnailUrl,\r\n duration,\r\n width,\r\n height,\r\n fps,\r\n });\r\n\r\n // Yield back to the event loop to keep the UI responsive\r\n await new Promise((resolve) => setTimeout(resolve, 0));\r\n\r\n completed += 1;\r\n if (onProgress) {\r\n const percent = Math.round((completed / total) * 100);\r\n onProgress(percent);\r\n }\r\n } catch (error) {\r\n console.error(\"Error processing file:\", file.name, error);\r\n toast.error(`Failed to process ${file.name}`);\r\n URL.revokeObjectURL(url); // Clean up on error\r\n }\r\n }\r\n\r\n return processedItems;\r\n}\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst TooltipProvider = TooltipPrimitive.Provider;\r\n\r\nconst Tooltip = TooltipPrimitive.Root;\r\n\r\nconst TooltipTrigger = TooltipPrimitive.Trigger;\r\n\r\nconst TooltipContent = React.forwardRef<\r\n React.ElementRef<typeof TooltipPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\r\n>(({ className, sideOffset = 4, ...props }, ref) => (\r\n <TooltipPrimitive.Portal>\r\n <TooltipPrimitive.Content\r\n ref={ref}\r\n sideOffset={sideOffset}\r\n className={cn(\r\n \"z-50 overflow-hidden rounded-md bg-foreground px-3 py-1.5 text-xs text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </TooltipPrimitive.Portal>\r\n));\r\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\r\n\r\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nconst Separator = React.forwardRef<\r\n React.ElementRef<typeof SeparatorPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\r\n>(\r\n (\r\n { className, orientation = \"horizontal\", decorative = true, ...props },\r\n ref\r\n ) => (\r\n <SeparatorPrimitive.Root\r\n ref={ref}\r\n decorative={decorative}\r\n orientation={orientation}\r\n className={cn(\r\n \"shrink-0 bg-border\",\r\n orientation === \"horizontal\" ? \"h-px w-full\" : \"h-full w-px\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n);\r\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\r\n\r\nexport { Separator };\r\n","\"use client\";\r\n\r\nimport * as ResizablePrimitive from \"react-resizable-panels\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst ResizablePanelGroup = ({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => (\r\n <ResizablePrimitive.PanelGroup\r\n className={cn(\r\n \"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n);\r\n\r\nconst ResizablePanel = ResizablePrimitive.Panel;\r\n\r\nconst ResizableHandle = ({\r\n withHandle,\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {\r\n withHandle?: boolean;\r\n}) => (\r\n <ResizablePrimitive.PanelResizeHandle\r\n className={cn(\r\n \"relative flex w-px items-center justify-center bg-transparent after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n);\r\n\r\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle };\r\n","import { create } from \"zustand\";\r\nimport type { PlaybackState, PlaybackControls } from \"@/types/playback\";\r\nimport { useTimelineStore } from \"@/stores/timeline-store\";\r\nimport { useProjectStore } from \"./project-store\";\r\n\r\ninterface PlaybackStore extends PlaybackState, PlaybackControls {\r\n setDuration: (duration: number) => void;\r\n setCurrentTime: (time: number) => void;\r\n}\r\n\r\nlet playbackTimer: number | null = null;\r\n\r\nconst startTimer = (store: () => PlaybackStore) => {\r\n if (playbackTimer) cancelAnimationFrame(playbackTimer);\r\n\r\n // Use requestAnimationFrame for smoother updates\r\n const updateTime = () => {\r\n const state = store();\r\n if (state.isPlaying && state.currentTime < state.duration) {\r\n const now = performance.now();\r\n const delta = (now - lastUpdate) / 1000; // Convert to seconds\r\n lastUpdate = now;\r\n\r\n const newTime = state.currentTime + delta * state.speed;\r\n\r\n // Get actual content duration from timeline store\r\n const actualContentDuration = useTimelineStore\r\n .getState()\r\n .getTotalDuration();\r\n\r\n // Stop at actual content end, not timeline duration (which has 10s minimum)\r\n // It was either this or reducing default min timeline to 1 second\r\n const effectiveDuration =\r\n actualContentDuration > 0 ? actualContentDuration : state.duration;\r\n\r\n if (newTime >= effectiveDuration) {\r\n // When content completes, pause just before the end so we can see the last frame\r\n const projectFps = useProjectStore.getState().activeProject?.fps;\r\n if (!projectFps)\r\n console.error(\"Project FPS is not set, assuming 30fps\");\r\n\r\n const frameOffset = 1 / (projectFps ?? 30); // Stop 1 frame before end based on project FPS\r\n const stopTime = Math.max(0, effectiveDuration - frameOffset);\r\n\r\n state.pause();\r\n state.setCurrentTime(stopTime);\r\n // Notify video elements to sync with end position\r\n window.dispatchEvent(\r\n new CustomEvent(\"playback-seek\", {\r\n detail: { time: stopTime },\r\n })\r\n );\r\n } else {\r\n state.setCurrentTime(newTime);\r\n // Notify video elements to sync\r\n window.dispatchEvent(\r\n new CustomEvent(\"playback-update\", { detail: { time: newTime } })\r\n );\r\n }\r\n }\r\n playbackTimer = requestAnimationFrame(updateTime);\r\n };\r\n\r\n let lastUpdate = performance.now();\r\n playbackTimer = requestAnimationFrame(updateTime);\r\n};\r\n\r\nconst stopTimer = () => {\r\n if (playbackTimer) {\r\n cancelAnimationFrame(playbackTimer);\r\n playbackTimer = null;\r\n }\r\n};\r\n\r\nexport const usePlaybackStore = create<PlaybackStore>((set, get) => ({\r\n isPlaying: false,\r\n currentTime: 0,\r\n duration: 0,\r\n volume: 1,\r\n muted: false,\r\n previousVolume: 1,\r\n speed: 1.0,\r\n\r\n play: () => {\r\n set({ isPlaying: true });\r\n startTimer(get);\r\n },\r\n\r\n pause: () => {\r\n set({ isPlaying: false });\r\n stopTimer();\r\n },\r\n\r\n toggle: () => {\r\n const { isPlaying } = get();\r\n if (isPlaying) {\r\n get().pause();\r\n } else {\r\n get().play();\r\n }\r\n },\r\n\r\n seek: (time: number) => {\r\n const { duration } = get();\r\n const clampedTime = Math.max(0, Math.min(duration, time));\r\n set({ currentTime: clampedTime });\r\n\r\n const event = new CustomEvent(\"playback-seek\", {\r\n detail: { time: clampedTime },\r\n });\r\n window.dispatchEvent(event);\r\n },\r\n\r\n setVolume: (volume: number) =>\r\n set((state) => ({\r\n volume: Math.max(0, Math.min(1, volume)),\r\n muted: volume === 0,\r\n previousVolume: volume > 0 ? volume : state.previousVolume,\r\n })),\r\n\r\n setSpeed: (speed: number) => {\r\n const newSpeed = Math.max(0.1, Math.min(2.0, speed));\r\n set({ speed: newSpeed });\r\n\r\n const event = new CustomEvent(\"playback-speed\", {\r\n detail: { speed: newSpeed },\r\n });\r\n window.dispatchEvent(event);\r\n },\r\n\r\n setDuration: (duration: number) => set({ duration }),\r\n setCurrentTime: (time: number) => set({ currentTime: time }),\r\n\r\n mute: () => {\r\n const { volume, previousVolume } = get();\r\n set({\r\n muted: true,\r\n previousVolume: volume > 0 ? volume : previousVolume,\r\n volume: 0,\r\n });\r\n },\r\n\r\n unmute: () => {\r\n const { previousVolume } = get();\r\n set({ muted: false, volume: previousVolume ?? 1 });\r\n },\r\n\r\n toggleMute: () => {\r\n const { muted } = get();\r\n if (muted) {\r\n get().unmute();\r\n } else {\r\n get().mute();\r\n }\r\n },\r\n}));\r\n","import {\r\n CaptionsIcon,\r\n ArrowLeftRightIcon,\r\n SparklesIcon,\r\n StickerIcon,\r\n MusicIcon,\r\n VideoIcon,\r\n BlendIcon,\r\n SlidersHorizontalIcon,\r\n LucideIcon,\r\n TypeIcon,\r\n SettingsIcon,\r\n} from \"lucide-react\";\r\nimport { create } from \"zustand\";\r\n\r\nexport type Tab =\r\n | \"media\"\r\n | \"sounds\"\r\n | \"text\"\r\n | \"stickers\"\r\n | \"effects\"\r\n | \"transitions\"\r\n | \"captions\"\r\n | \"filters\"\r\n | \"adjustment\"\r\n | \"settings\";\r\n\r\nexport const tabs: { [key in Tab]: { icon: LucideIcon; label: string } } = {\r\n media: {\r\n icon: VideoIcon,\r\n label: \"Media\",\r\n },\r\n sounds: {\r\n icon: MusicIcon,\r\n label: \"Sounds\",\r\n },\r\n text: {\r\n icon: TypeIcon,\r\n label: \"Text\",\r\n },\r\n stickers: {\r\n icon: StickerIcon,\r\n label: \"Stickers\",\r\n },\r\n effects: {\r\n icon: SparklesIcon,\r\n label: \"Effects\",\r\n },\r\n transitions: {\r\n icon: ArrowLeftRightIcon,\r\n label: \"Transitions\",\r\n },\r\n captions: {\r\n icon: CaptionsIcon,\r\n label: \"Captions\",\r\n },\r\n filters: {\r\n icon: BlendIcon,\r\n label: \"Filters\",\r\n },\r\n adjustment: {\r\n icon: SlidersHorizontalIcon,\r\n label: \"Adjustment\",\r\n },\r\n settings: {\r\n icon: SettingsIcon,\r\n label: \"Settings\",\r\n },\r\n};\r\n\r\ninterface MediaPanelStore {\r\n activeTab: Tab;\r\n setActiveTab: (tab: Tab) => void;\r\n}\r\n\r\nexport const useMediaPanelStore = create<MediaPanelStore>((set) => ({\r\n activeTab: \"media\",\r\n setActiveTab: (tab) => set({ activeTab: tab }),\r\n}));\r\n","\"use client\";\r\n\r\nimport { cn } from \"@/lib/utils\";\r\nimport { Tab, tabs, useMediaPanelStore } from \"./store\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport { ChevronRight, ChevronLeft } from \"lucide-react\";\r\nimport { useRef, useState, useEffect } from \"react\";\r\n\r\nexport function TabBar() {\r\n const { activeTab, setActiveTab } = useMediaPanelStore();\r\n const scrollContainerRef = useRef<HTMLDivElement>(null);\r\n const [isAtEnd, setIsAtEnd] = useState(false);\r\n const [isAtStart, setIsAtStart] = useState(true);\r\n\r\n const scrollToEnd = () => {\r\n if (scrollContainerRef.current) {\r\n scrollContainerRef.current.scrollTo({\r\n left: scrollContainerRef.current.scrollWidth,\r\n });\r\n setIsAtEnd(true);\r\n setIsAtStart(false);\r\n }\r\n };\r\n\r\n const scrollToStart = () => {\r\n if (scrollContainerRef.current) {\r\n scrollContainerRef.current.scrollTo({\r\n left: 0,\r\n });\r\n setIsAtStart(true);\r\n setIsAtEnd(false);\r\n }\r\n };\r\n\r\n const checkScrollPosition = () => {\r\n if (scrollContainerRef.current) {\r\n const { scrollLeft, scrollWidth, clientWidth } =\r\n scrollContainerRef.current;\r\n const isAtEndNow = scrollLeft + clientWidth >= scrollWidth - 1;\r\n const isAtStartNow = scrollLeft <= 1;\r\n setIsAtEnd(isAtEndNow);\r\n setIsAtStart(isAtStartNow);\r\n }\r\n };\r\n\r\n // We're using useEffect because we need to sync with external DOM scroll events\r\n useEffect(() => {\r\n const container = scrollContainerRef.current;\r\n if (!container) return;\r\n\r\n checkScrollPosition();\r\n container.addEventListener(\"scroll\", checkScrollPosition);\r\n\r\n const resizeObserver = new ResizeObserver(checkScrollPosition);\r\n resizeObserver.observe(container);\r\n\r\n return () => {\r\n container.removeEventListener(\"scroll\", checkScrollPosition);\r\n resizeObserver.disconnect();\r\n };\r\n }, []);\r\n\r\n return (\r\n <div className=\"flex\">\r\n <ScrollButton\r\n direction=\"left\"\r\n onClick={scrollToStart}\r\n isVisible={!isAtStart}\r\n />\r\n <div\r\n ref={scrollContainerRef}\r\n className=\"h-full px-4 flex flex-col justify-start items-center gap-5 overflow-x-auto scrollbar-x-hidden relative w-full py-4\"\r\n >\r\n {(Object.keys(tabs) as Tab[]).map((tabKey) => {\r\n const tab = tabs[tabKey];\r\n return (\r\n <div\r\n className={cn(\r\n \"flex flex-col gap-0.5 items-center cursor-pointer opacity-100 hover:opacity-75\",\r\n activeTab === tabKey ? \"text-primary !opacity-100\" : \"text-muted-foreground\"\r\n )}\r\n onClick={() => setActiveTab(tabKey)}\r\n key={tabKey}\r\n >\r\n <tab.icon className=\"size-[1.1rem]!\" />\r\n </div>\r\n );\r\n })}\r\n </div>\r\n <ScrollButton\r\n direction=\"right\"\r\n onClick={scrollToEnd}\r\n isVisible={!isAtEnd}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nfunction ScrollButton({\r\n direction,\r\n onClick,\r\n isVisible,\r\n}: {\r\n direction: \"left\" | \"right\";\r\n onClick: () => void;\r\n isVisible: boolean;\r\n}) {\r\n if (!isVisible) return null;\r\n\r\n const Icon = direction === \"left\" ? ChevronLeft : ChevronRight;\r\n\r\n return (\r\n <div className=\"bg-panel-accent w-12 h-full flex items-center justify-center\">\r\n <Button\r\n size=\"icon\"\r\n className=\"rounded-[0.4rem] w-4 h-7 bg-foreground/10!\"\r\n onClick={onClick}\r\n >\r\n <Icon className=\"size-4! text-foreground\" />\r\n </Button>\r\n </div>\r\n );\r\n}\r\n","import { useState, useRef } from \"react\";\r\n\r\ninterface UseDragDropOptions {\r\n onDrop?: (files: FileList) => void;\r\n}\r\n\r\n// Helper function to check if drag contains files from external sources (not internal app drags)\r\nconst containsFiles = (dataTransfer: DataTransfer): boolean => {\r\n // Check if this is an internal app drag (media item)\r\n if (dataTransfer.types.includes(\"application/x-media-item\")) {\r\n return false;\r\n }\r\n\r\n // Only show overlay for external file drags\r\n return dataTransfer.types.includes(\"Files\");\r\n};\r\n\r\nexport function useDragDrop(options: UseDragDropOptions = {}) {\r\n const [isDragOver, setIsDragOver] = useState(false);\r\n const dragCounterRef = useRef(0);\r\n\r\n const handleDragEnter = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n\r\n // Only handle external file drags, not internal app element drags\r\n if (!containsFiles(e.dataTransfer)) {\r\n return;\r\n }\r\n\r\n dragCounterRef.current += 1;\r\n if (!isDragOver) {\r\n setIsDragOver(true);\r\n }\r\n };\r\n\r\n const handleDragOver = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n\r\n // Only handle file drags\r\n if (!containsFiles(e.dataTransfer)) {\r\n return;\r\n }\r\n };\r\n\r\n const handleDragLeave = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n\r\n // Only handle file drags\r\n if (!containsFiles(e.dataTransfer)) {\r\n return;\r\n }\r\n\r\n dragCounterRef.current -= 1;\r\n if (dragCounterRef.current === 0) {\r\n setIsDragOver(false);\r\n }\r\n };\r\n\r\n const handleDrop = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragOver(false);\r\n dragCounterRef.current = 0;\r\n\r\n // Only handle file drops\r\n if (\r\n options.onDrop &&\r\n e.dataTransfer.files &&\r\n containsFiles(e.dataTransfer)\r\n ) {\r\n options.onDrop(e.dataTransfer.files);\r\n }\r\n };\r\n\r\n const dragProps = {\r\n onDragEnter: handleDragEnter,\r\n onDragOver: handleDragOver,\r\n onDragLeave: handleDragLeave,\r\n onDrop: handleDrop,\r\n };\r\n\r\n return {\r\n isDragOver,\r\n dragProps,\r\n };\r\n}\r\n","import { Upload, Plus, Image } from \"lucide-react\";\r\nimport { Button } from \"@/components/ui/button\";\r\n\r\ninterface MediaDragOverlayProps {\r\n isVisible: boolean;\r\n isProcessing?: boolean;\r\n progress?: number;\r\n onClick?: () => void;\r\n isEmptyState?: boolean;\r\n}\r\n\r\nexport function MediaDragOverlay({\r\n isVisible,\r\n isProcessing = false,\r\n progress = 0,\r\n onClick,\r\n isEmptyState = false,\r\n}: MediaDragOverlayProps) {\r\n if (!isVisible) return null;\r\n\r\n const handleClick = (e: React.MouseEvent) => {\r\n if (isProcessing || !onClick) return;\r\n e.preventDefault();\r\n e.stopPropagation();\r\n onClick();\r\n };\r\n\r\n return (\r\n <div\r\n className=\"flex flex-col items-center justify-center gap-4 h-full text-center rounded-lg bg-foreground/5 hover:bg-foreground/10 transition-all duration-200 p-8\"\r\n onClick={handleClick}\r\n >\r\n <div className=\"flex items-center justify-center\">\r\n <Upload className=\"h-10 w-10 text-foreground\" />\r\n </div>\r\n\r\n <div className=\"space-y-2\">\r\n <p className=\"text-xs text-muted-foreground max-w-sm\">\r\n {isProcessing\r\n ? `Processing your files (${progress}%)`\r\n : \"Drag and drop videos, photos, and audio files here\"}\r\n </p>\r\n </div>\r\n\r\n {isProcessing && (\r\n <div className=\"w-full max-w-xs\">\r\n <div className=\"w-full bg-muted/50 rounded-full h-2\">\r\n <div\r\n className=\"bg-primary h-2 rounded-full transition-all duration-300\"\r\n style={{ width: `${progress}%` }}\r\n />\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport { AspectRatio as AspectRatioPrimitive } from \"radix-ui\";\r\n\r\nconst AspectRatio = AspectRatioPrimitive.Root;\r\n\r\nexport { AspectRatio };\r\n","\"use client\";\r\n\r\nimport { AspectRatio } from \"@/components/ui/aspect-ratio\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport {\r\n Tooltip,\r\n TooltipContent,\r\n TooltipTrigger,\r\n} from \"@/components/ui/tooltip\";\r\nimport { ReactNode, useState, useRef, useEffect } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { Plus } from \"lucide-react\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { usePlaybackStore } from \"@/stores/playback-store\";\r\n\r\nexport interface DraggableMediaItemProps {\r\n name: string;\r\n preview: ReactNode;\r\n dragData: Record<string, any>;\r\n onDragStart?: (e: React.DragEvent) => void;\r\n onAddToTimeline?: (currentTime: number) => void;\r\n aspectRatio?: number;\r\n className?: string;\r\n showPlusOnDrag?: boolean;\r\n showLabel?: boolean;\r\n rounded?: boolean;\r\n variant?: \"card\" | \"compact\";\r\n}\r\n\r\nexport function DraggableMediaItem({\r\n name,\r\n preview,\r\n dragData,\r\n onDragStart,\r\n onAddToTimeline,\r\n aspectRatio = 16 / 9,\r\n className = \"\",\r\n showPlusOnDrag = true,\r\n showLabel = true,\r\n rounded = true,\r\n variant = \"card\",\r\n}: DraggableMediaItemProps) {\r\n const [isDragging, setIsDragging] = useState(false);\r\n const [dragPosition, setDragPosition] = useState({ x: 0, y: 0 });\r\n const dragRef = useRef<HTMLDivElement>(null);\r\n const currentTime = usePlaybackStore((state) => state.currentTime);\r\n\r\n const handleAddToTimeline = () => {\r\n onAddToTimeline?.(currentTime);\r\n };\r\n\r\n const emptyImg = new window.Image();\r\n emptyImg.src =\r\n \"data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=\";\r\n\r\n useEffect(() => {\r\n if (!isDragging) return;\r\n\r\n const handleDragOver = (e: DragEvent) => {\r\n setDragPosition({ x: e.clientX, y: e.clientY });\r\n };\r\n\r\n document.addEventListener(\"dragover\", handleDragOver);\r\n\r\n return () => {\r\n document.removeEventListener(\"dragover\", handleDragOver);\r\n };\r\n }, [isDragging]);\r\n\r\n const handleDragStart = (e: React.DragEvent) => {\r\n e.dataTransfer.setDragImage(emptyImg, 0, 0);\r\n\r\n // Set drag data\r\n e.dataTransfer.setData(\r\n \"application/x-media-item\",\r\n JSON.stringify(dragData)\r\n );\r\n e.dataTransfer.effectAllowed = \"copy\";\r\n\r\n // Set initial position and show custom drag preview\r\n setDragPosition({ x: e.clientX, y: e.clientY });\r\n setIsDragging(true);\r\n\r\n onDragStart?.(e);\r\n };\r\n\r\n const handleDragEnd = () => {\r\n setIsDragging(false);\r\n };\r\n\r\n return (\r\n <>\r\n {variant === \"card\" ? (\r\n <div ref={dragRef} className=\"relative group w-28 h-28\">\r\n <div\r\n className={`flex flex-col gap-1 p-0 h-auto w-full relative cursor-default ${className}`}\r\n >\r\n <AspectRatio\r\n ratio={aspectRatio}\r\n className={cn(\r\n \"bg-panel-accent relative overflow-hidden\",\r\n rounded && \"rounded-md\",\r\n \"[&::-webkit-drag-ghost]:opacity-0\" // Webkit-specific ghost hiding\r\n )}\r\n draggable={true}\r\n onDragStart={handleDragStart}\r\n onDragEnd={handleDragEnd}\r\n >\r\n {preview}\r\n {!isDragging && (\r\n <PlusButton\r\n className=\"opacity-0 group-hover:opacity-100\"\r\n onClick={handleAddToTimeline}\r\n />\r\n )}\r\n </AspectRatio>\r\n {showLabel && (\r\n <span\r\n className=\"text-[0.7rem] text-muted-foreground truncate w-full text-left\"\r\n aria-label={name}\r\n title={name}\r\n >\r\n {name.length > 8\r\n ? `${name.slice(0, 16)}...${name.slice(-3)}`\r\n : name}\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n ) : (\r\n <div ref={dragRef} className=\"relative group w-full\">\r\n <div\r\n className={cn(\r\n \"h-10 flex items-center gap-3 cursor-default w-full\",\r\n \"[&::-webkit-drag-ghost]:opacity-0\",\r\n className\r\n )}\r\n draggable={true}\r\n onDragStart={handleDragStart}\r\n onDragEnd={handleDragEnd}\r\n >\r\n <div className=\"w-6 h-6 flex-shrink-0 rounded overflow-hidden\">\r\n {preview}\r\n </div>\r\n <span className=\"text-sm truncate flex-1 w-full\">{name}</span>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {/* Custom drag preview */}\r\n {isDragging &&\r\n typeof document !== \"undefined\" &&\r\n createPortal(\r\n <div\r\n className=\"fixed pointer-events-none z-9999\"\r\n style={{\r\n left: dragPosition.x - 40, // Center the preview (half of 80px)\r\n top: dragPosition.y - 40, // Center the preview (half of 80px)\r\n }}\r\n >\r\n <div className=\"w-[80px]\">\r\n <AspectRatio\r\n ratio={1}\r\n className=\"relative rounded-md overflow-hidden shadow-2xl ring-3 ring-primary\"\r\n >\r\n <div className=\"w-full h-full [&_img]:w-full [&_img]:h-full [&_img]:object-cover [&_img]:rounded-none\">\r\n {preview}\r\n </div>\r\n {showPlusOnDrag && (\r\n <PlusButton\r\n onClick={handleAddToTimeline}\r\n tooltipText=\"Add to timeline or drag to position\"\r\n />\r\n )}\r\n </AspectRatio>\r\n </div>\r\n </div>,\r\n document.body\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nfunction PlusButton({\r\n className,\r\n onClick,\r\n tooltipText,\r\n}: {\r\n className?: string;\r\n onClick?: () => void;\r\n tooltipText?: string;\r\n}) {\r\n const button = (\r\n <Button\r\n size=\"icon\"\r\n className={cn(\r\n \"absolute bottom-2 right-2 size-4 bg-background text-foreground\",\r\n className\r\n )}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n onClick?.();\r\n }}\r\n title={tooltipText}\r\n >\r\n <Plus className=\"size-3!\" />\r\n </Button>\r\n );\r\n\r\n if (tooltipText) {\r\n return (\r\n <Tooltip>\r\n <TooltipTrigger asChild>{button}</TooltipTrigger>\r\n <TooltipContent>\r\n <p>{tooltipText}</p>\r\n </TooltipContent>\r\n </Tooltip>\r\n );\r\n }\r\n\r\n return button;\r\n}\r\n","\"use client\";\r\n\r\nimport { useDragDrop } from \"@/hooks/use-drag-drop\";\r\nimport { processMediaFiles } from \"@/lib/media-processing\";\r\nimport { useMediaStore, type MediaItem } from \"@/stores/media-store\";\r\nimport {\r\n ArrowDown01,\r\n CloudUpload,\r\n Grid2X2,\r\n Image,\r\n List,\r\n Loader2,\r\n Music,\r\n Search,\r\n Video,\r\n} from \"lucide-react\";\r\nimport { useEffect, useRef, useState, useMemo } from \"react\";\r\nimport { toast } from \"sonner\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport { MediaDragOverlay } from \"@/components/editor/media-panel/drag-overlay\";\r\nimport {\r\n ContextMenu,\r\n ContextMenuContent,\r\n ContextMenuItem,\r\n ContextMenuTrigger,\r\n} from \"@/components/ui/context-menu\";\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n DropdownMenuTrigger,\r\n} from \"@/components/ui/dropdown-menu\";\r\nimport { DraggableMediaItem } from \"@/components/ui/draggable-item\";\r\nimport { useProjectStore } from \"@/stores/project-store\";\r\nimport { useTimelineStore } from \"@/stores/timeline-store\";\r\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\r\nimport {\r\n Tooltip,\r\n TooltipContent,\r\n TooltipProvider,\r\n TooltipTrigger,\r\n} from \"@/components/ui/tooltip\";\r\nimport { usePanelStore } from \"@/stores/panel-store\";\r\n\r\nfunction MediaItemWithContextMenu({\r\n item,\r\n children,\r\n onRemove,\r\n}: {\r\n item: MediaItem;\r\n children: React.ReactNode;\r\n onRemove: (e: React.MouseEvent, id: string) => Promise<void>;\r\n}) {\r\n return (\r\n <ContextMenu>\r\n <ContextMenuTrigger>{children}</ContextMenuTrigger>\r\n <ContextMenuContent>\r\n <ContextMenuItem>Export clips</ContextMenuItem>\r\n <ContextMenuItem\r\n variant=\"destructive\"\r\n onClick={(e) => onRemove(e, item.id)}\r\n >\r\n Delete\r\n </ContextMenuItem>\r\n </ContextMenuContent>\r\n </ContextMenu>\r\n );\r\n}\r\n\r\nexport function MediaView() {\r\n const { mediaItems, addMediaItem, removeMediaItem } = useMediaStore();\r\n const { activeProject } = useProjectStore();\r\n const { mediaViewMode, setMediaViewMode } = usePanelStore();\r\n const fileInputRef = useRef<HTMLInputElement>(null);\r\n const [isProcessing, setIsProcessing] = useState(false);\r\n const [progress, setProgress] = useState(0);\r\n const [searchQuery, setSearchQuery] = useState(\"\");\r\n const [mediaFilter, setMediaFilter] = useState(\"all\");\r\n const [sortBy, setSortBy] = useState<\"name\" | \"type\" | \"duration\" | \"size\">(\r\n \"name\"\r\n );\r\n const [sortOrder, setSortOrder] = useState<\"asc\" | \"desc\">(\"asc\");\r\n\r\n const processFiles = async (files: FileList | File[]) => {\r\n if (!files || files.length === 0) return;\r\n if (!activeProject) {\r\n toast.error(\"No active project\");\r\n return;\r\n }\r\n\r\n setIsProcessing(true);\r\n setProgress(0);\r\n try {\r\n // Process files (extract metadata, generate thumbnails, etc.)\r\n const processedItems = await processMediaFiles(files, (p) =>\r\n setProgress(p)\r\n );\r\n // Add each processed media item to the store\r\n for (const item of processedItems) {\r\n await addMediaItem(activeProject.id, item);\r\n }\r\n } catch (error) {\r\n // Show error toast if processing fails\r\n console.error(\"Error processing files:\", error);\r\n toast.error(\"Failed to process files\");\r\n } finally {\r\n setIsProcessing(false);\r\n setProgress(0);\r\n }\r\n };\r\n\r\n const { isDragOver, dragProps } = useDragDrop({\r\n // When files are dropped, process them\r\n onDrop: processFiles,\r\n });\r\n\r\n const handleFileSelect = () => fileInputRef.current?.click(); // Open file picker\r\n\r\n const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n // When files are selected via file picker, process them\r\n if (e.target.files) processFiles(e.target.files);\r\n e.target.value = \"\"; // Reset input\r\n };\r\n\r\n const handleRemove = async (e: React.MouseEvent, id: string) => {\r\n // Remove a media item from the store\r\n e.stopPropagation();\r\n\r\n if (!activeProject) {\r\n toast.error(\"No active project\");\r\n return;\r\n }\r\n\r\n // Media store now handles cascade deletion automatically\r\n await removeMediaItem(activeProject.id, id);\r\n };\r\n\r\n const formatDuration = (duration: number) => {\r\n // Format seconds as mm:ss\r\n const min = Math.floor(duration / 60);\r\n const sec = Math.floor(duration % 60);\r\n return `${min}:${sec.toString().padStart(2, \"0\")}`;\r\n };\r\n\r\n const [filteredMediaItems, setFilteredMediaItems] = useState(mediaItems);\r\n\r\n useEffect(() => {\r\n let filtered = mediaItems.filter((item) => {\r\n if (mediaFilter && mediaFilter !== \"all\" && item.type !== mediaFilter) {\r\n return false;\r\n }\r\n\r\n if (\r\n searchQuery &&\r\n !item.name.toLowerCase().includes(searchQuery.toLowerCase())\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n\r\n filtered.sort((a, b) => {\r\n let valueA: any;\r\n let valueB: any;\r\n\r\n switch (sortBy) {\r\n case \"name\":\r\n valueA = a.name.toLowerCase();\r\n valueB = b.name.toLowerCase();\r\n break;\r\n case \"type\":\r\n valueA = a.type;\r\n valueB = b.type;\r\n break;\r\n case \"duration\":\r\n valueA = a.duration || 0;\r\n valueB = b.duration || 0;\r\n break;\r\n case \"size\":\r\n valueA = a.file.size;\r\n valueB = b.file.size;\r\n break;\r\n default:\r\n return 0;\r\n }\r\n\r\n if (valueA < valueB) return sortOrder === \"asc\" ? -1 : 1;\r\n if (valueA > valueB) return sortOrder === \"asc\" ? 1 : -1;\r\n return 0;\r\n });\r\n\r\n setFilteredMediaItems(filtered);\r\n }, [mediaItems, mediaFilter, searchQuery, sortBy, sortOrder]);\r\n\r\n const previewComponents = useMemo(() => {\r\n const previews = new Map<string, React.ReactNode>();\r\n\r\n filteredMediaItems.forEach((item) => {\r\n let preview: React.ReactNode;\r\n\r\n if (item.type === \"image\") {\r\n preview = (\r\n <div className=\"w-full h-full flex items-center justify-center\">\r\n <img\r\n src={item.url}\r\n alt={item.name}\r\n className=\"max-w-full max-h-full object-contain\"\r\n loading=\"lazy\"\r\n />\r\n </div>\r\n );\r\n } else if (item.type === \"video\") {\r\n if (item.thumbnailUrl) {\r\n preview = (\r\n <div className=\"relative w-full h-full\">\r\n <img\r\n src={item.thumbnailUrl}\r\n alt={item.name}\r\n className=\"w-full h-full object-cover rounded\"\r\n loading=\"lazy\"\r\n />\r\n <div className=\"absolute inset-0 flex items-center justify-center bg-black/20 rounded\">\r\n <Video className=\"h-6 w-6 text-white drop-shadow-md\" />\r\n </div>\r\n {item.duration && (\r\n <div className=\"absolute bottom-1 right-1 bg-black/70 text-white text-xs px-1 rounded\">\r\n {formatDuration(item.duration)}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n } else {\r\n preview = (\r\n <div className=\"w-full h-full bg-muted/30 flex flex-col items-center justify-center text-muted-foreground rounded\">\r\n <Video className=\"h-6 w-6 mb-1\" />\r\n <span className=\"text-xs\">Video</span>\r\n {item.duration && (\r\n <span className=\"text-xs opacity-70\">\r\n {formatDuration(item.duration)}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n } else if (item.type === \"audio\") {\r\n preview = (\r\n <div className=\"w-full h-full bg-linear-to-br from-green-500/20 to-emerald-500/20 flex flex-col items-center justify-center text-muted-foreground rounded border border-green-500/20\">\r\n <Music className=\"h-6 w-6 mb-1\" />\r\n <span className=\"text-xs\">Audio</span>\r\n {item.duration && (\r\n <span className=\"text-xs opacity-70\">\r\n {formatDuration(item.duration)}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n } else {\r\n preview = (\r\n <div className=\"w-full h-full bg-muted/30 flex flex-col items-center justify-center text-muted-foreground rounded\">\r\n <Image className=\"h-6 w-6\" />\r\n <span className=\"text-xs mt-1\">Unknown</span>\r\n </div>\r\n );\r\n }\r\n\r\n previews.set(item.id, preview);\r\n });\r\n\r\n return previews;\r\n }, [filteredMediaItems]);\r\n\r\n const renderPreview = (item: MediaItem) => previewComponents.get(item.id);\r\n\r\n return (\r\n <>\r\n {/* Hidden file input for uploading media */}\r\n <input\r\n ref={fileInputRef}\r\n type=\"file\"\r\n accept=\"image/*,video/*,audio/*\"\r\n multiple\r\n className=\"hidden\"\r\n onChange={handleFileChange}\r\n />\r\n\r\n <div\r\n className={`h-full flex flex-col gap-1 transition-colors relative ${isDragOver ? \"bg-accent/30\" : \"\"}`}\r\n {...dragProps}\r\n >\r\n <div className=\"p-3 pb-2 bg-panel\">\r\n {/* Search and filter controls */}\r\n <div className=\"flex items-center gap-2\">\r\n <Button\r\n variant=\"outline\"\r\n size=\"lg\"\r\n onClick={handleFileSelect}\r\n disabled={isProcessing}\r\n className=\"!bg-background px-4 flex-1 justify-center items-center h-9 opacity-100 hover:opacity-75 transition-opacity\"\r\n >\r\n {isProcessing ? (\r\n <Loader2 className=\"h-4 w-4 animate-spin\" />\r\n ) : (\r\n <CloudUpload className=\"h-4 w-4\" />\r\n )}\r\n <span>Upload</span>\r\n </Button>\r\n <div className=\"flex items-center gap-0\">\r\n <TooltipProvider>\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button\r\n size=\"icon\"\r\n variant=\"text\"\r\n onClick={() =>\r\n setMediaViewMode(\r\n mediaViewMode === \"grid\" ? \"list\" : \"grid\"\r\n )\r\n }\r\n disabled={isProcessing}\r\n className=\"justify-center items-center\"\r\n >\r\n {mediaViewMode === \"grid\" ? (\r\n <List strokeWidth={1.5} className=\"!size-[1.05rem]\" />\r\n ) : (\r\n <Grid2X2\r\n strokeWidth={1.5}\r\n className=\"!size-[1.05rem]\"\r\n />\r\n )}\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent>\r\n <p>\r\n {mediaViewMode === \"grid\"\r\n ? \"Switch to list view\"\r\n : \"Switch to grid view\"}\r\n </p>\r\n </TooltipContent>\r\n <Tooltip>\r\n <DropdownMenu>\r\n <TooltipTrigger asChild>\r\n <DropdownMenuTrigger asChild>\r\n <Button\r\n size=\"icon\"\r\n variant=\"text\"\r\n disabled={isProcessing}\r\n className=\"justify-center items-center\"\r\n >\r\n <ArrowDown01\r\n strokeWidth={1.5}\r\n className=\"!size-[1.05rem]\"\r\n />\r\n </Button>\r\n </DropdownMenuTrigger>\r\n </TooltipTrigger>\r\n <DropdownMenuContent align=\"end\">\r\n <DropdownMenuItem\r\n onClick={() => {\r\n if (sortBy === \"name\") {\r\n setSortOrder(\r\n sortOrder === \"asc\" ? \"desc\" : \"asc\"\r\n );\r\n } else {\r\n setSortBy(\"name\");\r\n setSortOrder(\"asc\");\r\n }\r\n }}\r\n >\r\n Name{\" \"}\r\n {sortBy === \"name\" &&\r\n (sortOrder === \"asc\" ? \"↑\" : \"↓\")}\r\n </DropdownMenuItem>\r\n <DropdownMenuItem\r\n onClick={() => {\r\n if (sortBy === \"type\") {\r\n setSortOrder(\r\n sortOrder === \"asc\" ? \"desc\" : \"asc\"\r\n );\r\n } else {\r\n setSortBy(\"type\");\r\n setSortOrder(\"asc\");\r\n }\r\n }}\r\n >\r\n Type{\" \"}\r\n {sortBy === \"type\" &&\r\n (sortOrder === \"asc\" ? \"↑\" : \"↓\")}\r\n </DropdownMenuItem>\r\n <DropdownMenuItem\r\n onClick={() => {\r\n if (sortBy === \"duration\") {\r\n setSortOrder(\r\n sortOrder === \"asc\" ? \"desc\" : \"asc\"\r\n );\r\n } else {\r\n setSortBy(\"duration\");\r\n setSortOrder(\"asc\");\r\n }\r\n }}\r\n >\r\n Duration{\" \"}\r\n {sortBy === \"duration\" &&\r\n (sortOrder === \"asc\" ? \"↑\" : \"↓\")}\r\n </DropdownMenuItem>\r\n <DropdownMenuItem\r\n onClick={() => {\r\n if (sortBy === \"size\") {\r\n setSortOrder(\r\n sortOrder === \"asc\" ? \"desc\" : \"asc\"\r\n );\r\n } else {\r\n setSortBy(\"size\");\r\n setSortOrder(\"asc\");\r\n }\r\n }}\r\n >\r\n File Size{\" \"}\r\n {sortBy === \"size\" &&\r\n (sortOrder === \"asc\" ? \"↑\" : \"↓\")}\r\n </DropdownMenuItem>\r\n </DropdownMenuContent>\r\n </DropdownMenu>\r\n <TooltipContent>\r\n <p>\r\n Sort by {sortBy} (\r\n {sortOrder === \"asc\" ? \"ascending\" : \"descending\"})\r\n </p>\r\n </TooltipContent>\r\n </Tooltip>\r\n </Tooltip>\r\n </TooltipProvider>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"h-full w-full overflow-y-auto scrollbar-thin\">\r\n <div className=\"flex-1 p-3 pt-0 w-full\">\r\n {isDragOver || filteredMediaItems.length === 0 ? (\r\n <MediaDragOverlay\r\n isVisible={true}\r\n isProcessing={isProcessing}\r\n progress={progress}\r\n onClick={handleFileSelect}\r\n isEmptyState={filteredMediaItems.length === 0 && !isDragOver}\r\n />\r\n ) : mediaViewMode === \"grid\" ? (\r\n <GridView\r\n filteredMediaItems={filteredMediaItems}\r\n renderPreview={renderPreview}\r\n handleRemove={handleRemove}\r\n />\r\n ) : (\r\n <ListView\r\n filteredMediaItems={filteredMediaItems}\r\n renderPreview={renderPreview}\r\n handleRemove={handleRemove}\r\n formatDuration={formatDuration}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nfunction GridView({\r\n filteredMediaItems,\r\n renderPreview,\r\n handleRemove,\r\n}: {\r\n filteredMediaItems: MediaItem[];\r\n renderPreview: (item: MediaItem) => React.ReactNode;\r\n handleRemove: (e: React.MouseEvent, id: string) => Promise<void>;\r\n}) {\r\n return (\r\n <div\r\n className=\"grid gap-2\"\r\n style={{\r\n gridTemplateColumns: \"repeat(auto-fill, 160px)\",\r\n }}\r\n >\r\n {filteredMediaItems.map((item) => (\r\n <MediaItemWithContextMenu\r\n key={item.id}\r\n item={item}\r\n onRemove={handleRemove}\r\n >\r\n <DraggableMediaItem\r\n name={item.name}\r\n preview={renderPreview(item)}\r\n dragData={{\r\n id: item.id,\r\n type: item.type,\r\n name: item.name,\r\n }}\r\n showPlusOnDrag={false}\r\n onAddToTimeline={(currentTime) =>\r\n useTimelineStore.getState().addMediaAtTime(item, currentTime)\r\n }\r\n rounded={false}\r\n variant=\"card\"\r\n />\r\n </MediaItemWithContextMenu>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\nfunction ListView({\r\n filteredMediaItems,\r\n renderPreview,\r\n handleRemove,\r\n formatDuration,\r\n}: {\r\n filteredMediaItems: MediaItem[];\r\n renderPreview: (item: MediaItem) => React.ReactNode;\r\n handleRemove: (e: React.MouseEvent, id: string) => Promise<void>;\r\n formatDuration: (duration: number) => string;\r\n}) {\r\n return (\r\n <div className=\"space-y-1\">\r\n {filteredMediaItems.map((item) => (\r\n <MediaItemWithContextMenu\r\n key={item.id}\r\n item={item}\r\n onRemove={handleRemove}\r\n >\r\n <DraggableMediaItem\r\n name={item.name}\r\n preview={renderPreview(item)}\r\n dragData={{\r\n id: item.id,\r\n type: item.type,\r\n name: item.name,\r\n }}\r\n showPlusOnDrag={false}\r\n onAddToTimeline={(currentTime) =>\r\n useTimelineStore.getState().addMediaAtTime(item, currentTime)\r\n }\r\n variant=\"compact\"\r\n />\r\n </MediaItemWithContextMenu>\r\n ))}\r\n </div>\r\n );\r\n}\r\n","import { DraggableMediaItem } from \"@/components/ui/draggable-item\";\r\nimport { TIMELINE_CONSTANTS } from \"@/constants/timeline-constants\";\r\nimport { useTimelineStore } from \"@/stores/timeline-store\";\r\nimport { type TextElement } from \"@/types/timeline\";\r\n\r\nconst textData: TextElement = {\r\n id: \"default-text\",\r\n type: \"text\",\r\n name: \"Default text\",\r\n content: \"Default text\",\r\n fontSize: 48,\r\n fontFamily: \"Arial\",\r\n color: \"#ffffff\",\r\n backgroundColor: \"transparent\",\r\n textAlign: \"center\" as const,\r\n fontWeight: \"normal\" as const,\r\n fontStyle: \"normal\" as const,\r\n textDecoration: \"none\" as const,\r\n x: 0,\r\n y: 0,\r\n rotation: 0,\r\n opacity: 1,\r\n duration: TIMELINE_CONSTANTS.DEFAULT_TEXT_DURATION,\r\n startTime: 0,\r\n trimStart: 0,\r\n trimEnd: 0,\r\n};\r\n\r\nexport function TextView() {\r\n return (\r\n <div className=\"p-4\">\r\n <DraggableMediaItem\r\n name=\"Default text\"\r\n preview={\r\n <div className=\"flex items-center justify-center w-full h-full bg-panel-accent rounded\">\r\n <span className=\"text-xs select-none\">Default text</span>\r\n </div>\r\n }\r\n dragData={{\r\n id: textData.id,\r\n type: textData.type,\r\n name: textData.name,\r\n content: textData.content,\r\n }}\r\n aspectRatio={1}\r\n onAddToTimeline={(currentTime) =>\r\n useTimelineStore.getState().addTextAtTime(textData, currentTime)\r\n }\r\n showLabel={false}\r\n />\r\n </div>\r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { Tabs as TabsPrimitive } from \"radix-ui\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst Tabs = TabsPrimitive.Root;\r\n\r\nconst TabsList = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.List>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\r\n>(({ className, ...props }, ref) => (\r\n <TabsPrimitive.List\r\n ref={ref}\r\n className={cn(\r\n \"inline-flex h-auto items-center justify-center gap-2 rounded-lg bg-transparent p-0 text-muted-foreground\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n));\r\nTabsList.displayName = TabsPrimitive.List.displayName;\r\n\r\nconst TabsTrigger = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.Trigger>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\r\n>(({ className, ...props }, ref) => (\r\n <TabsPrimitive.Trigger\r\n ref={ref}\r\n className={cn(\r\n \"inline-flex items-center cursor-pointer justify-center whitespace-nowrap rounded-lg px-3 py-1 text-sm font-medium ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-card data-[state=active]:text-foreground\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n));\r\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\r\n\r\nconst TabsContent = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n <TabsPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n \"mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n));\r\nTabsContent.displayName = TabsPrimitive.Content.displayName;\r\n\r\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\r\n","import { create } from \"zustand\";\r\nimport type { SoundEffect, SavedSound } from \"@/types/sounds\";\r\nimport { storageService } from \"@/lib/storage/storage-service\";\r\nimport { toast } from \"sonner\";\r\nimport { useMediaStore } from \"./media-store\";\r\nimport { useTimelineStore } from \"./timeline-store\";\r\nimport { useProjectStore } from \"./project-store\";\r\nimport { usePlaybackStore } from \"./playback-store\";\r\n\r\ninterface SoundsStore {\r\n topSoundEffects: SoundEffect[];\r\n isLoading: boolean;\r\n error: string | null;\r\n hasLoaded: boolean;\r\n\r\n // Filter state\r\n showCommercialOnly: boolean;\r\n toggleCommercialFilter: () => void;\r\n\r\n // Search state\r\n searchQuery: string;\r\n searchResults: SoundEffect[];\r\n isSearching: boolean;\r\n searchError: string | null;\r\n lastSearchQuery: string;\r\n scrollPosition: number;\r\n\r\n // Pagination state\r\n currentPage: number;\r\n hasNextPage: boolean;\r\n totalCount: number;\r\n isLoadingMore: boolean;\r\n\r\n // Saved sounds state\r\n savedSounds: SavedSound[];\r\n isSavedSoundsLoaded: boolean;\r\n isLoadingSavedSounds: boolean;\r\n savedSoundsError: string | null;\r\n\r\n // Timeline integration\r\n addSoundToTimeline: (sound: SoundEffect) => Promise<boolean>;\r\n\r\n setTopSoundEffects: (sounds: SoundEffect[]) => void;\r\n setLoading: (loading: boolean) => void;\r\n setError: (error: string | null) => void;\r\n setHasLoaded: (loaded: boolean) => void;\r\n\r\n // Search actions\r\n setSearchQuery: (query: string) => void;\r\n setSearchResults: (results: SoundEffect[]) => void;\r\n setSearching: (searching: boolean) => void;\r\n setSearchError: (error: string | null) => void;\r\n setLastSearchQuery: (query: string) => void;\r\n setScrollPosition: (position: number) => void;\r\n\r\n // Pagination actions\r\n setCurrentPage: (page: number) => void;\r\n setHasNextPage: (hasNext: boolean) => void;\r\n setTotalCount: (count: number) => void;\r\n setLoadingMore: (loading: boolean) => void;\r\n appendSearchResults: (results: SoundEffect[]) => void;\r\n appendTopSounds: (results: SoundEffect[]) => void;\r\n resetPagination: () => void;\r\n\r\n // Saved sounds actions\r\n loadSavedSounds: () => Promise<void>;\r\n saveSoundEffect: (soundEffect: SoundEffect) => Promise<void>;\r\n removeSavedSound: (soundId: number) => Promise<void>;\r\n isSoundSaved: (soundId: number) => boolean;\r\n toggleSavedSound: (soundEffect: SoundEffect) => Promise<void>;\r\n clearSavedSounds: () => Promise<void>;\r\n}\r\n\r\nexport const useSoundsStore = create<SoundsStore>((set, get) => ({\r\n topSoundEffects: [],\r\n isLoading: false,\r\n error: null,\r\n hasLoaded: false,\r\n showCommercialOnly: true,\r\n\r\n toggleCommercialFilter: () => {\r\n set((state) => ({ showCommercialOnly: !state.showCommercialOnly }));\r\n },\r\n\r\n // Search state\r\n searchQuery: \"\",\r\n searchResults: [],\r\n isSearching: false,\r\n searchError: null,\r\n lastSearchQuery: \"\",\r\n scrollPosition: 0,\r\n\r\n // Pagination state\r\n currentPage: 1,\r\n hasNextPage: false,\r\n totalCount: 0,\r\n isLoadingMore: false,\r\n\r\n // Saved sounds state\r\n savedSounds: [],\r\n isSavedSoundsLoaded: false,\r\n isLoadingSavedSounds: false,\r\n savedSoundsError: null,\r\n\r\n setTopSoundEffects: (sounds) => set({ topSoundEffects: sounds }),\r\n setLoading: (loading) => set({ isLoading: loading }),\r\n setError: (error) => set({ error }),\r\n setHasLoaded: (loaded) => set({ hasLoaded: loaded }),\r\n\r\n // Search actions\r\n setSearchQuery: (query) => set({ searchQuery: query }),\r\n setSearchResults: (results) =>\r\n set({ searchResults: results, currentPage: 1 }),\r\n setSearching: (searching) => set({ isSearching: searching }),\r\n setSearchError: (error) => set({ searchError: error }),\r\n setLastSearchQuery: (query) => set({ lastSearchQuery: query }),\r\n setScrollPosition: (position) => set({ scrollPosition: position }),\r\n\r\n // Pagination actions\r\n setCurrentPage: (page) => set({ currentPage: page }),\r\n setHasNextPage: (hasNext) => set({ hasNextPage: hasNext }),\r\n setTotalCount: (count) => set({ totalCount: count }),\r\n setLoadingMore: (loading) => set({ isLoadingMore: loading }),\r\n appendSearchResults: (results) =>\r\n set((state) => ({\r\n searchResults: [...state.searchResults, ...results],\r\n })),\r\n appendTopSounds: (results) =>\r\n set((state) => ({\r\n topSoundEffects: [...state.topSoundEffects, ...results],\r\n })),\r\n resetPagination: () =>\r\n set({\r\n currentPage: 1,\r\n hasNextPage: false,\r\n totalCount: 0,\r\n isLoadingMore: false,\r\n }),\r\n\r\n // Saved sounds actions\r\n loadSavedSounds: async () => {\r\n if (get().isSavedSoundsLoaded) return;\r\n\r\n try {\r\n set({ isLoadingSavedSounds: true, savedSoundsError: null });\r\n const savedSoundsData = await storageService.loadSavedSounds();\r\n set({\r\n savedSounds: savedSoundsData.sounds,\r\n isSavedSoundsLoaded: true,\r\n isLoadingSavedSounds: false,\r\n });\r\n } catch (error) {\r\n const errorMessage =\r\n error instanceof Error ? error.message : \"Failed to load saved sounds\";\r\n set({\r\n savedSoundsError: errorMessage,\r\n isLoadingSavedSounds: false,\r\n });\r\n console.error(\"Failed to load saved sounds:\", error);\r\n }\r\n },\r\n\r\n saveSoundEffect: async (soundEffect: SoundEffect) => {\r\n try {\r\n await storageService.saveSoundEffect(soundEffect);\r\n\r\n // Refresh saved sounds\r\n const savedSoundsData = await storageService.loadSavedSounds();\r\n set({ savedSounds: savedSoundsData.sounds });\r\n } catch (error) {\r\n const errorMessage =\r\n error instanceof Error ? error.message : \"Failed to save sound\";\r\n set({ savedSoundsError: errorMessage });\r\n toast.error(\"Failed to save sound\");\r\n console.error(\"Failed to save sound:\", error);\r\n }\r\n },\r\n\r\n removeSavedSound: async (soundId: number) => {\r\n try {\r\n await storageService.removeSavedSound(soundId);\r\n\r\n // Update local state immediately\r\n set((state) => ({\r\n savedSounds: state.savedSounds.filter((sound) => sound.id !== soundId),\r\n }));\r\n } catch (error) {\r\n const errorMessage =\r\n error instanceof Error ? error.message : \"Failed to remove sound\";\r\n set({ savedSoundsError: errorMessage });\r\n toast.error(\"Failed to remove sound\");\r\n console.error(\"Failed to remove sound:\", error);\r\n }\r\n },\r\n\r\n isSoundSaved: (soundId: number) => {\r\n const { savedSounds } = get();\r\n return savedSounds.some((sound) => sound.id === soundId);\r\n },\r\n\r\n toggleSavedSound: async (soundEffect: SoundEffect) => {\r\n const { isSoundSaved, saveSoundEffect, removeSavedSound } = get();\r\n\r\n if (isSoundSaved(soundEffect.id)) {\r\n await removeSavedSound(soundEffect.id);\r\n } else {\r\n await saveSoundEffect(soundEffect);\r\n }\r\n },\r\n\r\n clearSavedSounds: async () => {\r\n try {\r\n await storageService.clearSavedSounds();\r\n set({\r\n savedSounds: [],\r\n savedSoundsError: null,\r\n });\r\n } catch (error) {\r\n const errorMessage =\r\n error instanceof Error ? error.message : \"Failed to clear saved sounds\";\r\n set({ savedSoundsError: errorMessage });\r\n toast.error(\"Failed to clear saved sounds\");\r\n console.error(\"Failed to clear saved sounds:\", error);\r\n }\r\n },\r\n\r\n addSoundToTimeline: async (sound) => {\r\n const activeProject = useProjectStore.getState().activeProject;\r\n if (!activeProject) {\r\n toast.error(\"No active project\");\r\n return false;\r\n }\r\n\r\n const audioUrl = sound.previewUrl;\r\n if (!audioUrl) {\r\n toast.error(\"Sound file not available\");\r\n return false;\r\n }\r\n\r\n try {\r\n const response = await fetch(audioUrl);\r\n if (!response.ok)\r\n throw new Error(`Failed to download audio: ${response.statusText}`);\r\n\r\n const blob = await response.blob();\r\n const file = new File([blob], `${sound.name}.mp3`, {\r\n type: \"audio/mpeg\",\r\n });\r\n\r\n await useMediaStore.getState().addMediaItem(activeProject.id, {\r\n name: sound.name,\r\n type: \"audio\",\r\n file,\r\n duration: sound.duration,\r\n url: URL.createObjectURL(file),\r\n });\r\n\r\n const mediaItem = useMediaStore\r\n .getState()\r\n .mediaItems.find((item) => item.file === file);\r\n if (!mediaItem) throw new Error(\"Failed to create media item\");\r\n\r\n const success = useTimelineStore\r\n .getState()\r\n .addMediaAtTime(mediaItem, usePlaybackStore.getState().currentTime);\r\n\r\n if (success) {\r\n return true;\r\n }\r\n throw new Error(\"Failed to add to timeline - check for overlaps\");\r\n } catch (error) {\r\n console.error(\"Failed to add sound to timeline:\", error);\r\n toast.error(\r\n error instanceof Error\r\n ? error.message\r\n : \"Failed to add sound to timeline\",\r\n { id: `sound-${sound.id}` }\r\n );\r\n return false;\r\n }\r\n },\r\n}));\r\n","import { useEffect } from \"react\";\r\nimport { useSoundsStore } from \"@/stores/sounds-store\";\r\n\r\n/**\r\n * Custom hook for searching sound effects with race condition protection.\r\n * Uses global Zustand store to persist search state across tab switches.\r\n * - Debounced search (300ms)\r\n * - Race condition protection with cleanup\r\n * - Proper error handling\r\n */\r\n\r\nexport function useSoundSearch(query: string, commercialOnly: boolean) {\r\n const {\r\n searchResults,\r\n isSearching,\r\n searchError,\r\n lastSearchQuery,\r\n currentPage,\r\n hasNextPage,\r\n isLoadingMore,\r\n totalCount,\r\n setSearchResults,\r\n setSearching,\r\n setSearchError,\r\n setLastSearchQuery,\r\n setCurrentPage,\r\n setHasNextPage,\r\n setTotalCount,\r\n setLoadingMore,\r\n appendSearchResults,\r\n appendTopSounds,\r\n resetPagination,\r\n } = useSoundsStore();\r\n\r\n // Load more function for infinite scroll\r\n const loadMore = async () => {\r\n if (isLoadingMore || !hasNextPage) return;\r\n\r\n try {\r\n setLoadingMore(true);\r\n const nextPage = currentPage + 1;\r\n\r\n const searchParams = new URLSearchParams({\r\n page: nextPage.toString(),\r\n type: \"effects\",\r\n });\r\n\r\n if (query.trim()) {\r\n searchParams.set(\"q\", query);\r\n }\r\n\r\n searchParams.set(\"commercial_only\", commercialOnly.toString());\r\n const response = await fetch(\r\n `/api/sounds/search?${searchParams.toString()}`\r\n );\r\n\r\n if (response.ok) {\r\n const data = await response.json();\r\n\r\n // Append to appropriate array based on whether we have a query\r\n if (query.trim()) {\r\n appendSearchResults(data.results);\r\n } else {\r\n appendTopSounds(data.results);\r\n }\r\n\r\n setCurrentPage(nextPage);\r\n setHasNextPage(!!data.next);\r\n setTotalCount(data.count);\r\n } else {\r\n setSearchError(`Load more failed: ${response.status}`);\r\n }\r\n } catch (err) {\r\n setSearchError(err instanceof Error ? err.message : \"Load more failed\");\r\n } finally {\r\n setLoadingMore(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!query.trim()) {\r\n setSearchResults([]);\r\n setSearchError(null);\r\n setLastSearchQuery(\"\");\r\n // Don't reset pagination here - top sounds pagination is managed by prefetcher\r\n return;\r\n }\r\n\r\n // If we already searched for this query and have results, don't search again\r\n if (query === lastSearchQuery && searchResults.length > 0) {\r\n return;\r\n }\r\n\r\n let ignore = false;\r\n\r\n const timeoutId = setTimeout(async () => {\r\n try {\r\n setSearching(true);\r\n setSearchError(null);\r\n resetPagination();\r\n\r\n const response = await fetch(\r\n `/api/sounds/search?q=${encodeURIComponent(query)}&type=effects&page=1`\r\n );\r\n\r\n if (!ignore) {\r\n if (response.ok) {\r\n const data = await response.json();\r\n setSearchResults(data.results);\r\n setLastSearchQuery(query);\r\n setHasNextPage(!!data.next);\r\n setTotalCount(data.count);\r\n setCurrentPage(1);\r\n } else {\r\n setSearchError(`Search failed: ${response.status}`);\r\n }\r\n }\r\n } catch (err) {\r\n if (!ignore) {\r\n setSearchError(err instanceof Error ? err.message : \"Search failed\");\r\n }\r\n } finally {\r\n if (!ignore) {\r\n setSearching(false);\r\n }\r\n }\r\n }, 300);\r\n\r\n return () => {\r\n clearTimeout(timeoutId);\r\n ignore = true;\r\n };\r\n }, [\r\n query,\r\n lastSearchQuery,\r\n searchResults.length,\r\n setSearchResults,\r\n setSearching,\r\n setSearchError,\r\n setLastSearchQuery,\r\n setCurrentPage,\r\n setHasNextPage,\r\n setTotalCount,\r\n resetPagination,\r\n ]);\r\n\r\n return {\r\n results: searchResults,\r\n isLoading: isSearching,\r\n error: searchError,\r\n loadMore,\r\n hasNextPage,\r\n isLoadingMore,\r\n totalCount,\r\n };\r\n}\r\n","\"use client\";\r\n\r\nimport { Input } from \"@/components/ui/input\";\r\nimport { useState, useMemo, useRef, useEffect } from \"react\";\r\nimport { Separator } from \"@/components/ui/separator\";\r\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\r\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\r\nimport {\r\n PlayIcon,\r\n PauseIcon,\r\n HeartIcon,\r\n PlusIcon,\r\n ListFilter,\r\n} from \"lucide-react\";\r\nimport { useSoundsStore } from \"@/stores/sounds-store\";\r\nimport { useSoundSearch } from \"@/hooks/use-sound-search\";\r\nimport type { SoundEffect, SavedSound } from \"@/types/sounds\";\r\nimport { Button } from \"@/components/ui/button\";\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuTrigger,\r\n DropdownMenuContent,\r\n DropdownMenuCheckboxItem,\r\n} from \"@/components/ui/dropdown-menu\";\r\nimport {\r\n Dialog,\r\n DialogContent,\r\n DialogDescription,\r\n DialogFooter,\r\n DialogHeader,\r\n DialogTitle,\r\n DialogTrigger,\r\n} from \"@/components/ui/dialog\";\r\nimport { cn } from \"@/lib/utils\";\r\n\r\nexport function SoundsView() {\r\n return (\r\n <div className=\"h-full flex flex-col\">\r\n <Tabs defaultValue=\"sound-effects\" className=\"flex flex-col h-full\">\r\n <div className=\"px-3 pt-4 pb-0\">\r\n <TabsList>\r\n <TabsTrigger value=\"sound-effects\">Sound effects</TabsTrigger>\r\n <TabsTrigger value=\"songs\">Songs</TabsTrigger>\r\n <TabsTrigger value=\"saved\">Saved</TabsTrigger>\r\n </TabsList>\r\n </div>\r\n <Separator className=\"my-4\" />\r\n <TabsContent\r\n value=\"sound-effects\"\r\n className=\"p-5 pt-0 mt-0 flex-1 flex flex-col min-h-0\"\r\n >\r\n <SoundEffectsView />\r\n </TabsContent>\r\n <TabsContent\r\n value=\"saved\"\r\n className=\"p-5 pt-0 mt-0 flex-1 flex flex-col min-h-0\"\r\n >\r\n <SavedSoundsView />\r\n </TabsContent>\r\n <TabsContent\r\n value=\"songs\"\r\n className=\"p-5 pt-0 mt-0 flex-1 flex flex-col min-h-0\"\r\n >\r\n <SongsView />\r\n </TabsContent>\r\n </Tabs>\r\n </div>\r\n );\r\n}\r\n\r\nfunction SoundEffectsView() {\r\n const {\r\n topSoundEffects,\r\n isLoading,\r\n searchQuery,\r\n setSearchQuery,\r\n scrollPosition,\r\n setScrollPosition,\r\n loadSavedSounds,\r\n isSoundSaved,\r\n toggleSavedSound,\r\n showCommercialOnly,\r\n toggleCommercialFilter,\r\n } = useSoundsStore();\r\n const {\r\n results: searchResults,\r\n isLoading: isSearching,\r\n loadMore,\r\n hasNextPage,\r\n isLoadingMore,\r\n } = useSoundSearch(searchQuery, showCommercialOnly);\r\n\r\n // Audio playback state\r\n const [playingId, setPlayingId] = useState<number | null>(null);\r\n const [audioElement, setAudioElement] = useState<HTMLAudioElement | null>(\r\n null\r\n );\r\n\r\n // Scroll position persistence\r\n const scrollAreaRef = useRef<HTMLDivElement>(null);\r\n\r\n // Load saved sounds and restore scroll position when component mounts\r\n useEffect(() => {\r\n loadSavedSounds();\r\n\r\n if (scrollAreaRef.current && scrollPosition > 0) {\r\n const timeoutId = setTimeout(() => {\r\n scrollAreaRef.current?.scrollTo({ top: scrollPosition });\r\n }, 100); // Small delay to ensure content is rendered\r\n\r\n return () => clearTimeout(timeoutId);\r\n }\r\n }, []); // Only run on mount\r\n\r\n // Track scroll position changes and handle infinite scroll\r\n const handleScroll = (event: React.UIEvent<HTMLDivElement>) => {\r\n const { scrollTop, scrollHeight, clientHeight } = event.currentTarget;\r\n setScrollPosition(scrollTop);\r\n\r\n // Trigger loadMore when scrolled to within 200px of bottom\r\n const nearBottom = scrollTop + clientHeight >= scrollHeight - 200;\r\n if (nearBottom && hasNextPage && !isLoadingMore && !isSearching) {\r\n loadMore();\r\n }\r\n };\r\n\r\n // Use your existing design, just swap the data source\r\n const displayedSounds = useMemo(() => {\r\n const sounds = searchQuery ? searchResults : topSoundEffects;\r\n return sounds;\r\n }, [searchQuery, searchResults, topSoundEffects]);\r\n\r\n const playSound = (sound: SoundEffect) => {\r\n if (playingId === sound.id) {\r\n audioElement?.pause();\r\n setPlayingId(null);\r\n return;\r\n }\r\n\r\n // Stop previous sound\r\n audioElement?.pause();\r\n\r\n if (sound.previewUrl) {\r\n const audio = new Audio(sound.previewUrl);\r\n audio.addEventListener(\"ended\", () => {\r\n setPlayingId(null);\r\n });\r\n audio.addEventListener(\"error\", (e) => {\r\n setPlayingId(null);\r\n });\r\n audio.play().catch((error) => {\r\n setPlayingId(null);\r\n });\r\n\r\n setAudioElement(audio);\r\n setPlayingId(sound.id);\r\n }\r\n };\r\n\r\n return (\r\n <div className=\"flex flex-col gap-5 mt-1 h-full\">\r\n <div className=\"flex items-center gap-3\">\r\n <Input\r\n placeholder=\"Search sound effects\"\r\n className=\"bg-panel-accent w-full\"\r\n containerClassName=\"w-full\"\r\n value={searchQuery}\r\n onChange={(e) => setSearchQuery(e.target.value)}\r\n showClearIcon\r\n onClear={() => setSearchQuery(\"\")}\r\n />\r\n <DropdownMenu>\r\n <DropdownMenuTrigger asChild>\r\n <Button\r\n variant=\"text\"\r\n size=\"icon\"\r\n className={cn(showCommercialOnly && \"text-primary\")}\r\n >\r\n <ListFilter className=\"w-4 h-4\" />\r\n </Button>\r\n </DropdownMenuTrigger>\r\n <DropdownMenuContent align=\"end\" className=\"w-56\">\r\n <DropdownMenuCheckboxItem\r\n checked={showCommercialOnly}\r\n onCheckedChange={toggleCommercialFilter}\r\n >\r\n Show only commercially licensed\r\n </DropdownMenuCheckboxItem>\r\n <div className=\"px-2 py-1.5 text-xs text-muted-foreground\">\r\n {showCommercialOnly\r\n ? \"Only showing sounds licensed for commercial use\"\r\n : \"Showing all sounds regardless of license\"}\r\n </div>\r\n </DropdownMenuContent>\r\n </DropdownMenu>\r\n </div>\r\n\r\n <div className=\"relative h-full overflow-hidden\">\r\n <ScrollArea\r\n className=\"flex-1 h-full\"\r\n ref={scrollAreaRef}\r\n onScrollCapture={handleScroll}\r\n >\r\n <div className=\"flex flex-col gap-4\">\r\n {isLoading && !searchQuery && (\r\n <div className=\"text-muted-foreground text-sm\">\r\n Loading sounds...\r\n </div>\r\n )}\r\n {isSearching && searchQuery && (\r\n <div className=\"text-muted-foreground text-sm\">Searching...</div>\r\n )}\r\n {displayedSounds.map((sound) => (\r\n <AudioItem\r\n key={sound.id}\r\n sound={sound}\r\n isPlaying={playingId === sound.id}\r\n onPlay={() => playSound(sound)}\r\n isSaved={isSoundSaved(sound.id)}\r\n onToggleSaved={() => toggleSavedSound(sound)}\r\n />\r\n ))}\r\n {!isLoading && !isSearching && displayedSounds.length === 0 && (\r\n <div className=\"text-muted-foreground text-sm\">\r\n {searchQuery ? \"No sounds found\" : \"No sounds available\"}\r\n </div>\r\n )}\r\n {isLoadingMore && (\r\n <div className=\"text-muted-foreground text-sm text-center py-4\">\r\n Loading more sounds...\r\n </div>\r\n )}\r\n </div>\r\n </ScrollArea>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction SavedSoundsView() {\r\n const {\r\n savedSounds,\r\n isLoadingSavedSounds,\r\n savedSoundsError,\r\n loadSavedSounds,\r\n isSoundSaved,\r\n toggleSavedSound,\r\n clearSavedSounds,\r\n } = useSoundsStore();\r\n\r\n // Audio playback state\r\n const [playingId, setPlayingId] = useState<number | null>(null);\r\n const [audioElement, setAudioElement] = useState<HTMLAudioElement | null>(\r\n null\r\n );\r\n\r\n // Clear confirmation dialog state\r\n const [showClearDialog, setShowClearDialog] = useState(false);\r\n\r\n // Load saved sounds when tab becomes active\r\n useEffect(() => {\r\n loadSavedSounds();\r\n }, [loadSavedSounds]);\r\n\r\n const playSound = (sound: SavedSound) => {\r\n if (playingId === sound.id) {\r\n audioElement?.pause();\r\n setPlayingId(null);\r\n return;\r\n }\r\n\r\n // Stop previous sound\r\n audioElement?.pause();\r\n\r\n if (sound.previewUrl) {\r\n const audio = new Audio(sound.previewUrl);\r\n audio.addEventListener(\"ended\", () => {\r\n setPlayingId(null);\r\n });\r\n audio.addEventListener(\"error\", (e) => {\r\n setPlayingId(null);\r\n });\r\n audio.play().catch((error) => {\r\n setPlayingId(null);\r\n });\r\n\r\n setAudioElement(audio);\r\n setPlayingId(sound.id);\r\n }\r\n };\r\n\r\n // Convert SavedSound to SoundEffect for compatibility with AudioItem\r\n const convertToSoundEffect = (savedSound: SavedSound): SoundEffect => ({\r\n id: savedSound.id,\r\n name: savedSound.name,\r\n description: \"\",\r\n url: \"\",\r\n previewUrl: savedSound.previewUrl,\r\n downloadUrl: savedSound.downloadUrl,\r\n duration: savedSound.duration,\r\n filesize: 0,\r\n type: \"audio\",\r\n channels: 0,\r\n bitrate: 0,\r\n bitdepth: 0,\r\n samplerate: 0,\r\n username: savedSound.username,\r\n tags: savedSound.tags,\r\n license: savedSound.license,\r\n created: savedSound.savedAt,\r\n downloads: 0,\r\n rating: 0,\r\n ratingCount: 0,\r\n });\r\n\r\n if (isLoadingSavedSounds) {\r\n return (\r\n <div className=\"flex items-center justify-center h-full\">\r\n <div className=\"text-muted-foreground text-sm\">\r\n Loading saved sounds...\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n if (savedSoundsError) {\r\n return (\r\n <div className=\"flex items-center justify-center h-full\">\r\n <div className=\"text-destructive text-sm\">\r\n Error: {savedSoundsError}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n if (savedSounds.length === 0) {\r\n return (\r\n <div className=\"bg-panel h-full p-4 flex flex-col items-center justify-center gap-3\">\r\n <HeartIcon\r\n className=\"w-10 h-10 text-muted-foreground\"\r\n strokeWidth={1.5}\r\n />\r\n <div className=\"flex flex-col gap-2 text-center\">\r\n <p className=\"text-lg font-medium\">No saved sounds</p>\r\n <p className=\"text-sm text-muted-foreground text-balance\">\r\n Click the heart icon on any sound to save it here\r\n </p>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"flex flex-col gap-5 mt-1 h-full\">\r\n <div className=\"flex items-center justify-between\">\r\n <p className=\"text-sm text-muted-foreground\">\r\n {savedSounds.length} saved{\" \"}\r\n {savedSounds.length === 1 ? \"sound\" : \"sounds\"}\r\n </p>\r\n <Dialog open={showClearDialog} onOpenChange={setShowClearDialog}>\r\n <DialogTrigger asChild>\r\n <Button\r\n variant=\"text\"\r\n size=\"sm\"\r\n className=\"h-auto text-muted-foreground hover:text-destructive !opacity-100\"\r\n >\r\n Clear all\r\n </Button>\r\n </DialogTrigger>\r\n <DialogContent>\r\n <DialogHeader>\r\n <DialogTitle>Clear all saved sounds?</DialogTitle>\r\n <DialogDescription>\r\n This will permanently remove all {savedSounds.length} saved\r\n sounds from your collection. This action cannot be undone.\r\n </DialogDescription>\r\n </DialogHeader>\r\n <DialogFooter>\r\n <Button variant=\"text\" onClick={() => setShowClearDialog(false)}>\r\n Cancel\r\n </Button>\r\n <Button\r\n variant=\"destructive\"\r\n onClick={async () => {\r\n await clearSavedSounds();\r\n setShowClearDialog(false);\r\n }}\r\n >\r\n Clear all sounds\r\n </Button>\r\n </DialogFooter>\r\n </DialogContent>\r\n </Dialog>\r\n </div>\r\n\r\n <div className=\"relative h-full overflow-hidden\">\r\n <ScrollArea className=\"flex-1 h-full\">\r\n <div className=\"flex flex-col gap-4\">\r\n {savedSounds.map((sound) => (\r\n <AudioItem\r\n key={sound.id}\r\n sound={convertToSoundEffect(sound)}\r\n isPlaying={playingId === sound.id}\r\n onPlay={() => playSound(sound)}\r\n isSaved={isSoundSaved(sound.id)}\r\n onToggleSaved={() =>\r\n toggleSavedSound(convertToSoundEffect(sound))\r\n }\r\n />\r\n ))}\r\n </div>\r\n </ScrollArea>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nfunction SongsView() {\r\n return <div>Songs</div>;\r\n}\r\n\r\ninterface AudioItemProps {\r\n sound: SoundEffect;\r\n isPlaying: boolean;\r\n onPlay: () => void;\r\n isSaved: boolean;\r\n onToggleSaved: () => void;\r\n}\r\n\r\nfunction AudioItem({\r\n sound,\r\n isPlaying,\r\n onPlay,\r\n isSaved,\r\n onToggleSaved,\r\n}: AudioItemProps) {\r\n const { addSoundToTimeline } = useSoundsStore();\r\n\r\n const handleClick = () => {\r\n onPlay();\r\n };\r\n\r\n const handleSaveClick = (e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n onToggleSaved();\r\n };\r\n\r\n const handleAddToTimeline = async (e: React.MouseEvent) => {\r\n e.stopPropagation();\r\n await addSoundToTimeline(sound);\r\n };\r\n\r\n return (\r\n <div\r\n className=\"group flex items-center gap-3 opacity-100 hover:opacity-75 transition-opacity cursor-pointer\"\r\n onClick={handleClick}\r\n >\r\n <div className=\"relative w-12 h-12 bg-accent rounded-md flex items-center justify-center overflow-hidden shrink-0\">\r\n <div className=\"absolute inset-0 bg-gradient-to-br from-primary/20 to-transparent\" />\r\n {isPlaying ? (\r\n <PauseIcon className=\"w-5 h-5\" />\r\n ) : (\r\n <PlayIcon className=\"w-5 h-5\" />\r\n )}\r\n </div>\r\n\r\n <div className=\"flex-1 min-w-0 overflow-hidden\">\r\n <p className=\"font-medium truncate text-sm\">{sound.name}</p>\r\n <span className=\"text-xs text-muted-foreground truncate block\">\r\n {sound.username}\r\n </span>\r\n </div>\r\n\r\n <div className=\"flex items-center gap-3 pr-2\">\r\n <Button\r\n variant=\"text\"\r\n size=\"icon\"\r\n className=\"text-muted-foreground hover:text-foreground !opacity-100 w-auto\"\r\n onClick={handleAddToTimeline}\r\n title=\"Add to timeline\"\r\n >\r\n <PlusIcon className=\"w-4 h-4\" />\r\n </Button>\r\n <Button\r\n variant=\"text\"\r\n size=\"icon\"\r\n className={`hover:text-foreground !opacity-100 w-auto ${\r\n isSaved\r\n ? \"text-red-500 hover:text-red-600\"\r\n : \"text-muted-foreground\"\r\n }`}\r\n onClick={handleSaveClick}\r\n title={isSaved ? \"Remove from saved\" : \"Save sound\"}\r\n >\r\n <HeartIcon className={`w-4 h-4 ${isSaved ? \"fill-current\" : \"\"}`} />\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n}\r\n","import { useEditorStore } from \"@/stores/editor-store\";\r\nimport { useMediaStore, getMediaAspectRatio } from \"@/stores/media-store\";\r\nimport { useTimelineStore } from \"@/stores/timeline-store\";\r\n\r\nexport function useAspectRatio() {\r\n const { canvasSize, canvasMode, canvasPresets } = useEditorStore();\r\n const { mediaItems } = useMediaStore();\r\n const { tracks } = useTimelineStore();\r\n\r\n // Find the current preset based on canvas size\r\n const currentPreset = canvasPresets.find(\r\n (preset) =>\r\n preset.width === canvasSize.width && preset.height === canvasSize.height\r\n );\r\n\r\n // Get the original aspect ratio from the first video/image in timeline\r\n const getOriginalAspectRatio = (): number => {\r\n // Find first video or image in timeline\r\n for (const track of tracks) {\r\n for (const element of track.elements) {\r\n if (element.type === \"media\") {\r\n const mediaItem = mediaItems.find(\r\n (item) => item.id === element.mediaId\r\n );\r\n if (\r\n mediaItem &&\r\n (mediaItem.type === \"video\" || mediaItem.type === \"image\")\r\n ) {\r\n return getMediaAspectRatio(mediaItem);\r\n }\r\n }\r\n }\r\n }\r\n return 16 / 9; // Default aspect ratio\r\n };\r\n\r\n // Get current aspect ratio\r\n const getCurrentAspectRatio = (): number => {\r\n return canvasSize.width / canvasSize.height;\r\n };\r\n\r\n // Format aspect ratio as a readable string\r\n const formatAspectRatio = (aspectRatio: number): string => {\r\n // Check if it matches a common aspect ratio\r\n const ratios = [\r\n { ratio: 16 / 9, label: \"16:9\" },\r\n { ratio: 9 / 16, label: \"9:16\" },\r\n { ratio: 1, label: \"1:1\" },\r\n { ratio: 4 / 3, label: \"4:3\" },\r\n { ratio: 3 / 4, label: \"3:4\" },\r\n { ratio: 21 / 9, label: \"21:9\" },\r\n ];\r\n\r\n for (const { ratio, label } of ratios) {\r\n if (Math.abs(aspectRatio - ratio) < 0.01) {\r\n return label;\r\n }\r\n }\r\n\r\n // If not a common ratio, format as decimal\r\n return aspectRatio.toFixed(2);\r\n };\r\n\r\n // Check if current mode is \"Original\"\r\n const isOriginal = canvasMode === \"original\";\r\n\r\n // Get display name for current aspect ratio\r\n const getDisplayName = (): string => {\r\n // If explicitly set to original mode, always show \"Original\"\r\n if (canvasMode === \"original\") {\r\n return \"Original\";\r\n }\r\n\r\n if (currentPreset) {\r\n return currentPreset.name;\r\n }\r\n\r\n return formatAspectRatio(getCurrentAspectRatio());\r\n };\r\n\r\n return {\r\n currentPreset,\r\n canvasMode,\r\n isOriginal,\r\n getCurrentAspectRatio,\r\n getOriginalAspectRatio,\r\n formatAspectRatio,\r\n getDisplayName,\r\n canvasSize,\r\n canvasPresets,\r\n };\r\n}\r\n","export const colors = [\r\n \"#ffffff\",\r\n \"#000000\",\r\n \"#ffe2e2\",\r\n \"#ffc9c9\",\r\n \"#ffa2a2\",\r\n \"#ff6467\",\r\n \"#fb2c36\",\r\n \"#e7000b\",\r\n \"#c10007\",\r\n \"#9f0712\",\r\n \"#82181a\",\r\n \"#460809\",\r\n \"#fff7ed\",\r\n \"#ffedd4\",\r\n \"#ffd6a7\",\r\n \"#ffb86a\",\r\n \"#ff8904\",\r\n \"#ff6900\",\r\n \"#f54900\",\r\n \"#ca3500\",\r\n \"#9f2d00\",\r\n \"#7e2a0c\",\r\n \"#441306\",\r\n \"#fffbeb\",\r\n \"#fef3c6\",\r\n \"#fee685\",\r\n \"#ffd230\",\r\n \"#ffb900\",\r\n \"#fe9a00\",\r\n \"#e17100\",\r\n \"#bb4d00\",\r\n \"#973c00\",\r\n \"#7b3306\",\r\n \"#461901\",\r\n \"#fefce8\",\r\n \"#fef9c2\",\r\n \"#fff085\",\r\n \"#ffdf20\",\r\n \"#fdc700\",\r\n \"#f0b100\",\r\n \"#d08700\",\r\n \"#a65f00\",\r\n \"#894b00\",\r\n \"#733e0a\",\r\n \"#432004\",\r\n \"#f7fee7\",\r\n \"#ecfcca\",\r\n \"#d8f999\",\r\n \"#bbf451\",\r\n \"#9ae600\",\r\n \"#7ccf00\",\r\n \"#5ea500\",\r\n \"#497d00\",\r\n \"#3c6300\",\r\n \"#35530e\",\r\n \"#192e03\",\r\n \"#f0fdf4\",\r\n \"#dcfce7\",\r\n \"#b9f8cf\",\r\n \"#7bf1a8\",\r\n \"#05df72\",\r\n \"#00c950\",\r\n \"#00a63e\",\r\n \"#008236\",\r\n \"#016630\",\r\n \"#0d542b\",\r\n \"#032e15\",\r\n \"#ecfdf5\",\r\n \"#d0fae5\",\r\n \"#a4f4cf\",\r\n \"#5ee9b5\",\r\n \"#00d492\",\r\n \"#00bc7d\",\r\n \"#009966\",\r\n \"#007a55\",\r\n \"#006045\",\r\n \"#004f3b\",\r\n \"#002c22\",\r\n \"#f0fdfa\",\r\n \"#cbfbf1\",\r\n \"#96f7e4\",\r\n \"#46ecd5\",\r\n \"#00d5be\",\r\n \"#00bba7\",\r\n \"#009689\",\r\n \"#00786f\",\r\n \"#005f5a\",\r\n \"#0b4f4a\",\r\n \"#022f2e\",\r\n \"#ecfeff\",\r\n \"#cefafe\",\r\n \"#a2f4fd\",\r\n \"#53eafd\",\r\n \"#00d3f2\",\r\n \"#00b8db\",\r\n \"#0092b8\",\r\n \"#007595\",\r\n \"#005f78\",\r\n \"#104e64\",\r\n \"#053345\",\r\n \"#f0f9ff\",\r\n \"#dff2fe\",\r\n \"#b8e6fe\",\r\n \"#74d4ff\",\r\n \"#00bcff\",\r\n \"#00a6f4\",\r\n \"#0084d1\",\r\n \"#0069a8\",\r\n \"#00598a\",\r\n \"#024a70\",\r\n \"#052f4a\",\r\n \"#eff6ff\",\r\n \"#dbeafe\",\r\n \"#bedbff\",\r\n \"#8ec5ff\",\r\n \"#51a2ff\",\r\n \"#2b7fff\",\r\n \"#155dfc\",\r\n \"#1447e6\",\r\n \"#193cb8\",\r\n \"#1c398e\",\r\n \"#162456\",\r\n \"#eef2ff\",\r\n \"#e0e7ff\",\r\n \"#c6d2ff\",\r\n \"#a3b3ff\",\r\n \"#7c86ff\",\r\n \"#615fff\",\r\n \"#4f39f6\",\r\n \"#432dd7\",\r\n \"#372aac\",\r\n \"#312c85\",\r\n \"#1e1a4d\",\r\n \"#f5f3ff\",\r\n \"#ede9fe\",\r\n \"#ddd6ff\",\r\n \"#c4b4ff\",\r\n \"#a684ff\",\r\n \"#8e51ff\",\r\n \"#7f22fe\",\r\n \"#7008e7\",\r\n \"#5d0ec0\",\r\n \"#4d179a\",\r\n \"#2f0d68\",\r\n \"#faf5ff\",\r\n \"#f3e8ff\",\r\n \"#e9d4ff\",\r\n \"#dab2ff\",\r\n \"#c27aff\",\r\n \"#ad46ff\",\r\n \"#9810fa\",\r\n \"#8200db\",\r\n \"#6e11b0\",\r\n \"#59168b\",\r\n \"#3c0366\",\r\n \"#fdf4ff\",\r\n \"#fae8ff\",\r\n \"#f6cfff\",\r\n \"#f4a8ff\",\r\n \"#ed6aff\",\r\n \"#e12afb\",\r\n \"#c800de\",\r\n \"#a800b7\",\r\n \"#8a0194\",\r\n \"#721378\",\r\n \"#4b004f\",\r\n \"#fdf2f8\",\r\n \"#fce7f3\",\r\n \"#fccee8\",\r\n \"#fda5d5\",\r\n \"#fb64b6\",\r\n \"#f6339a\",\r\n \"#e60076\",\r\n \"#c6005c\",\r\n \"#a3004c\",\r\n \"#861043\",\r\n \"#510424\",\r\n \"#fff1f2\",\r\n \"#ffe4e6\",\r\n \"#ffccd3\",\r\n \"#ffa1ad\",\r\n \"#ff637e\",\r\n \"#ff2056\",\r\n \"#ec003f\",\r\n \"#c70036\",\r\n \"#a50036\",\r\n \"#8b0836\",\r\n \"#4d0218\",\r\n \"#f8fafc\",\r\n \"#f1f5f9\",\r\n \"#e2e8f0\",\r\n \"#cad5e2\",\r\n \"#90a1b9\",\r\n \"#62748e\",\r\n \"#45556c\",\r\n \"#314158\",\r\n \"#1d293d\",\r\n \"#0f172b\",\r\n \"#020618\",\r\n \"#f9fafb\",\r\n \"#f3f4f6\",\r\n \"#e5e7eb\",\r\n \"#d1d5dc\",\r\n \"#99a1af\",\r\n \"#6a7282\",\r\n \"#4a5565\",\r\n \"#364153\",\r\n \"#1e2939\",\r\n \"#101828\",\r\n \"#030712\",\r\n \"#fafafa\",\r\n \"#f4f4f5\",\r\n \"#e4e4e7\",\r\n \"#d4d4d8\",\r\n \"#9f9fa9\",\r\n \"#71717b\",\r\n \"#52525c\",\r\n \"#3f3f46\",\r\n \"#27272a\",\r\n \"#18181b\",\r\n \"#09090b\",\r\n \"#f5f5f5\",\r\n \"#e5e5e5\",\r\n \"#d4d4d4\",\r\n \"#a1a1a1\",\r\n \"#737373\",\r\n \"#525252\",\r\n \"#404040\",\r\n \"#262626\",\r\n \"#171717\",\r\n \"#0a0a0a\",\r\n \"#fafaf9\",\r\n \"#f5f5f4\",\r\n \"#e7e5e4\",\r\n \"#d6d3d1\",\r\n \"#a6a09b\",\r\n \"#79716b\",\r\n \"#57534d\",\r\n \"#44403b\",\r\n \"#292524\",\r\n \"#1c1917\",\r\n \"#0c0a09\",\r\n];\r\n","// These are the gradients from Pattern Craft (https://patterncraft.fun/)\r\n\r\nexport const patternCraftGradients = [\r\n // Dreamy Sky Pink Glow\r\n \"radial-gradient(circle at 30% 70%, rgba(173, 216, 230, 0.35), transparent 60%), radial-gradient(circle at 70% 30%, rgba(255, 182, 193, 0.4), transparent 60%)\",\r\n\r\n // Soft Warm Pastel Texture\r\n \"radial-gradient(circle at 20% 80%, rgba(255, 182, 153, 0.3) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(255, 244, 214, 0.5) 0%, transparent 50%), radial-gradient(circle at 40% 40%, rgba(255, 182, 153, 0.1) 0%, transparent 50%), #fff8f0\",\r\n\r\n // Warm Soft Coral & Cream\r\n \"radial-gradient(circle at 20% 80%, rgba(255, 160, 146, 0.25) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(255, 244, 228, 0.3) 0%, transparent 50%), radial-gradient(circle at 40% 40%, rgba(255, 160, 146, 0.15) 0%, transparent 50%), #fef9f7\",\r\n\r\n // Soft Green Glow\r\n \"radial-gradient(circle at center, #8FFFB0, transparent), white\",\r\n\r\n // Purple Glow Right\r\n \"radial-gradient(circle at top right, rgba(173, 109, 244, 0.5), transparent 70%)\",\r\n\r\n // Teal Glow Right\r\n \"radial-gradient(circle at top right, rgba(56, 193, 182, 0.5), transparent 70%)\",\r\n\r\n // Warm Orange Glow Right\r\n \"radial-gradient(circle at top right, rgba(255, 140, 60, 0.5), transparent 70%)\",\r\n\r\n // Cool Blue Glow Right\r\n \"radial-gradient(circle at top right, rgba(70, 130, 180, 0.5), transparent 70%)\",\r\n\r\n // Purple Glow Left\r\n \"radial-gradient(circle at top left, rgba(173, 109, 244, 0.5), transparent 70%)\",\r\n];\r\n","// These are the gradients from Syntax UI (https://syntaxui.com/effects/gradients)\r\n\r\nexport const syntaxUIGradients = [\r\n // Cyan to Blue gradients\r\n \"linear-gradient(to right, #22d3ee, #0ea5e9, #0284c7)\",\r\n \"linear-gradient(to right, #bfdbfe, #a5f3fc)\",\r\n \"linear-gradient(to right, #22d3ee, #0ea5e9, #0284c7)\",\r\n\r\n // Purple gradients\r\n \"linear-gradient(to right, #e9d5ff, #d8b4fe, #c084fc)\",\r\n \"linear-gradient(to right, #c4b5fd, #a78bfa, #8b5cf6)\",\r\n\r\n // Blue gradients\r\n \"linear-gradient(to right, #93c5fd, #60a5fa, #3b82f6)\",\r\n \"linear-gradient(to right, #93c5fd, #60a5fa, #3b82f6)\",\r\n\r\n // Green gradients\r\n \"linear-gradient(to right, #6ee7b7, #34d399, #10b981)\",\r\n \"linear-gradient(to right, #d1fae5, #a7f3d0, #6ee7b7)\",\r\n\r\n // Red gradient\r\n \"linear-gradient(to right, #fca5a5, #f87171, #ef4444)\",\r\n\r\n // Yellow/Orange gradient\r\n \"linear-gradient(to right, #fde68a, #fbbf24, #f59e0b)\",\r\n\r\n // Pink gradient\r\n \"linear-gradient(to right, #fbcfe8, #f9a8d4, #f472b6)\",\r\n\r\n // Neon radial gradient\r\n \"radial-gradient(circle at bottom left, #ff00ff, #00ffff)\",\r\n];\r\n","\"use client\";\r\n\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from \"@/components/ui/select\";\r\nimport { Separator } from \"@/components/ui/separator\";\r\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\r\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\r\nimport {\r\n PropertyItem,\r\n PropertyItemLabel,\r\n PropertyItemValue,\r\n PropertyGroup,\r\n} from \"../../properties-panel/property-item\";\r\nimport { FPS_PRESETS } from \"@/constants/timeline-constants\";\r\nimport { useProjectStore } from \"@/stores/project-store\";\r\nimport { useEditorStore } from \"@/stores/editor-store\";\r\nimport { useAspectRatio } from \"@/hooks/use-aspect-ratio\";\r\nimport Image from \"next/image\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { colors } from \"@/data/colors/solid\";\r\nimport { patternCraftGradients } from \"@/data/colors/pattern-craft\";\r\nimport { PipetteIcon } from \"lucide-react\";\r\nimport { useMemo, memo, useCallback } from \"react\";\r\nimport { syntaxUIGradients } from \"@/data/colors/syntax-ui\";\r\n\r\nexport function SettingsView() {\r\n return <ProjectSettingsTabs />;\r\n}\r\n\r\nfunction ProjectSettingsTabs() {\r\n return (\r\n <div className=\"h-full flex flex-col\">\r\n <Tabs defaultValue=\"project-info\" className=\"flex flex-col h-full\">\r\n <div className=\"px-3 pt-4 pb-0\">\r\n <TabsList>\r\n <TabsTrigger value=\"project-info\">Project info</TabsTrigger>\r\n <TabsTrigger value=\"background\">Background</TabsTrigger>\r\n </TabsList>\r\n </div>\r\n <Separator className=\"my-4\" />\r\n <ScrollArea className=\"flex-1\">\r\n <TabsContent value=\"project-info\" className=\"p-5 pt-0 mt-0\">\r\n <ProjectInfoView />\r\n </TabsContent>\r\n <TabsContent value=\"background\" className=\"p-4 pt-0\">\r\n <BackgroundView />\r\n </TabsContent>\r\n </ScrollArea>\r\n </Tabs>\r\n </div>\r\n );\r\n}\r\n\r\nfunction ProjectInfoView() {\r\n const { activeProject, updateProjectFps } = useProjectStore();\r\n const { canvasPresets, setCanvasSize } = useEditorStore();\r\n const { getDisplayName } = useAspectRatio();\r\n\r\n const handleAspectRatioChange = (value: string) => {\r\n const preset = canvasPresets.find((p) => p.name === value);\r\n if (preset) {\r\n setCanvasSize({ width: preset.width, height: preset.height });\r\n }\r\n };\r\n\r\n const handleFpsChange = (value: string) => {\r\n const fps = parseFloat(value);\r\n updateProjectFps(fps);\r\n };\r\n\r\n return (\r\n <div className=\"flex flex-col gap-4\">\r\n <PropertyItem direction=\"column\">\r\n <PropertyItemLabel>Name</PropertyItemLabel>\r\n <PropertyItemValue>\r\n {activeProject?.name || \"Untitled project\"}\r\n </PropertyItemValue>\r\n </PropertyItem>\r\n\r\n <PropertyItem direction=\"column\">\r\n <PropertyItemLabel>Aspect ratio</PropertyItemLabel>\r\n <PropertyItemValue>\r\n <Select\r\n value={getDisplayName()}\r\n onValueChange={handleAspectRatioChange}\r\n >\r\n <SelectTrigger className=\"bg-panel-accent\">\r\n <SelectValue placeholder=\"Select an aspect ratio\" />\r\n </SelectTrigger>\r\n <SelectContent>\r\n {canvasPresets.map((preset) => (\r\n <SelectItem key={preset.name} value={preset.name}>\r\n {preset.name}\r\n </SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n </PropertyItemValue>\r\n </PropertyItem>\r\n\r\n <PropertyItem direction=\"column\">\r\n <PropertyItemLabel>Frame rate</PropertyItemLabel>\r\n <PropertyItemValue>\r\n <Select\r\n value={(activeProject?.fps || 30).toString()}\r\n onValueChange={handleFpsChange}\r\n >\r\n <SelectTrigger className=\"bg-panel-accent\">\r\n <SelectValue placeholder=\"Select a frame rate\" />\r\n </SelectTrigger>\r\n <SelectContent>\r\n {FPS_PRESETS.map((preset) => (\r\n <SelectItem key={preset.value} value={preset.value}>\r\n {preset.label}\r\n </SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n </PropertyItemValue>\r\n </PropertyItem>\r\n </div>\r\n );\r\n}\r\n\r\nconst BlurPreview = memo(\r\n ({\r\n blur,\r\n isSelected,\r\n onSelect,\r\n }: {\r\n blur: { label: string; value: number };\r\n isSelected: boolean;\r\n onSelect: () => void;\r\n }) => (\r\n <div\r\n className={cn(\r\n \"w-full aspect-square rounded-sm cursor-pointer border border-foreground/15 hover:border-primary relative overflow-hidden\",\r\n isSelected && \"border-2 border-primary\"\r\n )}\r\n onClick={onSelect}\r\n >\r\n <Image\r\n src=\"https://images.unsplash.com/photo-1501785888041-af3ef285b470?q=80&w=1470&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D\"\r\n alt={`Blur preview ${blur.label}`}\r\n fill\r\n className=\"object-cover\"\r\n style={{ filter: `blur(${blur.value}px)` }}\r\n loading=\"eager\"\r\n />\r\n <div className=\"absolute bottom-1 left-1 right-1 text-center\">\r\n <span className=\"text-xs text-white bg-black/50 px-1 rounded\">\r\n {blur.label}\r\n </span>\r\n </div>\r\n </div>\r\n )\r\n);\r\n\r\nBlurPreview.displayName = \"BlurPreview\";\r\n\r\nconst BackgroundPreviews = memo(\r\n ({\r\n backgrounds,\r\n currentBackgroundColor,\r\n isColorBackground,\r\n handleColorSelect,\r\n useBackgroundColor = false,\r\n }: {\r\n backgrounds: string[];\r\n currentBackgroundColor: string;\r\n isColorBackground: boolean;\r\n handleColorSelect: (bg: string) => void;\r\n useBackgroundColor?: boolean;\r\n }) => {\r\n return useMemo(\r\n () =>\r\n backgrounds.map((bg) => (\r\n <div\r\n key={bg}\r\n className={cn(\r\n \"w-full aspect-square rounded-sm cursor-pointer border border-foreground/15 hover:border-primary\",\r\n isColorBackground &&\r\n bg === currentBackgroundColor &&\r\n \"border-2 border-primary\"\r\n )}\r\n style={\r\n useBackgroundColor\r\n ? { backgroundColor: bg }\r\n : {\r\n background: bg,\r\n backgroundSize: \"cover\",\r\n backgroundPosition: \"center\",\r\n backgroundRepeat: \"no-repeat\",\r\n }\r\n }\r\n onClick={() => handleColorSelect(bg)}\r\n />\r\n )),\r\n [\r\n backgrounds,\r\n isColorBackground,\r\n currentBackgroundColor,\r\n handleColorSelect,\r\n useBackgroundColor,\r\n ]\r\n );\r\n }\r\n);\r\n\r\nBackgroundPreviews.displayName = \"BackgroundPreviews\";\r\n\r\nfunction BackgroundView() {\r\n const { activeProject, updateBackgroundType } = useProjectStore();\r\n\r\n const blurLevels = useMemo(\r\n () => [\r\n { label: \"Light\", value: 4 },\r\n { label: \"Medium\", value: 8 },\r\n { label: \"Heavy\", value: 18 },\r\n ],\r\n []\r\n );\r\n\r\n const handleBlurSelect = useCallback(\r\n async (blurIntensity: number) => {\r\n await updateBackgroundType(\"blur\", { blurIntensity });\r\n },\r\n [updateBackgroundType]\r\n );\r\n\r\n const handleColorSelect = useCallback(\r\n async (color: string) => {\r\n await updateBackgroundType(\"color\", { backgroundColor: color });\r\n },\r\n [updateBackgroundType]\r\n );\r\n\r\n const currentBlurIntensity = activeProject?.blurIntensity || 8;\r\n const isBlurBackground = activeProject?.backgroundType === \"blur\";\r\n const currentBackgroundColor = activeProject?.backgroundColor || \"#000000\";\r\n const isColorBackground = activeProject?.backgroundType === \"color\";\r\n\r\n const blurPreviews = useMemo(\r\n () =>\r\n blurLevels.map((blur) => (\r\n <BlurPreview\r\n key={blur.value}\r\n blur={blur}\r\n isSelected={isBlurBackground && currentBlurIntensity === blur.value}\r\n onSelect={() => handleBlurSelect(blur.value)}\r\n />\r\n )),\r\n [blurLevels, isBlurBackground, currentBlurIntensity, handleBlurSelect]\r\n );\r\n\r\n return (\r\n <div className=\"flex flex-col gap-5\">\r\n <PropertyGroup title=\"Blur\" defaultExpanded={false}>\r\n <div className=\"grid grid-cols-4 gap-2 w-full\">{blurPreviews}</div>\r\n </PropertyGroup>\r\n\r\n <PropertyGroup title=\"Colors\" defaultExpanded={false}>\r\n <div className=\"grid grid-cols-4 gap-2 w-full\">\r\n <div className=\"w-full aspect-square rounded-sm cursor-pointer border border-foreground/15 hover:border-primary flex items-center justify-center\">\r\n <PipetteIcon className=\"size-4\" />\r\n </div>\r\n <BackgroundPreviews\r\n backgrounds={colors}\r\n currentBackgroundColor={currentBackgroundColor}\r\n isColorBackground={isColorBackground}\r\n handleColorSelect={handleColorSelect}\r\n useBackgroundColor={true}\r\n />\r\n </div>\r\n </PropertyGroup>\r\n\r\n <PropertyGroup title=\"Pattern Craft\" defaultExpanded={false}>\r\n <div className=\"grid grid-cols-4 gap-2 w-full\">\r\n <BackgroundPreviews\r\n backgrounds={patternCraftGradients}\r\n currentBackgroundColor={currentBackgroundColor}\r\n isColorBackground={isColorBackground}\r\n handleColorSelect={handleColorSelect}\r\n />\r\n </div>\r\n </PropertyGroup>\r\n\r\n <PropertyGroup title=\"Syntax UI\" defaultExpanded={false}>\r\n <div className=\"grid grid-cols-4 gap-2 w-full\">\r\n <BackgroundPreviews\r\n backgrounds={syntaxUIGradients}\r\n currentBackgroundColor={currentBackgroundColor}\r\n isColorBackground={isColorBackground}\r\n handleColorSelect={handleColorSelect}\r\n />\r\n </div>\r\n </PropertyGroup>\r\n </div>\r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport { TabBar } from \"./tabbar\";\r\nimport { MediaView } from \"./views/media\";\r\nimport { useMediaPanelStore, Tab } from \"./store\";\r\nimport { TextView } from \"./views/text\";\r\nimport { SoundsView } from \"./views/sounds\";\r\nimport { Separator } from \"@/components/ui/separator\";\r\nimport { SettingsView } from \"./views/settings\";\r\n\r\nexport function MediaPanel() {\r\n const { activeTab } = useMediaPanelStore();\r\n\r\n const viewMap: Record<Tab, React.ReactNode> = {\r\n media: <MediaView />,\r\n sounds: <SoundsView />,\r\n text: <TextView />,\r\n stickers: (\r\n <div className=\"p-4 text-muted-foreground\">\r\n Stickers view coming soon...\r\n </div>\r\n ),\r\n effects: (\r\n <div className=\"p-4 text-muted-foreground\">\r\n Effects view coming soon...\r\n </div>\r\n ),\r\n transitions: (\r\n <div className=\"p-4 text-muted-foreground\">\r\n Transitions view coming soon...\r\n </div>\r\n ),\r\n captions: (\r\n <div className=\"p-4 text-muted-foreground\">\r\n Captions view coming soon...\r\n </div>\r\n ),\r\n filters: (\r\n <div className=\"p-4 text-muted-foreground\">\r\n Filters view coming soon...\r\n </div>\r\n ),\r\n adjustment: (\r\n <div className=\"p-4 text-muted-foreground\">\r\n Adjustment view coming soon...\r\n </div>\r\n ),\r\n settings: <SettingsView />,\r\n };\r\n\r\n return (\r\n <div className=\"h-full flex bg-panel\">\r\n <TabBar />\r\n <Separator orientation=\"vertical\" />\r\n <div className=\"flex-1 overflow-hidden\">{viewMap[activeTab]}</div>\r\n </div>\r\n );\r\n}\r\n","\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { ContextMenu as ContextMenuPrimitive } from \"radix-ui\";\r\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\r\nimport { cva, type VariantProps } from \"class-variance-authority\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\n\r\nconst ContextMenu = ContextMenuPrimitive.Root;\r\n\r\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger;\r\n\r\nconst ContextMenuGroup = ContextMenuPrimitive.Group;\r\n\r\nconst ContextMenuPortal = ContextMenuPrimitive.Portal;\r\n\r\nconst ContextMenuSub = ContextMenuPrimitive.Sub;\r\n\r\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;\r\n\r\nconst contextMenuItemVariants = cva(\r\n \"relative flex cursor-pointer select-none items-center gap-2 px-2 py-1.5 text-sm outline-hidden transition-opacity data-disabled:pointer-events-none data-disabled:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"focus:opacity-65 focus:text-accent-foreground\",\r\n destructive: \"text-destructive focus:text-destructive/80\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n },\r\n }\r\n);\r\n\r\nconst ContextMenuSubTrigger = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {\r\n inset?: boolean;\r\n variant?: VariantProps<typeof contextMenuItemVariants>[\"variant\"];\r\n }\r\n>(({ className, inset, children, variant = \"default\", ...props }, ref) => (\r\n <ContextMenuPrimitive.SubTrigger\r\n ref={ref}\r\n className={cn(\r\n contextMenuItemVariants({ variant }),\r\n \"data-[state=open]:bg-accent data-[state=open]:opacity-65\",\r\n inset && \"pl-8\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <ChevronRight className=\"ml-auto\" />\r\n </ContextMenuPrimitive.SubTrigger>\r\n));\r\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;\r\n\r\nconst ContextMenuSubContent = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.SubContent>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\r\n>(({ className, ...props }, ref) => (\r\n <ContextMenuPrimitive.SubContent\r\n ref={ref}\r\n className={cn(\r\n \"z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n));\r\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;\r\n\r\nconst ContextMenuContent = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n <ContextMenuPrimitive.Portal>\r\n <ContextMenuPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n \"z-50 min-w-32 overflow-hidden rounded-md border p-1 bg-popover text-popover-foreground shadow-md\",\r\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </ContextMenuPrimitive.Portal>\r\n));\r\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;\r\n\r\nconst ContextMenuItem = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.Item>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {\r\n inset?: boolean;\r\n variant?: VariantProps<typeof contextMenuItemVariants>[\"variant\"];\r\n }\r\n>(({ className, inset, variant = \"default\", ...props }, ref) => (\r\n <ContextMenuPrimitive.Item\r\n ref={ref}\r\n className={cn(\r\n contextMenuItemVariants({ variant }),\r\n inset && \"pl-8\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n));\r\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;\r\n\r\nconst ContextMenuCheckboxItem = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem> & {\r\n variant?: VariantProps<typeof contextMenuItemVariants>[\"variant\"];\r\n }\r\n>(({ className, children, checked, variant = \"default\", ...props }, ref) => (\r\n <ContextMenuPrimitive.CheckboxItem\r\n ref={ref}\r\n className={cn(contextMenuItemVariants({ variant }), \"pl-8 pr-2\", className)}\r\n checked={checked}\r\n {...props}\r\n >\r\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\r\n <ContextMenuPrimitive.ItemIndicator>\r\n <Check className=\"h-4 w-4\" />\r\n </ContextMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </ContextMenuPrimitive.CheckboxItem>\r\n));\r\nContextMenuCheckboxItem.displayName =\r\n ContextMenuPrimitive.CheckboxItem.displayName;\r\n\r\nconst ContextMenuRadioItem = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem> & {\r\n variant?: VariantProps<typeof contextMenuItemVariants>[\"variant\"];\r\n }\r\n>(({ className, children, variant = \"default\", ...props }, ref) => (\r\n <ContextMenuPrimitive.RadioItem\r\n ref={ref}\r\n className={cn(contextMenuItemVariants({ variant }), \"pl-8 pr-2\", className)}\r\n {...props}\r\n >\r\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\r\n <ContextMenuPrimitive.ItemIndicator>\r\n <Circle className=\"h-2 w-2 fill-current\" />\r\n </ContextMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </ContextMenuPrimitive.RadioItem>\r\n));\r\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;\r\n\r\nconst ContextMenuLabel = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.Label>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & {\r\n inset?: boolean;\r\n }\r\n>(({ className, inset, ...props }, ref) => (\r\n <ContextMenuPrimitive.Label\r\n ref={ref}\r\n className={cn(\r\n \"px-2 py-1.5 text-sm font-semibold\",\r\n inset && \"pl-8\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n));\r\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;\r\n\r\nconst ContextMenuSeparator = React.forwardRef<\r\n React.ElementRef<typeof ContextMenuPrimitive.Separator>,\r\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\r\n>(({ className, ...props }, ref) => (\r\n <ContextMenuPrimitive.Separator\r\n ref={ref}\r\n className={cn(\"-mx-1 my-1 h-px bg-foreground/10\", className)}\r\n {...props}\r\n />\r\n));\r\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;\r\n\r\nconst ContextMenuShortcut = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLSpanElement>) => {\r\n return (\r\n <span\r\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\r\n {...props}\r\n />\r\n );\r\n};\r\nContextMenuShortcut.displayName = \"ContextMenuShortcut\";\r\n\r\nexport {\r\n ContextMenu,\r\n ContextMenuTrigger,\r\n ContextMenuContent,\r\n ContextMenuItem,\r\n ContextMenuCheckboxItem,\r\n ContextMenuRadioItem,\r\n ContextMenuLabel,\r\n ContextMenuSeparator,\r\n ContextMenuShortcut,\r\n ContextMenuGroup,\r\n ContextMenuPortal,\r\n ContextMenuSub,\r\n ContextMenuSubContent,\r\n ContextMenuSubTrigger,\r\n ContextMenuRadioGroup,\r\n};\r\n","\"use client\";\r\n\r\nimport { Dialog, DialogContent, DialogTitle } from \"./ui/dialog\";\r\nimport { Button } from \"./ui/button\";\r\nimport { ArrowRightIcon } from \"lucide-react\";\r\nimport { useState, useEffect } from \"react\";\r\nimport ReactMarkdown from \"react-markdown\";\r\n\r\nexport function Onboarding() {\r\n const [step, setStep] = useState(0);\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n useEffect(() => {\r\n const hasSeenOnboarding = localStorage.getItem(\"hasSeenOnboarding\");\r\n if (!hasSeenOnboarding) {\r\n setIsOpen(true);\r\n }\r\n }, []);\r\n\r\n const handleNext = () => {\r\n setStep(step + 1);\r\n };\r\n\r\n const handleClose = () => {\r\n setIsOpen(false);\r\n localStorage.setItem(\"hasSeenOnboarding\", \"true\");\r\n };\r\n\r\n const getStepTitle = () => {\r\n switch (step) {\r\n case 0:\r\n return \"Welcome to OpenCut Beta! 🎉\";\r\n case 1:\r\n return \"⚠️ This is a super early beta!\";\r\n case 2:\r\n return \"🦋 Have fun testing!\";\r\n default:\r\n return \"OpenCut Onboarding\";\r\n }\r\n };\r\n\r\n const renderStepContent = () => {\r\n switch (step) {\r\n case 0:\r\n return (\r\n <div className=\"space-y-5\">\r\n <div className=\"space-y-3\">\r\n <Title title=\"Welcome to OpenCut Beta! 🎉\" />\r\n <Description description=\"You're among the first to try OpenCut - the fully open source CapCut alternative.\" />\r\n </div>\r\n <NextButton onClick={handleNext}>Next</NextButton>\r\n </div>\r\n );\r\n case 1:\r\n return (\r\n <div className=\"space-y-5\">\r\n <div className=\"space-y-3\">\r\n <Title title={getStepTitle()} />\r\n <Description description=\"OpenCut started just one month ago. There's still a ton of things to do to make this editor amazing.\" />\r\n <Description description=\"If you're curious, check out our roadmap [here](https://opencut.app/roadmap)\" />\r\n </div>\r\n <NextButton onClick={handleNext}>Next</NextButton>\r\n </div>\r\n );\r\n case 2:\r\n return (\r\n <div className=\"space-y-5\">\r\n <div className=\"space-y-3\">\r\n <Title title={getStepTitle()} />\r\n <Description description=\"Join our [Discord](https://discord.gg/zmR9N35cjK), chat with cool people and share feedback to help make OpenCut the best editor ever.\" />\r\n </div>\r\n <NextButton onClick={handleClose}>Finish</NextButton>\r\n </div>\r\n );\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n return (\r\n <Dialog open={isOpen} onOpenChange={handleClose}>\r\n <DialogContent className=\"sm:max-w-[425px] outline-hidden!\">\r\n <DialogTitle>\r\n <span className=\"sr-only\">{getStepTitle()}</span>\r\n </DialogTitle>\r\n {renderStepContent()}\r\n </DialogContent>\r\n </Dialog>\r\n );\r\n}\r\n\r\nfunction Title({ title }: { title: string }) {\r\n return <h2 className=\"text-lg md:text-xl font-bold\">{title}</h2>;\r\n}\r\n\r\nfunction Subtitle({ subtitle }: { subtitle: string }) {\r\n return <h3 className=\"text-lg font-medium\">{subtitle}</h3>;\r\n}\r\n\r\nfunction Description({ description }: { description: string }) {\r\n return (\r\n <div className=\"text-muted-foreground\">\r\n <ReactMarkdown\r\n components={{\r\n p: ({ children }) => <p className=\"mb-0\">{children}</p>,\r\n a: ({ href, children }) => (\r\n <a\r\n href={href}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n className=\"text-foreground hover:text-foreground/80 underline\"\r\n >\r\n {children}\r\n </a>\r\n ),\r\n }}\r\n >\r\n {description}\r\n </ReactMarkdown>\r\n </div>\r\n );\r\n}\r\n\r\nfunction NextButton({\r\n children,\r\n onClick,\r\n}: {\r\n children: React.ReactNode;\r\n onClick: () => void;\r\n}) {\r\n return (\r\n <Button onClick={onClick} variant=\"default\" className=\"w-full\">\r\n {children}\r\n <ArrowRightIcon className=\"w-4 h-4\" />\r\n </Button>\r\n );\r\n}\r\n","import { useEffect, useCallback } from \"react\";\r\nimport { usePlaybackStore } from \"@/stores/playback-store\";\r\nimport { useTimelineStore } from \"@/stores/timeline-store\";\r\nimport { toast } from \"sonner\";\r\n\r\nexport const usePlaybackControls = () => {\r\n const { isPlaying, currentTime, play, pause, seek } = usePlaybackStore();\r\n\r\n const {\r\n selectedElements,\r\n tracks,\r\n splitElement,\r\n splitAndKeepLeft,\r\n splitAndKeepRight,\r\n separateAudio,\r\n } = useTimelineStore();\r\n\r\n const handleSplitSelectedElement = useCallback(() => {\r\n if (selectedElements.length !== 1) {\r\n toast.error(\"Select exactly one element to split\");\r\n return;\r\n }\r\n\r\n const { trackId, elementId } = selectedElements[0];\r\n const track = tracks.find((t) => t.id === trackId);\r\n const element = track?.elements.find((e) => e.id === elementId);\r\n\r\n if (!element) return;\r\n\r\n const effectiveStart = element.startTime;\r\n const effectiveEnd =\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd);\r\n\r\n if (currentTime <= effectiveStart || currentTime >= effectiveEnd) {\r\n toast.error(\"Playhead must be within selected element\");\r\n return;\r\n }\r\n\r\n splitElement(trackId, elementId, currentTime);\r\n }, [selectedElements, tracks, currentTime, splitElement]);\r\n\r\n const handleSplitAndKeepLeftCallback = useCallback(() => {\r\n if (selectedElements.length !== 1) {\r\n toast.error(\"Select exactly one element\");\r\n return;\r\n }\r\n\r\n const { trackId, elementId } = selectedElements[0];\r\n const track = tracks.find((t) => t.id === trackId);\r\n const element = track?.elements.find((e) => e.id === elementId);\r\n\r\n if (!element) return;\r\n\r\n const effectiveStart = element.startTime;\r\n const effectiveEnd =\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd);\r\n\r\n if (currentTime <= effectiveStart || currentTime >= effectiveEnd) {\r\n toast.error(\"Playhead must be within selected element\");\r\n return;\r\n }\r\n\r\n splitAndKeepLeft(trackId, elementId, currentTime);\r\n }, [selectedElements, tracks, currentTime, splitAndKeepLeft]);\r\n\r\n const handleSplitAndKeepRightCallback = useCallback(() => {\r\n if (selectedElements.length !== 1) {\r\n toast.error(\"Select exactly one element\");\r\n return;\r\n }\r\n\r\n const { trackId, elementId } = selectedElements[0];\r\n const track = tracks.find((t) => t.id === trackId);\r\n const element = track?.elements.find((e) => e.id === elementId);\r\n\r\n if (!element) return;\r\n\r\n const effectiveStart = element.startTime;\r\n const effectiveEnd =\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd);\r\n\r\n if (currentTime <= effectiveStart || currentTime >= effectiveEnd) {\r\n toast.error(\"Playhead must be within selected element\");\r\n return;\r\n }\r\n\r\n splitAndKeepRight(trackId, elementId, currentTime);\r\n }, [selectedElements, tracks, currentTime, splitAndKeepRight]);\r\n\r\n const handleSeparateAudioCallback = useCallback(() => {\r\n if (selectedElements.length !== 1) {\r\n toast.error(\"Select exactly one media element to separate audio\");\r\n return;\r\n }\r\n\r\n const { trackId, elementId } = selectedElements[0];\r\n const track = tracks.find((t) => t.id === trackId);\r\n\r\n if (!track || track.type !== \"media\") {\r\n toast.error(\"Select a media element to separate audio\");\r\n return;\r\n }\r\n\r\n separateAudio(trackId, elementId);\r\n }, [selectedElements, tracks, separateAudio]);\r\n};\r\n"],"names":["VideoPlayer","src","poster","className","clipStartTime","trimStart","trimEnd","clipDuration","videoRef","useRef","isPlaying","currentTime","volume","speed","muted","usePlaybackStore","clipEndTime","isInClipRange","useEffect","video","current","handleSeekEvent","e","Math","videoTime","max","min","timelineTime","detail","time","handleUpdateEvent","targetTime","abs","handleSpeed","playbackRate","window","addEventListener","removeEventListener","play","catch","pause","ref","playsInline","preload","controls","disablePictureInPicture","disableRemotePlayback","style","pointerEvents","onContextMenu","preventDefault","AudioPlayer","trackMuted","audioRef","audio","audioTime","display","EditableTimecode","duration","format","fps","onTimeChange","disabled","isEditing","setIsEditing","useState","inputValue","setInputValue","hasError","setHasError","inputRef","enterPressedRef","formattedTime","formatTimeCode","applyEdit","parsedTime","parseTimeCode","clampedTime","focus","select","input","type","value","onChange","handleInputChange","target","onKeyDown","handleKeyDown","key","onBlur","handleBlur","cn","width","length","placeholder","span","onClick","startEditing","title","undefined","FONT_CLASS_MAP","Inter","inter","Roboto","roboto","openSans","playfairDisplay","comicNeue","Arial","Helvetica","Georgia","PreviewPanel","tracks","getTotalDuration","updateTextElement","useTimelineStore","mediaItems","useMediaStore","toggle","setCurrentTime","canvasSize","useEditorStore","previewRef","containerRef","previewDimensions","setPreviewDimensions","height","isExpanded","setIsExpanded","activeProject","useProjectStore","dragState","setDragState","isDragging","elementId","trackId","startX","startY","initialElementX","initialElementY","currentX","currentY","elementWidth","elementHeight","updatePreviewSize","availableWidth","availableHeight","innerWidth","marginSpace","innerHeight","controlsHeight","container","getBoundingClientRect","computedStyle","getComputedStyle","paddingTop","parseFloat","paddingBottom","paddingLeft","paddingRight","gap","toolbar","querySelector","toolbarHeight","targetRatio","containerRatio","resizeObserver","ResizeObserver","observe","disconnect","handleEscapeKey","event","document","body","overflow","handleMouseMove","deltaX","clientX","deltaY","clientY","scaleRatio","newX","newY","halfWidth","halfHeight","constrainedX","constrainedY","prev","handleMouseUp","x","y","cursor","userSelect","toggleExpanded","useCallback","hasAnyElements","some","track","elements","activeElements","getActiveElements","forEach","element","hidden","elementStart","startTime","elementEnd","mediaItem","mediaId","find","item","id","push","blurBackgroundElements","filter","getBlurBackgroundElements","renderBlurBackground","backgroundType","blurIntensity","div","transform","transformOrigin","url","thumbnailUrl","img","alt","name","draggable","renderElement","elementData","index","fontClassName","fontFamily","onMouseDown","handleTextMouseDown","stopPropagation","rect","currentTarget","left","top","rotation","opacity","zIndex","fontSize","color","backgroundColor","textAlign","fontWeight","fontStyle","textDecoration","padding","borderRadius","whiteSpace","content","p","background","map","PreviewToolbar","onToggleExpanded","FullscreenPreview","FullscreenToolbar","seek","setIsDragging","totalDuration","progress","data-toolbar","Button","variant","size","skipBackward","SkipBack","Pause","Play","skipForward","SkipForward","handleTimelineClick","newTime","clickX","handleTimelineDrag","moveEvent","dragX","nativeEvent","Expand","timeInSeconds","hours","floor","minutes","seconds","centiseconds","frames","toString","padStart","timeCode","cleanTimeCode","trim","parts","split","parseInt","part","isNaN","AudioWaveform","audioUrl","waveformRef","wavesurfer","isLoading","setIsLoading","error","setError","mounted","ws","initWaveSurfer","newWaveSurfer","WaveSurfer","create","waveColor","progressColor","cursorColor","barWidth","barGap","normalize","interact","destroy","on","load","err","requestAnimationFrame","wsToDestroy","TimelineElement","zoomLevel","isSelected","onElementMouseDown","onElementClick","updateElementTrim","updateElementDuration","removeElementFromTrack","removeElementFromTrackWithRipple","splitElement","addElementToTrack","replaceElementMedia","rippleEditingEnabled","toggleElementHidden","isAudio","resizing","handleResizeStart","handleResizeMove","handleResizeEnd","useTimelineElementResize","onUpdateTrim","onUpdateDuration","setResizing","updateElementStartTime","pushHistory","handleDocumentMouseMove","updateTrimFromMouseMove","handleDocumentMouseUp","canExtendElementDuration","projectStore","deltaTime","projectFps","getState","side","maxAllowed","initialTrimEnd","calculated","initialTrimStart","newTrimStart","snapTimeToFrame","trimDelta","newStartTime","actualExtension","extensionAmount","maxExtension","newDuration","extensionNeeded","newTrimEnd","currentEndTime","snappedEndTime","desiredEndTime","finalTrimEnd","isResizing","effectiveDuration","TIMELINE_CONSTANTS","ELEMENT_MIN_WIDTH","PIXELS_PER_SECOND","isBeingDragged","elementLeft","elementStartTime","ContextMenu","ContextMenuTrigger","asChild","data-element-id","data-track-id","onMouseMove","onMouseUp","onMouseLeave","getTrackElementClasses","handleElementMouseDown","renderElementContent","trackHeight","getTrackHeight","tileWidth","imageUrl","TILE_ASPECT_RATIO","isImage","backgroundImage","backgroundRepeat","backgroundSize","tileHeight","backgroundPosition","aria-label","VolumeX","EyeOff","ContextMenuContent","ContextMenuItem","handleElementSplitContext","effectiveStart","effectiveEnd","secondElementId","toast","Scissors","handleToggleElementHidden","Volume2","Eye","handleElementDuplicateContext","elementWithoutId","Copy","handleReplaceClip","createElement","accept","onchange","file","files","result","success","Error","message","click","RefreshCw","ContextMenuSeparator","handleElementDeleteContext","Trash2","TimelineTrackContent","onSnapPointChange","addTrack","moveElementToTrack","updateElementStartTimeWithRipple","selectedElements","selectElement","startDrag","startDragAction","updateDragTime","endDrag","endDragAction","clearSelectedElements","insertTrackAt","snappingEnabled","snapElementPosition","snapElementEdge","useTimelineSnapping","snapThreshold","enableElementSnapping","enablePlayheadSnapping","findSnapPoints","playheadTime","excludeElementId","snapPoints","snapToNearestPoint","thresholdInSeconds","pixelsPerSecond","closestSnapPoint","closestDistance","Infinity","distance","snapPoint","snappedTime","snapDistance","elementDuration","snapToStart","snapResult","effectiveTargetTime","getDropSnappedTime","dropTime","finalTime","startSnapResult","endSnapResult","bestSnapResult","timelineRef","isDropping","setIsDropping","dropPosition","setDropPosition","wouldOverlap","setWouldOverlap","dragCounterRef","mouseDownLocation","setMouseDownLocation","c","timelineRect","adjustedTime","mouseTime","mouseX","clickOffsetTime","sourceTrack","t","isTrackThatStartedDrag","isMouseOverThisTrack","bottom","movingElement","movingElementEnd","movingElementDuration","targetTrack","existingElement","existingStart","existingEnd","isRightClick","button","isMultiSelect","metaKey","ctrlKey","shiftKey","elementRect","clickOffsetX","handleElementClick","closest","onDragOver","handleTrackDragOver","hasTimelineElement","dataTransfer","types","includes","hasMediaItem","trackContainer","mediaItemData","getData","dragData","JSON","parse","newElementEnd","newElementDuration","timelineElementData","fromTrackId","dropEffect","onDragEnter","handleTrackDragEnter","onDragLeave","handleTrackDragLeave","onDrop","handleTrackDrop","mouseY","currentTrackIndex","findIndex","adjustedStartTime","snappedStartTime","finalStartTime","hasOverlap","targetTrackId","insertIndex","mainTrack","getMainTrack","newTargetTrack","updatedTracks","textSnappedTime","DEFAULT_TEXT_DURATION","isVideoOrImage","isCompatible","canElementGoOnTrack","mediaSnappedTime","useTimelinePlayhead","rulerRef","rulerScrollRef","tracksScrollRef","playheadRef","isScrubbing","setIsScrubbing","scrubTime","setScrubTime","isDraggingRuler","setIsDraggingRuler","hasDraggedRuler","setHasDraggedRuler","autoScrollRef","lastMouseXRef","playheadPosition","handlePlayheadMouseDown","handleScrub","handleRulerMouseDown","contains","ruler","rawX","rawTime","performAutoScroll","rulerViewport","tracksViewport","viewportRect","mouseXRelative","viewportWidth","clientWidth","scrollMax","scrollSpeed","scrollLeft","edgeThreshold","maxScrollSpeed","intensity","newScrollLeft","cancelAnimationFrame","playheadPx","scrollWidth","desiredScroll","scrollMin","TimelinePlayhead","trackLabelsRef","externalPlayheadRef","isSnappingToPlayhead","internalPlayheadRef","setScrollLeft","handleScroll","timelineContainerHeight","offsetHeight","trackLabelsWidth","offsetWidth","rawLeftPosition","timelinePosition","timelineContentWidth","rightBoundary","leftPosition","leftBoundary","SelectionBox","startPos","currentPos","isActive","selectionBoxRef","containerRect","SnapIndicator","isVisible","totalHeight","Timeline","setSelectedElements","toggleTrackMute","addMediaItem","setDuration","isDragOver","setIsDragOver","isProcessing","setIsProcessing","setProgress","isInTimeline","setIsInTimeline","mouseTrackingRef","isMouseDown","downX","downY","downTime","setZoomLevel","handleWheel","useTimelineZoom","delta","preventZoom","passive","dynamicTimelineWidth","trackLabelsScrollRef","isUpdatingRef","lastRulerSync","lastTracksSync","lastVerticalSync","useTimelinePlayheadRuler","tracksContainerRef","selectionBox","handleMouseDown","handleSelectionMouseDown","isSelecting","justFinishedSelecting","useSelectionBox","onSelectionComplete","isEnabled","setSelectionBox","setJustFinishedSelecting","selectElementsInBox","endPos","timelineElements","querySelectorAll","elementAbsolute","right","selectionAbsolute","normalizedSelection","getAttribute","intersects","newSelectionBox","setTimeout","currentSnapPoint","setCurrentSnapPoint","showSnapIndicator","handleSnapPointChange","handleTimelineMouseDown","isTimelineBackground","timeStamp","handleTimelineContentClick","isRulerClick","rulerContent","tracksContent","handleDrop","itemData","addTextToNewTrack","addMediaToNewTrack","processedItem","processMediaFiles","addedItem","trackLabelsViewport","handleRulerScroll","now","Date","handleTracksScroll","handleTrackLabelsScroll","scrollTop","handleTracksVerticalScroll","handleDragEnter","handleDragOver","handleDragLeave","onMouseEnter","dragProps","TimelineToolbar","onWheel","data-ruler-area","ScrollArea","interval","getTimeInterval","zoom","Array","from","markerCount","ceil","_","i","isMainMarker","secs","toFixed","Boolean","bookmarks","bookmarkTime","Bookmark","data-track-labels","MicOff","Mic","TrackIcon","getTotalTracksHeight","getCumulativeHeightBefore","Video","TypeIcon","Music","splitAndKeepLeft","splitAndKeepRight","separateAudio","toggleSnapping","toggleRippleEditing","toggleBookmark","isBookmarked","handleToggleBookmark","currentBookmarked","TooltipProvider","delayDuration","Tooltip","TooltipTrigger","TooltipContent","minWidth","handleSplitSelected","splitCount","handleSplitAndKeepLeft","ArrowLeftToLine","handleSplitAndKeepRight","ArrowRightToLine","handleSeparateAudio","SplitSquareHorizontal","handleDuplicateSelected","el","handleFreezeSelected","info","Snowflake","handleDeleteSelected","Magnet","Link","handleZoomOut","ZoomOut","Slider","onValueChange","values","handleZoomSliderChange","step","handleZoomIn","ZoomIn","ActionEmitter","subscribe","listener","listeners","l","emit","actions","actionEmitter","boundActions","updateActiveActions","newActions","Object","keys","bindAction","action","handler","unbindAction","useActionHandler","handlerRef","isBound","setIsBound","stableHandler","args","trigger","shouldBind","setInterval","clearInterval","EditorProvider","children","isInitializing","isPanelsReady","initializeApp","disableKeybindings","enableKeybindings","useKeybindingDisabler","useKeybindingsStore","undo","redo","flatMap","allElements","keybindings","getKeybindingString","keybindingsEnabled","isRecording","actionArgs","binding","ev","boundAction","activeElement","isTextInput","tagName","isContentEditable","Loader2","DEFAULT_PANEL_SIZES","toolsPanel","previewPanel","propertiesPanel","mainContent","timeline","usePanelStore","persist","mediaViewMode","setToolsPanel","set","setPreviewPanel","setPropertiesPanel","setMainContent","setTimeline","setMediaViewMode","mode","defaultKeybindings","space","j","k","home","end","s","n","delete","backspace","get","isCustomized","updateKeybinding","newKeybindings","state","removeKeybinding","resetToDefaults","importKeybindings","entries","config","exportKeybindings","validateKeybinding","existingAction","newAction","setIsRecording","getKeybindingsForAction","generateKeybindingString","modifierKey","getActiveModifier","modifierKeys","ctrl","isAppleDevice","altKey","shift","activeModifier","join","getPressedKey","toLowerCase","code","startsWith","slice","letter","digit","isDOMElement","isTypableElement","version","React","props","SliderPrimitive","displayName","HeaderBase","leftContent","centerContent","rightContent","header","actionDescriptions","description","category","ShortcutItem","shortcut","onStartRecording","displayKeys","replace","icon","keyPart","partIndex","keyId","EditableShortcutKey","handleClick","KeyboardShortcutsHelp","open","setOpen","recordingShortcut","setRecordingShortcut","shortcuts","useKeyboardShortcutsHelp","useMemo","actionToKeys","getPlatformSpecialKey","getPlatformAlternateKey","actionInfo","sort","a","b","localeCompare","categories","Set","keyString","conflict","handleClickOutside","handleStartRecording","Dialog","onOpenChange","DialogTrigger","Keyboard","DialogContent","DialogHeader","DialogTitle","DialogDescription","h3","DialogFooter","EditorHeader","renameProject","deleteProject","isDeleteDialogOpen","setIsDeleteDialogOpen","isRenameDialogOpen","setIsRenameDialogOpen","useRouter","theme","setTheme","useTheme","handleNameSave","newName","DropdownMenu","DropdownMenuTrigger","ChevronDown","DropdownMenuContent","align","DropdownMenuItem","navigateToProjects","ArrowLeft","SquarePen","Trash","DropdownMenuSeparator","href","rel","FaDiscord","RenameProjectDialog","isOpen","onConfirm","projectName","DeleteProjectDialog","handleDelete","nav","handleExport","Download","Sun","AudioProperties","MediaProperties","Textarea","textarea","FONT_OPTIONS","label","hasClassName","weights","FontPicker","defaultValue","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","font","TextProperties","fontSizeInput","setFontSizeInput","opacityInput","setOpacityInput","round","parseAndValidateNumber","fallback","parsed","PropertyItem","direction","PropertyItemLabel","PropertyItemValue","Input","handleFontSizeChange","handleFontSizeBlur","handleOpacityChange","opacityPercent","handleOpacityBlur","PropertiesPanel","EmptyView","SquareSlashIcon","strokeWidth","PropertyGroup","defaultExpanded","ffmpeg","initFFmpeg","FFmpeg","baseURL","basePath","coreURL","toBlobURL","wasmURL","videoFile","inputName","outputName","writeFile","Uint8Array","arrayBuffer","exec","blob","Blob","readFile","deleteFile","URL","createObjectURL","getVideoInfo","ffmpegOutput","listening","data","durationMatch","match","h","m","videoStreamMatch","onProgress","fileArray","processedItems","total","completed","fileType","getFileType","dimensions","getImageDimensions","videoInfo","generateThumbnail","videoResult","generateVideoThumbnail","getMediaDuration","Promise","resolve","percent","revokeObjectURL","TooltipPrimitive","sideOffset","Separator","orientation","decorative","SeparatorPrimitive","ResizablePanelGroup","ResizablePrimitive","ResizablePanel","ResizableHandle","withHandle","playbackTimer","previousVolume","startTimer","updateTime","store","performance","lastUpdate","actualContentDuration","stopTime","frameOffset","dispatchEvent","CustomEvent","setVolume","setSpeed","newSpeed","mute","unmute","toggleMute","tabs","media","VideoIcon","sounds","MusicIcon","text","stickers","StickerIcon","effects","SparklesIcon","transitions","ArrowLeftRightIcon","captions","CaptionsIcon","filters","BlendIcon","adjustment","SlidersHorizontalIcon","settings","SettingsIcon","activeTab","setActiveTab","tab","TabBar","useMediaPanelStore","scrollContainerRef","isAtEnd","setIsAtEnd","isAtStart","setIsAtStart","checkScrollPosition","isAtEndNow","isAtStartNow","ScrollButton","scrollToStart","scrollTo","tabKey","scrollToEnd","Icon","ChevronLeft","ChevronRight","containsFiles","MediaDragOverlay","isEmptyState","Upload","AspectRatio","AspectRatioPrimitive","DraggableMediaItem","preview","onDragStart","onAddToTimeline","aspectRatio","showPlusOnDrag","showLabel","rounded","dragPosition","setDragPosition","dragRef","handleAddToTimeline","emptyImg","Image","handleDragStart","setDragImage","setData","stringify","effectAllowed","handleDragEnd","ratio","onDragEnd","PlusButton","createPortal","tooltipText","Plus","MediaItemWithContextMenu","onRemove","MediaView","removeMediaItem","fileInputRef","searchQuery","setSearchQuery","mediaFilter","setMediaFilter","sortBy","setSortBy","sortOrder","setSortOrder","processFiles","useDragDrop","options","handleFileSelect","handleRemove","formatDuration","sec","filteredMediaItems","setFilteredMediaItems","filtered","valueA","valueB","previewComponents","previews","Map","loading","renderPreview","multiple","handleFileChange","CloudUpload","List","Grid2X2","ArrowDown01","GridView","ListView","gridTemplateColumns","addMediaAtTime","textData","TextView","addTextAtTime","Tabs","TabsPrimitive","TabsList","TabsTrigger","TabsContent","useSoundsStore","hasLoaded","showCommercialOnly","toggleCommercialFilter","searchResults","isSearching","searchError","lastSearchQuery","scrollPosition","currentPage","hasNextPage","totalCount","isLoadingMore","savedSounds","isSavedSoundsLoaded","isLoadingSavedSounds","savedSoundsError","setTopSoundEffects","topSoundEffects","setLoading","setHasLoaded","loaded","query","setSearchResults","results","setSearching","searching","setSearchError","setLastSearchQuery","setScrollPosition","position","setCurrentPage","page","setHasNextPage","hasNext","setTotalCount","count","setLoadingMore","appendSearchResults","appendTopSounds","resetPagination","loadSavedSounds","savedSoundsData","storageService","errorMessage","saveSoundEffect","soundEffect","removeSavedSound","soundId","sound","isSoundSaved","toggleSavedSound","clearSavedSounds","addSoundToTimeline","previewUrl","response","fetch","ok","statusText","File","SoundsView","SoundEffectsView","SavedSoundsView","SongsView","loadMore","useSoundSearch","commercialOnly","nextPage","searchParams","URLSearchParams","json","next","status","ignore","timeoutId","encodeURIComponent","clearTimeout","playingId","setPlayingId","audioElement","setAudioElement","scrollAreaRef","displayedSounds","containerClassName","showClearIcon","onClear","ListFilter","DropdownMenuCheckboxItem","checked","onCheckedChange","onScrollCapture","scrollHeight","clientHeight","nearBottom","AudioItem","onPlay","playSound","Audio","isSaved","onToggleSaved","showClearDialog","setShowClearDialog","convertToSoundEffect","savedSound","downloadUrl","filesize","channels","bitrate","bitdepth","samplerate","username","tags","license","created","savedAt","downloads","rating","ratingCount","HeartIcon","PauseIcon","PlayIcon","PlusIcon","handleSaveClick","colors","syntaxUIGradients","SettingsView","ProjectSettingsTabs","ProjectInfoView","BackgroundView","updateProjectFps","canvasPresets","setCanvasSize","getDisplayName","useAspectRatio","canvasMode","currentPreset","preset","getCurrentAspectRatio","formatAspectRatio","ratios","isOriginal","getOriginalAspectRatio","getMediaAspectRatio","handleAspectRatioChange","handleFpsChange","FPS_PRESETS","BlurPreview","memo","blur","onSelect","fill","BackgroundPreviews","backgrounds","currentBackgroundColor","isColorBackground","handleColorSelect","useBackgroundColor","bg","updateBackgroundType","blurLevels","handleBlurSelect","currentBlurIntensity","isBlurBackground","blurPreviews","PipetteIcon","patternCraftGradients","MediaPanel","viewMap","ContextMenuPrimitive","contextMenuItemVariants","cva","variants","default","destructive","defaultVariants","ContextMenuSubTrigger","inset","Check","Circle","ContextMenuLabel","Onboarding","setStep","setIsOpen","localStorage","hasSeenOnboarding","getItem","handleNext","handleClose","setItem","getStepTitle","renderStepContent","Title","Description","NextButton","h2","ReactMarkdown","components","ArrowRightIcon","usePlaybackControls"],"sourceRoot":"","ignoreList":[]} \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/650-2744d401bb0d724a.js b/opencut-ui/_next/static/chunks/650-2744d401bb0d724a.js new file mode 100644 index 0000000..9b16970 --- /dev/null +++ b/opencut-ui/_next/static/chunks/650-2744d401bb0d724a.js @@ -0,0 +1,2 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[650],{1370:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createInitialRouterState",{enumerable:!0,get:function(){return s}});let n=r(60092),u=r(87695),l=r(36861),o=r(17893),a=r(92765),i=r(27355),c=r(77328);function s(e){var t,r;let{navigatedAt:s,initialFlightData:f,initialCanonicalUrlParts:d,initialParallelRoutes:p,location:h,couldBeIntercepted:_,postponed:y,prerendered:b}=e,v=d.join("/"),g=(0,c.getFlightDataPartsFromPath)(f[0]),{tree:m,seedData:R,head:O}=g,E={lazyData:null,rsc:null==R?void 0:R[1],prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:p,loading:null!=(t=null==R?void 0:R[3])?t:null,navigatedAt:s},P=h?(0,n.createHrefFromUrl)(h):v;(0,i.addRefreshMarkerToActiveParallelSegments)(m,P);let j=new Map;(null===p||0===p.size)&&(0,u.fillLazyItemsTillLeafWithHead)(s,E,void 0,m,R,O,void 0);let T={tree:m,cache:E,prefetchCache:j,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:{apply:!1,onlyHashChange:!1,hashFragment:null,segmentPaths:[]},canonicalUrl:P,nextUrl:null!=(r=(0,l.extractPathFromFlightRouterState)(m)||(null==h?void 0:h.pathname))?r:null};if(h){let e=new URL(""+h.pathname+h.search,h.origin);(0,o.createSeededPrefetchCacheEntry)({url:e,data:{flightData:[g],canonicalUrl:void 0,couldBeIntercepted:!!_,prerendered:b,postponed:y,staleTime:b&&1?o.STATIC_STALETIME_MS:-1},tree:T.tree,prefetchCache:T.prefetchCache,nextUrl:T.nextUrl,kind:b?a.PrefetchKind.FULL:a.PrefetchKind.AUTO})}return T}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1455:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"applyFlightData",{enumerable:!0,get:function(){return l}});let n=r(87695),u=r(4741);function l(e,t,r,l,o){let{tree:a,seedData:i,head:c,isRootRender:s}=l;if(null===i)return!1;if(s){let u=i[1];r.loading=i[3],r.rsc=u,r.prefetchRsc=null,(0,n.fillLazyItemsTillLeafWithHead)(e,r,t,a,i,c,o)}else r.rsc=t.rsc,r.prefetchRsc=t.prefetchRsc,r.parallelRoutes=new Map(t.parallelRoutes),r.loading=t.loading,(0,u.fillCacheWithNewSubTreeData)(e,r,t,l,o);return!0}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2058:(e,t)=>{"use strict";function r(e){return e.startsWith("/")?e:"/"+e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ensureLeadingSlash",{enumerable:!0,get:function(){return r}})},3009:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"reportGlobalError",{enumerable:!0,get:function(){return r}});let r="function"==typeof reportError?reportError:e=>{globalThis.console.error(e)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4741:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{fillCacheWithNewSubTreeData:function(){return i},fillCacheWithNewSubTreeDataButOnlyLoading:function(){return c}});let n=r(27215),u=r(87695),l=r(11644),o=r(72826);function a(e,t,r,a,i,c){let{segmentPath:s,seedData:f,tree:d,head:p}=a,h=t,_=r;for(let t=0;t<s.length;t+=2){let r=s[t],a=s[t+1],y=t===s.length-2,b=(0,l.createRouterCacheKey)(a),v=_.parallelRoutes.get(r);if(!v)continue;let g=h.parallelRoutes.get(r);g&&g!==v||(g=new Map(v),h.parallelRoutes.set(r,g));let m=v.get(b),R=g.get(b);if(y){if(f&&(!R||!R.lazyData||R===m)){let t=f[0],r=f[1],l=f[3];R={lazyData:null,rsc:c||t!==o.PAGE_SEGMENT_KEY?r:null,prefetchRsc:null,head:null,prefetchHead:null,loading:l,parallelRoutes:c&&m?new Map(m.parallelRoutes):new Map,navigatedAt:e},m&&c&&(0,n.invalidateCacheByRouterState)(R,m,d),c&&(0,u.fillLazyItemsTillLeafWithHead)(e,R,m,d,f,p,i),g.set(b,R)}continue}R&&m&&(R===m&&(R={lazyData:R.lazyData,rsc:R.rsc,prefetchRsc:R.prefetchRsc,head:R.head,prefetchHead:R.prefetchHead,parallelRoutes:new Map(R.parallelRoutes),loading:R.loading},g.set(b,R)),h=R,_=m)}}function i(e,t,r,n,u){a(e,t,r,n,u,!0)}function c(e,t,r,n,u){a(e,t,r,n,u,!1)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4760:(e,t,r)=>{"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.r(t),r.d(t,{_:()=>n})},4772:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{METADATA_BOUNDARY_NAME:function(){return r},OUTLET_BOUNDARY_NAME:function(){return u},VIEWPORT_BOUNDARY_NAME:function(){return n}});let r="__next_metadata_boundary__",n="__next_viewport_boundary__",u="__next_outlet_boundary__"},4796:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,u.isNextRouterError)(t)||(0,n.isBailoutToCSRError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=r(42679),u=r(11619);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5377:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{GracefulDegradeBoundary:function(){return l},default:function(){return o}});let n=r(28064),u=r(74188);class l extends u.Component{static getDerivedStateFromError(e){return{hasError:!0}}componentDidMount(){let e=this.htmlRef.current;this.state.hasError&&e&&Object.entries(this.htmlAttributes).forEach(t=>{let[r,n]=t;e.setAttribute(r,n)})}render(){let{hasError:e}=this.state;return(this.rootHtml||(this.rootHtml=document.documentElement.innerHTML,this.htmlAttributes=function(e){let t={};for(let r=0;r<e.attributes.length;r++){let n=e.attributes[r];t[n.name]=n.value}return t}(document.documentElement)),e)?(0,n.jsx)("html",{ref:this.htmlRef,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:this.rootHtml}}):this.props.children}constructor(e){super(e),this.state={hasError:!1},this.rootHtml="",this.htmlAttributes={},this.htmlRef=(0,u.createRef)()}}let o=l;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5523:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"hasBasePath",{enumerable:!0,get:function(){return u}});let n=r(72736);function u(e){return(0,n.pathHasPrefix)(e,"/opencut")}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5914:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"matchSegment",{enumerable:!0,get:function(){return r}});let r=(e,t)=>"string"==typeof e?"string"==typeof t&&e===t:"string"!=typeof t&&e[0]===t[0]&&e[1]===t[1];("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7202:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{setCacheBustingSearchParam:function(){return l},setCacheBustingSearchParamWithHash:function(){return o}});let n=r(13515),u=r(23476),l=(e,t)=>{o(e,(0,n.computeCacheBustingSearchParam)(t[u.NEXT_ROUTER_PREFETCH_HEADER],t[u.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER],t[u.NEXT_ROUTER_STATE_TREE_HEADER],t[u.NEXT_URL]))},o=(e,t)=>{let r=e.search,n=(r.startsWith("?")?r.slice(1):r).split("&").filter(e=>e&&!e.startsWith(""+u.NEXT_RSC_UNION_QUERY+"="));t.length>0?n.push(u.NEXT_RSC_UNION_QUERY+"="+t):n.push(""+u.NEXT_RSC_UNION_QUERY),e.search=n.length?"?"+n.join("&"):""};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},10052:(e,t)=>{"use strict";function r(e){return Object.prototype.toString.call(e)}function n(e){if("[object Object]"!==r(e))return!1;let t=Object.getPrototypeOf(e);return null===t||t.hasOwnProperty("isPrototypeOf")}Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getObjectClassLabel:function(){return r},isPlainObject:function(){return n}})},11619:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isNextRouterError",{enumerable:!0,get:function(){return l}});let n=r(70149),u=r(87995);function l(e){return(0,u.isRedirectError)(e)||(0,n.isHTTPAccessFallbackError)(e)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},11644:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRouterCacheKey",{enumerable:!0,get:function(){return u}});let n=r(72826);function u(e,t){return(void 0===t&&(t=!1),Array.isArray(e))?e[0]+"|"+e[1]+"|"+e[2]:t&&e.startsWith(n.PAGE_SEGMENT_KEY)?n.PAGE_SEGMENT_KEY:e}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},13001:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"AppRouterAnnouncer",{enumerable:!0,get:function(){return o}});let n=r(74188),u=r(82749),l="next-route-announcer";function o(e){let{tree:t}=e,[r,o]=(0,n.useState)(null);(0,n.useEffect)(()=>(o(function(){var e;let t=document.getElementsByName(l)[0];if(null==t||null==(e=t.shadowRoot)?void 0:e.childNodes[0])return t.shadowRoot.childNodes[0];{let e=document.createElement(l);e.style.cssText="position:absolute";let t=document.createElement("div");return t.ariaLive="assertive",t.id="__next-route-announcer__",t.role="alert",t.style.cssText="position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal",e.attachShadow({mode:"open"}).appendChild(t),document.body.appendChild(e),t}}()),()=>{let e=document.getElementsByTagName(l)[0];(null==e?void 0:e.isConnected)&&document.body.removeChild(e)}),[]);let[a,i]=(0,n.useState)(""),c=(0,n.useRef)(void 0);return(0,n.useEffect)(()=>{let e="";if(document.title)e=document.title;else{let t=document.querySelector("h1");t&&(e=t.innerText||t.textContent||"")}void 0!==c.current&&c.current!==e&&i(e),c.current=e},[t]),r?(0,u.createPortal)(a,r):null}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},13399:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return l}});let n=r(64012),u=new WeakMap;function l(e){let t=u.get(e);if(t)return t;let r=Promise.resolve(e);return u.set(e,r),Object.keys(e).forEach(t=>{n.wellKnownProperties.has(t)||(r[t]=e[t])}),r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},13515:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"computeCacheBustingSearchParam",{enumerable:!0,get:function(){return u}});let n=r(41761);function u(e,t,r,u){return void 0===e&&void 0===t&&void 0===r&&void 0===u?"":(0,n.hexHash)([e||"0",t||"0",r||"0",u||"0"].join(","))}},14116:(e,t,r)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=r(67411)},14709:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{IDLE_LINK_STATUS:function(){return c},PENDING_LINK_STATUS:function(){return i},mountFormInstance:function(){return v},mountLinkInstance:function(){return b},onLinkVisibilityChanged:function(){return m},onNavigationIntent:function(){return R},pingVisibleLinks:function(){return E},setLinkForCurrentNavigation:function(){return s},unmountLinkForCurrentNavigation:function(){return f},unmountPrefetchableInstance:function(){return g}}),r(72817);let n=r(78383),u=r(92765),l=r(86442),o=r(74188),a=null,i={pending:!0},c={pending:!1};function s(e){(0,o.startTransition)(()=>{null==a||a.setOptimisticLinkStatus(c),null==e||e.setOptimisticLinkStatus(i),a=e})}function f(e){a===e&&(a=null)}let d="function"==typeof WeakMap?new WeakMap:new Map,p=new Set,h="function"==typeof IntersectionObserver?new IntersectionObserver(function(e){for(let t of e){let e=t.intersectionRatio>0;m(t.target,e)}},{rootMargin:"200px"}):null;function _(e,t){void 0!==d.get(e)&&g(e),d.set(e,t),null!==h&&h.observe(e)}function y(e){try{return(0,n.createPrefetchURL)(e)}catch(t){return("function"==typeof reportError?reportError:console.error)("Cannot prefetch '"+e+"' because it cannot be converted to a URL."),null}}function b(e,t,r,n,u,l){if(u){let u=y(t);if(null!==u){let t={router:r,kind:n,isVisible:!1,prefetchTask:null,prefetchHref:u.href,setOptimisticLinkStatus:l};return _(e,t),t}}return{router:r,kind:n,isVisible:!1,prefetchTask:null,prefetchHref:null,setOptimisticLinkStatus:l}}function v(e,t,r,n){let u=y(t);null!==u&&_(e,{router:r,kind:n,isVisible:!1,prefetchTask:null,prefetchHref:u.href,setOptimisticLinkStatus:null})}function g(e){let t=d.get(e);if(void 0!==t){d.delete(e),p.delete(t);let r=t.prefetchTask;null!==r&&(0,l.cancelPrefetchTask)(r)}null!==h&&h.unobserve(e)}function m(e,t){let r=d.get(e);void 0!==r&&(r.isVisible=t,t?p.add(r):p.delete(r),O(r,l.PrefetchPriority.Default))}function R(e,t){let r=d.get(e);void 0!==r&&void 0!==r&&O(r,l.PrefetchPriority.Intent)}function O(e,t){var r;let n=e.prefetchTask;if(!e.isVisible){null!==n&&(0,l.cancelPrefetchTask)(n);return}r=e,(async()=>r.router.prefetch(r.prefetchHref,{kind:r.kind}))().catch(e=>{})}function E(e,t){for(let r of p){let n=r.prefetchTask;if(null!==n&&!(0,l.isPrefetchTaskDirty)(n,e,t))continue;null!==n&&(0,l.cancelPrefetchTask)(n);let o=(0,l.createCacheKey)(r.prefetchHref,e);r.prefetchTask=(0,l.schedulePrefetchTask)(o,t,r.kind===u.PrefetchKind.FULL,l.PrefetchPriority.Default,null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},15666:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useRouterBFCache",{enumerable:!0,get:function(){return u}});let n=r(74188);function u(e,t){let[r,u]=(0,n.useState)(()=>({tree:e,stateKey:t,next:null}));if(r.tree===e)return r;let l={tree:e,stateKey:t,next:null},o=1,a=r,i=l;for(;null!==a&&o<1;){if(a.stateKey===t){i.next=a.next;break}{o++;let e={tree:a.tree,stateKey:a.stateKey,next:null};i.next=e,i=e}a=a.next}return u(l),l}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},17499:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"warnOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},17540:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderParamsFromClient",{enumerable:!0,get:function(){return l}});let n=r(64012),u=new WeakMap;function l(e){let t=u.get(e);if(t)return t;let r=Promise.resolve(e);return u.set(e,r),Object.keys(e).forEach(t=>{n.wellKnownProperties.has(t)||(r[t]=e[t])}),r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},17779:(e,t,r)=>{"use strict";e.exports=r(96656)},17893:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DYNAMIC_STALETIME_MS:function(){return d},STATIC_STALETIME_MS:function(){return p},createSeededPrefetchCacheEntry:function(){return c},getOrCreatePrefetchCacheEntry:function(){return i},prunePrefetchCache:function(){return f}});let n=r(60459),u=r(92765),l=r(37607);function o(e,t,r){let n=e.pathname;return(t&&(n+=e.search),r)?""+r+"%"+n:n}function a(e,t,r){return o(e,t===u.PrefetchKind.FULL,r)}function i(e){let{url:t,nextUrl:r,tree:n,prefetchCache:l,kind:a,allowAliasing:i=!0}=e,c=function(e,t,r,n,l){for(let a of(void 0===t&&(t=u.PrefetchKind.TEMPORARY),[r,null])){let r=o(e,!0,a),i=o(e,!1,a),c=e.search?r:i,s=n.get(c);if(s&&l){if(s.url.pathname===e.pathname&&s.url.search!==e.search)return{...s,aliased:!0};return s}let f=n.get(i);if(l&&e.search&&t!==u.PrefetchKind.FULL&&f&&!f.key.includes("%"))return{...f,aliased:!0}}if(t!==u.PrefetchKind.FULL&&l){for(let t of n.values())if(t.url.pathname===e.pathname&&!t.key.includes("%"))return{...t,aliased:!0}}}(t,a,r,l,i);return c?(c.status=h(c),c.kind!==u.PrefetchKind.FULL&&a===u.PrefetchKind.FULL&&c.data.then(e=>{if(!(Array.isArray(e.flightData)&&e.flightData.some(e=>e.isRootRender&&null!==e.seedData)))return s({tree:n,url:t,nextUrl:r,prefetchCache:l,kind:null!=a?a:u.PrefetchKind.TEMPORARY})}),a&&c.kind===u.PrefetchKind.TEMPORARY&&(c.kind=a),c):s({tree:n,url:t,nextUrl:r,prefetchCache:l,kind:a||u.PrefetchKind.TEMPORARY})}function c(e){let{nextUrl:t,tree:r,prefetchCache:n,url:l,data:o,kind:i}=e,c=o.couldBeIntercepted?a(l,i,t):a(l,i),s={treeAtTimeOfPrefetch:r,data:Promise.resolve(o),kind:i,prefetchTime:Date.now(),lastUsedTime:Date.now(),staleTime:o.staleTime,key:c,status:u.PrefetchCacheEntryStatus.fresh,url:l};return n.set(c,s),s}function s(e){let{url:t,kind:r,tree:o,nextUrl:i,prefetchCache:c}=e,s=a(t,r),f=l.prefetchQueue.enqueue(()=>(0,n.fetchServerResponse)(t,{flightRouterState:o,nextUrl:i,prefetchKind:r}).then(e=>{let r;if(e.couldBeIntercepted&&(r=function(e){let{url:t,nextUrl:r,prefetchCache:n,existingCacheKey:u}=e,l=n.get(u);if(!l)return;let o=a(t,l.kind,r);return n.set(o,{...l,key:o}),n.delete(u),o}({url:t,existingCacheKey:s,nextUrl:i,prefetchCache:c})),e.prerendered){let t=c.get(null!=r?r:s);t&&(t.kind=u.PrefetchKind.FULL,-1!==e.staleTime&&(t.staleTime=e.staleTime))}return e})),d={treeAtTimeOfPrefetch:o,data:f,kind:r,prefetchTime:Date.now(),lastUsedTime:null,staleTime:-1,key:s,status:u.PrefetchCacheEntryStatus.fresh,url:t};return c.set(s,d),d}function f(e){for(let[t,r]of e)h(r)===u.PrefetchCacheEntryStatus.expired&&e.delete(t)}let d=1e3*Number("0"),p=1e3*Number("300");function h(e){let{kind:t,prefetchTime:r,lastUsedTime:n,staleTime:l}=e;return -1!==l?Date.now()<r+l?u.PrefetchCacheEntryStatus.fresh:u.PrefetchCacheEntryStatus.stale:Date.now()<(null!=n?n:r)+d?n?u.PrefetchCacheEntryStatus.reusable:u.PrefetchCacheEntryStatus.fresh:t===u.PrefetchKind.AUTO&&Date.now()<r+p?u.PrefetchCacheEntryStatus.stale:t===u.PrefetchKind.FULL&&Date.now()<r+p?u.PrefetchCacheEntryStatus.reusable:u.PrefetchCacheEntryStatus.expired}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},18248:(e,t,r)=>{"use strict";function n(e,t){if(void 0===t&&(t={}),t.onlyHashChange)return void e();let r=document.documentElement;r.dataset.scrollBehavior;let n=r.style.scrollBehavior;r.style.scrollBehavior="auto",t.dontForceLayout||r.getClientRects(),e(),r.style.scrollBehavior=n}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"disableSmoothScrollDuringRouteTransition",{enumerable:!0,get:function(){return n}}),r(17499)},20513:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isNavigatingToNewRootLayout",{enumerable:!0,get:function(){return function e(t,r){let n=t[0],u=r[0];if(Array.isArray(n)&&Array.isArray(u)){if(n[0]!==u[0]||n[2]!==u[2])return!0}else if(n!==u)return!0;if(t[4])return!r[4];if(r[4])return!0;let l=Object.values(t[1])[0],o=Object.values(r[1])[0];return!l||!o||e(l,o)}}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},20899:(e,t,r)=>{"use strict";var n=r(52578),u=Symbol.for("react.transitional.element"),l=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),s=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),_=Symbol.iterator,y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b=Object.assign,v={};function g(e,t,r){this.props=e,this.context=t,this.refs=v,this.updater=r||y}function m(){}function R(e,t,r){this.props=e,this.context=t,this.refs=v,this.updater=r||y}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},m.prototype=g.prototype;var O=R.prototype=new m;O.constructor=R,b(O,g.prototype),O.isPureReactComponent=!0;var E=Array.isArray;function P(){}var j={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function S(e,t,r,n,l,o){return{$$typeof:u,type:e,key:t,ref:void 0!==(r=o.ref)?r:null,props:o}}function M(e){return"object"==typeof e&&null!==e&&e.$$typeof===u}var w=/\/+/g;function x(e,t){var r,n;return"object"==typeof e&&null!==e&&null!=e.key?(r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36)}function C(e,t,r){if(null==e)return e;var n=[],o=0;return!function e(t,r,n,o,a){var i,c,s,f=typeof t;("undefined"===f||"boolean"===f)&&(t=null);var d=!1;if(null===t)d=!0;else switch(f){case"bigint":case"string":case"number":d=!0;break;case"object":switch(t.$$typeof){case u:case l:d=!0;break;case h:return e((d=t._init)(t._payload),r,n,o,a)}}if(d)return a=a(t),d=""===o?"."+x(t,0):o,E(a)?(n="",null!=d&&(n=d.replace(w,"$&/")+"/"),e(a,r,n,"",function(e){return e})):null!=a&&(M(a)&&(i=a,c=n+(null==a.key||t&&t.key===a.key?"":(""+a.key).replace(w,"$&/")+"/")+d,a=S(i.type,c,void 0,void 0,void 0,i.props)),r.push(a)),1;d=0;var p=""===o?".":o+":";if(E(t))for(var y=0;y<t.length;y++)f=p+x(o=t[y],y),d+=e(o,r,n,f,a);else if("function"==typeof(y=null===(s=t)||"object"!=typeof s?null:"function"==typeof(s=_&&s[_]||s["@@iterator"])?s:null))for(t=y.call(t),y=0;!(o=t.next()).done;)f=p+x(o=o.value,y++),d+=e(o,r,n,f,a);else if("object"===f){if("function"==typeof t.then)return e(function(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch("string"==typeof e.status?e.then(P,P):(e.status="pending",e.then(function(t){"pending"===e.status&&(e.status="fulfilled",e.value=t)},function(t){"pending"===e.status&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}(t),r,n,o,a);throw Error("Objects are not valid as a React child (found: "+("[object Object]"===(r=String(t))?"object with keys {"+Object.keys(t).join(", ")+"}":r)+"). If you meant to render a collection of children, use an array instead.")}return d}(e,n,"","",function(e){return t.call(r,e,o++)}),n}function A(e){if(-1===e._status){var t=e._result;(t=t()).then(function(t){(0===e._status||-1===e._status)&&(e._status=1,e._result=t)},function(t){(0===e._status||-1===e._status)&&(e._status=2,e._result=t)}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var N="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof n&&"function"==typeof n.emit)return void n.emit("uncaughtException",e);console.error(e)};t.Children={map:C,forEach:function(e,t,r){C(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return C(e,function(){t++}),t},toArray:function(e){return C(e,function(e){return e})||[]},only:function(e){if(!M(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=g,t.Fragment=o,t.Profiler=i,t.PureComponent=R,t.StrictMode=a,t.Suspense=d,t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=j,t.__COMPILER_RUNTIME={__proto__:null,c:function(e){return j.H.useMemoCache(e)}},t.cache=function(e){return function(){return e.apply(null,arguments)}},t.cacheSignal=function(){return null},t.cloneElement=function(e,t,r){if(null==e)throw Error("The argument must be a React element, but you passed "+e+".");var n=b({},e.props),u=e.key,l=void 0;if(null!=t)for(o in void 0!==t.ref&&(l=void 0),void 0!==t.key&&(u=""+t.key),t)T.call(t,o)&&"key"!==o&&"__self"!==o&&"__source"!==o&&("ref"!==o||void 0!==t.ref)&&(n[o]=t[o]);var o=arguments.length-2;if(1===o)n.children=r;else if(1<o){for(var a=Array(o),i=0;i<o;i++)a[i]=arguments[i+2];n.children=a}return S(e.type,u,void 0,void 0,l,n)},t.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider=e,e.Consumer={$$typeof:c,_context:e},e},t.createElement=function(e,t,r){var n,u={},l=null;if(null!=t)for(n in void 0!==t.key&&(l=""+t.key),t)T.call(t,n)&&"key"!==n&&"__self"!==n&&"__source"!==n&&(u[n]=t[n]);var o=arguments.length-2;if(1===o)u.children=r;else if(1<o){for(var a=Array(o),i=0;i<o;i++)a[i]=arguments[i+2];u.children=a}if(e&&e.defaultProps)for(n in o=e.defaultProps)void 0===u[n]&&(u[n]=o[n]);return S(e,l,void 0,void 0,null,u)},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:f,render:e}},t.isValidElement=M,t.lazy=function(e){return{$$typeof:h,_payload:{_status:-1,_result:e},_init:A}},t.memo=function(e,t){return{$$typeof:p,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=j.T,r={};j.T=r;try{var n=e(),u=j.S;null!==u&&u(r,n),"object"==typeof n&&null!==n&&"function"==typeof n.then&&n.then(P,N)}catch(e){N(e)}finally{null!==t&&null!==r.types&&(t.types=r.types),j.T=t}},t.unstable_useCacheRefresh=function(){return j.H.useCacheRefresh()},t.use=function(e){return j.H.use(e)},t.useActionState=function(e,t,r){return j.H.useActionState(e,t,r)},t.useCallback=function(e,t){return j.H.useCallback(e,t)},t.useContext=function(e){return j.H.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e,t){return j.H.useDeferredValue(e,t)},t.useEffect=function(e,t){return j.H.useEffect(e,t)},t.useId=function(){return j.H.useId()},t.useImperativeHandle=function(e,t,r){return j.H.useImperativeHandle(e,t,r)},t.useInsertionEffect=function(e,t){return j.H.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return j.H.useLayoutEffect(e,t)},t.useMemo=function(e,t){return j.H.useMemo(e,t)},t.useOptimistic=function(e,t){return j.H.useOptimistic(e,t)},t.useReducer=function(e,t,r){return j.H.useReducer(e,t,r)},t.useRef=function(e){return j.H.useRef(e)},t.useState=function(e){return j.H.useState(e)},t.useSyncExternalStore=function(e,t,r){return j.H.useSyncExternalStore(e,t,r)},t.useTransition=function(){return j.H.useTransition()},t.version="19.2.0-canary-97cdd5d3-20250710"},22688:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{INTERCEPTION_ROUTE_MARKERS:function(){return u},extractInterceptionRouteInformation:function(){return o},isInterceptionRouteAppPath:function(){return l}});let n=r(25179),u=["(..)(..)","(.)","(..)","(...)"];function l(e){return void 0!==e.split("/").find(e=>u.find(t=>e.startsWith(t)))}function o(e){let t,r,l;for(let n of e.split("/"))if(r=u.find(e=>n.startsWith(e))){[t,l]=e.split(r,2);break}if(!t||!r||!l)throw Object.defineProperty(Error("Invalid interception route: "+e+". Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>"),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(t=(0,n.normalizeAppPath)(t),r){case"(.)":l="/"===t?"/"+l:t+"/"+l;break;case"(..)":if("/"===t)throw Object.defineProperty(Error("Invalid interception route: "+e+". Cannot use (..) marker at the root level, use (.) instead."),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});l=t.split("/").slice(0,-1).concat(l).join("/");break;case"(...)":l="/"+l;break;case"(..)(..)":let o=t.split("/");if(o.length<=2)throw Object.defineProperty(Error("Invalid interception route: "+e+". Cannot use (..)(..) marker at the root level or one level up."),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});l=o.slice(0,-2).concat(l).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:t,interceptedRoute:l}}},23116:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return w}});let n=r(4760),u=r(44253),l=r(28064),o=r(92765),a=u._(r(74188)),i=n._(r(82749)),c=r(81986),s=r(60459),f=r(85273),d=r(49747),p=r(5914),h=r(18248),_=r(33813),y=r(23752),b=r(11644),v=r(95837),g=r(40034),m=r(15666);r(25179);let R=i.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,O=["bottom","height","left","right","top","width","x","y"];function E(e,t){let r=e.getBoundingClientRect();return r.top>=0&&r.top<=t}class P extends a.default.Component{componentDidMount(){this.handlePotentialScroll()}componentDidUpdate(){this.props.focusAndScrollRef.apply&&this.handlePotentialScroll()}render(){return this.props.children}constructor(...e){super(...e),this.handlePotentialScroll=()=>{let{focusAndScrollRef:e,segmentPath:t}=this.props;if(e.apply){if(0!==e.segmentPaths.length&&!e.segmentPaths.some(e=>t.every((t,r)=>(0,p.matchSegment)(t,e[r]))))return;let r=null,n=e.hashFragment;if(n&&(r=function(e){var t;return"top"===e?document.body:null!=(t=document.getElementById(e))?t:document.getElementsByName(e)[0]}(n)),r||(r=(0,R.findDOMNode)(this)),!(r instanceof Element))return;for(;!(r instanceof HTMLElement)||function(e){if(["sticky","fixed"].includes(getComputedStyle(e).position))return!0;let t=e.getBoundingClientRect();return O.every(e=>0===t[e])}(r);){if(null===r.nextElementSibling)return;r=r.nextElementSibling}e.apply=!1,e.hashFragment=null,e.segmentPaths=[],(0,h.disableSmoothScrollDuringRouteTransition)(()=>{if(n)return void r.scrollIntoView();let e=document.documentElement,t=e.clientHeight;!E(r,t)&&(e.scrollTop=0,E(r,t)||r.scrollIntoView())},{dontForceLayout:!0,onlyHashChange:e.onlyHashChange}),e.onlyHashChange=!1,r.focus()}}}}function j(e){let{segmentPath:t,children:r}=e,n=(0,a.useContext)(c.GlobalLayoutRouterContext);if(!n)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});return(0,l.jsx)(P,{segmentPath:t,focusAndScrollRef:n.focusAndScrollRef,children:r})}function T(e){let{tree:t,segmentPath:r,cacheNode:n,url:u}=e,i=(0,a.useContext)(c.GlobalLayoutRouterContext);if(!i)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});let{tree:d}=i,h=null!==n.prefetchRsc?n.prefetchRsc:n.rsc,_=(0,a.useDeferredValue)(n.rsc,h),y="object"==typeof _&&null!==_&&"function"==typeof _.then?(0,a.use)(_):_;if(!y){let e=n.lazyData;if(null===e){let t=function e(t,r){if(t){let[n,u]=t,l=2===t.length;if((0,p.matchSegment)(r[0],n)&&r[1].hasOwnProperty(u)){if(l){let t=e(void 0,r[1][u]);return[r[0],{...r[1],[u]:[t[0],t[1],t[2],"refetch"]}]}return[r[0],{...r[1],[u]:e(t.slice(2),r[1][u])}]}}return r}(["",...r],d),l=(0,v.hasInterceptionRouteInCurrentTree)(d),c=Date.now();n.lazyData=e=(0,s.fetchServerResponse)(new URL(u,location.origin),{flightRouterState:t,nextUrl:l?i.nextUrl:null}).then(e=>((0,a.startTransition)(()=>{(0,g.dispatchAppRouterAction)({type:o.ACTION_SERVER_PATCH,previousTree:d,serverResponse:e,navigatedAt:c})}),e)),(0,a.use)(e)}(0,a.use)(f.unresolvedThenable)}return(0,l.jsx)(c.LayoutRouterContext.Provider,{value:{parentTree:t,parentCacheNode:n,parentSegmentPath:r,url:u},children:y})}function S(e){let t,{loading:r,children:n}=e;if(t="object"==typeof r&&null!==r&&"function"==typeof r.then?(0,a.use)(r):r){let e=t[0],r=t[1],u=t[2];return(0,l.jsx)(a.Suspense,{fallback:(0,l.jsxs)(l.Fragment,{children:[r,u,e]}),children:n})}return(0,l.jsx)(l.Fragment,{children:n})}function M(e){let{children:t}=e;return(0,l.jsx)(l.Fragment,{children:t})}function w(e){let{parallelRouterKey:t,error:r,errorStyles:n,errorScripts:u,templateStyles:o,templateScripts:i,template:s,notFound:f,forbidden:p,unauthorized:h,gracefullyDegrade:v,segmentViewBoundaries:g}=e,R=(0,a.useContext)(c.LayoutRouterContext);if(!R)throw Object.defineProperty(Error("invariant expected layout router to be mounted"),"__NEXT_ERROR_CODE",{value:"E56",enumerable:!1,configurable:!0});let{parentTree:O,parentCacheNode:E,parentSegmentPath:P,url:w}=R,x=E.parallelRoutes,C=x.get(t);C||(C=new Map,x.set(t,C));let A=O[0],N=null===P?[t]:P.concat([A,t]),U=O[1][t],D=U[0],I=(0,b.createRouterCacheKey)(D,!0),L=(0,m.useRouterBFCache)(U,I),k=[];do{let e=L.tree,t=L.stateKey,a=e[0],g=(0,b.createRouterCacheKey)(a),m=C.get(g);if(void 0===m){let e={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1};m=e,C.set(g,e)}let R=v?M:d.ErrorBoundary,O=E.loading,P=(0,l.jsxs)(c.TemplateContext.Provider,{value:(0,l.jsxs)(j,{segmentPath:N,children:[(0,l.jsx)(R,{errorComponent:r,errorStyles:n,errorScripts:u,children:(0,l.jsx)(S,{loading:O,children:(0,l.jsx)(y.HTTPAccessFallbackBoundary,{notFound:f,forbidden:p,unauthorized:h,children:(0,l.jsxs)(_.RedirectBoundary,{children:[(0,l.jsx)(T,{url:w,tree:e,cacheNode:m,segmentPath:N}),null]})})})}),null]}),children:[o,i,s]},t);k.push(P),L=L.next}while(null!==L);return k}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},23447:(e,t)=>{"use strict";function r(e){return Array.isArray(e)?e[1]:e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getSegmentValue",{enumerable:!0,get:function(){return r}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},23476:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ACTION_HEADER:function(){return n},FLIGHT_HEADERS:function(){return f},NEXT_ACTION_NOT_FOUND_HEADER:function(){return v},NEXT_DID_POSTPONE_HEADER:function(){return h},NEXT_HMR_REFRESH_HASH_COOKIE:function(){return i},NEXT_HMR_REFRESH_HEADER:function(){return a},NEXT_IS_PRERENDER_HEADER:function(){return b},NEXT_REWRITTEN_PATH_HEADER:function(){return _},NEXT_REWRITTEN_QUERY_HEADER:function(){return y},NEXT_ROUTER_PREFETCH_HEADER:function(){return l},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return o},NEXT_ROUTER_STALE_TIME_HEADER:function(){return p},NEXT_ROUTER_STATE_TREE_HEADER:function(){return u},NEXT_RSC_UNION_QUERY:function(){return d},NEXT_URL:function(){return c},RSC_CONTENT_TYPE_HEADER:function(){return s},RSC_HEADER:function(){return r}});let r="RSC",n="Next-Action",u="Next-Router-State-Tree",l="Next-Router-Prefetch",o="Next-Router-Segment-Prefetch",a="Next-HMR-Refresh",i="__next_hmr_refresh_hash__",c="Next-Url",s="text/x-component",f=[r,u,l,a,o],d="_rsc",p="x-nextjs-stale-time",h="x-nextjs-postponed",_="x-nextjs-rewritten-path",y="x-nextjs-rewritten-query",b="x-nextjs-prerender",v="x-nextjs-action-not-found";("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},23752:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessFallbackBoundary",{enumerable:!0,get:function(){return s}});let n=r(44253),u=r(28064),l=n._(r(74188)),o=r(59340),a=r(70149);r(17499);let i=r(81986);class c extends l.default.Component{componentDidCatch(){}static getDerivedStateFromError(e){if((0,a.isHTTPAccessFallbackError)(e))return{triggeredStatus:(0,a.getAccessFallbackHTTPStatus)(e)};throw e}static getDerivedStateFromProps(e,t){return e.pathname!==t.previousPathname&&t.triggeredStatus?{triggeredStatus:void 0,previousPathname:e.pathname}:{triggeredStatus:t.triggeredStatus,previousPathname:e.pathname}}render(){let{notFound:e,forbidden:t,unauthorized:r,children:n}=this.props,{triggeredStatus:l}=this.state,o={[a.HTTPAccessErrorStatus.NOT_FOUND]:e,[a.HTTPAccessErrorStatus.FORBIDDEN]:t,[a.HTTPAccessErrorStatus.UNAUTHORIZED]:r};if(l){let i=l===a.HTTPAccessErrorStatus.NOT_FOUND&&e,c=l===a.HTTPAccessErrorStatus.FORBIDDEN&&t,s=l===a.HTTPAccessErrorStatus.UNAUTHORIZED&&r;return i||c||s?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("meta",{name:"robots",content:"noindex"}),!1,o[l]]}):n}return n}constructor(e){super(e),this.state={triggeredStatus:void 0,previousPathname:e.pathname}}}function s(e){let{notFound:t,forbidden:r,unauthorized:n,children:a}=e,s=(0,o.useUntrackedPathname)(),f=(0,l.useContext)(i.MissingSlotContext);return t||r||n?(0,u.jsx)(c,{pathname:s,notFound:t,forbidden:r,unauthorized:n,missingSlots:f,children:a}):(0,u.jsx)(u.Fragment,{children:a})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},24615:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{abortTask:function(){return h},listenForDynamicRequest:function(){return p},startPPRNavigation:function(){return c},updateCacheNodeOnPopstateRestoration:function(){return function e(t,r){let n=r[1],u=t.parallelRoutes,o=new Map(u);for(let t in n){let r=n[t],a=r[0],i=(0,l.createRouterCacheKey)(a),c=u.get(t);if(void 0!==c){let n=c.get(i);if(void 0!==n){let u=e(n,r),l=new Map(c);l.set(i,u),o.set(t,l)}}}let a=t.rsc,i=b(a)&&"pending"===a.status;return{lazyData:null,rsc:a,head:t.head,prefetchHead:i?t.prefetchHead:[null,null],prefetchRsc:i?t.prefetchRsc:null,loading:t.loading,parallelRoutes:o,navigatedAt:t.navigatedAt}}}});let n=r(72826),u=r(5914),l=r(11644),o=r(20513),a=r(17893),i={route:null,node:null,dynamicRequestTree:null,children:null};function c(e,t,r,o,a,c,d,p,h){return function e(t,r,o,a,c,d,p,h,_,y,b){let v=o[1],g=a[1],m=null!==d?d[2]:null;c||!0===a[4]&&(c=!0);let R=r.parallelRoutes,O=new Map(R),E={},P=null,j=!1,T={};for(let r in g){let o,a=g[r],f=v[r],d=R.get(r),S=null!==m?m[r]:null,M=a[0],w=y.concat([r,M]),x=(0,l.createRouterCacheKey)(M),C=void 0!==f?f[0]:void 0,A=void 0!==d?d.get(x):void 0;if(null!==(o=M===n.DEFAULT_SEGMENT_KEY?void 0!==f?{route:f,node:null,dynamicRequestTree:null,children:null}:s(t,f,a,A,c,void 0!==S?S:null,p,h,w,b):_&&0===Object.keys(a[1]).length?s(t,f,a,A,c,void 0!==S?S:null,p,h,w,b):void 0!==f&&void 0!==C&&(0,u.matchSegment)(M,C)&&void 0!==A&&void 0!==f?e(t,A,f,a,c,S,p,h,_,w,b):s(t,f,a,A,c,void 0!==S?S:null,p,h,w,b))){if(null===o.route)return i;null===P&&(P=new Map),P.set(r,o);let e=o.node;if(null!==e){let t=new Map(d);t.set(x,e),O.set(r,t)}let t=o.route;E[r]=t;let n=o.dynamicRequestTree;null!==n?(j=!0,T[r]=n):T[r]=t}else E[r]=a,T[r]=a}if(null===P)return null;let S={lazyData:null,rsc:r.rsc,prefetchRsc:r.prefetchRsc,head:r.head,prefetchHead:r.prefetchHead,loading:r.loading,parallelRoutes:O,navigatedAt:t};return{route:f(a,E),node:S,dynamicRequestTree:j?f(a,T):null,children:P}}(e,t,r,o,!1,a,c,d,p,[],h)}function s(e,t,r,n,u,c,s,p,h,_){return!u&&(void 0===t||(0,o.isNavigatingToNewRootLayout)(t,r))?i:function e(t,r,n,u,o,i,c,s){let p,h,_,y,b=r[1],v=0===Object.keys(b).length;if(void 0!==n&&n.navigatedAt+a.DYNAMIC_STALETIME_MS>t)p=n.rsc,h=n.loading,_=n.head,y=n.navigatedAt;else if(null===u)return d(t,r,null,o,i,c,s);else if(p=u[1],h=u[3],_=v?o:null,y=t,u[4]||i&&v)return d(t,r,u,o,i,c,s);let g=null!==u?u[2]:null,m=new Map,R=void 0!==n?n.parallelRoutes:null,O=new Map(R),E={},P=!1;if(v)s.push(c);else for(let r in b){let n=b[r],u=null!==g?g[r]:null,a=null!==R?R.get(r):void 0,f=n[0],d=c.concat([r,f]),p=(0,l.createRouterCacheKey)(f),h=e(t,n,void 0!==a?a.get(p):void 0,u,o,i,d,s);m.set(r,h);let _=h.dynamicRequestTree;null!==_?(P=!0,E[r]=_):E[r]=n;let y=h.node;if(null!==y){let e=new Map;e.set(p,y),O.set(r,e)}}return{route:r,node:{lazyData:null,rsc:p,prefetchRsc:null,head:_,prefetchHead:null,loading:h,parallelRoutes:O,navigatedAt:y},dynamicRequestTree:P?f(r,E):null,children:m}}(e,r,n,c,s,p,h,_)}function f(e,t){let r=[e[0],t];return 2 in e&&(r[2]=e[2]),3 in e&&(r[3]=e[3]),4 in e&&(r[4]=e[4]),r}function d(e,t,r,n,u,o,a){let i=f(t,t[1]);return i[3]="refetch",{route:t,node:function e(t,r,n,u,o,a,i){let c=r[1],s=null!==n?n[2]:null,f=new Map;for(let r in c){let n=c[r],d=null!==s?s[r]:null,p=n[0],h=a.concat([r,p]),_=(0,l.createRouterCacheKey)(p),y=e(t,n,void 0===d?null:d,u,o,h,i),b=new Map;b.set(_,y),f.set(r,b)}let d=0===f.size;d&&i.push(a);let p=null!==n?n[1]:null,h=null!==n?n[3]:null;return{lazyData:null,parallelRoutes:f,prefetchRsc:void 0!==p?p:null,prefetchHead:d?u:[null,null],loading:void 0!==h?h:null,rsc:v(),head:d?v():null,navigatedAt:t}}(e,t,r,n,u,o,a),dynamicRequestTree:i,children:null}}function p(e,t){t.then(t=>{let{flightData:r}=t;if("string"!=typeof r){for(let t of r){let{segmentPath:r,tree:n,seedData:o,head:a}=t;o&&function(e,t,r,n,o){let a=e;for(let e=0;e<t.length;e+=2){let r=t[e],n=t[e+1],l=a.children;if(null!==l){let e=l.get(r);if(void 0!==e){let t=e.route[0];if((0,u.matchSegment)(n,t)){a=e;continue}}}return}!function e(t,r,n,o){if(null===t.dynamicRequestTree)return;let a=t.children,i=t.node;if(null===a){null!==i&&(function e(t,r,n,o,a){let i=r[1],c=n[1],s=o[2],f=t.parallelRoutes;for(let t in i){let r=i[t],n=c[t],o=s[t],d=f.get(t),p=r[0],h=(0,l.createRouterCacheKey)(p),y=void 0!==d?d.get(h):void 0;void 0!==y&&(void 0!==n&&(0,u.matchSegment)(p,n[0])&&null!=o?e(y,r,n,o,a):_(r,y,null))}let d=t.rsc,p=o[1];null===d?t.rsc=p:b(d)&&d.resolve(p);let h=t.head;b(h)&&h.resolve(a)}(i,t.route,r,n,o),t.dynamicRequestTree=null);return}let c=r[1],s=n[2];for(let t in r){let r=c[t],n=s[t],l=a.get(t);if(void 0!==l){let t=l.route[0];if((0,u.matchSegment)(r[0],t)&&null!=n)return e(l,r,n,o)}}}(a,r,n,o)}(e,r,n,o,a)}h(e,null)}},t=>{h(e,t)})}function h(e,t){let r=e.node;if(null===r)return;let n=e.children;if(null===n)_(e.route,r,t);else for(let e of n.values())h(e,t);e.dynamicRequestTree=null}function _(e,t,r){let n=e[1],u=t.parallelRoutes;for(let e in n){let t=n[e],o=u.get(e);if(void 0===o)continue;let a=t[0],i=(0,l.createRouterCacheKey)(a),c=o.get(i);void 0!==c&&_(t,c,r)}let o=t.rsc;b(o)&&(null===r?o.resolve(null):o.reject(r));let a=t.head;b(a)&&a.resolve(null)}let y=Symbol();function b(e){return e&&e.tag===y}function v(){let e,t,r=new Promise((r,n)=>{e=r,t=n});return r.status="pending",r.resolve=t=>{"pending"===r.status&&(r.status="fulfilled",r.value=t,e(t))},r.reject=e=>{"pending"===r.status&&(r.status="rejected",r.reason=e,t(e))},r.tag=y,r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},25112:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{addSearchParamsToPageSegments:function(){return f},handleAliasedPrefetchEntry:function(){return s}});let n=r(72826),u=r(78383),l=r(96701),o=r(60092),a=r(11644),i=r(4741),c=r(29728);function s(e,t,r,s,d){let p,h=t.tree,_=t.cache,y=(0,o.createHrefFromUrl)(s);if("string"==typeof r)return!1;for(let t of r){if(!function e(t){if(!t)return!1;let r=t[2];if(t[3])return!0;for(let t in r)if(e(r[t]))return!0;return!1}(t.seedData))continue;let r=t.tree;r=f(r,Object.fromEntries(s.searchParams));let{seedData:o,isRootRender:c,pathToSegment:d}=t,b=["",...d];r=f(r,Object.fromEntries(s.searchParams));let v=(0,l.applyRouterStatePatchToTree)(b,h,r,y),g=(0,u.createEmptyCacheNode)();if(c&&o){let t=o[1];g.loading=o[3],g.rsc=t,function e(t,r,u,l,o){if(0!==Object.keys(l[1]).length)for(let i in l[1]){let c,s=l[1][i],f=s[0],d=(0,a.createRouterCacheKey)(f),p=null!==o&&void 0!==o[2][i]?o[2][i]:null;if(null!==p){let e=p[1],r=p[3];c={lazyData:null,rsc:f.includes(n.PAGE_SEGMENT_KEY)?null:e,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:r,navigatedAt:t}}else c={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1};let h=r.parallelRoutes.get(i);h?h.set(d,c):r.parallelRoutes.set(i,new Map([[d,c]])),e(t,c,u,s,p)}}(e,g,_,r,o)}else g.rsc=_.rsc,g.prefetchRsc=_.prefetchRsc,g.loading=_.loading,g.parallelRoutes=new Map(_.parallelRoutes),(0,i.fillCacheWithNewSubTreeDataButOnlyLoading)(e,g,_,t);v&&(h=v,_=g,p=!0)}return!!p&&(d.patchedTree=h,d.cache=_,d.canonicalUrl=y,d.hashFragment=s.hash,(0,c.handleMutable)(t,d))}function f(e,t){let[r,u,...l]=e;if(r.includes(n.PAGE_SEGMENT_KEY))return[(0,n.addSearchParamsIfPageSegment)(r,t),u,...l];let o={};for(let[e,r]of Object.entries(u))o[e]=f(r,t);return[r,o,...l]}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},25179:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{normalizeAppPath:function(){return l},normalizeRscURL:function(){return o}});let n=r(2058),u=r(72826);function l(e){return(0,n.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,u.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:e+"/"+t,""))}function o(e){return e.replace(/\.rsc($|\?)/,"$1")}},25524:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"AsyncMetadataOutlet",{enumerable:!0,get:function(){return o}});let n=r(28064),u=r(74188);function l(e){let{promise:t}=e,{error:r,digest:n}=(0,u.use)(t);if(r)throw n&&(r.digest=n),r;return null}function o(e){let{promise:t}=e;return(0,n.jsx)(u.Suspense,{fallback:null,children:(0,n.jsx)(l,{promise:t})})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},25569:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"refreshReducer",{enumerable:!0,get:function(){return h}});let n=r(60459),u=r(60092),l=r(96701),o=r(20513),a=r(95323),i=r(29728),c=r(87695),s=r(78383),f=r(87290),d=r(95837),p=r(27355);function h(e,t){let{origin:r}=t,h={},_=e.canonicalUrl,y=e.tree;h.preserveCustomHistoryState=!1;let b=(0,s.createEmptyCacheNode)(),v=(0,d.hasInterceptionRouteInCurrentTree)(e.tree);b.lazyData=(0,n.fetchServerResponse)(new URL(_,r),{flightRouterState:[y[0],y[1],y[2],"refetch"],nextUrl:v?e.nextUrl:null});let g=Date.now();return b.lazyData.then(async r=>{let{flightData:n,canonicalUrl:s}=r;if("string"==typeof n)return(0,a.handleExternalUrl)(e,h,n,e.pushRef.pendingPush);for(let r of(b.lazyData=null,n)){let{tree:n,seedData:i,head:d,isRootRender:m}=r;if(!m)return e;let R=(0,l.applyRouterStatePatchToTree)([""],y,n,e.canonicalUrl);if(null===R)return(0,f.handleSegmentMismatch)(e,t,n);if((0,o.isNavigatingToNewRootLayout)(y,R))return(0,a.handleExternalUrl)(e,h,_,e.pushRef.pendingPush);let O=s?(0,u.createHrefFromUrl)(s):void 0;if(s&&(h.canonicalUrl=O),null!==i){let e=i[1],t=i[3];b.rsc=e,b.prefetchRsc=null,b.loading=t,(0,c.fillLazyItemsTillLeafWithHead)(g,b,void 0,n,i,d,void 0),h.prefetchCache=new Map}await (0,p.refreshInactiveParallelSegments)({navigatedAt:g,state:e,updatedTree:R,updatedCache:b,includeNextUrl:v,canonicalUrl:h.canonicalUrl||e.canonicalUrl}),h.cache=b,h.patchedTree=R,y=R}return(0,i.handleMutable)(e,h)},()=>e)}r(86442),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},27215:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"invalidateCacheByRouterState",{enumerable:!0,get:function(){return u}});let n=r(11644);function u(e,t,r){for(let u in r[1]){let l=r[1][u][0],o=(0,n.createRouterCacheKey)(l),a=t.parallelRoutes.get(u);if(a){let t=new Map(a);t.delete(o),e.parallelRoutes.set(u,t)}}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},27355:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{addRefreshMarkerToActiveParallelSegments:function(){return function e(t,r){let[n,u,,o]=t;for(let a in n.includes(l.PAGE_SEGMENT_KEY)&&"refresh"!==o&&(t[2]=r,t[3]="refresh"),u)e(u[a],r)}},refreshInactiveParallelSegments:function(){return o}});let n=r(1455),u=r(60459),l=r(72826);async function o(e){let t=new Set;await a({...e,rootTree:e.updatedTree,fetchedSegments:t})}async function a(e){let{navigatedAt:t,state:r,updatedTree:l,updatedCache:o,includeNextUrl:i,fetchedSegments:c,rootTree:s=l,canonicalUrl:f}=e,[,d,p,h]=l,_=[];if(p&&p!==f&&"refresh"===h&&!c.has(p)){c.add(p);let e=(0,u.fetchServerResponse)(new URL(p,location.origin),{flightRouterState:[s[0],s[1],s[2],"refetch"],nextUrl:i?r.nextUrl:null}).then(e=>{let{flightData:r}=e;if("string"!=typeof r)for(let e of r)(0,n.applyFlightData)(t,o,o,e)});_.push(e)}for(let e in d){let n=a({navigatedAt:t,state:r,updatedTree:d[e],updatedCache:o,includeNextUrl:i,fetchedSegments:c,rootTree:s,canonicalUrl:f});_.push(n)}await Promise.all(_)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},27836:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getRedirectError:function(){return o},getRedirectStatusCodeFromError:function(){return f},getRedirectTypeFromError:function(){return s},getURLFromRedirectError:function(){return c},permanentRedirect:function(){return i},redirect:function(){return a}});let n=r(74817),u=r(87995),l=void 0;function o(e,t,r){void 0===r&&(r=n.RedirectStatusCode.TemporaryRedirect);let l=Object.defineProperty(Error(u.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return l.digest=u.REDIRECT_ERROR_CODE+";"+t+";"+e+";"+r+";",l}function a(e,t){var r;throw null!=t||(t=(null==l||null==(r=l.getStore())?void 0:r.isAction)?u.RedirectType.push:u.RedirectType.replace),o(e,t,n.RedirectStatusCode.TemporaryRedirect)}function i(e,t){throw void 0===t&&(t=u.RedirectType.replace),o(e,t,n.RedirectStatusCode.PermanentRedirect)}function c(e){return(0,u.isRedirectError)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function s(e){if(!(0,u.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return e.digest.split(";",2)[1]}function f(e){if(!(0,u.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},27842:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return u},getProperError:function(){return l}});let n=r(10052);function u(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}function l(e){return u(e)?e:Object.defineProperty(Error((0,n.isPlainObject)(e)?function(e){let t=new WeakSet;return JSON.stringify(e,(e,r)=>{if("object"==typeof r&&null!==r){if(t.has(r))return"[Circular]";t.add(r)}return r})}(e):e+""),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},28064:(e,t,r)=>{"use strict";e.exports=r(38272)},28721:()=>{"trimStart"in String.prototype||(String.prototype.trimStart=String.prototype.trimLeft),"trimEnd"in String.prototype||(String.prototype.trimEnd=String.prototype.trimRight),"description"in Symbol.prototype||Object.defineProperty(Symbol.prototype,"description",{configurable:!0,get:function(){var e=/\((.*)\)/.exec(this.toString());return e?e[1]:void 0}}),Array.prototype.flat||(Array.prototype.flat=function(e,t){return t=this.concat.apply([],this),e>1&&t.some(Array.isArray)?t.flat(e-1):t},Array.prototype.flatMap=function(e,t){return this.map(e,t).flat()}),Promise.prototype.finally||(Promise.prototype.finally=function(e){if("function"!=typeof e)return this.then(e,e);var t=this.constructor||Promise;return this.then(function(r){return t.resolve(e()).then(function(){return r})},function(r){return t.resolve(e()).then(function(){throw r})})}),Object.fromEntries||(Object.fromEntries=function(e){return Array.from(e).reduce(function(e,t){return e[t[0]]=t[1],e},{})}),Array.prototype.at||(Array.prototype.at=function(e){var t=Math.trunc(e)||0;if(t<0&&(t+=this.length),!(t<0||t>=this.length))return this[t]}),Object.hasOwn||(Object.hasOwn=function(e,t){if(null==e)throw TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(e),t)}),"canParse"in URL||(URL.canParse=function(e,t){try{return new URL(e,t),!0}catch(e){return!1}})},29728:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"handleMutable",{enumerable:!0,get:function(){return l}});let n=r(36861);function u(e){return void 0!==e}function l(e,t){var r,l;let o=null==(r=t.shouldScroll)||r,a=e.nextUrl;if(u(t.patchedTree)){let r=(0,n.computeChangedPath)(e.tree,t.patchedTree);r?a=r:a||(a=e.canonicalUrl)}return{canonicalUrl:u(t.canonicalUrl)?t.canonicalUrl===e.canonicalUrl?e.canonicalUrl:t.canonicalUrl:e.canonicalUrl,pushRef:{pendingPush:u(t.pendingPush)?t.pendingPush:e.pushRef.pendingPush,mpaNavigation:u(t.mpaNavigation)?t.mpaNavigation:e.pushRef.mpaNavigation,preserveCustomHistoryState:u(t.preserveCustomHistoryState)?t.preserveCustomHistoryState:e.pushRef.preserveCustomHistoryState},focusAndScrollRef:{apply:!!o&&(!!u(null==t?void 0:t.scrollableSegments)||e.focusAndScrollRef.apply),onlyHashChange:t.onlyHashChange||!1,hashFragment:o?t.hashFragment&&""!==t.hashFragment?decodeURIComponent(t.hashFragment.slice(1)):e.focusAndScrollRef.hashFragment:null,segmentPaths:o?null!=(l=null==t?void 0:t.scrollableSegments)?l:e.focusAndScrollRef.segmentPaths:[]},cache:t.cache?t.cache:e.cache,prefetchCache:t.prefetchCache?t.prefetchCache:e.prefetchCache,tree:u(t.patchedTree)?t.patchedTree:e.tree,nextUrl:a}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},33813:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{RedirectBoundary:function(){return f},RedirectErrorBoundary:function(){return s}});let n=r(44253),u=r(28064),l=n._(r(74188)),o=r(44578),a=r(27836),i=r(87995);function c(e){let{redirect:t,reset:r,redirectType:n}=e,u=(0,o.useRouter)();return(0,l.useEffect)(()=>{l.default.startTransition(()=>{n===i.RedirectType.push?u.push(t,{}):u.replace(t,{}),r()})},[t,n,r,u]),null}class s extends l.default.Component{static getDerivedStateFromError(e){if((0,i.isRedirectError)(e))return{redirect:(0,a.getURLFromRedirectError)(e),redirectType:(0,a.getRedirectTypeFromError)(e)};throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,u.jsx)(c,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}constructor(e){super(e),this.state={redirect:null,redirectType:null}}}function f(e){let{children:t}=e,r=(0,o.useRouter)();return(0,u.jsx)(s,{router:r,children:t})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},34557:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return l}});let n=r(62718),u=r(84750),l=e=>{if(!e.startsWith("/"))return e;let{pathname:t,query:r,hash:l}=(0,u.parsePath)(e);return/\.[^/]+\/?$/.test(t)?""+(0,n.removeTrailingSlash)(t)+r+l:t.endsWith("/")?""+t+r+l:t+"/"+r+l};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},34834:(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unauthorized",{enumerable:!0,get:function(){return n}}),r(70149).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},35425:(e,t,r)=>{"use strict";r.r(t),r.d(t,{_:()=>u});var n=0;function u(e){return"__private_"+n+++"_"+e}},36319:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),r(28721),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},36652:(e,t)=>{"use strict";function r(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"encodeURIPath",{enumerable:!0,get:function(){return r}})},36861:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{computeChangedPath:function(){return c},extractPathFromFlightRouterState:function(){return i},getSelectedParams:function(){return function e(t,r){for(let n of(void 0===r&&(r={}),Object.values(t[1]))){let t=n[0],l=Array.isArray(t),o=l?t[1]:t;!o||o.startsWith(u.PAGE_SEGMENT_KEY)||(l&&("c"===t[2]||"oc"===t[2])?r[t[0]]=t[1].split("/"):l&&(r[t[0]]=t[1]),r=e(n,r))}return r}}});let n=r(22688),u=r(72826),l=r(5914),o=e=>"string"==typeof e?"children"===e?"":e:e[1];function a(e){return e.reduce((e,t)=>{let r;return""===(t="/"===(r=t)[0]?r.slice(1):r)||(0,u.isGroupSegment)(t)?e:e+"/"+t},"")||"/"}function i(e){var t;let r=Array.isArray(e[0])?e[0][1]:e[0];if(r===u.DEFAULT_SEGMENT_KEY||n.INTERCEPTION_ROUTE_MARKERS.some(e=>r.startsWith(e)))return;if(r.startsWith(u.PAGE_SEGMENT_KEY))return"";let l=[o(r)],c=null!=(t=e[1])?t:{},s=c.children?i(c.children):void 0;if(void 0!==s)l.push(s);else for(let[e,t]of Object.entries(c)){if("children"===e)continue;let r=i(t);void 0!==r&&l.push(r)}return a(l)}function c(e,t){let r=function e(t,r){let[u,a]=t,[c,s]=r,f=o(u),d=o(c);if(n.INTERCEPTION_ROUTE_MARKERS.some(e=>f.startsWith(e)||d.startsWith(e)))return"";if(!(0,l.matchSegment)(u,c)){var p;return null!=(p=i(r))?p:""}for(let t in a)if(s[t]){let r=e(a[t],s[t]);if(null!==r)return o(c)+"/"+r}return null}(e,t);return null==r||"/"===r?r:a(r.split("/"))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},37607:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{prefetchQueue:function(){return l},prefetchReducer:function(){return o}});let n=r(90035),u=r(17893),l=new n.PromiseQueue(5),o=function(e,t){(0,u.prunePrefetchCache)(e.prefetchCache);let{url:r}=t;return(0,u.getOrCreatePrefetchCacheEntry)({url:r,nextUrl:e.nextUrl,prefetchCache:e.prefetchCache,kind:t.kind,tree:e.tree,allowAliasing:!0}),e};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},38272:(e,t)=>{"use strict";var r=Symbol.for("react.transitional.element");function n(e,t,n){var u=null;if(void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),"key"in t)for(var l in n={},t)"key"!==l&&(n[l]=t[l]);else n=t;return{$$typeof:r,type:e,key:u,ref:void 0!==(t=n.ref)?t:null,props:n}}t.Fragment=Symbol.for("react.fragment"),t.jsx=n,t.jsxs=n},38289:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"addPathPrefix",{enumerable:!0,get:function(){return u}});let n=r(84750);function u(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:u,hash:l}=(0,n.parsePath)(e);return""+t+r+u+l}},38649:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeBasePath",{enumerable:!0,get:function(){return u}}),r(5523);let n="/opencut";function u(e){return 0===n.length||(e=e.slice(n.length)).startsWith("/")||(e="/"+e),e}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},38667:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"findSourceMapURL",{enumerable:!0,get:function(){return r}});let r=void 0;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},40034:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{dispatchAppRouterAction:function(){return o},useActionQueue:function(){return a}});let n=r(44253)._(r(74188)),u=r(48675),l=null;function o(e){if(null===l)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});l(e)}function a(e){let[t,r]=n.default.useState(e.state);return l=t=>e.dispatch(t,r),(0,u.isThenable)(t)?(0,n.use)(t):t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},40160:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"clearCacheNodeDataForSegmentPath",{enumerable:!0,get:function(){return function e(t,r,l){let o=l.length<=2,[a,i]=l,c=(0,u.createRouterCacheKey)(i),s=r.parallelRoutes.get(a),f=t.parallelRoutes.get(a);f&&f!==s||(f=new Map(s),t.parallelRoutes.set(a,f));let d=null==s?void 0:s.get(c),p=f.get(c);if(o){p&&p.lazyData&&p!==d||f.set(c,{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1});return}if(!p||!d){p||f.set(c,{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1});return}return p===d&&(p={lazyData:p.lazyData,rsc:p.rsc,prefetchRsc:p.prefetchRsc,head:p.head,prefetchHead:p.prefetchHead,parallelRoutes:new Map(p.parallelRoutes),loading:p.loading},f.set(c,p)),e(p,d,(0,n.getNextFlightSegmentPath)(l))}}});let n=r(77328),u=r(11644);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},41761:(e,t)=>{"use strict";function r(e){let t=5381;for(let r=0;r<e.length;r++)t=(t<<5)+t+e.charCodeAt(r)|0;return t>>>0}function n(e){return r(e).toString(36).slice(0,5)}Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{djb2Hash:function(){return r},hexHash:function(){return n}})},42091:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{HTML_LIMITED_BOT_UA_RE:function(){return n.HTML_LIMITED_BOT_UA_RE},HTML_LIMITED_BOT_UA_RE_STRING:function(){return l},getBotType:function(){return i},isBot:function(){return a}});let n=r(58883),u=/google/i,l=n.HTML_LIMITED_BOT_UA_RE.source;function o(e){return n.HTML_LIMITED_BOT_UA_RE.test(e)}function a(e){return u.test(e)||o(e)}function i(e){return u.test(e)?"dom":o(e)?"html":void 0}},42679:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{BailoutToCSRError:function(){return n},isBailoutToCSRError:function(){return u}});let r="BAILOUT_TO_CLIENT_SIDE_RENDERING";class n extends Error{constructor(e){super("Bail out to client-side rendering: "+e),this.reason=e,this.digest=r}}function u(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===r}},44211:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ClientSegmentRoot",{enumerable:!0,get:function(){return u}});let n=r(28064);function u(e){let{Component:t,slots:u,params:l,promise:o}=e;{let{createRenderParamsFromClient:e}=r(49221),o=e(l);return(0,n.jsx)(t,{...u,params:o})}}r(75884),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},44253:(e,t,r)=>{"use strict";function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}function u(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var u={__proto__:null},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var a=l?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(u,o,a):u[o]=e[o]}return u.default=e,r&&r.set(e,u),u}r.r(t),r.d(t,{_:()=>u})},44578:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ReadonlyURLSearchParams:function(){return i.ReadonlyURLSearchParams},RedirectType:function(){return i.RedirectType},ServerInsertedHTMLContext:function(){return c.ServerInsertedHTMLContext},forbidden:function(){return i.forbidden},notFound:function(){return i.notFound},permanentRedirect:function(){return i.permanentRedirect},redirect:function(){return i.redirect},unauthorized:function(){return i.unauthorized},unstable_rethrow:function(){return i.unstable_rethrow},useParams:function(){return h},usePathname:function(){return d},useRouter:function(){return p},useSearchParams:function(){return f},useSelectedLayoutSegment:function(){return y},useSelectedLayoutSegments:function(){return _},useServerInsertedHTML:function(){return c.useServerInsertedHTML}});let n=r(74188),u=r(81986),l=r(46991),o=r(23447),a=r(72826),i=r(87549),c=r(59965),s=void 0;function f(){let e=(0,n.useContext)(l.SearchParamsContext);return(0,n.useMemo)(()=>e?new i.ReadonlyURLSearchParams(e):null,[e])}function d(){return null==s||s("usePathname()"),(0,n.useContext)(l.PathnameContext)}function p(){let e=(0,n.useContext)(u.AppRouterContext);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return e}function h(){return null==s||s("useParams()"),(0,n.useContext)(l.PathParamsContext)}function _(e){void 0===e&&(e="children"),null==s||s("useSelectedLayoutSegments()");let t=(0,n.useContext)(u.LayoutRouterContext);return t?function e(t,r,n,u){let l;if(void 0===n&&(n=!0),void 0===u&&(u=[]),n)l=t[1][r];else{var i;let e=t[1];l=null!=(i=e.children)?i:Object.values(e)[0]}if(!l)return u;let c=l[0],s=(0,o.getSegmentValue)(c);return!s||s.startsWith(a.PAGE_SEGMENT_KEY)?u:(u.push(s),e(l,r,!1,u))}(t.parentTree,e):null}function y(e){void 0===e&&(e="children"),null==s||s("useSelectedLayoutSegment()");let t=_(e);if(!t||0===t.length)return null;let r="children"===e?t[0]:t[t.length-1];return r===a.DEFAULT_SEGMENT_KEY?null:r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},45484:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"IconMark",{enumerable:!0,get:function(){return n}}),r(28064);let n=()=>null},46106:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HandleISRError",{enumerable:!0,get:function(){return n}});let r=void 0;function n(e){let{error:t}=e;if(r){let e=r.getStore();if((null==e?void 0:e.isRevalidate)||(null==e?void 0:e.isStaticGeneration))throw t}return null}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},46991:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{PathParamsContext:function(){return o},PathnameContext:function(){return l},SearchParamsContext:function(){return u}});let n=r(74188),u=(0,n.createContext)(null),l=(0,n.createContext)(null),o=(0,n.createContext)(null)},48675:(e,t)=>{"use strict";function r(e){return null!==e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isThenable",{enumerable:!0,get:function(){return r}})},48877:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"reducer",{enumerable:!0,get:function(){return f}});let n=r(92765),u=r(95323),l=r(53664),o=r(90696),a=r(25569),i=r(37607),c=r(61839),s=r(77506),f=function(e,t){switch(t.type){case n.ACTION_NAVIGATE:return(0,u.navigateReducer)(e,t);case n.ACTION_SERVER_PATCH:return(0,l.serverPatchReducer)(e,t);case n.ACTION_RESTORE:return(0,o.restoreReducer)(e,t);case n.ACTION_REFRESH:return(0,a.refreshReducer)(e,t);case n.ACTION_HMR_REFRESH:return(0,c.hmrRefreshReducer)(e,t);case n.ACTION_PREFETCH:return(0,i.prefetchReducer)(e,t);case n.ACTION_SERVER_ACTION:return(0,s.serverActionReducer)(e,t);default:throw Object.defineProperty(Error("Unknown action"),"__NEXT_ERROR_CODE",{value:"E295",enumerable:!1,configurable:!0})}};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},49221:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderParamsFromClient",{enumerable:!0,get:function(){return n}});let n=r(17540).createRenderParamsFromClient;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},49554:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"findHeadInCache",{enumerable:!0,get:function(){return l}});let n=r(72826),u=r(11644);function l(e,t){return function e(t,r,l){if(0===Object.keys(r).length)return[t,l];let o=Object.keys(r).filter(e=>"children"!==e);for(let a of("children"in r&&o.unshift("children"),o)){let[o,i]=r[a];if(o===n.DEFAULT_SEGMENT_KEY)continue;let c=t.parallelRoutes.get(a);if(!c)continue;let s=(0,u.createRouterCacheKey)(o),f=c.get(s);if(!f)continue;let d=e(f,i,l+"/"+s);if(d)return d}return null}(e,t,"")}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},49747:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ErrorBoundary:function(){return s},ErrorBoundaryHandler:function(){return c}});let n=r(4760),u=r(28064),l=n._(r(74188)),o=r(59340),a=r(11619);r(63711);let i=r(46106);class c extends l.default.Component{static getDerivedStateFromError(e){if((0,a.isNextRouterError)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){let{error:r}=t;return e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(i.HandleISRError,{error:this.state.error}),this.props.errorStyles,this.props.errorScripts,(0,u.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset})]}):this.props.children}constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.state={error:null,previousPathname:this.props.pathname}}}function s(e){let{errorComponent:t,errorStyles:r,errorScripts:n,children:l}=e,a=(0,o.useUntrackedPathname)();return t?(0,u.jsx)(c,{pathname:a,errorComponent:t,errorStyles:r,errorScripts:n,children:l}):(0,u.jsx)(u.Fragment,{children:l})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},50627:(e,t,r)=>{"use strict";function n(e,t){if(!Object.prototype.hasOwnProperty.call(e,t))throw TypeError("attempted to use private field on non-instance");return e}r.r(t),r.d(t,{_:()=>n})},51681:(e,t)=>{"use strict";function r(e){var t,r;t=self.__next_s,r=()=>{e()},t&&t.length?t.reduce((e,t)=>{let[r,n]=t;return e.then(()=>new Promise((e,t)=>{let u=document.createElement("script");if(n)for(let e in n)"children"!==e&&u.setAttribute(e,n[e]);r?(u.src=r,u.onload=()=>e(),u.onerror=t):n&&(u.innerHTML=n.children,setTimeout(e)),document.head.appendChild(u)}))},Promise.resolve()).catch(e=>{}).then(()=>{r()}):r()}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"appBootstrap",{enumerable:!0,get:function(){return r}}),window.next={version:"15.4.5",appDir:!0},("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},52578:(e,t,r)=>{"use strict";var n,u;e.exports=(null==(n=r.g.process)?void 0:n.env)&&"object"==typeof(null==(u=r.g.process)?void 0:u.env)?r.g.process:r(76635)},53664:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"serverPatchReducer",{enumerable:!0,get:function(){return s}});let n=r(60092),u=r(96701),l=r(20513),o=r(95323),a=r(1455),i=r(29728),c=r(78383);function s(e,t){let{serverResponse:{flightData:r,canonicalUrl:s},navigatedAt:f}=t,d={};if(d.preserveCustomHistoryState=!1,"string"==typeof r)return(0,o.handleExternalUrl)(e,d,r,e.pushRef.pendingPush);let p=e.tree,h=e.cache;for(let t of r){let{segmentPath:r,tree:i}=t,_=(0,u.applyRouterStatePatchToTree)(["",...r],p,i,e.canonicalUrl);if(null===_)return e;if((0,l.isNavigatingToNewRootLayout)(p,_))return(0,o.handleExternalUrl)(e,d,e.canonicalUrl,e.pushRef.pendingPush);let y=s?(0,n.createHrefFromUrl)(s):void 0;y&&(d.canonicalUrl=y);let b=(0,c.createEmptyCacheNode)();(0,a.applyFlightData)(f,h,b,t),d.patchedTree=_,d.cache=b,h=b,p=_}return(0,i.handleMutable)(e,d)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},54876:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{MetadataBoundary:function(){return l},OutletBoundary:function(){return a},ViewportBoundary:function(){return o}});let n=r(4772),u={[n.METADATA_BOUNDARY_NAME]:function(e){let{children:t}=e;return t},[n.VIEWPORT_BOUNDARY_NAME]:function(e){let{children:t}=e;return t},[n.OUTLET_BOUNDARY_NAME]:function(e){let{children:t}=e;return t}},l=u[n.METADATA_BOUNDARY_NAME.slice(0)],o=u[n.VIEWPORT_BOUNDARY_NAME.slice(0)],a=u[n.OUTLET_BOUNDARY_NAME.slice(0)];("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},55872:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"notFound",{enumerable:!0,get:function(){return u}});let n=""+r(70149).HTTP_ERROR_FALLBACK_ERROR_CODE+";404";function u(){let e=Object.defineProperty(Error(n),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw e.digest=n,e}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},56019:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{isRecoverableError:function(){return i},onRecoverableError:function(){return c}});let n=r(4760),u=r(42679),l=n._(r(27842)),o=r(3009),a=new WeakSet;function i(e){return a.has(e)}let c=(e,t)=>{let r=(0,l.default)(e)&&"cause"in e?e.cause:e;(0,u.isBailoutToCSRError)(r)||(0,o.reportGlobalError)(r)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},56710:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"assignLocation",{enumerable:!0,get:function(){return u}});let n=r(63528);function u(e,t){if(e.startsWith(".")){let r=t.origin+t.pathname;return new URL((r.endsWith("/")?r:r+"/")+e)}return new URL((0,n.addBasePath)(e),t.href)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},58883:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTML_LIMITED_BOT_UA_RE",{enumerable:!0,get:function(){return r}});let r=/Mediapartners-Google|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti/i},59340:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useUntrackedPathname",{enumerable:!0,get:function(){return l}});let n=r(74188),u=r(46991);function l(){return(0,n.useContext)(u.PathnameContext)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},59965:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ServerInsertedHTMLContext:function(){return u},useServerInsertedHTML:function(){return l}});let n=r(44253)._(r(74188)),u=n.default.createContext(null);function l(e){let t=(0,n.useContext)(u);t&&t(e)}},60092:(e,t)=>{"use strict";function r(e,t){return void 0===t&&(t=!0),e.pathname+e.search+(t?e.hash:"")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createHrefFromUrl",{enumerable:!0,get:function(){return r}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},60265:(e,t,r)=>{"use strict";var n=r(82749),u={stream:!0},l=new Map;function o(e){var t=r(e);return"function"!=typeof t.then||"fulfilled"===t.status?null:(t.then(function(e){t.status="fulfilled",t.value=e},function(e){t.status="rejected",t.reason=e}),t)}function a(){}function i(e){for(var t=e[1],n=[],u=0;u<t.length;){var i=t[u++],c=t[u++],f=l.get(i);void 0===f?(s.set(i,c),c=r.e(i),n.push(c),f=l.set.bind(l,i,null),c.then(f,a),l.set(i,c)):null!==f&&n.push(f)}return 4===e.length?0===n.length?o(e[0]):Promise.all(n).then(function(){return o(e[0])}):0<n.length?Promise.all(n):null}function c(e){var t=r(e[0]);if(4===e.length&&"function"==typeof t.then)if("fulfilled"===t.status)t=t.value;else throw t.reason;return"*"===e[2]?t:""===e[2]?t.__esModule?t.default:t:t[e[2]]}var s=new Map,f=r.u;r.u=function(e){var t=s.get(e);return void 0!==t?t:f(e)};var d=n.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,p=Symbol.for("react.transitional.element"),h=Symbol.for("react.lazy"),_=Symbol.iterator,y=Symbol.asyncIterator,b=Array.isArray,v=Object.getPrototypeOf,g=Object.prototype,m=new WeakMap;function R(e,t,r){m.has(e)||m.set(e,{id:t,originalBind:e.bind,bound:r})}function O(e,t,r){this.status=e,this.value=t,this.reason=r}function E(e){switch(e.status){case"resolved_model":U(e);break;case"resolved_module":D(e)}switch(e.status){case"fulfilled":return e.value;case"pending":case"blocked":case"halted":throw e;default:throw e.reason}}function P(e,t){for(var r=0;r<e.length;r++){var n=e[r];"function"==typeof n?n(t):H(n,t)}}function j(e,t){for(var r=0;r<e.length;r++){var n=e[r];"function"==typeof n?n(t):F(n,t)}}function T(e,t){var r=t.handler.chunk;if(null===r)return null;if(r===e)return t.handler;if(null!==(t=r.value))for(r=0;r<t.length;r++){var n=t[r];if("function"!=typeof n&&null!==(n=T(e,n)))return n}return null}function S(e,t,r){switch(e.status){case"fulfilled":P(t,e.value);break;case"blocked":for(var n=0;n<t.length;n++){var u=t[n];if("function"!=typeof u){var l=T(e,u);null!==l&&(H(u,l.value),t.splice(n,1),n--,null!==r&&-1!==(u=r.indexOf(u))&&r.splice(u,1))}}case"pending":if(e.value)for(n=0;n<t.length;n++)e.value.push(t[n]);else e.value=t;if(e.reason){if(r)for(t=0;t<r.length;t++)e.reason.push(r[t])}else e.reason=r;break;case"rejected":r&&j(r,e.reason)}}function M(e,t,r){"pending"!==t.status&&"blocked"!==t.status?t.reason.error(r):(e=t.reason,t.status="rejected",t.reason=r,null!==e&&j(e,r))}function w(e,t,r){return new O("resolved_model",(r?'{"done":true,"value":':'{"done":false,"value":')+t+"}",e)}function x(e,t,r,n){C(e,t,(n?'{"done":true,"value":':'{"done":false,"value":')+r+"}")}function C(e,t,r){if("pending"!==t.status)t.reason.enqueueModel(r);else{var n=t.value,u=t.reason;t.status="resolved_model",t.value=r,t.reason=e,null!==n&&(U(t),S(t,n,u))}}function A(e,t,r){if("pending"===t.status||"blocked"===t.status){e=t.value;var n=t.reason;t.status="resolved_module",t.value=r,null!==e&&(D(t),S(t,e,n))}}O.prototype=Object.create(Promise.prototype),O.prototype.then=function(e,t){switch(this.status){case"resolved_model":U(this);break;case"resolved_module":D(this)}switch(this.status){case"fulfilled":"function"==typeof e&&e(this.value);break;case"pending":case"blocked":"function"==typeof e&&(null===this.value&&(this.value=[]),this.value.push(e)),"function"==typeof t&&(null===this.reason&&(this.reason=[]),this.reason.push(t));break;case"halted":break;default:"function"==typeof t&&t(this.reason)}};var N=null;function U(e){var t=N;N=null;var r=e.value,n=e.reason;e.status="blocked",e.value=null,e.reason=null;try{var u=JSON.parse(r,n._fromJSON),l=e.value;if(null!==l&&(e.value=null,e.reason=null,P(l,u)),null!==N){if(N.errored)throw N.value;if(0<N.deps){N.value=u,N.chunk=e;return}}e.status="fulfilled",e.value=u}catch(t){e.status="rejected",e.reason=t}finally{N=t}}function D(e){try{var t=c(e.value);e.status="fulfilled",e.value=t}catch(t){e.status="rejected",e.reason=t}}function I(e,t){e._closed=!0,e._closedReason=t,e._chunks.forEach(function(r){"pending"===r.status&&M(e,r,t)})}function L(e){return{$$typeof:h,_payload:e,_init:E}}function k(e,t){var r=e._chunks,n=r.get(t);return n||(n=e._closed?new O("rejected",null,e._closedReason):new O("pending",null,null),r.set(t,n)),n}function H(e,t){for(var r=e.response,n=e.handler,u=e.parentObject,l=e.key,o=e.map,a=e.path,i=1;i<a.length;i++){for(;t.$$typeof===h;)if((t=t._payload)===n.chunk)t=n.value;else{switch(t.status){case"resolved_model":U(t);break;case"resolved_module":D(t)}switch(t.status){case"fulfilled":t=t.value;continue;case"blocked":var c=T(t,e);if(null!==c){t=c.value;continue}case"pending":a.splice(0,i-1),null===t.value?t.value=[e]:t.value.push(e),null===t.reason?t.reason=[e]:t.reason.push(e);return;case"halted":return;default:F(e,t.reason);return}}t=t[a[i]]}e=o(r,t,u,l),u[l]=e,""===l&&null===n.value&&(n.value=e),u[0]===p&&"object"==typeof n.value&&null!==n.value&&n.value.$$typeof===p&&(u=n.value,"3"===l)&&(u.props=e),n.deps--,0===n.deps&&null!==(l=n.chunk)&&"blocked"===l.status&&(u=l.value,l.status="fulfilled",l.value=n.value,null!==u&&P(u,n.value))}function F(e,t){var r=e.handler;e=e.response,r.errored||(r.errored=!0,r.value=t,null!==(r=r.chunk)&&"blocked"===r.status&&M(e,r,t))}function B(e,t,r,n,u,l){if(N){var o=N;o.deps++}else o=N={parent:null,chunk:null,value:null,deps:1,errored:!1};return t={response:n,handler:o,parentObject:t,key:r,map:u,path:l},null===e.value?e.value=[t]:e.value.push(t),null===e.reason?e.reason=[t]:e.reason.push(t),null}function K(e,t,r,n){if(!e._serverReferenceConfig)return function(e,t){function r(){var e=Array.prototype.slice.call(arguments);return u?"fulfilled"===u.status?t(n,u.value.concat(e)):Promise.resolve(u).then(function(r){return t(n,r.concat(e))}):t(n,e)}var n=e.id,u=e.bound;return R(r,n,u),r}(t,e._callServer);var u=function(e,t){var r="",n=e[t];if(n)r=n.name;else{var u=t.lastIndexOf("#");if(-1!==u&&(r=t.slice(u+1),n=e[t.slice(0,u)]),!n)throw Error('Could not find the module "'+t+'" in the React Server Manifest. This is probably a bug in the React Server Components bundler.')}return n.async?[n.id,n.chunks,r,1]:[n.id,n.chunks,r]}(e._serverReferenceConfig,t.id),l=i(u);if(l)t.bound&&(l=Promise.all([l,t.bound]));else{if(!t.bound)return R(l=c(u),t.id,t.bound),l;l=Promise.resolve(t.bound)}if(N){var o=N;o.deps++}else o=N={parent:null,chunk:null,value:null,deps:1,errored:!1};return l.then(function(){var e=c(u);if(t.bound){var l=t.bound.value.slice(0);l.unshift(null),e=e.bind.apply(e,l)}R(e,t.id,t.bound),r[n]=e,""===n&&null===o.value&&(o.value=e),r[0]===p&&"object"==typeof o.value&&null!==o.value&&o.value.$$typeof===p&&(l=o.value,"3"===n)&&(l.props=e),o.deps--,0===o.deps&&null!==(e=o.chunk)&&"blocked"===e.status&&(l=e.value,e.status="fulfilled",e.value=o.value,null!==l&&P(l,o.value))},function(t){if(!o.errored){o.errored=!0,o.value=t;var r=o.chunk;null!==r&&"blocked"===r.status&&M(e,r,t)}}),null}function $(e,t,r,n,u){var l=parseInt((t=t.split(":"))[0],16);switch((l=k(e,l)).status){case"resolved_model":U(l);break;case"resolved_module":D(l)}switch(l.status){case"fulfilled":var o=l.value;for(l=1;l<t.length;l++){for(;o.$$typeof===h;){switch((o=o._payload).status){case"resolved_model":U(o);break;case"resolved_module":D(o)}switch(o.status){case"fulfilled":o=o.value;break;case"blocked":case"pending":return B(o,r,n,e,u,t.slice(l-1));case"halted":return N?(e=N,e.deps++):N={parent:null,chunk:null,value:null,deps:1,errored:!1},null;default:return N?(N.errored=!0,N.value=o.reason):N={parent:null,chunk:null,value:o.reason,deps:0,errored:!0},null}}o=o[t[l]]}return u(e,o,r,n);case"pending":case"blocked":return B(l,r,n,e,u,t);case"halted":return N?(e=N,e.deps++):N={parent:null,chunk:null,value:null,deps:1,errored:!1},null;default:return N?(N.errored=!0,N.value=l.reason):N={parent:null,chunk:null,value:l.reason,deps:0,errored:!0},null}}function X(e,t){return new Map(t)}function z(e,t){return new Set(t)}function G(e,t){return new Blob(t.slice(1),{type:t[0]})}function W(e,t){e=new FormData;for(var r=0;r<t.length;r++)e.append(t[r][0],t[r][1]);return e}function V(e,t){return t[Symbol.iterator]()}function Y(e,t){return t}function q(){throw Error('Trying to call a function from "use server" but the callServer option was not implemented in your router runtime.')}function J(e,t,r,n,u,l,o){var a,i=new Map;this._bundlerConfig=e,this._serverReferenceConfig=t,this._moduleLoading=r,this._callServer=void 0!==n?n:q,this._encodeFormAction=u,this._nonce=l,this._chunks=i,this._stringDecoder=new TextDecoder,this._fromJSON=null,this._closed=!1,this._closedReason=null,this._tempRefs=o,this._fromJSON=(a=this,function(e,t){if("string"==typeof t){var r=a,n=this,u=e,l=t;if("$"===l[0]){if("$"===l)return null!==N&&"0"===u&&(N={parent:N,chunk:null,value:null,deps:0,errored:!1}),p;switch(l[1]){case"$":return l.slice(1);case"L":return L(r=k(r,n=parseInt(l.slice(2),16)));case"@":return k(r,n=parseInt(l.slice(2),16));case"S":return Symbol.for(l.slice(2));case"F":return $(r,l=l.slice(2),n,u,K);case"T":if(n="$"+l.slice(2),null==(r=r._tempRefs))throw Error("Missing a temporary reference set but the RSC response returned a temporary reference. Pass a temporaryReference option with the set that was used with the reply.");return r.get(n);case"Q":return $(r,l=l.slice(2),n,u,X);case"W":return $(r,l=l.slice(2),n,u,z);case"B":return $(r,l=l.slice(2),n,u,G);case"K":return $(r,l=l.slice(2),n,u,W);case"Z":return en();case"i":return $(r,l=l.slice(2),n,u,V);case"I":return 1/0;case"-":return"$-0"===l?-0:-1/0;case"N":return NaN;case"u":return;case"D":return new Date(Date.parse(l.slice(2)));case"n":return BigInt(l.slice(2));default:return $(r,l=l.slice(1),n,u,Y)}}return l}if("object"==typeof t&&null!==t){if(t[0]===p){if(e={$$typeof:p,type:t[1],key:t[2],ref:null,props:t[3]},null!==N){if(N=(t=N).parent,t.errored)e=L(e=new O("rejected",null,t.value));else if(0<t.deps){var o=new O("blocked",null,null);t.value=e,t.chunk=o,e=L(o)}}}else e=t;return e}return t})}function Q(e,t,r){var n=(e=e._chunks).get(t);n&&"pending"!==n.status?n.reason.enqueueValue(r):e.set(t,new O("fulfilled",r,null))}function Z(e,t,r,n){var u=e._chunks;(e=u.get(t))?"pending"===e.status&&(t=e.value,e.status="fulfilled",e.value=r,e.reason=n,null!==t&&P(t,e.value)):u.set(t,new O("fulfilled",r,n))}function ee(e,t,r){var n=null;r=new ReadableStream({type:r,start:function(e){n=e}});var u=null;Z(e,t,r,{enqueueValue:function(e){null===u?n.enqueue(e):u.then(function(){n.enqueue(e)})},enqueueModel:function(t){if(null===u){var r=new O("resolved_model",t,e);U(r),"fulfilled"===r.status?n.enqueue(r.value):(r.then(function(e){return n.enqueue(e)},function(e){return n.error(e)}),u=r)}else{r=u;var l=new O("pending",null,null);l.then(function(e){return n.enqueue(e)},function(e){return n.error(e)}),u=l,r.then(function(){u===l&&(u=null),C(e,l,t)})}},close:function(){if(null===u)n.close();else{var e=u;u=null,e.then(function(){return n.close()})}},error:function(e){if(null===u)n.error(e);else{var t=u;u=null,t.then(function(){return n.error(e)})}}})}function et(){return this}function er(e,t,r){var n=[],u=!1,l=0,o={};o[y]=function(){var e,t=0;return(e={next:e=function(e){if(void 0!==e)throw Error("Values cannot be passed to next() of AsyncIterables passed to Client Components.");if(t===n.length){if(u)return new O("fulfilled",{done:!0,value:void 0},null);n[t]=new O("pending",null,null)}return n[t++]}})[y]=et,e},Z(e,t,r?o[y]():o,{enqueueValue:function(e){if(l===n.length)n[l]=new O("fulfilled",{done:!1,value:e},null);else{var t=n[l],r=t.value,u=t.reason;t.status="fulfilled",t.value={done:!1,value:e},null!==r&&S(t,r,u)}l++},enqueueModel:function(t){l===n.length?n[l]=w(e,t,!1):x(e,n[l],t,!1),l++},close:function(t){for(u=!0,l===n.length?n[l]=w(e,t,!0):x(e,n[l],t,!0),l++;l<n.length;)x(e,n[l++],'"$undefined"',!0)},error:function(t){for(u=!0,l===n.length&&(n[l]=new O("pending",null,null));l<n.length;)M(e,n[l++],t)}})}function en(){var e=Error("An error occurred in the Server Components render. The specific message is omitted in production builds to avoid leaking sensitive details. A digest property is included on this error instance which may provide additional details about the nature of the error.");return e.stack="Error: "+e.message,e}function eu(e,t){for(var r=e.length,n=t.length,u=0;u<r;u++)n+=e[u].byteLength;n=new Uint8Array(n);for(var l=u=0;l<r;l++){var o=e[l];n.set(o,u),u+=o.byteLength}return n.set(t,u),n}function el(e,t,r,n,u,l){Q(e,t,u=new u((r=0===r.length&&0==n.byteOffset%l?n:eu(r,n)).buffer,r.byteOffset,r.byteLength/l))}function eo(e){return new J(null,null,null,e&&e.callServer?e.callServer:void 0,void 0,void 0,e&&e.temporaryReferences?e.temporaryReferences:void 0)}function ea(e,t,r){function n(t){I(e,t)}var l={_rowState:0,_rowID:0,_rowTag:0,_rowLength:0,_buffer:[]},o=t.getReader();o.read().then(function t(a){var c=a.value;if(a.done)r||I(e,Error("Connection closed."));else{var s=0,f=l._rowState;a=l._rowID;for(var p=l._rowTag,h=l._rowLength,_=l._buffer,y=c.length;s<y;){var b=-1;switch(f){case 0:58===(b=c[s++])?f=1:a=a<<4|(96<b?b-87:b-48);continue;case 1:84===(f=c[s])||65===f||79===f||111===f||85===f||83===f||115===f||76===f||108===f||71===f||103===f||77===f||109===f||86===f?(p=f,f=2,s++):64<f&&91>f||35===f||114===f||120===f?(p=f,f=3,s++):(p=0,f=3);continue;case 2:44===(b=c[s++])?f=4:h=h<<4|(96<b?b-87:b-48);continue;case 3:b=c.indexOf(10,s);break;case 4:(b=s+h)>c.length&&(b=-1)}var v=c.byteOffset+s;if(-1<b)(function(e,t,r,n,l){switch(r){case 65:Q(e,t,eu(n,l).buffer);return;case 79:el(e,t,n,l,Int8Array,1);return;case 111:Q(e,t,0===n.length?l:eu(n,l));return;case 85:el(e,t,n,l,Uint8ClampedArray,1);return;case 83:el(e,t,n,l,Int16Array,2);return;case 115:el(e,t,n,l,Uint16Array,2);return;case 76:el(e,t,n,l,Int32Array,4);return;case 108:el(e,t,n,l,Uint32Array,4);return;case 71:el(e,t,n,l,Float32Array,4);return;case 103:el(e,t,n,l,Float64Array,8);return;case 77:el(e,t,n,l,BigInt64Array,8);return;case 109:el(e,t,n,l,BigUint64Array,8);return;case 86:el(e,t,n,l,DataView,1);return}for(var o=e._stringDecoder,a="",c=0;c<n.length;c++)a+=o.decode(n[c],u);switch(n=a+=o.decode(l),r){case 73:var s=e,f=t,p=n,h=s._chunks,_=h.get(f);p=JSON.parse(p,s._fromJSON);var y=function(e,t){if(e){var r=e[t[0]];if(e=r&&r[t[2]])r=e.name;else{if(!(e=r&&r["*"]))throw Error('Could not find the module "'+t[0]+'" in the React Server Consumer Manifest. This is probably a bug in the React Server Components bundler.');r=t[2]}return 4===t.length?[e.id,e.chunks,r,1]:[e.id,e.chunks,r]}return t}(s._bundlerConfig,p);if(p=i(y)){if(_){var b=_;b.status="blocked"}else b=new O("blocked",null,null),h.set(f,b);p.then(function(){return A(s,b,y)},function(e){return M(s,b,e)})}else _?A(s,_,y):h.set(f,new O("resolved_module",y,null));break;case 72:switch(t=n[0],e=JSON.parse(n=n.slice(1),e._fromJSON),n=d.d,t){case"D":n.D(e);break;case"C":"string"==typeof e?n.C(e):n.C(e[0],e[1]);break;case"L":t=e[0],r=e[1],3===e.length?n.L(t,r,e[2]):n.L(t,r);break;case"m":"string"==typeof e?n.m(e):n.m(e[0],e[1]);break;case"X":"string"==typeof e?n.X(e):n.X(e[0],e[1]);break;case"S":"string"==typeof e?n.S(e):n.S(e[0],0===e[1]?void 0:e[1],3===e.length?e[2]:void 0);break;case"M":"string"==typeof e?n.M(e):n.M(e[0],e[1])}break;case 69:r=JSON.parse(n),(n=en()).digest=r.digest,(l=(r=e._chunks).get(t))?M(e,l,n):r.set(t,new O("rejected",null,n));break;case 84:(r=(e=e._chunks).get(t))&&"pending"!==r.status?r.reason.enqueueValue(n):e.set(t,new O("fulfilled",n,null));break;case 78:case 68:case 74:case 87:throw Error("Failed to read a RSC payload created by a development version of React on the server while using a production version on the client. Always use matching versions on the server and the client.");case 82:ee(e,t,void 0);break;case 114:ee(e,t,"bytes");break;case 88:er(e,t,!1);break;case 120:er(e,t,!0);break;case 67:(e=e._chunks.get(t))&&"fulfilled"===e.status&&e.reason.close(""===n?'"$undefined"':n);break;default:(l=(r=e._chunks).get(t))?C(e,l,n):r.set(t,new O("resolved_model",n,e))}})(e,a,p,_,h=new Uint8Array(c.buffer,v,b-s)),s=b,3===f&&s++,h=a=p=f=0,_.length=0;else{c=new Uint8Array(c.buffer,v,c.byteLength-s),_.push(c),h-=c.byteLength;break}}return l._rowState=f,l._rowID=a,l._rowTag=p,l._rowLength=h,o.read().then(t).catch(n)}}).catch(n)}t.createFromFetch=function(e,t){var r=eo(t);return e.then(function(e){ea(r,e.body,!1)},function(e){I(r,e)}),k(r,0)},t.createFromReadableStream=function(e,t){return ea(t=eo(t),e,!1),k(t,0)},t.createServerReference=function(e,t){function r(){var r=Array.prototype.slice.call(arguments);return t(e,r)}return R(r,e,null),r},t.createTemporaryReferenceSet=function(){return new Map},t.encodeReply=function(e,t){return new Promise(function(r,n){var u=function(e,t,r,n,u){function l(e,t){t=new Blob([new Uint8Array(t.buffer,t.byteOffset,t.byteLength)]);var r=i++;return null===s&&(s=new FormData),s.append(""+r,t),"$"+e+r.toString(16)}function o(e,R){if(null===R)return null;if("object"==typeof R){switch(R.$$typeof){case p:if(void 0!==r&&-1===e.indexOf(":")){var O,E,P,j,T,S=f.get(this);if(void 0!==S)return r.set(S+":"+e,R),"$T"}throw Error("React Element cannot be passed to Server Functions from the Client without a temporary reference set. Pass a TemporaryReferenceSet to the options.");case h:S=R._payload;var M=R._init;null===s&&(s=new FormData),c++;try{var w=M(S),x=i++,C=a(w,x);return s.append(""+x,C),"$"+x.toString(16)}catch(e){if("object"==typeof e&&null!==e&&"function"==typeof e.then){c++;var A=i++;return S=function(){try{var e=a(R,A),r=s;r.append(t+A,e),c--,0===c&&n(r)}catch(e){u(e)}},e.then(S,S),"$"+A.toString(16)}return u(e),null}finally{c--}}if("function"==typeof R.then){null===s&&(s=new FormData),c++;var N=i++;return R.then(function(e){try{var r=a(e,N);(e=s).append(t+N,r),c--,0===c&&n(e)}catch(e){u(e)}},u),"$@"+N.toString(16)}if(void 0!==(S=f.get(R)))if(d!==R)return S;else d=null;else -1===e.indexOf(":")&&void 0!==(S=f.get(this))&&(e=S+":"+e,f.set(R,e),void 0!==r&&r.set(e,R));if(b(R))return R;if(R instanceof FormData){null===s&&(s=new FormData);var U=s,D=t+(e=i++)+"_";return R.forEach(function(e,t){U.append(D+t,e)}),"$K"+e.toString(16)}if(R instanceof Map)return e=i++,S=a(Array.from(R),e),null===s&&(s=new FormData),s.append(t+e,S),"$Q"+e.toString(16);if(R instanceof Set)return e=i++,S=a(Array.from(R),e),null===s&&(s=new FormData),s.append(t+e,S),"$W"+e.toString(16);if(R instanceof ArrayBuffer)return e=new Blob([R]),S=i++,null===s&&(s=new FormData),s.append(t+S,e),"$A"+S.toString(16);if(R instanceof Int8Array)return l("O",R);if(R instanceof Uint8Array)return l("o",R);if(R instanceof Uint8ClampedArray)return l("U",R);if(R instanceof Int16Array)return l("S",R);if(R instanceof Uint16Array)return l("s",R);if(R instanceof Int32Array)return l("L",R);if(R instanceof Uint32Array)return l("l",R);if(R instanceof Float32Array)return l("G",R);if(R instanceof Float64Array)return l("g",R);if(R instanceof BigInt64Array)return l("M",R);if(R instanceof BigUint64Array)return l("m",R);if(R instanceof DataView)return l("V",R);if("function"==typeof Blob&&R instanceof Blob)return null===s&&(s=new FormData),e=i++,s.append(t+e,R),"$B"+e.toString(16);if(e=null===(O=R)||"object"!=typeof O?null:"function"==typeof(O=_&&O[_]||O["@@iterator"])?O:null)return(S=e.call(R))===R?(e=i++,S=a(Array.from(S),e),null===s&&(s=new FormData),s.append(t+e,S),"$i"+e.toString(16)):Array.from(S);if("function"==typeof ReadableStream&&R instanceof ReadableStream)return function(e){try{var r,l,a,f,d,p,h,_=e.getReader({mode:"byob"})}catch(f){return r=e.getReader(),null===s&&(s=new FormData),l=s,c++,a=i++,r.read().then(function e(i){if(i.done)l.append(t+a,"C"),0==--c&&n(l);else try{var s=JSON.stringify(i.value,o);l.append(t+a,s),r.read().then(e,u)}catch(e){u(e)}},u),"$R"+a.toString(16)}return f=_,null===s&&(s=new FormData),d=s,c++,p=i++,h=[],f.read(new Uint8Array(1024)).then(function e(r){r.done?(r=i++,d.append(t+r,new Blob(h)),d.append(t+p,'"$o'+r.toString(16)+'"'),d.append(t+p,"C"),0==--c&&n(d)):(h.push(r.value),f.read(new Uint8Array(1024)).then(e,u))},u),"$r"+p.toString(16)}(R);if("function"==typeof(e=R[y]))return E=R,P=e.call(R),null===s&&(s=new FormData),j=s,c++,T=i++,E=E===P,P.next().then(function e(r){if(r.done){if(void 0===r.value)j.append(t+T,"C");else try{var l=JSON.stringify(r.value,o);j.append(t+T,"C"+l)}catch(e){u(e);return}0==--c&&n(j)}else try{var a=JSON.stringify(r.value,o);j.append(t+T,a),P.next().then(e,u)}catch(e){u(e)}},u),"$"+(E?"x":"X")+T.toString(16);if((e=v(R))!==g&&(null===e||null!==v(e))){if(void 0===r)throw Error("Only plain objects, and a few built-ins, can be passed to Server Functions. Classes or null prototypes are not supported.");return"$T"}return R}if("string"==typeof R)return"Z"===R[R.length-1]&&this[e]instanceof Date?"$D"+R:e="$"===R[0]?"$"+R:R;if("boolean"==typeof R)return R;if("number"==typeof R)return Number.isFinite(R)?0===R&&-1/0==1/R?"$-0":R:1/0===R?"$Infinity":-1/0===R?"$-Infinity":"$NaN";if(void 0===R)return"$undefined";if("function"==typeof R){if(void 0!==(S=m.get(R)))return e=JSON.stringify({id:S.id,bound:S.bound},o),null===s&&(s=new FormData),S=i++,s.set(t+S,e),"$F"+S.toString(16);if(void 0!==r&&-1===e.indexOf(":")&&void 0!==(S=f.get(this)))return r.set(S+":"+e,R),"$T";throw Error("Client Functions cannot be passed directly to Server Functions. Only Functions passed from the Server can be passed back again.")}if("symbol"==typeof R){if(void 0!==r&&-1===e.indexOf(":")&&void 0!==(S=f.get(this)))return r.set(S+":"+e,R),"$T";throw Error("Symbols cannot be passed to a Server Function without a temporary reference set. Pass a TemporaryReferenceSet to the options.")}if("bigint"==typeof R)return"$n"+R.toString(10);throw Error("Type "+typeof R+" is not supported as an argument to a Server Function.")}function a(e,t){return"object"==typeof e&&null!==e&&(t="$"+t.toString(16),f.set(e,t),void 0!==r&&r.set(t,e)),d=e,JSON.stringify(e,o)}var i=1,c=0,s=null,f=new WeakMap,d=e,R=a(e,0);return null===s?n(R):(s.set(t+"0",R),0===c&&n(s)),function(){0<c&&(c=0,null===s?n(R):n(s))}}(e,"",t&&t.temporaryReferences?t.temporaryReferences:void 0,r,n);if(t&&t.signal){var l=t.signal;if(l.aborted)u(l.reason);else{var o=function(){u(l.reason),l.removeEventListener("abort",o)};l.addEventListener("abort",o)}}})},t.registerServerReference=function(e,t){return R(e,t,null),e}},60459:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{createFetch:function(){return y},createFromNextReadableStream:function(){return b},fetchServerResponse:function(){return _},urlToUrlWithoutFlightMarker:function(){return d}});let n=r(70262),u=r(23476),l=r(60803),o=r(38667),a=r(92765),i=r(77328),c=r(72031),s=r(7202),f=n.createFromReadableStream;function d(e){let t=new URL(e,location.origin);if(t.searchParams.delete(u.NEXT_RSC_UNION_QUERY),t.pathname.endsWith(".txt")){let{pathname:e}=t,r=e.endsWith("/index.txt")?10:4;t.pathname=e.slice(0,-r)}return t}function p(e){return{flightData:d(e).toString(),canonicalUrl:void 0,couldBeIntercepted:!1,prerendered:!1,postponed:!1,staleTime:-1}}let h=new AbortController;async function _(e,t){let{flightRouterState:r,nextUrl:n,prefetchKind:l}=t,o={[u.RSC_HEADER]:"1",[u.NEXT_ROUTER_STATE_TREE_HEADER]:(0,i.prepareFlightRouterStateForRequest)(r,t.isHmrRefresh)};l===a.PrefetchKind.AUTO&&(o[u.NEXT_ROUTER_PREFETCH_HEADER]="1"),n&&(o[u.NEXT_URL]=n);try{var s;let t=l?l===a.PrefetchKind.TEMPORARY?"high":"low":"auto";(e=new URL(e)).pathname.endsWith("/")?e.pathname+="index.txt":e.pathname+=".txt";let r=await y(e,o,t,h.signal),n=d(r.url),f=r.redirected?n:void 0,_=r.headers.get("content-type")||"",v=!!(null==(s=r.headers.get("vary"))?void 0:s.includes(u.NEXT_URL)),g=!!r.headers.get(u.NEXT_DID_POSTPONE_HEADER),m=r.headers.get(u.NEXT_ROUTER_STALE_TIME_HEADER),R=null!==m?1e3*parseInt(m,10):-1,O=_.startsWith(u.RSC_CONTENT_TYPE_HEADER);if(O||(O=_.startsWith("text/plain")),!O||!r.ok||!r.body)return e.hash&&(n.hash=e.hash),p(n.toString());let E=g?function(e){let t=e.getReader();return new ReadableStream({async pull(e){for(;;){let{done:r,value:n}=await t.read();if(!r){e.enqueue(n);continue}return}}})}(r.body):r.body,P=await b(E);if((0,c.getAppBuildId)()!==P.b)return p(r.url);return{flightData:(0,i.normalizeFlightData)(P.f),canonicalUrl:f,couldBeIntercepted:v,prerendered:P.S,postponed:g,staleTime:R}}catch(t){return!h.signal.aborted,{flightData:e.toString(),canonicalUrl:void 0,couldBeIntercepted:!1,prerendered:!1,postponed:!1,staleTime:-1}}}async function y(e,t,r,n){let l=new URL(e);(0,s.setCacheBustingSearchParam)(l,t);let o=await fetch(l,{credentials:"same-origin",headers:t,priority:r||void 0,signal:n}),a=o.redirected,i=new URL(o.url,l);return i.searchParams.delete(u.NEXT_RSC_UNION_QUERY),{url:i.href,redirected:a,ok:o.ok,headers:o.headers,body:o.body,status:o.status}}function b(e){return f(e,{callServer:l.callServer,findSourceMapURL:o.findSourceMapURL})}window.addEventListener("pagehide",()=>{h.abort()}),window.addEventListener("pageshow",()=>{h=new AbortController}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},60803:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"callServer",{enumerable:!0,get:function(){return o}});let n=r(74188),u=r(92765),l=r(40034);async function o(e,t){return new Promise((r,o)=>{(0,n.startTransition)(()=>{(0,l.dispatchAppRouterAction)({type:u.ACTION_SERVER_ACTION,actionId:e,actionArgs:t,resolve:r,reject:o})})})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},60834:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unstable_rethrow",{enumerable:!0,get:function(){return n}});let n=r(4796).unstable_rethrow;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},61839:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"hmrRefreshReducer",{enumerable:!0,get:function(){return n}}),r(60459),r(60092),r(96701),r(20513),r(95323),r(29728),r(1455),r(78383),r(87290),r(95837);let n=function(e,t){return e};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},62116:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"shouldHardNavigate",{enumerable:!0,get:function(){return function e(t,r){let[l,o]=r,[a,i]=t;return(0,u.matchSegment)(a,l)?!(t.length<=2)&&e((0,n.getNextFlightSegmentPath)(t),o[i]):!!Array.isArray(a)}}});let n=r(77328),u=r(5914);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},62718:(e,t)=>{"use strict";function r(e){return e.replace(/\/$/,"")||"/"}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeTrailingSlash",{enumerable:!0,get:function(){return r}})},63157:(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"forbidden",{enumerable:!0,get:function(){return n}}),r(70149).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},63528:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"addBasePath",{enumerable:!0,get:function(){return l}});let n=r(38289),u=r(34557);function l(e,t){return(0,u.normalizePathTrailingSlash)((0,n.addPathPrefix)(e,"/opencut"))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},63711:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{handleHardNavError:function(){return u},useNavFailureHandler:function(){return l}}),r(74188);let n=r(60092);function u(e){return!!e&&!!window.next.__pendingUrl&&(0,n.createHrefFromUrl)(new URL(window.location.href))!==(0,n.createHrefFromUrl)(window.next.__pendingUrl)&&(window.location.href=window.next.__pendingUrl.toString(),!0)}function l(){}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},64012:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{describeHasCheckingStringProperty:function(){return u},describeStringPropertyAccess:function(){return n},wellKnownProperties:function(){return l}});let r=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function n(e,t){return r.test(t)?"`"+e+"."+t+"`":"`"+e+"["+JSON.stringify(t)+"]`"}function u(e,t){let r=JSON.stringify(t);return"`Reflect.has("+e+", "+r+")`, `"+r+" in "+e+"`, or similar"}let l=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toString","valueOf","toLocaleString","then","catch","finally","status","displayName","_debugInfo","toJSON","$$typeof","__esModule"])},65840:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),r(85412);let n=r(51681),u=r(98973);(0,n.appBootstrap)(()=>{let{hydrate:e}=r(71599);r(78383),r(23116),e(u)}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},70149:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{HTTPAccessErrorStatus:function(){return r},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return u},getAccessFallbackErrorTypeByStatus:function(){return a},getAccessFallbackHTTPStatus:function(){return o},isHTTPAccessFallbackError:function(){return l}});let r={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},n=new Set(Object.values(r)),u="NEXT_HTTP_ERROR_FALLBACK";function l(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r]=e.digest.split(";");return t===u&&n.has(Number(r))}function o(e){return Number(e.digest.split(";")[1])}function a(e){switch(e){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},70262:(e,t,r)=>{"use strict";e.exports=r(60265)},71599:(e,t,r)=>{"use strict";let n,u;Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"hydrate",{enumerable:!0,get:function(){return D}});let l=r(4760),o=r(44253),a=r(28064);r(36319);let i=l._(r(14116)),c=o._(r(74188)),s=r(70262),f=r(97051),d=r(56019),p=r(82750),h=r(60803),_=r(38667),y=r(72817),b=l._(r(78383)),v=r(1370);r(81986);let g=r(72031),m=r(42091),R=s.createFromReadableStream,O=document,E=new TextEncoder,P=!1,j=!1,T=null;function S(e){if(0===e[0])n=[];else if(1===e[0]){if(!n)throw Object.defineProperty(Error("Unexpected server data: missing bootstrap script."),"__NEXT_ERROR_CODE",{value:"E18",enumerable:!1,configurable:!0});u?u.enqueue(E.encode(e[1])):n.push(e[1])}else if(2===e[0])T=e[1];else if(3===e[0]){if(!n)throw Object.defineProperty(Error("Unexpected server data: missing bootstrap script."),"__NEXT_ERROR_CODE",{value:"E18",enumerable:!1,configurable:!0});let r=atob(e[1]),l=new Uint8Array(r.length);for(var t=0;t<r.length;t++)l[t]=r.charCodeAt(t);u?u.enqueue(l):n.push(l)}}let M=function(){u&&!j&&(u.close(),j=!0,n=void 0),P=!0};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",M,!1):setTimeout(M);let w=self.__next_f=self.__next_f||[];w.forEach(S),w.push=S;let x=R(new ReadableStream({start(e){n&&(n.forEach(t=>{e.enqueue("string"==typeof t?E.encode(t):t)}),P&&!j)&&(null===e.desiredSize||e.desiredSize<0?e.error(Object.defineProperty(Error("The connection to the page was unexpectedly closed, possibly due to the stop button being clicked, loss of Wi-Fi, or an unstable internet connection."),"__NEXT_ERROR_CODE",{value:"E117",enumerable:!1,configurable:!0})):e.close(),j=!0,n=void 0),u=e}}),{callServer:h.callServer,findSourceMapURL:_.findSourceMapURL});function C(e){let{pendingActionQueue:t}=e,r=(0,c.use)(x),n=(0,c.use)(t);return(0,a.jsx)(b.default,{gracefullyDegrade:(0,m.isBot)(window.navigator.userAgent),actionQueue:n,globalErrorState:r.G,assetPrefix:r.p})}let A=c.default.StrictMode;function N(e){let{children:t}=e;return t}let U={onDefaultTransitionIndicator:function(){return()=>{}},onRecoverableError:d.onRecoverableError,onCaughtError:p.onCaughtError,onUncaughtError:p.onUncaughtError};function D(e){let t=new Promise((t,r)=>{x.then(r=>{(0,g.setAppBuildId)(r.b);let n=Date.now();t((0,y.createMutableActionQueue)((0,v.createInitialRouterState)({navigatedAt:n,initialFlightData:r.f,initialCanonicalUrlParts:r.c,initialParallelRoutes:new Map,location:window.location,couldBeIntercepted:r.i,postponed:r.s,prerendered:r.S}),e))},e=>r(e))}),r=(0,a.jsx)(A,{children:(0,a.jsx)(f.HeadManagerContext.Provider,{value:{appDir:!0},children:(0,a.jsx)(N,{children:(0,a.jsx)(C,{pendingActionQueue:t})})})});"__next_error__"===document.documentElement.id?i.default.createRoot(O,U).render(r):c.default.startTransition(()=>{i.default.hydrateRoot(O,r,{...U,formState:T})})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},72031:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getAppBuildId:function(){return u},setAppBuildId:function(){return n}});let r="";function n(e){r=e}function u(){return r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},72235:(e,t,r)=>{"use strict";var n=r(74188);function u(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var r=2;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function l(){}var o={d:{f:l,r:function(){throw Error(u(522))},D:l,C:l,L:l,m:l,X:l,S:l,M:l},p:0,findDOMNode:null},a=Symbol.for("react.portal"),i=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(e,t){return"font"===e?"":"string"==typeof t?"use-credentials"===t?t:"":void 0}t.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=o,t.createPortal=function(e,t){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!t||1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType)throw Error(u(299));return function(e,t,r){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:a,key:null==n?null:""+n,children:e,containerInfo:t,implementation:r}}(e,t,null,r)},t.flushSync=function(e){var t=i.T,r=o.p;try{if(i.T=null,o.p=2,e)return e()}finally{i.T=t,o.p=r,o.d.f()}},t.preconnect=function(e,t){"string"==typeof e&&(t=t?"string"==typeof(t=t.crossOrigin)?"use-credentials"===t?t:"":void 0:null,o.d.C(e,t))},t.prefetchDNS=function(e){"string"==typeof e&&o.d.D(e)},t.preinit=function(e,t){if("string"==typeof e&&t&&"string"==typeof t.as){var r=t.as,n=c(r,t.crossOrigin),u="string"==typeof t.integrity?t.integrity:void 0,l="string"==typeof t.fetchPriority?t.fetchPriority:void 0;"style"===r?o.d.S(e,"string"==typeof t.precedence?t.precedence:void 0,{crossOrigin:n,integrity:u,fetchPriority:l}):"script"===r&&o.d.X(e,{crossOrigin:n,integrity:u,fetchPriority:l,nonce:"string"==typeof t.nonce?t.nonce:void 0})}},t.preinitModule=function(e,t){if("string"==typeof e)if("object"==typeof t&&null!==t){if(null==t.as||"script"===t.as){var r=c(t.as,t.crossOrigin);o.d.M(e,{crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0})}}else null==t&&o.d.M(e)},t.preload=function(e,t){if("string"==typeof e&&"object"==typeof t&&null!==t&&"string"==typeof t.as){var r=t.as,n=c(r,t.crossOrigin);o.d.L(e,r,{crossOrigin:n,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,type:"string"==typeof t.type?t.type:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0,referrerPolicy:"string"==typeof t.referrerPolicy?t.referrerPolicy:void 0,imageSrcSet:"string"==typeof t.imageSrcSet?t.imageSrcSet:void 0,imageSizes:"string"==typeof t.imageSizes?t.imageSizes:void 0,media:"string"==typeof t.media?t.media:void 0})}},t.preloadModule=function(e,t){if("string"==typeof e)if(t){var r=c(t.as,t.crossOrigin);o.d.m(e,{as:"string"==typeof t.as&&"script"!==t.as?t.as:void 0,crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0})}else o.d.m(e)},t.requestFormReset=function(e){o.d.r(e)},t.unstable_batchedUpdates=function(e,t){return e(t)},t.useFormState=function(e,t,r){return i.H.useFormState(e,t,r)},t.useFormStatus=function(){return i.H.useHostTransitionStatus()},t.version="19.2.0-canary-97cdd5d3-20250710"},72736:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"pathHasPrefix",{enumerable:!0,get:function(){return u}});let n=r(84750);function u(e,t){if("string"!=typeof e)return!1;let{pathname:r}=(0,n.parsePath)(e);return r===t||r.startsWith(t+"/")}},72817:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{createMutableActionQueue:function(){return _},dispatchNavigateAction:function(){return v},dispatchTraverseAction:function(){return g},getCurrentAppRouterState:function(){return y},publicAppRouterInstance:function(){return m}});let n=r(92765),u=r(48877),l=r(74188),o=r(48675);r(86442);let a=r(40034),i=r(63528),c=r(78383),s=r(37607),f=r(14709);function d(e,t){null!==e.pending&&(e.pending=e.pending.next,null!==e.pending?p({actionQueue:e,action:e.pending,setState:t}):e.needsRefresh&&(e.needsRefresh=!1,e.dispatch({type:n.ACTION_REFRESH,origin:window.location.origin},t)))}async function p(e){let{actionQueue:t,action:r,setState:n}=e,u=t.state;t.pending=r;let l=r.payload,a=t.action(u,l);function i(e){r.discarded||(t.state=e,d(t,n),r.resolve(e))}(0,o.isThenable)(a)?a.then(i,e=>{d(t,n),r.reject(e)}):i(a)}let h=null;function _(e,t){let r={state:e,dispatch:(e,t)=>(function(e,t,r){let u={resolve:r,reject:()=>{}};if(t.type!==n.ACTION_RESTORE){let e=new Promise((e,t)=>{u={resolve:e,reject:t}});(0,l.startTransition)(()=>{r(e)})}let o={payload:t,next:null,resolve:u.resolve,reject:u.reject};null===e.pending?(e.last=o,p({actionQueue:e,action:o,setState:r})):t.type===n.ACTION_NAVIGATE||t.type===n.ACTION_RESTORE?(e.pending.discarded=!0,o.next=e.pending.next,e.pending.payload.type===n.ACTION_SERVER_ACTION&&(e.needsRefresh=!0),p({actionQueue:e,action:o,setState:r})):(null!==e.last&&(e.last.next=o),e.last=o)})(r,e,t),action:async(e,t)=>(0,u.reducer)(e,t),pending:null,last:null,onRouterTransitionStart:null!==t&&"function"==typeof t.onRouterTransitionStart?t.onRouterTransitionStart:null};if(null!==h)throw Object.defineProperty(Error("Internal Next.js Error: createMutableActionQueue was called more than once"),"__NEXT_ERROR_CODE",{value:"E624",enumerable:!1,configurable:!0});return h=r,r}function y(){return null!==h?h.state:null}function b(){return null!==h?h.onRouterTransitionStart:null}function v(e,t,r,u){let l=new URL((0,i.addBasePath)(e),location.href);(0,f.setLinkForCurrentNavigation)(u);let o=b();null!==o&&o(e,t),(0,a.dispatchAppRouterAction)({type:n.ACTION_NAVIGATE,url:l,isExternalUrl:(0,c.isExternalURL)(l),locationSearch:location.search,shouldScroll:r,navigateType:t,allowAliasing:!0})}function g(e,t){let r=b();null!==r&&r(e,"traverse"),(0,a.dispatchAppRouterAction)({type:n.ACTION_RESTORE,url:new URL(e),tree:t})}let m={back:()=>window.history.back(),forward:()=>window.history.forward(),prefetch:(e,t)=>{let r=function(){if(null===h)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});return h}(),u=(0,c.createPrefetchURL)(e);if(null!==u){var l;(0,s.prefetchReducer)(r.state,{type:n.ACTION_PREFETCH,url:u,kind:null!=(l=null==t?void 0:t.kind)?l:n.PrefetchKind.FULL})}},replace:(e,t)=>{(0,l.startTransition)(()=>{var r;v(e,"replace",null==(r=null==t?void 0:t.scroll)||r,null)})},push:(e,t)=>{(0,l.startTransition)(()=>{var r;v(e,"push",null==(r=null==t?void 0:t.scroll)||r,null)})},refresh:()=>{(0,l.startTransition)(()=>{(0,a.dispatchAppRouterAction)({type:n.ACTION_REFRESH,origin:window.location.origin})})},hmrRefresh:()=>{throw Object.defineProperty(Error("hmrRefresh can only be used in development mode. Please use refresh instead."),"__NEXT_ERROR_CODE",{value:"E485",enumerable:!1,configurable:!0})}};window.next&&(window.next.router=m),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},72826:(e,t)=>{"use strict";function r(e){return"("===e[0]&&e.endsWith(")")}function n(e){return e.startsWith("@")&&"@children"!==e}function u(e,t){if(e.includes(l)){let e=JSON.stringify(t);return"{}"!==e?l+"?"+e:l}return e}Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DEFAULT_SEGMENT_KEY:function(){return o},PAGE_SEGMENT_KEY:function(){return l},addSearchParamsIfPageSegment:function(){return u},isGroupSegment:function(){return r},isParallelRouteSegment:function(){return n}});let l="__PAGE__",o="__DEFAULT__"},74188:(e,t,r)=>{"use strict";e.exports=r(20899)},74376:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let n=r(28064),u=r(46106),l={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},text:{fontSize:"14px",fontWeight:400,lineHeight:"28px",margin:"0 8px"}},o=function(e){let{error:t}=e,r=null==t?void 0:t.digest;return(0,n.jsxs)("html",{id:"__next_error__",children:[(0,n.jsx)("head",{}),(0,n.jsxs)("body",{children:[(0,n.jsx)(u.HandleISRError,{error:t}),(0,n.jsx)("div",{style:l.error,children:(0,n.jsxs)("div",{children:[(0,n.jsxs)("h2",{style:l.text,children:["Application error: a ",r?"server":"client","-side exception has occurred while loading ",window.location.hostname," (see the"," ",r?"server logs":"browser console"," for more information)."]}),r?(0,n.jsx)("p",{style:l.text,children:"Digest: "+r}):null]})})]})]})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},74817:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"RedirectStatusCode",{enumerable:!0,get:function(){return r}});var r=function(e){return e[e.SeeOther=303]="SeeOther",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e}({});("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},75045:(e,t)=>{"use strict";function r(e){let t=parseInt(e.slice(0,2),16),r=t>>1&63,n=Array(6);for(let e=0;e<6;e++){let t=r>>5-e&1;n[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:n,hasRestArgs:1==(1&t)}}function n(e,t){let r=Array(e.length);for(let n=0;n<e.length;n++)(n<6&&t.usedArgs[n]||n>=6&&t.hasRestArgs)&&(r[n]=e[n]);return r}Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{extractInfoFromServerReferenceId:function(){return r},omitUnusedArgs:function(){return n}})},75884:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"InvariantError",{enumerable:!0,get:function(){return r}});class r extends Error{constructor(e,t){super("Invariant: "+(e.endsWith(".")?e:e+".")+" This is a bug in Next.js.",t),this.name="InvariantError"}}},76635:e=>{!function(){var t={229:function(e){var t,r,n,u=e.exports={};function l(){throw Error("setTimeout has not been defined")}function o(){throw Error("clearTimeout has not been defined")}try{t="function"==typeof setTimeout?setTimeout:l}catch(e){t=l}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(e){r=o}function a(e){if(t===setTimeout)return setTimeout(e,0);if((t===l||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}var i=[],c=!1,s=-1;function f(){c&&n&&(c=!1,n.length?i=n.concat(i):s=-1,i.length&&d())}function d(){if(!c){var e=a(f);c=!0;for(var t=i.length;t;){for(n=i,i=[];++s<t;)n&&n[s].run();s=-1,t=i.length}n=null,c=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===o||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function p(e,t){this.fun=e,this.array=t}function h(){}u.nextTick=function(e){var t=Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];i.push(new p(e,t)),1!==i.length||c||a(d)},p.prototype.run=function(){this.fun.apply(null,this.array)},u.title="browser",u.browser=!0,u.env={},u.argv=[],u.version="",u.versions={},u.on=h,u.addListener=h,u.once=h,u.off=h,u.removeListener=h,u.removeAllListeners=h,u.emit=h,u.prependListener=h,u.prependOnceListener=h,u.listeners=function(e){return[]},u.binding=function(e){throw Error("process.binding is not supported")},u.cwd=function(){return"/"},u.chdir=function(e){throw Error("process.chdir is not supported")},u.umask=function(){return 0}}},r={};function n(e){var u=r[e];if(void 0!==u)return u.exports;var l=r[e]={exports:{}},o=!0;try{t[e](l,l.exports,n),o=!1}finally{o&&delete r[e]}return l.exports}n.ab="//",e.exports=n(229)}()},77328:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getFlightDataPartsFromPath:function(){return u},getNextFlightSegmentPath:function(){return l},normalizeFlightData:function(){return o},prepareFlightRouterStateForRequest:function(){return a}});let n=r(72826);function u(e){var t;let[r,n,u,l]=e.slice(-4),o=e.slice(0,-4);return{pathToSegment:o.slice(0,-1),segmentPath:o,segment:null!=(t=o[o.length-1])?t:"",tree:r,seedData:n,head:u,isHeadPartial:l,isRootRender:4===e.length}}function l(e){return e.slice(2)}function o(e){return"string"==typeof e?e:e.map(u)}function a(e,t){return t?encodeURIComponent(JSON.stringify(e)):encodeURIComponent(JSON.stringify(function e(t){var r,u;let[l,o,a,i,c,s]=t,f="string"==typeof(r=l)&&r.startsWith(n.PAGE_SEGMENT_KEY+"?")?n.PAGE_SEGMENT_KEY:r,d={};for(let[t,r]of Object.entries(o))d[t]=e(r);let p=[f,d,null,(u=i)&&"refresh"!==u?i:null];return void 0!==c&&(p[4]=c),void 0!==s&&(p[5]=s),p}(e)))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},77506:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"serverActionReducer",{enumerable:!0,get:function(){return w}});let n=r(60803),u=r(38667),l=r(23476),o=r(70262),a=r(92765),i=r(56710),c=r(60092),s=r(95323),f=r(96701),d=r(20513),p=r(29728),h=r(87695),_=r(78383),y=r(95837),b=r(87290),v=r(27355),g=r(77328),m=r(27836),R=r(87995),O=r(17893),E=r(38649),P=r(5523),j=r(75045);r(86442);let T=o.createFromFetch;async function S(e,t,r){let a,c,s,f,{actionId:d,actionArgs:p}=r,h=(0,o.createTemporaryReferenceSet)(),_=(0,j.extractInfoFromServerReferenceId)(d),y="use-cache"===_.type?(0,j.omitUnusedArgs)(p,_):p,b=await (0,o.encodeReply)(y,{temporaryReferences:h}),v=await fetch(e.canonicalUrl,{method:"POST",headers:{Accept:l.RSC_CONTENT_TYPE_HEADER,[l.ACTION_HEADER]:d,[l.NEXT_ROUTER_STATE_TREE_HEADER]:(0,g.prepareFlightRouterStateForRequest)(e.tree),...{},...t?{[l.NEXT_URL]:t}:{}},body:b});if("1"===v.headers.get(l.NEXT_ACTION_NOT_FOUND_HEADER))throw Object.defineProperty(Error('Server Action "'+d+'" was not found on the server. \nRead more: https://nextjs.org/docs/messages/failed-to-find-server-action'),"__NEXT_ERROR_CODE",{value:"E715",enumerable:!1,configurable:!0});let m=v.headers.get("x-action-redirect"),[O,E]=(null==m?void 0:m.split(";"))||[];switch(E){case"push":a=R.RedirectType.push;break;case"replace":a=R.RedirectType.replace;break;default:a=void 0}let P=!!v.headers.get(l.NEXT_IS_PRERENDER_HEADER);try{let e=JSON.parse(v.headers.get("x-action-revalidated")||"[[],0,0]");c={paths:e[0]||[],tag:!!e[1],cookie:e[2]}}catch(e){c=M}let S=O?(0,i.assignLocation)(O,new URL(e.canonicalUrl,window.location.href)):void 0,w=v.headers.get("content-type"),x=!!(w&&w.startsWith(l.RSC_CONTENT_TYPE_HEADER));if(!x&&!S)throw Object.defineProperty(Error(v.status>=400&&"text/plain"===w?await v.text():"An unexpected response was received from the server."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if(x){let e=await T(Promise.resolve(v),{callServer:n.callServer,findSourceMapURL:u.findSourceMapURL,temporaryReferences:h});s=S?void 0:e.a,f=(0,g.normalizeFlightData)(e.f)}else s=void 0,f=void 0;return{actionResult:s,actionFlightData:f,redirectLocation:S,redirectType:a,revalidatedParts:c,isPrerender:P}}let M={paths:[],tag:!1,cookie:!1};function w(e,t){let{resolve:r,reject:n}=t,u={},l=e.tree;u.preserveCustomHistoryState=!1;let o=e.nextUrl&&(0,y.hasInterceptionRouteInCurrentTree)(e.tree)?e.nextUrl:null,i=Date.now();return S(e,o,t).then(async y=>{let g,{actionResult:j,actionFlightData:T,redirectLocation:S,redirectType:M,isPrerender:w,revalidatedParts:x}=y;if(S&&(M===R.RedirectType.replace?(e.pushRef.pendingPush=!1,u.pendingPush=!1):(e.pushRef.pendingPush=!0,u.pendingPush=!0),u.canonicalUrl=g=(0,c.createHrefFromUrl)(S,!1)),!T)return(r(j),S)?(0,s.handleExternalUrl)(e,u,S.href,e.pushRef.pendingPush):e;if("string"==typeof T)return r(j),(0,s.handleExternalUrl)(e,u,T,e.pushRef.pendingPush);let C=x.paths.length>0||x.tag||x.cookie;for(let n of T){let{tree:a,seedData:c,head:p,isRootRender:y}=n;if(!y)return r(j),e;let m=(0,f.applyRouterStatePatchToTree)([""],l,a,g||e.canonicalUrl);if(null===m)return r(j),(0,b.handleSegmentMismatch)(e,t,a);if((0,d.isNavigatingToNewRootLayout)(l,m))return r(j),(0,s.handleExternalUrl)(e,u,g||e.canonicalUrl,e.pushRef.pendingPush);if(null!==c){let t=c[1],r=(0,_.createEmptyCacheNode)();r.rsc=t,r.prefetchRsc=null,r.loading=c[3],(0,h.fillLazyItemsTillLeafWithHead)(i,r,void 0,a,c,p,void 0),u.cache=r,u.prefetchCache=new Map,C&&await (0,v.refreshInactiveParallelSegments)({navigatedAt:i,state:e,updatedTree:m,updatedCache:r,includeNextUrl:!!o,canonicalUrl:u.canonicalUrl||e.canonicalUrl})}u.patchedTree=m,l=m}return S&&g?(C||((0,O.createSeededPrefetchCacheEntry)({url:S,data:{flightData:T,canonicalUrl:void 0,couldBeIntercepted:!1,prerendered:!1,postponed:!1,staleTime:-1},tree:e.tree,prefetchCache:e.prefetchCache,nextUrl:e.nextUrl,kind:w?a.PrefetchKind.FULL:a.PrefetchKind.AUTO}),u.prefetchCache=e.prefetchCache),n((0,m.getRedirectError)((0,P.hasBasePath)(g)?(0,E.removeBasePath)(g):g,M||R.RedirectType.push))):r(j),(0,p.handleMutable)(e,u)},t=>(n(t),e))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},78074:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a}});let n=r(44253),u=r(28064),l=n._(r(74188)),o=r(81986);function a(){let e=(0,l.useContext)(o.TemplateContext);return(0,u.jsx)(u.Fragment,{children:e})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},78383:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{createEmptyCacheNode:function(){return A},createPrefetchURL:function(){return x},default:function(){return I},isExternalURL:function(){return w}});let n=r(4760),u=r(44253),l=r(28064),o=u._(r(74188)),a=r(81986),i=r(92765),c=r(60092),s=r(46991),f=r(40034),d=r(49747),p=n._(r(74376)),h=r(42091),_=r(63528),y=r(13001),b=r(33813),v=r(49554),g=r(85273),m=r(38649),R=r(5523),O=r(36861),E=r(63711),P=r(72817),j=r(27836),T=r(87995);r(14709);let S=n._(r(5377)),M={};function w(e){return e.origin!==window.location.origin}function x(e){let t;if((0,h.isBot)(window.navigator.userAgent))return null;try{t=new URL((0,_.addBasePath)(e),window.location.href)}catch(t){throw Object.defineProperty(Error("Cannot prefetch '"+e+"' because it cannot be converted to a URL."),"__NEXT_ERROR_CODE",{value:"E234",enumerable:!1,configurable:!0})}return w(t)?null:t}function C(e){let{appRouterState:t}=e;return(0,o.useInsertionEffect)(()=>{let{tree:e,pushRef:r,canonicalUrl:n}=t,u={...r.preserveCustomHistoryState?window.history.state:{},__NA:!0,__PRIVATE_NEXTJS_INTERNALS_TREE:e};r.pendingPush&&(0,c.createHrefFromUrl)(new URL(window.location.href))!==n?(r.pendingPush=!1,window.history.pushState(u,"",n)):window.history.replaceState(u,"",n)},[t]),(0,o.useEffect)(()=>{},[t.nextUrl,t.tree]),null}function A(){return{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1}}function N(e){null==e&&(e={});let t=window.history.state,r=null==t?void 0:t.__NA;r&&(e.__NA=r);let n=null==t?void 0:t.__PRIVATE_NEXTJS_INTERNALS_TREE;return n&&(e.__PRIVATE_NEXTJS_INTERNALS_TREE=n),e}function U(e){let{headCacheNode:t}=e,r=null!==t?t.head:null,n=null!==t?t.prefetchHead:null,u=null!==n?n:r;return(0,o.useDeferredValue)(r,u)}function D(e){let t,{actionQueue:r,assetPrefix:n,globalError:u,gracefullyDegrade:c}=e,p=(0,f.useActionQueue)(r),{canonicalUrl:h}=p,{searchParams:_,pathname:E}=(0,o.useMemo)(()=>{let e=new URL(h,window.location.href);return{searchParams:e.searchParams,pathname:(0,R.hasBasePath)(e.pathname)?(0,m.removeBasePath)(e.pathname):e.pathname}},[h]);(0,o.useEffect)(()=>{function e(e){var t;e.persisted&&(null==(t=window.history.state)?void 0:t.__PRIVATE_NEXTJS_INTERNALS_TREE)&&(M.pendingMpaPath=void 0,(0,f.dispatchAppRouterAction)({type:i.ACTION_RESTORE,url:new URL(window.location.href),tree:window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE}))}return window.addEventListener("pageshow",e),()=>{window.removeEventListener("pageshow",e)}},[]),(0,o.useEffect)(()=>{function e(e){let t="reason"in e?e.reason:e.error;if((0,T.isRedirectError)(t)){e.preventDefault();let r=(0,j.getURLFromRedirectError)(t);(0,j.getRedirectTypeFromError)(t)===T.RedirectType.push?P.publicAppRouterInstance.push(r,{}):P.publicAppRouterInstance.replace(r,{})}}return window.addEventListener("error",e),window.addEventListener("unhandledrejection",e),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[]);let{pushRef:w}=p;if(w.mpaNavigation){if(M.pendingMpaPath!==h){let e=window.location;w.pendingPush?e.assign(h):e.replace(h),M.pendingMpaPath=h}throw g.unresolvedThenable}(0,o.useEffect)(()=>{let e=window.history.pushState.bind(window.history),t=window.history.replaceState.bind(window.history),r=e=>{var t;let r=window.location.href,n=null==(t=window.history.state)?void 0:t.__PRIVATE_NEXTJS_INTERNALS_TREE;(0,o.startTransition)(()=>{(0,f.dispatchAppRouterAction)({type:i.ACTION_RESTORE,url:new URL(null!=e?e:r,r),tree:n})})};window.history.pushState=function(t,n,u){return(null==t?void 0:t.__NA)||(null==t?void 0:t._N)||(t=N(t),u&&r(u)),e(t,n,u)},window.history.replaceState=function(e,n,u){return(null==e?void 0:e.__NA)||(null==e?void 0:e._N)||(e=N(e),u&&r(u)),t(e,n,u)};let n=e=>{if(e.state){if(!e.state.__NA)return void window.location.reload();(0,o.startTransition)(()=>{(0,P.dispatchTraverseAction)(window.location.href,e.state.__PRIVATE_NEXTJS_INTERNALS_TREE)})}};return window.addEventListener("popstate",n),()=>{window.history.pushState=e,window.history.replaceState=t,window.removeEventListener("popstate",n)}},[]);let{cache:x,tree:A,nextUrl:D,focusAndScrollRef:I}=p,L=(0,o.useMemo)(()=>(0,v.findHeadInCache)(x,A[1]),[x,A]),k=(0,o.useMemo)(()=>(0,O.getSelectedParams)(A),[A]),F=(0,o.useMemo)(()=>({parentTree:A,parentCacheNode:x,parentSegmentPath:null,url:h}),[A,x,h]),B=(0,o.useMemo)(()=>({tree:A,focusAndScrollRef:I,nextUrl:D}),[A,I,D]);if(null!==L){let[e,r]=L;t=(0,l.jsx)(U,{headCacheNode:e},r)}else t=null;let K=(0,l.jsxs)(b.RedirectBoundary,{children:[t,x.rsc,(0,l.jsx)(y.AppRouterAnnouncer,{tree:A})]});return K=c?(0,l.jsx)(S.default,{children:K}):(0,l.jsx)(d.ErrorBoundary,{errorComponent:u[0],errorStyles:u[1],children:K}),(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(C,{appRouterState:p}),(0,l.jsx)(H,{}),(0,l.jsx)(s.PathParamsContext.Provider,{value:k,children:(0,l.jsx)(s.PathnameContext.Provider,{value:E,children:(0,l.jsx)(s.SearchParamsContext.Provider,{value:_,children:(0,l.jsx)(a.GlobalLayoutRouterContext.Provider,{value:B,children:(0,l.jsx)(a.AppRouterContext.Provider,{value:P.publicAppRouterInstance,children:(0,l.jsx)(a.LayoutRouterContext.Provider,{value:F,children:K})})})})})})]})}function I(e){let{actionQueue:t,globalErrorState:r,assetPrefix:n,gracefullyDegrade:u}=e;(0,E.useNavFailureHandler)();let o=(0,l.jsx)(D,{actionQueue:t,assetPrefix:n,globalError:r,gracefullyDegrade:u});return u?o:(0,l.jsx)(d.ErrorBoundary,{errorComponent:p.default,children:o})}let L=new Set,k=new Set;function H(){let[,e]=o.default.useState(0),t=L.size;return(0,o.useEffect)(()=>{let r=()=>e(e=>e+1);return k.add(r),t!==L.size&&r(),()=>{k.delete(r)}},[t,e]),[...L].map((e,t)=>(0,l.jsx)("link",{rel:"stylesheet",href:""+e,precedence:"next"},t))}globalThis._N_E_STYLE_LOAD=function(e){let t=L.size;return L.add(e),L.size!==t&&k.forEach(e=>e()),Promise.resolve()},("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},81986:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{AppRouterContext:function(){return u},GlobalLayoutRouterContext:function(){return o},LayoutRouterContext:function(){return l},MissingSlotContext:function(){return i},TemplateContext:function(){return a}});let n=r(4760)._(r(74188)),u=n.default.createContext(null),l=n.default.createContext(null),o=n.default.createContext(null),a=n.default.createContext(null),i=n.default.createContext(new Set)},82749:(e,t,r)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=r(72235)},82750:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{onCaughtError:function(){return s},onUncaughtError:function(){return f}});let n=r(4760),u=r(11619),l=r(42679),o=r(3009),a=r(49747),i=n._(r(74376)),c={decorateDevError:e=>e,handleClientError:()=>{},originConsoleError:console.error.bind(console)};function s(e,t){var r;let n,o=null==(r=t.errorBoundary)?void 0:r.constructor;if(n=n||o===a.ErrorBoundaryHandler&&t.errorBoundary.props.errorComponent===i.default)return f(e,t);(0,l.isBailoutToCSRError)(e)||(0,u.isNextRouterError)(e)||c.originConsoleError(e)}function f(e,t){(0,l.isBailoutToCSRError)(e)||(0,u.isNextRouterError)(e)||(0,o.reportGlobalError)(e)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},84750:(e,t)=>{"use strict";function r(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r<t);return n||t>-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"parsePath",{enumerable:!0,get:function(){return r}})},85273:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unresolvedThenable",{enumerable:!0,get:function(){return r}});let r={then:()=>{}};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},85412:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),r(92843);let n=r(36652);{let e=r.u;r.u=function(){for(var t=arguments.length,r=Array(t),u=0;u<t;u++)r[u]=arguments[u];return(0,n.encodeURIPath)(e(...r))}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},86442:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{NavigationResultTag:function(){return d},PrefetchPriority:function(){return p},cancelPrefetchTask:function(){return i},createCacheKey:function(){return f},getCurrentCacheVersion:function(){return o},isPrefetchTaskDirty:function(){return s},navigate:function(){return u},prefetch:function(){return n},reschedulePrefetchTask:function(){return c},revalidateEntireCache:function(){return l},schedulePrefetchTask:function(){return a}});let r=()=>{throw Object.defineProperty(Error("Segment Cache experiment is not enabled. This is a bug in Next.js."),"__NEXT_ERROR_CODE",{value:"E654",enumerable:!1,configurable:!0})},n=r,u=r,l=r,o=r,a=r,i=r,c=r,s=r,f=r;var d=function(e){return e[e.MPA=0]="MPA",e[e.Success=1]="Success",e[e.NoOp=2]="NoOp",e[e.Async=3]="Async",e}({}),p=function(e){return e[e.Intent=2]="Intent",e[e.Default=1]="Default",e[e.Background=0]="Background",e}({});("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},87290:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"handleSegmentMismatch",{enumerable:!0,get:function(){return u}});let n=r(95323);function u(e,t,r){return(0,n.handleExternalUrl)(e,{},e.canonicalUrl,!0)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},87549:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ReadonlyURLSearchParams:function(){return s},RedirectType:function(){return u.RedirectType},forbidden:function(){return o.forbidden},notFound:function(){return l.notFound},permanentRedirect:function(){return n.permanentRedirect},redirect:function(){return n.redirect},unauthorized:function(){return a.unauthorized},unstable_rethrow:function(){return i.unstable_rethrow}});let n=r(27836),u=r(87995),l=r(55872),o=r(63157),a=r(34834),i=r(60834);class c extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class s extends URLSearchParams{append(){throw new c}delete(){throw new c}set(){throw new c}sort(){throw new c}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},87695:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"fillLazyItemsTillLeafWithHead",{enumerable:!0,get:function(){return function e(t,r,l,o,a,i,c){if(0===Object.keys(o[1]).length){r.head=i;return}for(let s in o[1]){let f,d=o[1][s],p=d[0],h=(0,n.createRouterCacheKey)(p),_=null!==a&&void 0!==a[2][s]?a[2][s]:null;if(l){let n=l.parallelRoutes.get(s);if(n){let l,o=(null==c?void 0:c.kind)==="auto"&&c.status===u.PrefetchCacheEntryStatus.reusable,a=new Map(n),f=a.get(h);l=null!==_?{lazyData:null,rsc:_[1],prefetchRsc:null,head:null,prefetchHead:null,loading:_[3],parallelRoutes:new Map(null==f?void 0:f.parallelRoutes),navigatedAt:t}:o&&f?{lazyData:f.lazyData,rsc:f.rsc,prefetchRsc:f.prefetchRsc,head:f.head,prefetchHead:f.prefetchHead,parallelRoutes:new Map(f.parallelRoutes),loading:f.loading}:{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map(null==f?void 0:f.parallelRoutes),loading:null,navigatedAt:t},a.set(h,l),e(t,l,f,d,_||null,i,c),r.parallelRoutes.set(s,a);continue}}if(null!==_){let e=_[1],r=_[3];f={lazyData:null,rsc:e,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:r,navigatedAt:t}}else f={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:t};let y=r.parallelRoutes.get(s);y?y.set(h,f):r.parallelRoutes.set(s,new Map([[h,f]])),e(t,f,void 0,d,_,i,c)}}}});let n=r(11644),u=r(92765);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},87995:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{REDIRECT_ERROR_CODE:function(){return u},RedirectType:function(){return l},isRedirectError:function(){return o}});let n=r(74817),u="NEXT_REDIRECT";var l=function(e){return e.push="push",e.replace="replace",e}({});function o(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,l]=t,o=t.slice(2,-2).join(";"),a=Number(t.at(-2));return r===u&&("replace"===l||"push"===l)&&"string"==typeof o&&!isNaN(a)&&a in n.RedirectStatusCode}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},90035:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PromiseQueue",{enumerable:!0,get:function(){return c}});let n=r(50627),u=r(35425);var l=u._("_maxConcurrency"),o=u._("_runningCount"),a=u._("_queue"),i=u._("_processNext");class c{enqueue(e){let t,r,u=new Promise((e,n)=>{t=e,r=n}),l=async()=>{try{n._(this,o)[o]++;let r=await e();t(r)}catch(e){r(e)}finally{n._(this,o)[o]--,n._(this,i)[i]()}};return n._(this,a)[a].push({promiseFn:u,task:l}),n._(this,i)[i](),u}bump(e){let t=n._(this,a)[a].findIndex(t=>t.promiseFn===e);if(t>-1){let e=n._(this,a)[a].splice(t,1)[0];n._(this,a)[a].unshift(e),n._(this,i)[i](!0)}}constructor(e=5){Object.defineProperty(this,i,{value:s}),Object.defineProperty(this,l,{writable:!0,value:void 0}),Object.defineProperty(this,o,{writable:!0,value:void 0}),Object.defineProperty(this,a,{writable:!0,value:void 0}),n._(this,l)[l]=e,n._(this,o)[o]=0,n._(this,a)[a]=[]}}function s(e){if(void 0===e&&(e=!1),(n._(this,o)[o]<n._(this,l)[l]||e)&&n._(this,a)[a].length>0){var t;null==(t=n._(this,a)[a].shift())||t.task()}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},90696:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"restoreReducer",{enumerable:!0,get:function(){return l}});let n=r(60092),u=r(36861);function l(e,t){var r;let{url:l,tree:o}=t,a=(0,n.createHrefFromUrl)(l),i=o||e.tree,c=e.cache;return{canonicalUrl:a,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:e.focusAndScrollRef,cache:c,prefetchCache:e.prefetchCache,tree:i,nextUrl:null!=(r=(0,u.extractPathFromFlightRouterState)(i))?r:l.pathname}}r(24615),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},90729:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ClientPageRoot",{enumerable:!0,get:function(){return u}});let n=r(28064);function u(e){let{Component:t,searchParams:u,params:l,promises:o}=e;{let{createRenderSearchParamsFromClient:e}=r(92128),o=e(u),{createRenderParamsFromClient:a}=r(49221),i=a(l);return(0,n.jsx)(t,{params:i,searchParams:o})}}r(75884),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},92128:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return n}});let n=r(13399).createRenderSearchParamsFromClient;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},92765:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ACTION_HMR_REFRESH:function(){return a},ACTION_NAVIGATE:function(){return n},ACTION_PREFETCH:function(){return o},ACTION_REFRESH:function(){return r},ACTION_RESTORE:function(){return u},ACTION_SERVER_ACTION:function(){return i},ACTION_SERVER_PATCH:function(){return l},PrefetchCacheEntryStatus:function(){return s},PrefetchKind:function(){return c}});let r="refresh",n="navigate",u="restore",l="server-patch",o="prefetch",a="hmr-refresh",i="server-action";var c=function(e){return e.AUTO="auto",e.FULL="full",e.TEMPORARY="temporary",e}({}),s=function(e){return e.fresh="fresh",e.reusable="reusable",e.expired="expired",e.stale="stale",e}({});("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},92843:(e,t)=>{"use strict";function r(){return""}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getDeploymentIdQueryOrEmptyString",{enumerable:!0,get:function(){return r}})},94627:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"invalidateCacheBelowFlightSegmentPath",{enumerable:!0,get:function(){return function e(t,r,l){let o=l.length<=2,[a,i]=l,c=(0,n.createRouterCacheKey)(i),s=r.parallelRoutes.get(a);if(!s)return;let f=t.parallelRoutes.get(a);if(f&&f!==s||(f=new Map(s),t.parallelRoutes.set(a,f)),o)return void f.delete(c);let d=s.get(c),p=f.get(c);p&&d&&(p===d&&(p={lazyData:p.lazyData,rsc:p.rsc,prefetchRsc:p.prefetchRsc,head:p.head,prefetchHead:p.prefetchHead,parallelRoutes:new Map(p.parallelRoutes)},f.set(c,p)),e(p,d,(0,u.getNextFlightSegmentPath)(l)))}}});let n=r(11644),u=r(77328);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},95323:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{handleExternalUrl:function(){return g},navigateReducer:function(){return function e(t,r){let{url:R,isExternalUrl:O,navigateType:E,shouldScroll:P,allowAliasing:j}=r,T={},{hash:S}=R,M=(0,u.createHrefFromUrl)(R),w="push"===E;if((0,y.prunePrefetchCache)(t.prefetchCache),T.preserveCustomHistoryState=!1,T.pendingPush=w,O)return g(t,T,R.toString(),w);if(document.getElementById("__next-page-redirect"))return g(t,T,M,w);let x=(0,y.getOrCreatePrefetchCacheEntry)({url:R,nextUrl:t.nextUrl,tree:t.tree,prefetchCache:t.prefetchCache,allowAliasing:j}),{treeAtTimeOfPrefetch:C,data:A}=x;return d.prefetchQueue.bump(A),A.then(d=>{let{flightData:y,canonicalUrl:O,postponed:E}=d,j=Date.now(),A=!1;if(x.lastUsedTime||(x.lastUsedTime=j,A=!0),x.aliased){let n=new URL(R.href);O&&(n.pathname=O.pathname);let u=(0,v.handleAliasedPrefetchEntry)(j,t,y,n,T);return!1===u?e(t,{...r,allowAliasing:!1}):u}if("string"==typeof y)return g(t,T,y,w);let N=O?(0,u.createHrefFromUrl)(O):M;if(S&&t.canonicalUrl.split("#",1)[0]===N.split("#",1)[0])return T.onlyHashChange=!0,T.canonicalUrl=N,T.shouldScroll=P,T.hashFragment=S,T.scrollableSegments=[],(0,s.handleMutable)(t,T);let U=t.tree,D=t.cache,I=[];for(let e of y){let{pathToSegment:r,seedData:u,head:s,isHeadPartial:d,isRootRender:y}=e,v=e.tree,O=["",...r],P=(0,o.applyRouterStatePatchToTree)(O,U,v,M);if(null===P&&(P=(0,o.applyRouterStatePatchToTree)(O,C,v,M)),null!==P){if(u&&y&&E){let e=(0,_.startPPRNavigation)(j,D,U,v,u,s,d,!1,I);if(null!==e){if(null===e.route)return g(t,T,M,w);P=e.route;let r=e.node;null!==r&&(T.cache=r);let u=e.dynamicRequestTree;if(null!==u){let r=(0,n.fetchServerResponse)(new URL(N,R.origin),{flightRouterState:u,nextUrl:t.nextUrl});(0,_.listenForDynamicRequest)(e,r)}}else P=v}else{if((0,i.isNavigatingToNewRootLayout)(U,P))return g(t,T,M,w);let n=(0,p.createEmptyCacheNode)(),u=!1;for(let t of(x.status!==c.PrefetchCacheEntryStatus.stale||A?u=(0,f.applyFlightData)(j,D,n,e,x):(u=function(e,t,r,n){let u=!1;for(let l of(e.rsc=t.rsc,e.prefetchRsc=t.prefetchRsc,e.loading=t.loading,e.parallelRoutes=new Map(t.parallelRoutes),m(n).map(e=>[...r,...e])))(0,b.clearCacheNodeDataForSegmentPath)(e,t,l),u=!0;return u}(n,D,r,v),x.lastUsedTime=j),(0,a.shouldHardNavigate)(O,U)?(n.rsc=D.rsc,n.prefetchRsc=D.prefetchRsc,(0,l.invalidateCacheBelowFlightSegmentPath)(n,D,r),T.cache=n):u&&(T.cache=n,D=n),m(v))){let e=[...r,...t];e[e.length-1]!==h.DEFAULT_SEGMENT_KEY&&I.push(e)}}U=P}}return T.patchedTree=U,T.canonicalUrl=N,T.scrollableSegments=I,T.hashFragment=S,T.shouldScroll=P,(0,s.handleMutable)(t,T)},()=>t)}}});let n=r(60459),u=r(60092),l=r(94627),o=r(96701),a=r(62116),i=r(20513),c=r(92765),s=r(29728),f=r(1455),d=r(37607),p=r(78383),h=r(72826),_=r(24615),y=r(17893),b=r(40160),v=r(25112);function g(e,t,r,n){return t.mpaNavigation=!0,t.canonicalUrl=r,t.pendingPush=n,t.scrollableSegments=void 0,(0,s.handleMutable)(e,t)}function m(e){let t=[],[r,n]=e;if(0===Object.keys(n).length)return[[r]];for(let[e,u]of Object.entries(n))for(let n of m(u))""===r?t.push([e,...n]):t.push([r,e,...n]);return t}r(86442),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},95837:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"hasInterceptionRouteInCurrentTree",{enumerable:!0,get:function(){return function e(t){let[r,u]=t;if(Array.isArray(r)&&("di"===r[2]||"ci"===r[2])||"string"==typeof r&&(0,n.isInterceptionRouteAppPath)(r))return!0;if(u){for(let t in u)if(e(u[t]))return!0}return!1}}});let n=r(22688);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},96656:(e,t)=>{"use strict";function r(e,t){var r=e.length;for(e.push(t);0<r;){var n=r-1>>>1,u=e[n];if(0<l(u,t))e[n]=t,e[r]=u,r=n;else break}}function n(e){return 0===e.length?null:e[0]}function u(e){if(0===e.length)return null;var t=e[0],r=e.pop();if(r!==t){e[0]=r;for(var n=0,u=e.length,o=u>>>1;n<o;){var a=2*(n+1)-1,i=e[a],c=a+1,s=e[c];if(0>l(i,r))c<u&&0>l(s,i)?(e[n]=s,e[c]=r,n=c):(e[n]=i,e[a]=r,n=a);else if(c<u&&0>l(s,r))e[n]=s,e[c]=r,n=c;else break}}return t}function l(e,t){var r=e.sortIndex-t.sortIndex;return 0!==r?r:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var o,a=performance;t.unstable_now=function(){return a.now()}}else{var i=Date,c=i.now();t.unstable_now=function(){return i.now()-c}}var s=[],f=[],d=1,p=null,h=3,_=!1,y=!1,b=!1,v=!1,g="function"==typeof setTimeout?setTimeout:null,m="function"==typeof clearTimeout?clearTimeout:null,R="undefined"!=typeof setImmediate?setImmediate:null;function O(e){for(var t=n(f);null!==t;){if(null===t.callback)u(f);else if(t.startTime<=e)u(f),t.sortIndex=t.expirationTime,r(s,t);else break;t=n(f)}}function E(e){if(b=!1,O(e),!y)if(null!==n(s))y=!0,P||(P=!0,o());else{var t=n(f);null!==t&&A(E,t.startTime-e)}}var P=!1,j=-1,T=5,S=-1;function M(){return!!v||!(t.unstable_now()-S<T)}function w(){if(v=!1,P){var e=t.unstable_now();S=e;var r=!0;try{e:{y=!1,b&&(b=!1,m(j),j=-1),_=!0;var l=h;try{t:{for(O(e),p=n(s);null!==p&&!(p.expirationTime>e&&M());){var a=p.callback;if("function"==typeof a){p.callback=null,h=p.priorityLevel;var i=a(p.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof i){p.callback=i,O(e),r=!0;break t}p===n(s)&&u(s),O(e)}else u(s);p=n(s)}if(null!==p)r=!0;else{var c=n(f);null!==c&&A(E,c.startTime-e),r=!1}}break e}finally{p=null,h=l,_=!1}}}finally{r?o():P=!1}}}if("function"==typeof R)o=function(){R(w)};else if("undefined"!=typeof MessageChannel){var x=new MessageChannel,C=x.port2;x.port1.onmessage=w,o=function(){C.postMessage(null)}}else o=function(){g(w,0)};function A(e,r){j=g(function(){e(t.unstable_now())},r)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):T=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return h},t.unstable_next=function(e){switch(h){case 1:case 2:case 3:var t=3;break;default:t=h}var r=h;h=t;try{return e()}finally{h=r}},t.unstable_requestPaint=function(){v=!0},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=h;h=e;try{return t()}finally{h=r}},t.unstable_scheduleCallback=function(e,u,l){var a=t.unstable_now();switch(l="object"==typeof l&&null!==l&&"number"==typeof(l=l.delay)&&0<l?a+l:a,e){case 1:var i=-1;break;case 2:i=250;break;case 5:i=0x3fffffff;break;case 4:i=1e4;break;default:i=5e3}return i=l+i,e={id:d++,callback:u,priorityLevel:e,startTime:l,expirationTime:i,sortIndex:-1},l>a?(e.sortIndex=l,r(f,e),null===n(s)&&e===n(f)&&(b?(m(j),j=-1):b=!0,A(E,l-a))):(e.sortIndex=i,r(s,e),y||_||(y=!0,P||(P=!0,o()))),e},t.unstable_shouldYield=M,t.unstable_wrapCallback=function(e){var t=h;return function(){var r=h;h=t;try{return e.apply(this,arguments)}finally{h=r}}}},96701:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"applyRouterStatePatchToTree",{enumerable:!0,get:function(){return function e(t,r,n,i){let c,[s,f,d,p,h]=r;if(1===t.length){let e=a(r,n);return(0,o.addRefreshMarkerToActiveParallelSegments)(e,i),e}let[_,y]=t;if(!(0,l.matchSegment)(_,s))return null;if(2===t.length)c=a(f[y],n);else if(null===(c=e((0,u.getNextFlightSegmentPath)(t),f[y],n,i)))return null;let b=[t[0],{...f,[y]:c},d,p];return h&&(b[4]=!0),(0,o.addRefreshMarkerToActiveParallelSegments)(b,i),b}}});let n=r(72826),u=r(77328),l=r(5914),o=r(27355);function a(e,t){let[r,u]=e,[o,i]=t;if(o===n.DEFAULT_SEGMENT_KEY&&r!==n.DEFAULT_SEGMENT_KEY)return e;if((0,l.matchSegment)(r,o)){let t={};for(let e in u)void 0!==i[e]?t[e]=a(u[e],i[e]):t[e]=u[e];for(let e in i)t[e]||(t[e]=i[e]);let n=[r,t];return e[2]&&(n[2]=e[2]),e[3]&&(n[3]=e[3]),e[4]&&(n[4]=e[4]),n}return t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},97051:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HeadManagerContext",{enumerable:!0,get:function(){return n}});let n=r(4760)._(r(74188)).default.createContext({})},98973:(e,t,r)=>{"use strict";e.exports=r(96536)}}]); +//# sourceMappingURL=650-2744d401bb0d724a.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/650-2744d401bb0d724a.js.map b/opencut-ui/_next/static/chunks/650-2744d401bb0d724a.js.map new file mode 100644 index 0000000..d4852d8 --- /dev/null +++ b/opencut-ui/_next/static/chunks/650-2744d401bb0d724a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/650-2744d401bb0d724a.js","mappings":"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sM,IAGrD,GACED,CAAkB,CAAC,EAAE,GAAKC,CAAe,CAAC,EAJ2B,EAKrED,CAAkB,CAAC,EAAE,GAAKC,CAAe,CAAC,EAAE,CAE5C,CADA,MACO,CACT,MACK,GAAID,IAAuBC,EAChC,OAAO,EAIT,GAAIH,CAAW,CAAC,CALmC,CAKjC,CAEhB,CAFkB,KAEX,CAACC,CAAQ,CAAC,EAAE,CAGrB,GAAIA,CAAQ,CAAC,EAAE,CACb,CADe,MACR,EAKT,IAAMG,EAAmBnQ,OAAOwN,MAAM,CAACuC,CAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CACnDK,EAAgBpQ,OAAOwN,MAAM,CAACwC,CAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,OACnD,CAAKG,GAAD,CAAsBC,GACnBN,EAA4BK,EAAkBC,EACvD,MAF2C,CAAhB,MAAuB,4PC7BlD,2CACA,6BACA,+BACA,kCACA,+BACA,+BACA,8BACA,kCACA,+BACA,2BACA,2BACA,kBAQA,GACA,qBACA,QACA,CAAK,CACL,+BAAsC,CACtC,gCAAuC,CACvC,4BACA,CAAG,CACH,gBACA,KACA,kBACA,aACA,eACA,YACA,iBACA,CAgBA,cAEA,kBACA,aACA,eACA,YACA,iBACA,CAtBA,gCACA,mCACA,GACA,oBACA,sBACA,QAEA,YACA,0GAEA,iDACA,EACA,oCACA,qDACA,EAEA,wBAOA,uBACA,iBACA,iBACA,0BACA,oBACA,cACA,OAA6B,4BAAoC,CACjE,kCACA,wBAEA,OACA,WACA,OACA,MACA,aALA,UAKA,OACA,OACA,CACA,CAWA,cACA,MACA,oBACA,UACA,cAEA,CAUA,aACA,oBAVA,EACA,EAUA,iDAXA,EAYA,SAXA,GAAwB,mBAExB,IACA,8BACA,YACK,GAOL,cACA,CA8IA,kBACA,oBACA,SACA,IAIA,OApHA,sBACA,IAjEA,IAhEA,EAiIA,UACA,4CACA,SACA,sBAEA,UACA,aACA,aACA,aACA,KACA,KACA,cACA,mBACA,OACA,OACA,KACA,KACA,QACA,OACA,cAEA,YACA,EACA,EACA,EACA,EAGA,CACA,CACA,KACA,OACA,OACA,EACA,oBACA,KACA,MACA,SACA,GACA,wBACA,uBACA,QACA,EAAW,EACX,SACA,QA7GA,EA+GA,EA/GA,EAgHA,EACA,cACA,iBACA,GACA,mBACA,EACA,OACA,KACA,EAVA,EA7GA,EACA,OACA,EACA,OACA,OACA,OACA,UAmHA,WACA,EAEA,IACA,uBACA,QACA,YAAoB,WAAqB,IAEzC,MADA,OACA,GACA,KACA,EACA,EACA,EACA,EACA,QAEA,wBAzMA,QADA,EA0MA,IAzMA,wBAIA,kBAHA,GACA,SACA,iBACA,MAqMA,EACA,IACA,gBACA,oBAIA,MADA,UACA,KACA,KACA,EACA,EACA,EACA,EACA,QAEA,iBACA,6BACA,SA3HA,YACA,iBACA,gBACA,mBACA,WACA,uBAEA,OACA,0BACA,YACA,oBACA,OACA,YACA,sBACA,sBACA,UACA,CAAe,CACf,YACA,sBACA,gCACA,EACA,EACA,UAEA,gBACA,cACA,gBACA,eAEA,CACA,OACA,EA6FA,GACA,EACA,EACA,EACA,EAGA,aACA,kDACA,qBAHA,cAIA,mBAA+B,8BAAyC,EACxE,GACA,4EAEA,CACA,QACA,EAKA,sBACA,sBACA,CAAG,EACH,CACA,CACA,cACA,mBACA,gBAEA,CADA,OACA,KACA,YACA,iCACA,yBACA,CAAO,CACP,YACA,iCACA,yBACA,GAEA,yCACA,CACA,gDACA,UAEA,MACA,+BACA,YACA,YACA,GACA,yBACA,qCACA,CACA,qCACA,WACA,cACA,QACA,oBACA,UACA,2BACA,kBACA,UACA,OACA,CAAW,EACX,kCACA,EAAU,OACV,iBAA8B,GAC9B,IADqC,QACrC,OAAgC,EAAO,iBAE7B,EAAO,4BAGjB,gBACA,EACA,UAAgB,EAChB,MACA,wBACA,EACA,EACA,WACA,uBACA,CAAO,CACP,EAEA,CAAG,CACH,kBACA,QAIA,OAHA,eACA,GACA,CAAK,EACL,CACA,CAAG,CACH,oBACA,OACA,gBACA,QACA,CAAO,MAEJ,CACH,iBACA,SACA,YACA,yEAEA,QACA,CACA,EACA,WAAiB,GACjB,UAAgB,GAChB,UAAgB,GAChB,eAAqB,GACrB,YAAkB,GAClB,UAAgB,GAChB,iEAAuE,CACvE,EACA,oBAA0B,EAC1B,eACA,cACA,0BACA,CACA,EACA,OAAa,aACb,kBACA,8BACA,CACA,EACA,aAAmB,YACnB,WACA,EACA,cAAoB,iBACpB,WACA,YACA,+DAEA,UAAuB,UACvB,QACA,SACA,WACA,oCACA,6BACA,EACA,aACA,WACA,cACA,gBACA,6BACA,YACA,yBACA,2BACA,QACA,uBAAkD,IAAc,IAChE,oBACA,YACA,CACA,oCACA,EACA,eAAqB,aAcrB,MALA,CARA,GACA,WACA,gBACA,iBACA,eACA,cACA,aACA,GACA,WACA,YACA,WACA,UACA,EACA,CACA,EACA,eAAqB,iBACrB,MACA,IAAc,CACd,OACA,WACA,wCACA,aACA,WACA,cACA,gBACA,YACA,yBACA,2BACA,QACA,uBAAwD,IAAoB,IAC5E,oBACA,YACA,CACA,qBACA,0BACA,eACA,YACA,kCACA,EACA,WAAiB,YACjB,OAAW,aACX,EACA,YAAkB,aAClB,OAAW,oBACX,EACA,gBAAsB,GACtB,MAAY,aACZ,OACA,WACA,UAAgB,qBAA4B,CAC5C,OACA,CACA,EACA,MAAY,eACZ,OACA,WACA,OACA,yBACA,CACA,EACA,iBAAuB,aACvB,UACA,IACA,OACA,IACA,UACA,aACA,GACA,OACA,oBACA,UACA,2BACA,WACA,CAAI,SACJ,IACA,EAAI,OACJ,UACA,gBACA,kBACA,KACA,CACA,EACA,0BAAgC,YAChC,4BACA,EACA,KAAW,aACX,iBACA,EACA,gBAAsB,iBACtB,gCACA,EACA,aAAmB,eACnB,2BACA,EACA,YAAkB,aAClB,wBACA,EACA,eAAqB,cACrB,kBAAwB,eACxB,gCACA,EACA,WAAiB,eACjB,yBACA,EACA,OAAa,YACb,kBACA,EACA,qBAA2B,iBAC3B,qCACA,EACA,oBAA0B,eAC1B,kCACA,EACA,iBAAuB,eACvB,+BACA,EACA,SAAe,eACf,uBACA,EACA,eAAqB,eACrB,6BACA,EACA,YAAkB,i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GAAqB,WA0CrB,UACA,cACA,MAAgB,EAAmB,SACnC,QADmC,IACnC,sCACA,MACA,OACA,YACA,qBACA,SACA,CAAK,CACL,YACA,oBACA,UACA,GAEA,EACA,CACA,cACA,cACA,wBAAuD,YAAmB,CAC1E,aACA,SACA,UACA,YACA,YACA,EAAyB,GAAsB,IAC/C,UACA,uBACA,YACA,YACA,mBACA,CACA,oBACA,aACA,QACA,+BACA,cACA,CAAS,EACT,WACA,eACA,IACA,CACA,cACA,MAAsB,EAAmB,MACzC,WADyC,IACzC,4BACA,0BACA,eACA,eACA,iBACA,EACA,UACA,aACA,UACA,EACA,QAEA,cACA,EAA4B,EAAmB,EAC/C,EAAmB,aAD4B,CAE/C,GADmB,CACnB,WACA,kBACA,EACA,IACA,EACA,MACA,+DACA,2CACA,2BACA,kBAQA,uBACA,gBACA,wBACA,mBACA,cAsXA,kBACA,UACA,SACA,KACA,oBACA,OACA,CAAK,CACL,CAiBA,kBACA,cACA,aACA,aACA,CA2BA,cACA,iBACA,qBACA,KACA,KACA,uBACA,IACA,CACA,iBACA,gBACA,cACA,eACA,cACA,aACA,OACA,SACA,eAEA,CACA,gBACA,YAAkB,WAAsB,KACxC,WACA,qBACA,KACA,MACA,CACA,CACA,gBACA,YAAkB,WAAsB,KACxC,WACA,qBACA,KACA,MACA,CACA,CACA,gBACA,sBACA,wBACA,0BAEA,UADA,YAEA,IACA,IACA,WACA,IACA,CACA,WACA,GACA,sBACA,kBAGA,QACA,CACA,WACA,CACA,kBACA,iBACA,gBACA,aACA,KACA,eACA,YAAsB,WAA6B,KACnD,WACA,yBACA,YACA,WACA,cACA,cACA,IACA,UAEA,KADA,kBACA,cACA,CACA,CACA,cACA,WACA,QAAoB,WAA6B,IACjD,wBACA,UACA,YACA,MACA,IACA,IACA,WACA,IAEA,yBACQ,WACR,KACA,gBACA,gBACA,CACA,CACA,kBACA,2CACA,kBACA,YACA,oBACA,WACA,iBACA,CACA,kBACA,aACA,iBACA,KAAc,wBAA0B,4BAAoC,EAC5E,EAEA,CACA,oBACA,EACA,EACA,EACA,KAAc,wBAA0B,4BAAoC,EAE5E,CACA,kBACA,qDACA,CACA,cACA,WACA,0BACA,UACA,WACA,UACA,MACA,SACA,CACA,CACA,kBACA,+CACA,UACA,eACA,2BACA,UACA,UACA,MACA,SACA,CACA,CArKA,6CACA,+BACA,oBACA,qBACA,QACA,KACA,uBACA,OACA,CACA,oBACA,gBACA,oCACA,KACA,eACA,cACA,sBACA,wDACA,sBACA,2DACA,KACA,cACA,KACA,SACA,oCACA,CACA,EA6IA,WACA,cACA,QACA,OACA,cACA,WACA,mBACA,aACA,cACA,IACA,gCACA,UAKA,GAJA,UACA,cACA,cACA,QACA,UACA,2BACA,aACA,UACA,UACA,MACA,CACA,CACA,qBACA,SACA,CAAI,SACJ,8BACA,EAAI,OACJ,GACA,CACA,CACA,cACA,IACA,gBACA,sBACA,SACA,CAAI,SACJ,8BACA,CACA,CACA,gBACA,aACA,kBACA,8BACA,sBACA,QACA,CAAG,CACH,CACA,cACA,OAAW,8BACX,CACA,gBACA,gBACA,WAMA,OALA,GACA,aACA,uCACA,2BACA,YACA,CACA,CACA,gBACA,IACA,iBACA,YACA,iBACA,QACA,QACA,SACA,IACA,WACA,IACA,CACA,KAAW,gBACX,cAD+C,EAC/C,YACA,cACA,CACA,iBACA,qBACA,KACA,KACA,uBACA,IACA,CACA,iBACA,gBACA,UACA,QACA,eACA,aACA,aACA,UACA,QACA,CACA,cACA,gBACA,eACA,YACA,gBACA,gBACA,aACA,iBACA,MACA,cACA,MACA,SACA,cACA,MACA,CACA,CACA,UAEA,aACA,OACA,oCAEA,UACA,0BACA,gBACA,uBAEA,oBAEA,YAEA,SACA,YAEA,OADA,aAEA,sBACA,WACA,qBACA,gBACA,uBACA,CACA,gBACA,gBACA,aACA,WACA,cACA,UAEA,OADA,aAEA,sBACA,SACA,CACA,WACA,EACA,EACA,EACA,EACA,EACA,GAEA,MACA,OACA,SACA,EAAI,IACJ,KACA,YACA,WACA,WACA,OACA,UACA,EAeA,OAdA,GACA,WACA,UACA,eACA,MACA,MACA,MACA,EACA,eACA,YACA,gBACA,gBACA,aACA,iBACA,IACA,CACA,oBACA,6BACA,gBAnXA,KACA,aACA,4CACA,SACA,uBACA,uBACA,oCACA,uBACA,CAAW,EACX,MACA,CACA,WACA,UAEA,OADA,SACA,CACA,EAoWA,iBACA,MAt1BA,cACA,SACA,OACA,kBACA,CACA,yBAIA,GAHA,QACA,gBACA,mBACA,GACA,YACA,8BACA,EACA,iGAEA,CACA,eACA,oBACA,mBAq0BA,yBACA,MAEA,OACA,KACA,2CACA,YAEA,OACA,SACA,cACA,EALA,2BAOA,MACA,OACA,SACA,EAAI,IACJ,KACA,YACA,WACA,WACA,OACA,UACA,EA2CA,OA1CA,OACA,WACA,WACA,YACA,6BACA,gBACA,mBACA,CACA,kBACA,OACA,oCAEA,UACA,0BACA,gBACA,uBAEA,oBAEA,YAEA,SACA,YAEA,OADA,aAEA,sBACA,WACA,qBACA,gBACA,uBACA,CAAK,CACL,YACA,eACA,aACA,UACA,qBACA,GACA,sBACA,QACA,CACA,GAEA,IACA,CACA,sBAEA,eADA,gBACA,QAEA,QADA,UACA,QACA,qBACA,KACA,KACA,uBACA,IACA,CACA,iBACA,gBACA,cACA,QAAmB,WAAuB,KAC1C,KAAe,gBAAoC,CAEnD,QADA,KADmD,OACnD,EACA,QACA,qBACA,KACA,KACA,uBACA,IACA,CACA,iBACA,gBACA,UACA,KACA,eACA,cACA,SACA,EACA,EACA,EACA,EACA,EACA,aAEA,cACA,OACA,EACA,eACA,GACA,YACA,WACA,WACA,OACA,UACA,CAAqB,CACrB,IAEA,SACA,OACA,EACA,cACA,kBACA,GACA,YACA,WACA,eACA,OACA,UACA,CAAqB,CACrB,IAEA,CACA,CACA,SACA,CACA,iBACA,eACA,cACA,qBACA,cACA,OACA,EACA,eACA,GACA,YACA,WACA,WACA,OACA,UACA,CAAa,CACb,IAEA,SACA,OACA,EACA,cACA,kBACA,GACA,YACA,WACA,eACA,OACA,UACA,CAAa,CACb,IAEA,CACA,CACA,gBACA,iBACA,CACA,gBACA,iBACA,CACA,gBACA,4BAAoC,UAAgB,CACpD,CACA,gBACA,eACA,YAAkB,WAAkB,IACpC,0BACA,QACA,CACA,gBACA,2BACA,CACA,gBACA,QACA,CAmGA,aACA,YACA,oHAEA,CACA,WACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEA,IA0aA,EA1aA,SACA,uBACA,8BACA,sBACA,gCACA,yBACA,cACA,eACA,oCACA,oBACA,gBACA,wBACA,iBACA,gBA6ZA,EA7ZA,KA8ZA,cACA,sBACA,KA7hBA,EA6hBA,EA7hBA,EA6hBA,KA7hBA,EA6hBA,EA7hBA,EA6hBA,EA5hBA,eACA,WACA,OACA,UACA,SACA,IACA,SACA,WACA,WACA,OACA,UACA,EAAW,CACX,EAEA,aACA,QACA,iBACA,SACA,OACA,EACA,MADA,2BAIA,SACA,OACA,EACA,EADA,0BAGA,SACA,6BACA,SACA,OACA,EAEA,EAFA,aAIA,EACA,EACA,EAGA,SAGA,GAFA,iBAEA,MADA,gBAEA,YACA,sKAEA,eACA,SACA,OAEA,IADA,aACA,MAEA,SACA,OACA,EACA,EADA,aACA,MAEA,SACA,OACA,EACA,EADA,aACA,MAEA,SACA,OAEA,IADA,aACA,MAEA,SACA,WACA,SACA,OACA,EACA,EADA,aACA,MAEA,SACA,UACA,SACA,uBACA,SACA,UACA,SACA,MACA,SACA,uCACA,SACA,yBACA,SACA,OAEA,IADA,aACA,MAEA,CACA,CACA,QA6bA,CACA,iCACA,YACA,IACA,GACA,WACA,UACA,SACA,SACA,WACW,CACX,SAEA,IACA,QACA,OACA,UAGA,IADA,uCAEA,aACA,gCACA,WACA,UACA,MACA,QACQ,IACR,QACA,CACA,QACA,EA7bA,CACA,kBAEA,MADA,cACA,MACA,yBACA,yBACA,kCACA,CA6BA,oBACA,gBACA,aAEA,sBACA,WACA,qBACA,UACA,WACA,wBACA,+BACA,CACA,mBACA,WACA,sBACA,OACA,kBACA,GACA,CACA,CAAG,EACH,WACA,SACA,yBACA,SACA,aACA,kBACA,YACA,CAAW,CACX,CAAK,CACL,yBACA,aACA,kCACA,KACA,uBACA,mBACA,QACA,YACA,mBACA,CAAe,CACf,YACA,iBACA,GAEA,IACA,EAAQ,IACR,IACA,iCACA,OACA,YACA,mBACA,CAAW,CACX,YACA,iBACA,GAEA,IACA,kBACA,gBACA,QACA,CAAS,CACT,CACA,CAAK,CACL,iBACA,0BACA,CACA,QACA,OACA,kBACA,gBACA,CAAS,CACT,CACA,CAAK,CACL,kBACA,2BACA,CACA,QACA,OACA,kBACA,iBACA,CAAS,CACT,CACA,CACA,CAAG,CACH,CACA,cACA,YAOA,mBACA,SACA,KACA,IACA,IACA,iBACA,IAXA,EAWA,IACA,MAXA,IAAW,KADX,EAYA,YACA,cACA,YACA,oFAEA,iBACA,KACA,aACA,YACA,CAAc,qBAAyB,CACvC,KAEA,gCACA,CACA,cAzBW,EACX,OACA,CAyBA,EACA,EACA,EACA,EACA,WACA,CACA,yBACA,gBACA,WACA,YACA,CAAc,gBAAwB,CACtC,UAEA,CACA,WACA,UACA,WACA,qBACA,SAA0B,iBAC1B,UACA,QACA,CACA,GACA,CAAO,CACP,yBACA,aACA,OACA,EACA,EACA,IAEA,EACA,EACA,KACA,EACA,IAEA,GACA,CAAO,CACP,kBAcA,IAbA,KACA,aACA,OACA,EACA,EACA,IAEA,EACA,EACA,KACA,EACA,IAEA,IAA+B,YAC/B,EACA,EACA,OACA,eACA,GAEA,CAAO,CACP,kBAEA,IADA,KAEA,cACA,kCACA,YAGA,aACA,CACA,EAEA,CACA,cACA,YACA,wQAGA,OADA,4BACA,CACA,CACA,iBACA,kCAAoE,IAAO,IAC3E,mBACA,oBACA,cAA2B,IAAU,KACrC,WACA,WACA,eACA,CAEA,OADA,WACA,CACA,CACA,YACA,EACA,EACA,EACA,EACA,EACA,GAWA,MALA,QAJA,GACA,gCACA,EACA,SAEA,OACA,aACA,gBAGA,CAyLA,eACA,aACA,KACA,KACA,KACA,oCACA,OACA,OACA,yBACA,sBACA,OAEA,CACA,mBAuFA,cACA,MACA,CACA,OACA,YACA,SACA,UACA,aACA,WACK,CACL,gBACA,cAjGA,cACA,cACA,UACA,GACA,qCACA,CACA,QACA,cACA,WACA,IACA,gBACA,eACA,YACA,WACA,KAEA,CACA,SACA,UACA,OAEA,KADA,WAEA,IACA,EACA,sBACA,QACA,QAEA,KADA,UAEA,QACA,QACA,SACA,QACA,QACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,OACA,cACA,YACA,QACA,SACA,QACA,cACA,UACA,QACA,QAEA,KADA,WAEA,IACA,EACA,KACA,iBACA,QACA,QACA,kBACA,KACA,QACA,wBACA,CACA,qBACA,QAvQA,qBACA,UACA,QACA,sBACA,MACA,SACA,wBACA,MACA,UACA,EACA,EACA,EACA,wBAEA,MACA,SACA,gCACA,MACA,SACA,yBACA,MACA,UACA,0BACA,MACA,SACA,yBACA,MACA,UACA,0BACA,MACA,SACA,2BACA,MACA,UACA,2BACA,MACA,SACA,4BACA,MACA,UACA,6BACA,MACA,SACA,uBACA,MACA,CACA,IACA,gCACA,WACA,IAEA,oBAEA,OADA,iBACA,GACA,YArTA,EAsTA,EAtTA,EAsTA,EAtTA,EAsTA,EArTA,YACA,WACA,4BACA,eArrCA,KACA,MACA,cACA,gBACA,aACA,CAEA,IADA,cAEA,YACA,8BACA,KACA,2GAEA,OAEA,oBACA,oBACA,kBAEA,QACA,EAiqCA,oBACA,WACA,MACA,OACA,mBACA,EAAM,IACN,6BACA,WACA,OACA,WACA,eACA,CAAO,CACP,YACA,eACA,EAEA,EAAI,IACJ,EACA,SACA,MACA,EACA,iCA8RA,KACA,SAKA,OAJA,OAEA,aADA,aACA,aACA,MACA,GACA,QACA,OACA,KACA,SACA,mBACA,OACA,eACA,KACA,SACA,OACA,OACA,aACA,cACA,SACA,KACA,SACA,mBACA,OACA,eACA,KACA,SACA,mBACA,OACA,eACA,KACA,SACA,mBACA,OACA,IACA,KACA,qBACA,0BAEA,KACA,SACA,mBACA,OACA,cACA,CACA,KACA,SACA,gBACA,SACA,gBAEA,GADA,cACA,QACA,SACA,kCACA,KACA,SAEA,GADA,cACA,8BACA,yBACA,mCACA,KACA,SACA,QACA,QACA,QACA,YACA,kMAEA,SACA,eACA,KACA,UACA,gBACA,KACA,SACA,WACA,KACA,UACA,WACA,KACA,SACA,sBACA,wBACA,wCACA,KACA,SACA,CACA,GADA,aACA,QACA,SACA,oCACA,EACA,EAqHA,QADA,kCAEA,IACA,WACA,UACA,eACA,CACA,4CACA,UACA,gBACA,KACA,CACA,CAKA,OAJA,cACA,WACA,YACA,eACA,yBACA,CACA,GAYA,QACA,CACA,iBAAuB,eACvB,YASA,OARA,OACA,YACA,eACA,CAAK,CACL,YACA,MACA,GAEA,MACA,EACA,0BAAgC,eAGhC,OADA,GADA,QACA,MACA,MACA,EACA,uBAA6B,eAC7B,aACA,4CACA,aACA,CAEA,OADA,YACA,CACA,EACA,6BAAmC,YACnC,cACA,EACA,aAAmB,eACnB,iCACA,eAjnDA,EACA,EACA,EACA,EACA,GAEA,gBACA,YACA,eACA,SACA,aACA,cAEA,EACA,UAGA,OAFA,2BACA,SAmmDA,GAnmDA,KACA,oBACA,CAsFA,gBACA,wBACA,uBACA,mBACA,OACA,oCACA,IAtIA,EAgGA,IAyBA,EAEA,EAWA,cACA,cACA,OACA,iBACA,IAEA,CACA,YACA,qJAEA,QACA,aACA,qBACA,oBACA,IACA,IACA,WACA,MACA,SAEA,OADA,SAk/CA,GAl/CA,KACA,kBACA,CAAY,SACZ,GACA,oBACA,UACA,0BACA,CACA,IACA,UAaA,OAZA,aACA,IACA,aACA,IACA,gBACA,IACA,WACA,CAAkB,SAClB,IACA,CACA,EACA,YACA,kBACA,CAEA,OADA,KACA,IACA,EAAY,OACZ,GACA,CACA,CACA,8BACA,2BACA,IACA,UAYA,OAXA,mBACA,IACA,aAEA,CADA,KACA,cACA,IACA,WACA,CAAY,SACZ,IACA,CACA,CAAS,IACT,mBACA,CAEA,YADA,aAEA,SACA,cADA,YAGA,qBAEA,SADA,iBAEA,WACA,WACA,YACA,YACA,iBACA,0BACA,2BACA,QAEA,IADA,QACA,IAIA,OAHA,wBACA,eACA,CAAS,EACT,mBACA,CACA,oBACA,OACA,MACA,qBACA,2BACA,gBACA,oBAEA,oBACA,OACA,MACA,qBACA,2BACA,gBACA,oBAEA,4BACA,OACA,gBACA,MACA,2BACA,gBACA,oBAEA,0CACA,2CACA,kCACA,gBACA,2CACA,4CACA,2CACA,4CACA,6CACA,6CACA,8BACA,gBACA,+BACA,gBACA,yCACA,8CACA,OACA,2BACA,MACA,gBACA,oBAEA,KA5QA,QADA,EA6QA,IA5QA,wBAIA,kBAHA,GACA,SACA,iBACA,OAyQA,MACA,gBACA,EACA,OACA,IACA,cACA,GAEA,2BACA,gBACA,qBACA,cAEA,GACA,mCACA,4BAEA,gBAvMA,GACA,IACA,IAxBA,EAgBA,EAEA,EAzCA,EAgBA,EAEA,EACA,EA4BA,eAA4C,YAAc,CAC1D,CAAM,SACN,OA1BA,EA0BA,cAXA,2BACA,IACA,IACA,MACA,cAlBA,cACA,UACA,kBAEA,kBAEA,IACA,gCACA,gBACA,kBACA,CAAU,SACV,IACA,CACA,EAKA,GACA,mBAOA,CACA,OAnDA,EAmDA,EApCA,2BACA,IACA,IACA,MACA,KACA,kCAnBA,cACA,OACA,OACA,0BACA,SACA,IACA,0BAEA,kBAEA,cACA,iBACA,uCACA,EAMA,GACA,mBA+BA,EAgMA,GAEA,qBADA,SAEA,OAlMA,EAkMA,EAlMA,EAkMA,UA1KA,2BACA,IACA,IACA,MACA,QACA,cA5BA,cACA,WACA,oBACA,uBAEA,IACA,gCACA,mBACA,CAAY,SACZ,KACA,MACA,CAEA,YACA,EAAQ,IACR,IACA,gCACA,gBACA,kBACA,CAAU,SACV,IACA,CACA,EAMA,GACA,+BAsKA,GADA,WAEA,GACA,wBACA,CACA,cACA,YACA,6HAEA,UACA,CACA,Q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HAEA,CACA,cACA,OACA,GACA,IACA,aACA,mBACA,CAAO,CACP,IACA,IACA,IACA,IACA,IACA,IACA,GACA,CAAK,CACL,IACA,gBACA,CAAG,CACH,6BAYA,EACA,kEACA,sBACA,cACA,mBACA,iCACA,CACA,8DAAoE,CACpE,EACA,cAAoB,eACpB,MACA,4DACA,GACA,IACA,gBACA,gBACA,gBAEA,oBACA,OA9BA,gBACA,MACA,4DACA,OACA,WACA,sBACA,WACA,gBACA,gBACA,CACA,EAoBA,WACA,EACA,WAAiB,aACjB,UACA,MACA,IACA,8BACA,EAAI,OACJ,MACA,MACA,OACA,CACA,EACA,YAAkB,eAClB,oBACA,CAEA,EAFA,EAGA,gBAFA,kBAGA,sBACA,EACA,GACA,OACA,KACA,WACA,EACA,aAAmB,aACnB,4BACA,EACA,SAAe,eACf,iDACA,WACA,qBACA,EACA,gDACA,EACA,iCACA,gBACA,MACA,aACA,MACA,EACA,kDACA,CACA,cACA,YACA,eACA,GAEA,cACA,SACA,cACA,YACA,gBACA,6CACA,CAAS,CACT,CACA,EACA,eAAqB,eACrB,sBACA,gCACA,iCACA,QACA,KACA,eAEA,SACA,cACA,UACA,gDACA,6CACA,CAAS,CACT,OACM,iBACN,EACA,SAAe,eACf,GACA,oBACA,oBACA,UACA,sBACA,CACA,WACA,qBACA,WACA,cACA,UACA,gDACA,8CACA,2CACA,cACA,iCACA,gBACA,OACA,eACA,kCACA,iBACA,OACA,YACA,oDACA,WACA,kDACA,6CACA,CAAK,CACL,CACA,EACA,eAAqB,eACrB,sBACA,MACA,4BACA,SACA,GACA,uCACA,KACA,OACA,cACA,UACA,+CACA,CAAO,CACP,EAAM,YACN,EACA,kBAAwB,aACxB,QACA,EACA,yBAA+B,eAC/B,WACA,EACA,cAAoB,iBACpB,8BACA,EACA,eAAqB,YACrB,oCACA,EACA,SAAe,0JCxMC7zB,qCAAAA,aATU,OASnB,SAASA,EAAcxE,CAAY,CAAEmP,CAAc,EACxD,GAAoB,UAAhB,OAAOnP,EA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A,EAlIA,cACE,cAAoB,YACtB,cACA,CACA,EAAE,IACF,WACA,SACE,eAAoB,YACtB,gBACA,CACA,CACA,SACA,KACA,IACA,OACA,IACA,KACA,KACA,KACA,KACA,gDACA,oDACA,qDACA,cACA,eAAqC,UAAgB,CACrD,+BACA,kBACA,KACA,6BACA,YACA,MACA,MACA,CACA,CACA,cAGA,GAFA,KACA,KACA,GACA,eACA,KACA,GACA,eACA,CACA,UACA,WACA,kBACA,CACA,CACA,SACA,KACA,IACA,KACA,aACA,YAEA,sBAGA,CACA,aAEA,GADA,KACA,GACA,uBACA,IACA,SACA,IACA,GACA,KACA,GACA,MACA,KACA,MACA,KACA,QACA,IACA,GAEA,IADA,KAEA,OACA,UACA,CACA,2BAGA,CACA,iBACA,yBACA,gBACA,kBACA,QACA,qBAGA,GADA,mBACA,sBACA,aACA,KACA,KACA,OACA,CACA,eACA,IACA,EAAgB,SAChB,MACA,CACA,qBACA,CACA,UACA,WACA,EACA,EACA,eAEA,IACA,CACA,CACA,OACA,EAAU,OACV,OACA,IACA,IACA,CAEA,CACA,EAAM,OACN,EACA,IACA,IACA,CACA,CACA,CAEA,wBACA,aACA,IACA,OACA,uCACA,yBACA,UACA,oBACA,aACA,mBACA,CACA,EAAE,IACF,aACA,MACA,EACA,gBACA,eACA,mBACA,CAAG,GACH,CACA,uBAA6B,GAC7B,4BAAkC,GAClC,sBAA4B,GAC5B,yBAA+B,GAC/B,oBAA0B,MAC1B,+BAAqC,GACrC,yBAA+B,aAC/B,eACA,EACA,yBAA+B,aAC/B,WACA,cACA,mHAEA,yBACA,EACA,kCAAwC,YACxC,QACA,EACA,eAAqB,aACrB,UACA,OACA,OACA,OACA,QACA,KACA,SACA,GACA,CACA,QACA,IACA,IACA,UACA,EAAI,OACJ,GACA,CACA,EACA,uBAA6B,YAC7B,IACA,EACA,0BAAgC,eAChC,UACA,OACA,OACA,OACA,OACA,OACA,KACA,SACA,GACA,CACA,QACA,IACA,IACA,UACA,EAAI,OACJ,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","sources":["webpack://_N_E/../../../src/client/components/router-reducer/create-initial-router-state.ts","webpack://_N_E/../../../src/client/components/router-reducer/apply-flight-data.ts","webpack://_N_E/../../../src/shared/lib/page-path/ensure-leading-slash.ts","webpack://_N_E/../../../src/client/react-client-callbacks/report-global-error.ts","webpack://_N_E/../../../src/client/components/router-reducer/fill-cache-with-new-subtree-data.ts","webpack://_N_E/../../node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_interop_require_default.js","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/lib/metadata/metadata-constants.js","webpack://_N_E/../../../src/client/components/unstable-rethrow.browser.ts","webpack://_N_E/../../../src/client/components/errors/graceful-degrade-boundary.tsx","webpack://_N_E/../../src/client/has-base-path.ts","webpack://_N_E/../../../src/client/components/match-segments.ts","webpack://_N_E/../../../src/client/components/router-reducer/set-cache-busting-search-param.ts","webpack://_N_E/../../../src/shared/lib/is-plain-object.ts","webpack://_N_E/../../../src/client/components/is-next-router-error.ts","webpack://_N_E/../../../src/client/components/router-reducer/create-router-cache-key.ts","webpack://_N_E/../../../src/client/components/app-router-announcer.tsx","webpack://_N_E/../../../src/client/request/search-params.browser.prod.ts","webpack://_N_E/../../../src/shared/lib/router/utils/cache-busting-search-param.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/compiled/react-dom/client.js","webpack://_N_E/../../../src/client/components/links.ts","webpack://_N_E/../../../src/client/components/bfcache.ts","webpack://_N_E/../../../src/shared/lib/utils/warn-once.ts","webpack://_N_E/../../../src/client/request/params.browser.prod.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/compiled/scheduler/index.js","webpack://_N_E/../../../src/client/components/router-reducer/prefetch-cache-utils.ts","webpack://_N_E/../../../src/shared/lib/router/utils/disable-smooth-scroll.ts","webpack://_N_E/../../../src/client/components/router-reducer/is-navigating-to-new-root-layout.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/compiled/react/cjs/react.production.js","webpack://_N_E/../../../src/shared/lib/router/utils/interception-routes.ts","webpack://_N_E/../../../src/client/components/layout-router.tsx","webpack://_N_E/../../../src/client/components/router-reducer/reducers/get-segment-value.ts","webpack://_N_E/../../../src/client/components/app-router-headers.ts","webpack://_N_E/../../../src/client/components/http-access-fallback/error-boundary.tsx","webpack://_N_E/../../../src/client/components/router-reducer/ppr-navigations.ts","webpack://_N_E/../../../src/client/components/router-reducer/aliased-prefetch-navigations.ts","webpack://_N_E/../../../src/shared/lib/router/utils/app-paths.ts","webpack://_N_E/../../../src/client/components/metadata/async-metadata.tsx","webpack://_N_E/../../../src/client/components/router-reducer/reducers/refresh-reducer.ts","webpack://_N_E/../../../src/client/components/router-reducer/invalidate-cache-by-router-state.ts","webpack://_N_E/../../../src/client/components/router-reducer/refetch-inactive-parallel-segments.ts","webpack://_N_E/../../../src/client/components/redirect.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/lib/is-error.js","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/compiled/react/jsx-runtime.js","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/build/polyfills/polyfill-module.js","webpack://_N_E/../../../src/client/components/router-reducer/handle-mutable.ts","webpack://_N_E/../../../src/client/components/redirect-boundary.tsx","webpack://_N_E/../../src/client/normalize-trailing-slash.ts","webpack://_N_E/../../../src/client/components/unauthorized.ts","webpack://_N_E/../../node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_loose_key.js","webpack://_N_E/../../src/client/app-globals.ts","webpack://_N_E/../../../src/shared/lib/encode-uri-path.ts","webpack://_N_E/../../../src/client/components/router-reducer/compute-changed-path.ts","webpack://_N_E/../../../src/client/components/router-reducer/reducers/prefetch-reducer.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/compiled/react/cjs/react-jsx-runtime.production.js","webpack://_N_E/../../../src/shared/lib/router/utils/add-path-prefix.ts","webpack://_N_E/../../src/client/remove-base-path.ts","webpack://_N_E/../../src/client/app-find-source-map-url.ts","webpack://_N_E/../../../src/client/components/use-action-queue.ts","webpack://_N_E/../../../src/client/components/router-reducer/clear-cache-node-data-for-segment-path.ts","webpack://_N_E/../../../src/shared/lib/hash.ts","webpack://_N_E/../../../src/shared/lib/router/utils/is-bot.ts","webpack://_N_E/../../../src/shared/lib/lazy-dynamic/bailout-to-csr.ts","webpack://_N_E/../../../src/client/components/client-segment.tsx","webpack://_N_E/../../node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_interop_require_wildcard.js","webpack://_N_E/../../../src/client/components/navigation.ts","webpack://_N_E/../../../src/lib/metadata/generate/icon-mark.tsx","webpack://_N_E/../../../src/client/components/handle-isr-error.tsx","webpack://_N_E/../../../src/shared/lib/hooks-client-context.shared-runtime.ts","webpack://_N_E/../../../src/shared/lib/is-thenable.ts","webpack://_N_E/../../../src/client/components/router-reducer/router-reducer.ts","webpack://_N_E/../../../src/client/request/params.browser.ts","webpack://_N_E/../../../src/client/components/router-reducer/reducers/find-head-in-cache.ts","webpack://_N_E/../../../src/client/components/error-boundary.tsx","webpack://_N_E/../../node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_loose_base.js","webpack://_N_E/../../src/client/app-bootstrap.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/build/polyfills/process.js","webpack://_N_E/../../../src/client/components/router-reducer/reducers/server-patch-reducer.ts","webpack://_N_E/../../../src/client/components/metadata/metadata-boundary.tsx","webpack://_N_E/../../../src/client/components/not-found.ts","webpack://_N_E/../../../src/client/react-client-callbacks/on-recoverable-error.ts","webpack://_N_E/../../src/client/assign-location.ts","webpack://_N_E/../../../src/shared/lib/router/utils/html-bots.ts","webpack://_N_E/../../../src/client/components/navigation-untracked.ts","webpack://_N_E/../../../src/shared/lib/server-inserted-html.shared-runtime.tsx","webpack://_N_E/../../../src/client/components/router-reducer/create-href-from-url.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.production.js","webpack://_N_E/../../../src/client/components/router-reducer/fetch-server-response.ts","webpack://_N_E/../../src/client/app-call-server.ts","webpack://_N_E/../../../src/client/components/unstable-rethrow.ts","webpack://_N_E/../../../src/client/components/router-reducer/reducers/hmr-refresh-reducer.ts","webpack://_N_E/../../../src/client/components/router-reducer/should-hard-navigate.ts","webpack://_N_E/../../../src/shared/lib/router/utils/remove-trailing-slash.ts","webpack://_N_E/../../../src/client/components/forbidden.ts","webpack://_N_E/../../src/client/add-base-path.ts","webpack://_N_E/../../../src/client/components/nav-failure-handler.ts","webpack://_N_E/../../../src/shared/lib/utils/reflect-utils.ts","webpack://_N_E/../../src/client/app-next.ts","webpack://_N_E/../../../src/client/components/http-access-fallback/http-access-fallback.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/compiled/react-server-dom-webpack/client.browser.js","webpack://_N_E/../../src/client/app-index.tsx","webpack://_N_E/../../src/client/app-build-id.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/compiled/react-dom/cjs/react-dom.production.js","webpack://_N_E/../../../src/shared/lib/router/utils/path-has-prefix.ts","webpack://_N_E/../../../src/client/components/app-router-instance.ts","webpack://_N_E/../../../src/shared/lib/segment.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/compiled/react/index.js","webpack://_N_E/../../../src/client/components/builtin/global-error.tsx","webpack://_N_E/../../../src/client/components/redirect-status-code.ts","webpack://_N_E/../../../src/shared/lib/server-reference-info.ts","webpack://_N_E/../../../src/shared/lib/invariant-error.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/compiled/process/browser.js","webpack://_N_E/../../src/client/flight-data-helpers.ts","webpack://_N_E/../../../src/client/components/router-reducer/reducers/server-action-reducer.ts","webpack://_N_E/../../../src/client/components/render-from-template-context.tsx","webpack://_N_E/../../../src/client/components/app-router.tsx","webpack://_N_E/../../../src/shared/lib/app-router-context.shared-runtime.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/compiled/react-dom/index.js","webpack://_N_E/../../../src/client/react-client-callbacks/error-boundary-callbacks.ts","webpack://_N_E/../../../src/shared/lib/router/utils/parse-path.ts","webpack://_N_E/../../../src/client/components/unresolved-thenable.ts","webpack://_N_E/../../src/client/app-webpack.ts","webpack://_N_E/../../../src/client/components/segment-cache.ts","webpack://_N_E/../../../src/client/components/router-reducer/handle-segment-mismatch.ts","webpack://_N_E/../../../src/client/components/navigation.react-server.ts","webpack://_N_E/../../../src/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.ts","webpack://_N_E/../../../src/client/components/redirect-error.ts","webpack://_N_E/../../../src/client/components/promise-queue.ts","webpack://_N_E/../../../src/client/components/router-reducer/reducers/restore-reducer.ts","webpack://_N_E/../../../src/client/components/client-page.tsx","webpack://_N_E/../../../src/client/request/search-params.browser.ts","webpack://_N_E/../../../src/client/components/router-reducer/router-reducer-types.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/build/deployment-id.js","webpack://_N_E/../../../src/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.ts","webpack://_N_E/../../../src/client/components/router-reducer/reducers/navigate-reducer.ts","webpack://_N_E/../../../src/client/components/router-reducer/reducers/has-interception-route-in-current-tree.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/compiled/scheduler/cjs/scheduler.production.js","webpack://_N_E/../../../src/client/components/router-reducer/apply-router-state-patch-to-tree.ts","webpack://_N_E/../../../src/shared/lib/head-manager-context.shared-runtime.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/dist/lib/require-instrumentation-client.js"],"sourcesContent":["import type { CacheNode } from '../../../shared/lib/app-router-context.shared-runtime'\nimport type { FlightDataPath } from '../../../server/app-render/types'\n\nimport { createHrefFromUrl } from './create-href-from-url'\nimport { fillLazyItemsTillLeafWithHead } from './fill-lazy-items-till-leaf-with-head'\nimport { extractPathFromFlightRouterState } from './compute-changed-path'\nimport {\n createSeededPrefetchCacheEntry,\n STATIC_STALETIME_MS,\n} from './prefetch-cache-utils'\nimport { PrefetchKind, type PrefetchCacheEntry } from './router-reducer-types'\nimport { addRefreshMarkerToActiveParallelSegments } from './refetch-inactive-parallel-segments'\nimport { getFlightDataPartsFromPath } from '../../flight-data-helpers'\n\nexport interface InitialRouterStateParameters {\n navigatedAt: number\n initialCanonicalUrlParts: string[]\n initialParallelRoutes: CacheNode['parallelRoutes']\n initialFlightData: FlightDataPath[]\n location: Location | null\n couldBeIntercepted: boolean\n postponed: boolean\n prerendered: boolean\n}\n\nexport function createInitialRouterState({\n navigatedAt,\n initialFlightData,\n initialCanonicalUrlParts,\n initialParallelRoutes,\n location,\n couldBeIntercepted,\n postponed,\n prerendered,\n}: InitialRouterStateParameters) {\n // When initialized on the server, the canonical URL is provided as an array of parts.\n // This is to ensure that when the RSC payload streamed to the client, crawlers don't interpret it\n // as a URL that should be crawled.\n const initialCanonicalUrl = initialCanonicalUrlParts.join('/')\n const normalizedFlightData = getFlightDataPartsFromPath(initialFlightData[0])\n const {\n tree: initialTree,\n seedData: initialSeedData,\n head: initialHead,\n } = normalizedFlightData\n // For the SSR render, seed data should always be available (we only send back a `null` response\n // in the case of a `loading` segment, pre-PPR.)\n const rsc = initialSeedData?.[1]\n const loading = initialSeedData?.[3] ?? null\n\n const cache: CacheNode = {\n lazyData: null,\n rsc,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n // The cache gets seeded during the first render. `initialParallelRoutes` ensures the cache from the first render is there during the second render.\n parallelRoutes: initialParallelRoutes,\n loading,\n navigatedAt,\n }\n\n const canonicalUrl =\n // location.href is read as the initial value for canonicalUrl in the browser\n // This is safe to do as canonicalUrl can't be rendered, it's only used to control the history updates in the useEffect further down in this file.\n location\n ? // window.location does not have the same type as URL but has all the fields createHrefFromUrl needs.\n createHrefFromUrl(location)\n : initialCanonicalUrl\n\n addRefreshMarkerToActiveParallelSegments(initialTree, canonicalUrl)\n\n const prefetchCache = new Map<string, PrefetchCacheEntry>()\n\n // When the cache hasn't been seeded yet we fill the cache with the head.\n if (initialParallelRoutes === null || initialParallelRoutes.size === 0) {\n fillLazyItemsTillLeafWithHead(\n navigatedAt,\n cache,\n undefined,\n initialTree,\n initialSeedData,\n initialHead,\n undefined\n )\n }\n\n const initialState = {\n tree: initialTree,\n cache,\n prefetchCache,\n pushRef: {\n pendingPush: false,\n mpaNavigation: false,\n // First render needs to preserve the previous window.history.state\n // to avoid it being overwritten on navigation back/forward with MPA Navigation.\n preserveCustomHistoryState: true,\n },\n focusAndScrollRef: {\n apply: false,\n onlyHashChange: false,\n hashFragment: null,\n segmentPaths: [],\n },\n canonicalUrl,\n nextUrl:\n // the || operator is intentional, the pathname can be an empty string\n (extractPathFromFlightRouterState(initialTree) || location?.pathname) ??\n null,\n }\n\n if (process.env.NODE_ENV !== 'development' && location) {\n // Seed the prefetch cache with this page's data.\n // This is to prevent needlessly re-prefetching a page that is already reusable,\n // and will avoid triggering a loading state/data fetch stall when navigating back to the page.\n // We don't currently do this in development because links aren't prefetched in development\n // so having a mismatch between prefetch/no prefetch provides inconsistent behavior based on which page\n // was loaded first.\n const url = new URL(\n `${location.pathname}${location.search}`,\n location.origin\n )\n\n createSeededPrefetchCacheEntry({\n url,\n data: {\n flightData: [normalizedFlightData],\n canonicalUrl: undefined,\n couldBeIntercepted: !!couldBeIntercepted,\n prerendered,\n postponed,\n // TODO: The initial RSC payload includes both static and dynamic data\n // in the same response, even if PPR is enabled. So if there's any\n // dynamic data at all, we can't set a stale time. In the future we may\n // add a way to split a single Flight stream into static and dynamic\n // parts. But in the meantime we should at least make this work for\n // fully static pages.\n staleTime:\n // In the old router, there was only a single configurable staleTime (experimental.staleTimes)\n // As an abundance of caution, this will only set the initial staleTime to the configured value\n // if we're not leveraging the segment cache, which has its own prefetching semantics.\n prerendered && !process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? STATIC_STALETIME_MS\n : -1,\n },\n tree: initialState.tree,\n prefetchCache: initialState.prefetchCache,\n nextUrl: initialState.nextUrl,\n kind: prerendered ? PrefetchKind.FULL : PrefetchKind.AUTO,\n })\n }\n\n return initialState\n}\n","import type { CacheNode } from '../../../shared/lib/app-router-context.shared-runtime'\nimport { fillLazyItemsTillLeafWithHead } from './fill-lazy-items-till-leaf-with-head'\nimport { fillCacheWithNewSubTreeData } from './fill-cache-with-new-subtree-data'\nimport type { PrefetchCacheEntry } from './router-reducer-types'\nimport type { NormalizedFlightData } from '../../flight-data-helpers'\n\nexport function applyFlightData(\n navigatedAt: number,\n existingCache: CacheNode,\n cache: CacheNode,\n flightData: NormalizedFlightData,\n prefetchEntry?: PrefetchCacheEntry\n): boolean {\n // The one before last item is the router state tree patch\n const { tree: treePatch, seedData, head, isRootRender } = flightData\n\n // Handles case where prefetch only returns the router tree patch without rendered components.\n if (seedData === null) {\n return false\n }\n\n if (isRootRender) {\n const rsc = seedData[1]\n const loading = seedData[3]\n cache.loading = loading\n cache.rsc = rsc\n // This is a PPR-only field. When PPR is enabled, we shouldn't hit\n // this path during a navigation, but until PPR is fully implemented\n // yet it's possible the existing node does have a non-null\n // `prefetchRsc`. As an incremental step, we'll just de-opt to the\n // old behavior — no PPR value.\n cache.prefetchRsc = null\n fillLazyItemsTillLeafWithHead(\n navigatedAt,\n cache,\n existingCache,\n treePatch,\n seedData,\n head,\n prefetchEntry\n )\n } else {\n // Copy rsc for the root node of the cache.\n cache.rsc = existingCache.rsc\n // This is a PPR-only field. Unlike the previous branch, since we're\n // just cloning the existing cache node, we might as well keep the\n // PPR value, if it exists.\n cache.prefetchRsc = existingCache.prefetchRsc\n cache.parallelRoutes = new Map(existingCache.parallelRoutes)\n cache.loading = existingCache.loading\n // Create a copy of the existing cache with the rsc applied.\n fillCacheWithNewSubTreeData(\n navigatedAt,\n cache,\n existingCache,\n flightData,\n prefetchEntry\n )\n }\n\n return true\n}\n","/**\n * For a given page path, this function ensures that there is a leading slash.\n * If there is not a leading slash, one is added, otherwise it is noop.\n */\nexport function ensureLeadingSlash(path: string) {\n return path.startsWith('/') ? path : `/${path}`\n}\n","export const reportGlobalError =\n typeof reportError === 'function'\n ? // In modern browsers, reportError will dispatch an error event,\n // emulating an uncaught JavaScript error.\n reportError\n : (error: unknown) => {\n // TODO: Dispatch error event\n globalThis.console.error(error)\n }\n","import type { CacheNode } from '../../../shared/lib/app-router-context.shared-runtime'\nimport type { Segment } from '../../../server/app-render/types'\nimport { invalidateCacheByRouterState } from './invalidate-cache-by-router-state'\nimport { fillLazyItemsTillLeafWithHead } from './fill-lazy-items-till-leaf-with-head'\nimport { createRouterCacheKey } from './create-router-cache-key'\nimport type { PrefetchCacheEntry } from './router-reducer-types'\nimport { PAGE_SEGMENT_KEY } from '../../../shared/lib/segment'\nimport type { NormalizedFlightData } from '../../flight-data-helpers'\n\n/**\n * Common logic for filling cache with new sub tree data.\n */\nfunction fillCacheHelper(\n navigatedAt: number,\n newCache: CacheNode,\n existingCache: CacheNode,\n flightData: NormalizedFlightData,\n prefetchEntry: PrefetchCacheEntry | undefined,\n fillLazyItems: boolean\n): void {\n const {\n segmentPath,\n seedData: cacheNodeSeedData,\n tree: treePatch,\n head,\n } = flightData\n let newCacheNode = newCache\n let existingCacheNode = existingCache\n\n for (let i = 0; i < segmentPath.length; i += 2) {\n const parallelRouteKey: string = segmentPath[i]\n const segment: Segment = segmentPath[i + 1]\n\n // segmentPath is a repeating tuple of parallelRouteKey and segment\n // we know we've hit the last entry we've reached our final pair\n const isLastEntry = i === segmentPath.length - 2\n const cacheKey = createRouterCacheKey(segment)\n\n const existingChildSegmentMap =\n existingCacheNode.parallelRoutes.get(parallelRouteKey)\n\n if (!existingChildSegmentMap) {\n // Bailout because the existing cache does not have the path to the leaf node\n // Will trigger lazy fetch in layout-router because of missing segment\n continue\n }\n\n let childSegmentMap = newCacheNode.parallelRoutes.get(parallelRouteKey)\n if (!childSegmentMap || childSegmentMap === existingChildSegmentMap) {\n childSegmentMap = new Map(existingChildSegmentMap)\n newCacheNode.parallelRoutes.set(parallelRouteKey, childSegmentMap)\n }\n\n const existingChildCacheNode = existingChildSegmentMap.get(cacheKey)\n let childCacheNode = childSegmentMap.get(cacheKey)\n\n if (isLastEntry) {\n if (\n cacheNodeSeedData &&\n (!childCacheNode ||\n !childCacheNode.lazyData ||\n childCacheNode === existingChildCacheNode)\n ) {\n const incomingSegment = cacheNodeSeedData[0]\n const rsc = cacheNodeSeedData[1]\n const loading = cacheNodeSeedData[3]\n\n childCacheNode = {\n lazyData: null,\n // When `fillLazyItems` is false, we only want to fill the RSC data for the layout,\n // not the page segment.\n rsc:\n fillLazyItems || incomingSegment !== PAGE_SEGMENT_KEY ? rsc : null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n loading,\n parallelRoutes:\n fillLazyItems && existingChildCacheNode\n ? new Map(existingChildCacheNode.parallelRoutes)\n : new Map(),\n navigatedAt,\n }\n\n if (existingChildCacheNode && fillLazyItems) {\n invalidateCacheByRouterState(\n childCacheNode,\n existingChildCacheNode,\n treePatch\n )\n }\n if (fillLazyItems) {\n fillLazyItemsTillLeafWithHead(\n navigatedAt,\n childCacheNode,\n existingChildCacheNode,\n treePatch,\n cacheNodeSeedData,\n head,\n prefetchEntry\n )\n }\n\n childSegmentMap.set(cacheKey, childCacheNode)\n }\n continue\n }\n\n if (!childCacheNode || !existingChildCacheNode) {\n // Bailout because the existing cache does not have the path to the leaf node\n // Will trigger lazy fetch in layout-router because of missing segment\n continue\n }\n\n if (childCacheNode === existingChildCacheNode) {\n childCacheNode = {\n lazyData: childCacheNode.lazyData,\n rsc: childCacheNode.rsc,\n prefetchRsc: childCacheNode.prefetchRsc,\n head: childCacheNode.head,\n prefetchHead: childCacheNode.prefetchHead,\n parallelRoutes: new Map(childCacheNode.parallelRoutes),\n loading: childCacheNode.loading,\n } as CacheNode\n childSegmentMap.set(cacheKey, childCacheNode)\n }\n\n // Move deeper into the cache nodes\n newCacheNode = childCacheNode\n existingCacheNode = existingChildCacheNode\n }\n}\n\n/**\n * Fill cache with rsc based on flightDataPath\n */\nexport function fillCacheWithNewSubTreeData(\n navigatedAt: number,\n newCache: CacheNode,\n existingCache: CacheNode,\n flightData: NormalizedFlightData,\n prefetchEntry?: PrefetchCacheEntry\n): void {\n fillCacheHelper(\n navigatedAt,\n newCache,\n existingCache,\n flightData,\n prefetchEntry,\n true\n )\n}\n\nexport function fillCacheWithNewSubTreeDataButOnlyLoading(\n navigatedAt: number,\n newCache: CacheNode,\n existingCache: CacheNode,\n flightData: NormalizedFlightData,\n prefetchEntry?: PrefetchCacheEntry\n): void {\n fillCacheHelper(\n navigatedAt,\n newCache,\n existingCache,\n flightData,\n prefetchEntry,\n false\n )\n}\n","function _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexport { _interop_require_default as _ };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n METADATA_BOUNDARY_NAME: null,\n OUTLET_BOUNDARY_NAME: null,\n VIEWPORT_BOUNDARY_NAME: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n METADATA_BOUNDARY_NAME: function() {\n return METADATA_BOUNDARY_NAME;\n },\n OUTLET_BOUNDARY_NAME: function() {\n return OUTLET_BOUNDARY_NAME;\n },\n VIEWPORT_BOUNDARY_NAME: function() {\n return VIEWPORT_BOUNDARY_NAME;\n }\n});\nconst METADATA_BOUNDARY_NAME = '__next_metadata_boundary__';\nconst VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__';\nconst OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__';\n\n//# sourceMappingURL=metadata-constants.js.map","import { isBailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'\nimport { isNextRouterError } from './is-next-router-error'\n\nexport function unstable_rethrow(error: unknown): void {\n if (isNextRouterError(error) || isBailoutToCSRError(error)) {\n throw error\n }\n\n if (error instanceof Error && 'cause' in error) {\n unstable_rethrow(error.cause)\n }\n}\n","'use client'\n\nimport { Component, createRef, type ReactNode } from 'react'\n\ninterface ErrorBoundaryProps {\n children: ReactNode\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean\n}\n\nfunction getDomNodeAttributes(node: HTMLElement): Record<string, string> {\n const result: Record<string, string> = {}\n for (let i = 0; i < node.attributes.length; i++) {\n const attr = node.attributes[i]\n result[attr.name] = attr.value\n }\n return result\n}\n\nexport class GracefulDegradeBoundary extends Component<\n ErrorBoundaryProps,\n ErrorBoundaryState\n> {\n private rootHtml: string\n private htmlAttributes: Record<string, string>\n private htmlRef: React.RefObject<HTMLHtmlElement | null>\n\n constructor(props: ErrorBoundaryProps) {\n super(props)\n this.state = { hasError: false }\n this.rootHtml = ''\n this.htmlAttributes = {}\n this.htmlRef = createRef<HTMLHtmlElement>()\n }\n\n static getDerivedStateFromError(_: unknown): ErrorBoundaryState {\n return { hasError: true }\n }\n\n componentDidMount() {\n const htmlNode = this.htmlRef.current\n if (this.state.hasError && htmlNode) {\n // Reapply the cached HTML attributes to the root element\n Object.entries(this.htmlAttributes).forEach(([key, value]) => {\n htmlNode.setAttribute(key, value)\n })\n }\n }\n\n render() {\n const { hasError } = this.state\n // Cache the root HTML content on the first render\n if (typeof window !== 'undefined' && !this.rootHtml) {\n this.rootHtml = document.documentElement.innerHTML\n this.htmlAttributes = getDomNodeAttributes(document.documentElement)\n }\n\n if (hasError) {\n // Render the current HTML content without hydration\n return (\n <html\n ref={this.htmlRef}\n suppressHydrationWarning\n dangerouslySetInnerHTML={{\n __html: this.rootHtml,\n }}\n />\n )\n }\n\n return this.props.children\n }\n}\n\nexport default GracefulDegradeBoundary\n","import { pathHasPrefix } from '../shared/lib/router/utils/path-has-prefix'\n\nconst basePath = (process.env.__NEXT_ROUTER_BASEPATH as string) || ''\n\nexport function hasBasePath(path: string): boolean {\n return pathHasPrefix(path, basePath)\n}\n","import type { Segment } from '../../server/app-render/types'\n\nexport const matchSegment = (\n existingSegment: Segment,\n segment: Segment\n): boolean => {\n // segment is either Array or string\n if (typeof existingSegment === 'string') {\n if (typeof segment === 'string') {\n // Common case: segment is just a string\n return existingSegment === segment\n }\n return false\n }\n\n if (typeof segment === 'string') {\n return false\n }\n return existingSegment[0] === segment[0] && existingSegment[1] === segment[1]\n}\n","'use client'\n\nimport { computeCacheBustingSearchParam } from '../../../shared/lib/router/utils/cache-busting-search-param'\nimport {\n NEXT_ROUTER_PREFETCH_HEADER,\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_URL,\n NEXT_RSC_UNION_QUERY,\n} from '../app-router-headers'\nimport type { RequestHeaders } from './fetch-server-response'\n\n/**\n * Mutates the provided URL by adding a cache-busting search parameter for CDNs that don't\n * support custom headers. This helps avoid caching conflicts by making each request unique.\n *\n * Rather than relying on the Vary header which some CDNs ignore, we append a search param\n * to create a unique URL that forces a fresh request.\n *\n * Example:\n * URL before: https://example.com/path?query=1\n * URL after: https://example.com/path?query=1&_rsc=abc123\n *\n * Note: This function mutates the input URL directly and does not return anything.\n *\n * TODO: Since we need to use a search param anyway, we could simplify by removing the custom\n * headers approach entirely and just use search params.\n */\nexport const setCacheBustingSearchParam = (\n url: URL,\n headers: RequestHeaders\n): void => {\n const uniqueCacheKey = computeCacheBustingSearchParam(\n headers[NEXT_ROUTER_PREFETCH_HEADER],\n headers[NEXT_ROUTER_SEGMENT_PREFETCH_HEADER],\n headers[NEXT_ROUTER_STATE_TREE_HEADER],\n headers[NEXT_URL]\n )\n setCacheBustingSearchParamWithHash(url, uniqueCacheKey)\n}\n\n/**\n * Sets a cache-busting search parameter on a URL using a provided hash value.\n *\n * This function performs the same logic as `setCacheBustingSearchParam` but accepts\n * a pre-computed hash instead of computing it from headers.\n *\n * Example:\n * URL before: https://example.com/path?query=1\n * hash: \"abc123\"\n * URL after: https://example.com/path?query=1&_rsc=abc123\n *\n * If the hash is null, we will set `_rsc` search param without a value.\n * Like this: https://example.com/path?query=1&_rsc\n *\n * Note: This function mutates the input URL directly and does not return anything.\n */\nexport const setCacheBustingSearchParamWithHash = (\n url: URL,\n hash: string\n): void => {\n /**\n * Note that we intentionally do not use `url.searchParams.set` here:\n *\n * const url = new URL('https://example.com/search?q=custom%20spacing');\n * url.searchParams.set('_rsc', 'abc123');\n * console.log(url.toString()); // Outputs: https://example.com/search?q=custom+spacing&_rsc=abc123\n * ^ <--- this is causing confusion\n * This is in fact intended based on https://url.spec.whatwg.org/#interface-urlsearchparams, but\n * we want to preserve the %20 as %20 if that's what the user passed in, hence the custom\n * logic below.\n */\n const existingSearch = url.search\n const rawQuery = existingSearch.startsWith('?')\n ? existingSearch.slice(1)\n : existingSearch\n\n // Always remove any existing cache busting param and add a fresh one to ensure\n // we have the correct value based on current request headers\n const pairs = rawQuery\n .split('&')\n .filter((pair) => pair && !pair.startsWith(`${NEXT_RSC_UNION_QUERY}=`))\n\n if (hash.length > 0) {\n pairs.push(`${NEXT_RSC_UNION_QUERY}=${hash}`)\n } else {\n pairs.push(`${NEXT_RSC_UNION_QUERY}`)\n }\n url.search = pairs.length ? `?${pairs.join('&')}` : ''\n}\n","export function getObjectClassLabel(value: any): string {\n return Object.prototype.toString.call(value)\n}\n\nexport function isPlainObject(value: any): boolean {\n if (getObjectClassLabel(value) !== '[object Object]') {\n return false\n }\n\n const prototype = Object.getPrototypeOf(value)\n\n /**\n * this used to be previously:\n *\n * `return prototype === null || prototype === Object.prototype`\n *\n * but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.\n *\n * It was changed to the current implementation since it's resilient to serialization.\n */\n return prototype === null || prototype.hasOwnProperty('isPrototypeOf')\n}\n","import {\n isHTTPAccessFallbackError,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\nimport { isRedirectError, type RedirectError } from './redirect-error'\n\n/**\n * Returns true if the error is a navigation signal error. These errors are\n * thrown by user code to perform navigation operations and interrupt the React\n * render.\n */\nexport function isNextRouterError(\n error: unknown\n): error is RedirectError | HTTPAccessFallbackError {\n return isRedirectError(error) || isHTTPAccessFallbackError(error)\n}\n","import type { Segment } from '../../../server/app-render/types'\nimport { PAGE_SEGMENT_KEY } from '../../../shared/lib/segment'\n\nexport function createRouterCacheKey(\n segment: Segment,\n withoutSearchParameters: boolean = false\n) {\n // if the segment is an array, it means it's a dynamic segment\n // for example, ['lang', 'en', 'd']. We need to convert it to a string to store it as a cache node key.\n if (Array.isArray(segment)) {\n return `${segment[0]}|${segment[1]}|${segment[2]}`\n }\n\n // Page segments might have search parameters, ie __PAGE__?foo=bar\n // When `withoutSearchParameters` is true, we only want to return the page segment\n if (withoutSearchParameters && segment.startsWith(PAGE_SEGMENT_KEY)) {\n return PAGE_SEGMENT_KEY\n }\n\n return segment\n}\n","import { useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport type { FlightRouterState } from '../../server/app-render/types'\n\nconst ANNOUNCER_TYPE = 'next-route-announcer'\nconst ANNOUNCER_ID = '__next-route-announcer__'\n\nfunction getAnnouncerNode() {\n const existingAnnouncer = document.getElementsByName(ANNOUNCER_TYPE)[0]\n if (existingAnnouncer?.shadowRoot?.childNodes[0]) {\n return existingAnnouncer.shadowRoot.childNodes[0] as HTMLElement\n } else {\n const container = document.createElement(ANNOUNCER_TYPE)\n container.style.cssText = 'position:absolute'\n const announcer = document.createElement('div')\n announcer.ariaLive = 'assertive'\n announcer.id = ANNOUNCER_ID\n announcer.role = 'alert'\n announcer.style.cssText =\n 'position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal'\n\n // Use shadow DOM here to avoid any potential CSS bleed\n const shadow = container.attachShadow({ mode: 'open' })\n shadow.appendChild(announcer)\n document.body.appendChild(container)\n return announcer\n }\n}\n\nexport function AppRouterAnnouncer({ tree }: { tree: FlightRouterState }) {\n const [portalNode, setPortalNode] = useState<HTMLElement | null>(null)\n\n useEffect(() => {\n const announcer = getAnnouncerNode()\n setPortalNode(announcer)\n return () => {\n const container = document.getElementsByTagName(ANNOUNCER_TYPE)[0]\n if (container?.isConnected) {\n document.body.removeChild(container)\n }\n }\n }, [])\n\n const [routeAnnouncement, setRouteAnnouncement] = useState('')\n const previousTitle = useRef<string | undefined>(undefined)\n\n useEffect(() => {\n let currentTitle = ''\n if (document.title) {\n currentTitle = document.title\n } else {\n const pageHeader = document.querySelector('h1')\n if (pageHeader) {\n currentTitle = pageHeader.innerText || pageHeader.textContent || ''\n }\n }\n\n // Only announce the title change, but not for the first load because screen\n // readers do that automatically.\n if (\n previousTitle.current !== undefined &&\n previousTitle.current !== currentTitle\n ) {\n setRouteAnnouncement(currentTitle)\n }\n previousTitle.current = currentTitle\n }, [tree])\n\n return portalNode ? createPortal(routeAnnouncement, portalNode) : null\n}\n","import type { SearchParams } from '../../server/request/search-params'\n\nimport { wellKnownProperties } from '../../shared/lib/utils/reflect-utils'\n\ninterface CacheLifetime {}\nconst CachedSearchParams = new WeakMap<CacheLifetime, Promise<SearchParams>>()\n\nfunction makeUntrackedExoticSearchParams(\n underlyingSearchParams: SearchParams\n): Promise<SearchParams> {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams)\n if (cachedSearchParams) {\n return cachedSearchParams\n }\n\n // We don't use makeResolvedReactPromise here because searchParams\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(underlyingSearchParams)\n CachedSearchParams.set(underlyingSearchParams, promise)\n\n Object.keys(underlyingSearchParams).forEach((prop) => {\n if (wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n ;(promise as any)[prop] = underlyingSearchParams[prop]\n }\n })\n\n return promise\n}\n\nfunction makeUntrackedSearchParams(\n underlyingSearchParams: SearchParams\n): Promise<SearchParams> {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams)\n if (cachedSearchParams) {\n return cachedSearchParams\n }\n\n const promise = Promise.resolve(underlyingSearchParams)\n CachedSearchParams.set(underlyingSearchParams, promise)\n\n return promise\n}\n\nexport function createRenderSearchParamsFromClient(\n underlyingSearchParams: SearchParams\n): Promise<SearchParams> {\n if (process.env.__NEXT_DYNAMIC_IO) {\n return makeUntrackedSearchParams(underlyingSearchParams)\n }\n\n return makeUntrackedExoticSearchParams(underlyingSearchParams)\n}\n","import { hexHash } from '../../hash'\n\nexport function computeCacheBustingSearchParam(\n prefetchHeader: string | string[] | undefined,\n segmentPrefetchHeader: string | string[] | undefined,\n stateTreeHeader: string | string[] | undefined,\n nextUrlHeader: string | string[] | undefined\n): string {\n if (\n prefetchHeader === undefined &&\n segmentPrefetchHeader === undefined &&\n stateTreeHeader === undefined &&\n nextUrlHeader === undefined\n ) {\n return ''\n }\n return hexHash(\n [\n prefetchHeader || '0',\n segmentPrefetchHeader || '0',\n stateTreeHeader || '0',\n nextUrlHeader || '0',\n ].join(',')\n )\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom-client.production.js');\n} else {\n module.exports = require('./cjs/react-dom-client.development.js');\n}\n","import type { FlightRouterState } from '../../server/app-render/types'\nimport type { AppRouterInstance } from '../../shared/lib/app-router-context.shared-runtime'\nimport { getCurrentAppRouterState } from './app-router-instance'\nimport { createPrefetchURL } from './app-router'\nimport { PrefetchKind } from './router-reducer/router-reducer-types'\nimport { isPrefetchTaskDirty } from './segment-cache'\nimport { createCacheKey } from './segment-cache'\nimport {\n type PrefetchTask,\n PrefetchPriority,\n schedulePrefetchTask as scheduleSegmentPrefetchTask,\n cancelPrefetchTask,\n reschedulePrefetchTask,\n} from './segment-cache'\nimport { startTransition } from 'react'\n\ntype LinkElement = HTMLAnchorElement | SVGAElement\n\ntype Element = LinkElement | HTMLFormElement\n\n// Properties that are shared between Link and Form instances. We use the same\n// shape for both to prevent a polymorphic de-opt in the VM.\ntype LinkOrFormInstanceShared = {\n router: AppRouterInstance\n kind: PrefetchKind.AUTO | PrefetchKind.FULL\n\n isVisible: boolean\n\n // The most recently initiated prefetch task. It may or may not have\n // already completed. The same prefetch task object can be reused across\n // multiple prefetches of the same link.\n prefetchTask: PrefetchTask | null\n}\n\nexport type FormInstance = LinkOrFormInstanceShared & {\n prefetchHref: string\n setOptimisticLinkStatus: null\n}\n\ntype PrefetchableLinkInstance = LinkOrFormInstanceShared & {\n prefetchHref: string\n setOptimisticLinkStatus: (status: { pending: boolean }) => void\n}\n\ntype NonPrefetchableLinkInstance = LinkOrFormInstanceShared & {\n prefetchHref: null\n setOptimisticLinkStatus: (status: { pending: boolean }) => void\n}\n\ntype PrefetchableInstance = PrefetchableLinkInstance | FormInstance\n\nexport type LinkInstance =\n | PrefetchableLinkInstance\n | NonPrefetchableLinkInstance\n\n// Tracks the most recently navigated link instance. When null, indicates\n// the current navigation was not initiated by a link click.\nlet linkForMostRecentNavigation: LinkInstance | null = null\n\n// Status object indicating link is pending\nexport const PENDING_LINK_STATUS = { pending: true }\n\n// Status object indicating link is idle\nexport const IDLE_LINK_STATUS = { pending: false }\n\n// Updates the loading state when navigating between links\n// - Resets the previous link's loading state\n// - Sets the new link's loading state\n// - Updates tracking of current navigation\nexport function setLinkForCurrentNavigation(link: LinkInstance | null) {\n startTransition(() => {\n linkForMostRecentNavigation?.setOptimisticLinkStatus(IDLE_LINK_STATUS)\n link?.setOptimisticLinkStatus(PENDING_LINK_STATUS)\n linkForMostRecentNavigation = link\n })\n}\n\n// Unmounts the current link instance from navigation tracking\nexport function unmountLinkForCurrentNavigation(link: LinkInstance) {\n if (linkForMostRecentNavigation === link) {\n linkForMostRecentNavigation = null\n }\n}\n\n// Use a WeakMap to associate a Link instance with its DOM element. This is\n// used by the IntersectionObserver to track the link's visibility.\nconst prefetchable:\n | WeakMap<Element, PrefetchableInstance>\n | Map<Element, PrefetchableInstance> =\n typeof WeakMap === 'function' ? new WeakMap() : new Map()\n\n// A Set of the currently visible links. We re-prefetch visible links after a\n// cache invalidation, or when the current URL changes. It's a separate data\n// structure from the WeakMap above because only the visible links need to\n// be enumerated.\nconst prefetchableAndVisible: Set<PrefetchableInstance> = new Set()\n\n// A single IntersectionObserver instance shared by all <Link> components.\nconst observer: IntersectionObserver | null =\n typeof IntersectionObserver === 'function'\n ? new IntersectionObserver(handleIntersect, {\n rootMargin: '200px',\n })\n : null\n\nfunction observeVisibility(element: Element, instance: PrefetchableInstance) {\n const existingInstance = prefetchable.get(element)\n if (existingInstance !== undefined) {\n // This shouldn't happen because each <Link> component should have its own\n // anchor tag instance, but it's defensive coding to avoid a memory leak in\n // case there's a logical error somewhere else.\n unmountPrefetchableInstance(element)\n }\n // Only track prefetchable links that have a valid prefetch URL\n prefetchable.set(element, instance)\n if (observer !== null) {\n observer.observe(element)\n }\n}\n\nfunction coercePrefetchableUrl(href: string): URL | null {\n try {\n return createPrefetchURL(href)\n } catch {\n // createPrefetchURL sometimes throws an error if an invalid URL is\n // provided, though I'm not sure if it's actually necessary.\n // TODO: Consider removing the throw from the inner function, or change it\n // to reportError. Or maybe the error isn't even necessary for automatic\n // prefetches, just navigations.\n const reportErrorFn =\n typeof reportError === 'function' ? reportError : console.error\n reportErrorFn(\n `Cannot prefetch '${href}' because it cannot be converted to a URL.`\n )\n return null\n }\n}\n\nexport function mountLinkInstance(\n element: LinkElement,\n href: string,\n router: AppRouterInstance,\n kind: PrefetchKind.AUTO | PrefetchKind.FULL,\n prefetchEnabled: boolean,\n setOptimisticLinkStatus: (status: { pending: boolean }) => void\n): LinkInstance {\n if (prefetchEnabled) {\n const prefetchURL = coercePrefetchableUrl(href)\n if (prefetchURL !== null) {\n const instance: PrefetchableLinkInstance = {\n router,\n kind,\n isVisible: false,\n prefetchTask: null,\n prefetchHref: prefetchURL.href,\n setOptimisticLinkStatus,\n }\n // We only observe the link's visibility if it's prefetchable. For\n // example, this excludes links to external URLs.\n observeVisibility(element, instance)\n return instance\n }\n }\n // If the link is not prefetchable, we still create an instance so we can\n // track its optimistic state (i.e. useLinkStatus).\n const instance: NonPrefetchableLinkInstance = {\n router,\n kind,\n isVisible: false,\n prefetchTask: null,\n prefetchHref: null,\n setOptimisticLinkStatus,\n }\n return instance\n}\n\nexport function mountFormInstance(\n element: HTMLFormElement,\n href: string,\n router: AppRouterInstance,\n kind: PrefetchKind.AUTO | PrefetchKind.FULL\n): void {\n const prefetchURL = coercePrefetchableUrl(href)\n if (prefetchURL === null) {\n // This href is not prefetchable, so we don't track it.\n // TODO: We currently observe/unobserve a form every time its href changes.\n // For Links, this isn't a big deal because the href doesn't usually change,\n // but for forms it's extremely common. We should optimize this.\n return\n }\n const instance: FormInstance = {\n router,\n kind,\n isVisible: false,\n prefetchTask: null,\n prefetchHref: prefetchURL.href,\n setOptimisticLinkStatus: null,\n }\n observeVisibility(element, instance)\n}\n\nexport function unmountPrefetchableInstance(element: Element) {\n const instance = prefetchable.get(element)\n if (instance !== undefined) {\n prefetchable.delete(element)\n prefetchableAndVisible.delete(instance)\n const prefetchTask = instance.prefetchTask\n if (prefetchTask !== null) {\n cancelPrefetchTask(prefetchTask)\n }\n }\n if (observer !== null) {\n observer.unobserve(element)\n }\n}\n\nfunction handleIntersect(entries: Array<IntersectionObserverEntry>) {\n for (const entry of entries) {\n // Some extremely old browsers or polyfills don't reliably support\n // isIntersecting so we check intersectionRatio instead. (Do we care? Not\n // really. But whatever this is fine.)\n const isVisible = entry.intersectionRatio > 0\n onLinkVisibilityChanged(entry.target as HTMLAnchorElement, isVisible)\n }\n}\n\nexport function onLinkVisibilityChanged(element: Element, isVisible: boolean) {\n if (process.env.NODE_ENV !== 'production') {\n // Prefetching on viewport is disabled in development for performance\n // reasons, because it requires compiling the target page.\n // TODO: Investigate re-enabling this.\n return\n }\n\n const instance = prefetchable.get(element)\n if (instance === undefined) {\n return\n }\n\n instance.isVisible = isVisible\n if (isVisible) {\n prefetchableAndVisible.add(instance)\n } else {\n prefetchableAndVisible.delete(instance)\n }\n rescheduleLinkPrefetch(instance, PrefetchPriority.Default)\n}\n\nexport function onNavigationIntent(\n element: HTMLAnchorElement | SVGAElement,\n unstable_upgradeToDynamicPrefetch: boolean\n) {\n const instance = prefetchable.get(element)\n if (instance === undefined) {\n return\n }\n // Prefetch the link on hover/touchstart.\n if (instance !== undefined) {\n if (\n process.env.__NEXT_DYNAMIC_ON_HOVER &&\n unstable_upgradeToDynamicPrefetch\n ) {\n // Switch to a full, dynamic prefetch\n instance.kind = PrefetchKind.FULL\n }\n rescheduleLinkPrefetch(instance, PrefetchPriority.Intent)\n }\n}\n\nfunction rescheduleLinkPrefetch(\n instance: PrefetchableInstance,\n priority: PrefetchPriority.Default | PrefetchPriority.Intent\n) {\n const existingPrefetchTask = instance.prefetchTask\n\n if (!instance.isVisible) {\n // Cancel any in-progress prefetch task. (If it already finished then this\n // is a no-op.)\n if (existingPrefetchTask !== null) {\n cancelPrefetchTask(existingPrefetchTask)\n }\n // We don't need to reset the prefetchTask to null upon cancellation; an\n // old task object can be rescheduled with reschedulePrefetchTask. This is a\n // micro-optimization but also makes the code simpler (don't need to\n // worry about whether an old task object is stale).\n return\n }\n\n if (!process.env.__NEXT_CLIENT_SEGMENT_CACHE) {\n // The old prefetch implementation does not have different priority levels.\n // Just schedule a new prefetch task.\n prefetchWithOldCacheImplementation(instance)\n return\n }\n\n const appRouterState = getCurrentAppRouterState()\n if (appRouterState !== null) {\n const treeAtTimeOfPrefetch = appRouterState.tree\n if (existingPrefetchTask === null) {\n // Initiate a prefetch task.\n const nextUrl = appRouterState.nextUrl\n const cacheKey = createCacheKey(instance.prefetchHref, nextUrl)\n instance.prefetchTask = scheduleSegmentPrefetchTask(\n cacheKey,\n treeAtTimeOfPrefetch,\n instance.kind === PrefetchKind.FULL,\n priority,\n null\n )\n } else {\n // We already have an old task object that we can reschedule. This is\n // effectively the same as canceling the old task and creating a new one.\n reschedulePrefetchTask(\n existingPrefetchTask,\n treeAtTimeOfPrefetch,\n instance.kind === PrefetchKind.FULL,\n priority\n )\n }\n }\n}\n\nexport function pingVisibleLinks(\n nextUrl: string | null,\n tree: FlightRouterState\n) {\n // For each currently visible link, cancel the existing prefetch task (if it\n // exists) and schedule a new one. This is effectively the same as if all the\n // visible links left and then re-entered the viewport.\n //\n // This is called when the Next-Url or the base tree changes, since those\n // may affect the result of a prefetch task. It's also called after a\n // cache invalidation.\n for (const instance of prefetchableAndVisible) {\n const task = instance.prefetchTask\n if (task !== null && !isPrefetchTaskDirty(task, nextUrl, tree)) {\n // The cache has not been invalidated, and none of the inputs have\n // changed. Bail out.\n continue\n }\n // Something changed. Cancel the existing prefetch task and schedule a\n // new one.\n if (task !== null) {\n cancelPrefetchTask(task)\n }\n const cacheKey = createCacheKey(instance.prefetchHref, nextUrl)\n instance.prefetchTask = scheduleSegmentPrefetchTask(\n cacheKey,\n tree,\n instance.kind === PrefetchKind.FULL,\n PrefetchPriority.Default,\n null\n )\n }\n}\n\nfunction prefetchWithOldCacheImplementation(instance: PrefetchableInstance) {\n // This is the path used when the Segment Cache is not enabled.\n if (typeof window === 'undefined') {\n return\n }\n\n const doPrefetch = async () => {\n // note that `appRouter.prefetch()` is currently sync,\n // so we have to wrap this call in an async function to be able to catch() errors below.\n return instance.router.prefetch(instance.prefetchHref, {\n kind: instance.kind,\n })\n }\n\n // Prefetch the page if asked (only in the client)\n // We need to handle a prefetch error here since we may be\n // loading with priority which can reject but we don't\n // want to force navigation since this is only a prefetch\n doPrefetch().catch((err) => {\n if (process.env.NODE_ENV !== 'production') {\n // rethrow to show invalid URL errors\n throw err\n }\n })\n}\n","import type { FlightRouterState } from '../../server/app-render/types'\nimport { useState } from 'react'\n\n// When the flag is disabled, only track the currently active tree\nconst MAX_BF_CACHE_ENTRIES = process.env.__NEXT_ROUTER_BF_CACHE ? 3 : 1\n\nexport type RouterBFCacheEntry = {\n tree: FlightRouterState\n stateKey: string\n // The entries form a linked list, sorted in order of most recently active.\n next: RouterBFCacheEntry | null\n}\n\n/**\n * Keeps track of the most recent N trees (FlightRouterStates) that were active\n * at a certain segment level. E.g. for a segment \"/a/b/[param]\", this hook\n * tracks the last N param values that the router rendered for N.\n *\n * The result of this hook precisely determines the number and order of\n * trees that are rendered in parallel at their segment level.\n *\n * The purpose of this cache is to we can preserve the React and DOM state of\n * some number of inactive trees, by rendering them in an <Activity> boundary.\n * That means it would not make sense for the the lifetime of the cache to be\n * any longer than the lifetime of the React tree; e.g. if the hook were\n * unmounted, then the React tree would be, too. So, we use React state to\n * manage it.\n *\n * Note that we don't store the RSC data for the cache entries in this hook —\n * the data for inactive segments is stored in the parent CacheNode, which\n * *does* have a longer lifetime than the React tree. This hook only determines\n * which of those trees should have their *state* preserved, by <Activity>.\n */\nexport function useRouterBFCache(\n activeTree: FlightRouterState,\n activeStateKey: string\n): RouterBFCacheEntry {\n // The currently active entry. The entries form a linked list, sorted in\n // order of most recently active. This allows us to reuse parts of the list\n // without cloning, unless there's a reordering or removal.\n // TODO: Once we start tracking back/forward history at each route level,\n // we should use the history order instead. In other words, when traversing\n // to an existing entry as a result of a popstate event, we should maintain\n // the existing order instead of moving it to the front of the list. I think\n // an initial implementation of this could be to pass an incrementing id\n // to history.pushState/replaceState, then use that here for ordering.\n const [prevActiveEntry, setPrevActiveEntry] = useState<RouterBFCacheEntry>(\n () => {\n const initialEntry: RouterBFCacheEntry = {\n tree: activeTree,\n stateKey: activeStateKey,\n next: null,\n }\n return initialEntry\n }\n )\n\n if (prevActiveEntry.tree === activeTree) {\n // Fast path. The active tree hasn't changed, so we can reuse the\n // existing state.\n return prevActiveEntry\n }\n\n // The route tree changed. Note that this doesn't mean that the tree changed\n // *at this level* — the change may be due to a child route. Either way, we\n // need to either add or update the router tree in the bfcache.\n //\n // The rest of the code looks more complicated than it actually is because we\n // can't mutate the state in place; we have to copy-on-write.\n\n // Create a new entry for the active cache key. This is the head of the new\n // linked list.\n const newActiveEntry: RouterBFCacheEntry = {\n tree: activeTree,\n stateKey: activeStateKey,\n next: null,\n }\n\n // We need to append the old list onto the new list. If the head of the new\n // list was already present in the cache, then we'll need to clone everything\n // that came before it. Then we can reuse the rest.\n let n = 1\n let oldEntry: RouterBFCacheEntry | null = prevActiveEntry\n let clonedEntry: RouterBFCacheEntry = newActiveEntry\n while (oldEntry !== null && n < MAX_BF_CACHE_ENTRIES) {\n if (oldEntry.stateKey === activeStateKey) {\n // Fast path. This entry in the old list that corresponds to the key that\n // is now active. We've already placed a clone of this entry at the front\n // of the new list. We can reuse the rest of the old list without cloning.\n // NOTE: We don't need to worry about eviction in this case because we\n // haven't increased the size of the cache, and we assume the max size\n // is constant across renders. If we were to change it to a dynamic limit,\n // then the implementation would need to account for that.\n clonedEntry.next = oldEntry.next\n break\n } else {\n // Clone the entry and append it to the list.\n n++\n const entry: RouterBFCacheEntry = {\n tree: oldEntry.tree,\n stateKey: oldEntry.stateKey,\n next: null,\n }\n clonedEntry.next = entry\n clonedEntry = entry\n }\n oldEntry = oldEntry.next\n }\n\n setPrevActiveEntry(newActiveEntry)\n return newActiveEntry\n}\n","let warnOnce = (_: string) => {}\nif (process.env.NODE_ENV !== 'production') {\n const warnings = new Set<string>()\n warnOnce = (msg: string) => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\nexport { warnOnce }\n","import type { Params } from '../../server/request/params'\nimport { wellKnownProperties } from '../../shared/lib/utils/reflect-utils'\n\ninterface CacheLifetime {}\nconst CachedParams = new WeakMap<CacheLifetime, Promise<Params>>()\n\nfunction makeUntrackedExoticParams(underlyingParams: Params): Promise<Params> {\n const cachedParams = CachedParams.get(underlyingParams)\n if (cachedParams) {\n return cachedParams\n }\n\n const promise = Promise.resolve(underlyingParams)\n CachedParams.set(underlyingParams, promise)\n\n Object.keys(underlyingParams).forEach((prop) => {\n if (wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n ;(promise as any)[prop] = underlyingParams[prop]\n }\n })\n\n return promise\n}\n\nfunction makeUntrackedParams(underlyingParams: Params): Promise<Params> {\n const cachedParams = CachedParams.get(underlyingParams)\n if (cachedParams) {\n return cachedParams\n }\n\n const promise = Promise.resolve(underlyingParams)\n CachedParams.set(underlyingParams, promise)\n\n return promise\n}\n\nexport function createRenderParamsFromClient(\n clientParams: Params\n): Promise<Params> {\n if (process.env.__NEXT_DYNAMIC_IO) {\n return makeUntrackedParams(clientParams)\n }\n\n return makeUntrackedExoticParams(clientParams)\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","import {\n fetchServerResponse,\n type FetchServerResponseResult,\n} from './fetch-server-response'\nimport {\n PrefetchCacheEntryStatus,\n type PrefetchCacheEntry,\n PrefetchKind,\n type ReadonlyReducerState,\n} from './router-reducer-types'\nimport { prefetchQueue } from './reducers/prefetch-reducer'\n\nconst INTERCEPTION_CACHE_KEY_MARKER = '%'\n\nexport type AliasedPrefetchCacheEntry = PrefetchCacheEntry & {\n /** This is a special property that indicates a prefetch entry associated with a different URL\n * was returned rather than the requested URL. This signals to the router that it should only\n * apply the part that doesn't depend on searchParams (specifically the loading state).\n */\n aliased?: boolean\n}\n\n/**\n * Creates a cache key for the router prefetch cache\n *\n * @param url - The URL being navigated to\n * @param nextUrl - an internal URL, primarily used for handling rewrites. Defaults to '/'.\n * @return The generated prefetch cache key.\n */\nfunction createPrefetchCacheKeyImpl(\n url: URL,\n includeSearchParams: boolean,\n prefix?: string | null\n) {\n // Initially we only use the pathname as the cache key. We don't want to include\n // search params so that multiple URLs with the same search parameter can re-use\n // loading states.\n let pathnameFromUrl = url.pathname\n\n // RSC responses can differ based on search params, specifically in the case where we aren't\n // returning a partial response (ie with `PrefetchKind.AUTO`).\n // In the auto case, since loading.js & layout.js won't have access to search params,\n // we can safely re-use that cache entry. But for full prefetches, we should not\n // re-use the cache entry as the response may differ.\n if (includeSearchParams) {\n // if we have a full prefetch, we can include the search param in the key,\n // as we'll be getting back a full response. The server might have read the search\n // params when generating the full response.\n pathnameFromUrl += url.search\n }\n\n if (prefix) {\n return `${prefix}${INTERCEPTION_CACHE_KEY_MARKER}${pathnameFromUrl}`\n }\n\n return pathnameFromUrl\n}\n\nfunction createPrefetchCacheKey(\n url: URL,\n kind: PrefetchKind | undefined,\n nextUrl?: string | null\n) {\n return createPrefetchCacheKeyImpl(url, kind === PrefetchKind.FULL, nextUrl)\n}\n\nfunction getExistingCacheEntry(\n url: URL,\n kind: PrefetchKind = PrefetchKind.TEMPORARY,\n nextUrl: string | null,\n prefetchCache: Map<string, PrefetchCacheEntry>,\n allowAliasing: boolean\n): AliasedPrefetchCacheEntry | undefined {\n // We first check if there's a more specific interception route prefetch entry\n // This is because when we detect a prefetch that corresponds with an interception route, we prefix it with nextUrl (see `createPrefetchCacheKey`)\n // to avoid conflicts with other pages that may have the same URL but render different things depending on the `Next-URL` header.\n for (const maybeNextUrl of [nextUrl, null]) {\n const cacheKeyWithParams = createPrefetchCacheKeyImpl(\n url,\n true,\n maybeNextUrl\n )\n const cacheKeyWithoutParams = createPrefetchCacheKeyImpl(\n url,\n false,\n maybeNextUrl\n )\n\n // First, we check if we have a cache entry that exactly matches the URL\n const cacheKeyToUse = url.search\n ? cacheKeyWithParams\n : cacheKeyWithoutParams\n\n const existingEntry = prefetchCache.get(cacheKeyToUse)\n if (existingEntry && allowAliasing) {\n // We know we're returning an aliased entry when the pathname matches but the search params don't,\n const isAliased =\n existingEntry.url.pathname === url.pathname &&\n existingEntry.url.search !== url.search\n\n if (isAliased) {\n return {\n ...existingEntry,\n aliased: true,\n }\n }\n\n return existingEntry\n }\n\n // If the request contains search params, and we're not doing a full prefetch, we can return the\n // param-less entry if it exists.\n // This is technically covered by the check at the bottom of this function, which iterates over cache entries,\n // but lets us arrive there quicker in the param-full case.\n const entryWithoutParams = prefetchCache.get(cacheKeyWithoutParams)\n if (\n process.env.NODE_ENV !== 'development' &&\n allowAliasing &&\n url.search &&\n kind !== PrefetchKind.FULL &&\n entryWithoutParams &&\n // We shouldn't return the aliased entry if it was relocated to a new cache key.\n // Since it's rewritten, it could respond with a completely different loading state.\n !entryWithoutParams.key.includes(INTERCEPTION_CACHE_KEY_MARKER)\n ) {\n return { ...entryWithoutParams, aliased: true }\n }\n }\n\n // If we've gotten to this point, we didn't find a specific cache entry that matched\n // the request URL.\n // We attempt a partial match by checking if there's a cache entry with the same pathname.\n // Regardless of what we find, since it doesn't correspond with the requested URL, we'll mark it \"aliased\".\n // This will signal to the router that it should only apply the loading state on the prefetched data.\n if (\n process.env.NODE_ENV !== 'development' &&\n kind !== PrefetchKind.FULL &&\n allowAliasing\n ) {\n for (const cacheEntry of prefetchCache.values()) {\n if (\n cacheEntry.url.pathname === url.pathname &&\n // We shouldn't return the aliased entry if it was relocated to a new cache key.\n // Since it's rewritten, it could respond with a completely different loading state.\n !cacheEntry.key.includes(INTERCEPTION_CACHE_KEY_MARKER)\n ) {\n return { ...cacheEntry, aliased: true }\n }\n }\n }\n\n return undefined\n}\n\n/**\n * Returns a prefetch cache entry if one exists. Otherwise creates a new one and enqueues a fetch request\n * to retrieve the prefetch data from the server.\n */\nexport function getOrCreatePrefetchCacheEntry({\n url,\n nextUrl,\n tree,\n prefetchCache,\n kind,\n allowAliasing = true,\n}: Pick<ReadonlyReducerState, 'nextUrl' | 'prefetchCache' | 'tree'> & {\n url: URL\n kind?: PrefetchKind\n allowAliasing: boolean\n}): AliasedPrefetchCacheEntry {\n const existingCacheEntry = getExistingCacheEntry(\n url,\n kind,\n nextUrl,\n prefetchCache,\n allowAliasing\n )\n\n if (existingCacheEntry) {\n // Grab the latest status of the cache entry and update it\n existingCacheEntry.status = getPrefetchEntryCacheStatus(existingCacheEntry)\n\n // when `kind` is provided, an explicit prefetch was requested.\n // if the requested prefetch is \"full\" and the current cache entry wasn't, we want to re-prefetch with the new intent\n const switchedToFullPrefetch =\n existingCacheEntry.kind !== PrefetchKind.FULL &&\n kind === PrefetchKind.FULL\n\n if (switchedToFullPrefetch) {\n // If we switched to a full prefetch, validate that the existing cache entry contained partial data.\n // It's possible that the cache entry was seeded with full data but has a cache type of \"auto\" (ie when cache entries\n // are seeded but without a prefetch intent)\n existingCacheEntry.data.then((prefetchResponse) => {\n const isFullPrefetch =\n Array.isArray(prefetchResponse.flightData) &&\n prefetchResponse.flightData.some((flightData) => {\n // If we started rendering from the root and we returned RSC data (seedData), we already had a full prefetch.\n return flightData.isRootRender && flightData.seedData !== null\n })\n\n if (!isFullPrefetch) {\n return createLazyPrefetchEntry({\n tree,\n url,\n nextUrl,\n prefetchCache,\n // If we didn't get an explicit prefetch kind, we want to set a temporary kind\n // rather than assuming the same intent as the previous entry, to be consistent with how we\n // lazily create prefetch entries when intent is left unspecified.\n kind: kind ?? PrefetchKind.TEMPORARY,\n })\n }\n })\n }\n\n // If the existing cache entry was marked as temporary, it means it was lazily created when attempting to get an entry,\n // where we didn't have the prefetch intent. Now that we have the intent (in `kind`), we want to update the entry to the more accurate kind.\n if (kind && existingCacheEntry.kind === PrefetchKind.TEMPORARY) {\n existingCacheEntry.kind = kind\n }\n\n // We've determined that the existing entry we found is still valid, so we return it.\n return existingCacheEntry\n }\n\n // If we didn't return an entry, create a new one.\n return createLazyPrefetchEntry({\n tree,\n url,\n nextUrl,\n prefetchCache,\n kind: kind || PrefetchKind.TEMPORARY,\n })\n}\n\n/*\n * Used to take an existing cache entry and prefix it with the nextUrl, if it exists.\n * This ensures that we don't have conflicting cache entries for the same URL (as is the case with route interception).\n */\nfunction prefixExistingPrefetchCacheEntry({\n url,\n nextUrl,\n prefetchCache,\n existingCacheKey,\n}: Pick<ReadonlyReducerState, 'nextUrl' | 'prefetchCache'> & {\n url: URL\n existingCacheKey: string\n}) {\n const existingCacheEntry = prefetchCache.get(existingCacheKey)\n if (!existingCacheEntry) {\n // no-op -- there wasn't an entry to move\n return\n }\n\n const newCacheKey = createPrefetchCacheKey(\n url,\n existingCacheEntry.kind,\n nextUrl\n )\n prefetchCache.set(newCacheKey, { ...existingCacheEntry, key: newCacheKey })\n prefetchCache.delete(existingCacheKey)\n\n return newCacheKey\n}\n\n/**\n * Use to seed the prefetch cache with data that has already been fetched.\n */\nexport function createSeededPrefetchCacheEntry({\n nextUrl,\n tree,\n prefetchCache,\n url,\n data,\n kind,\n}: Pick<ReadonlyReducerState, 'nextUrl' | 'tree' | 'prefetchCache'> & {\n url: URL\n data: FetchServerResponseResult\n kind: PrefetchKind\n}) {\n // The initial cache entry technically includes full data, but it isn't explicitly prefetched -- we just seed the\n // prefetch cache so that we can skip an extra prefetch request later, since we already have the data.\n // if the prefetch corresponds with an interception route, we use the nextUrl to prefix the cache key\n const prefetchCacheKey = data.couldBeIntercepted\n ? createPrefetchCacheKey(url, kind, nextUrl)\n : createPrefetchCacheKey(url, kind)\n\n const prefetchEntry = {\n treeAtTimeOfPrefetch: tree,\n data: Promise.resolve(data),\n kind,\n prefetchTime: Date.now(),\n lastUsedTime: Date.now(),\n staleTime: data.staleTime,\n key: prefetchCacheKey,\n status: PrefetchCacheEntryStatus.fresh,\n url,\n } satisfies PrefetchCacheEntry\n\n prefetchCache.set(prefetchCacheKey, prefetchEntry)\n\n return prefetchEntry\n}\n\n/**\n * Creates a prefetch entry entry and enqueues a fetch request to retrieve the data.\n */\nfunction createLazyPrefetchEntry({\n url,\n kind,\n tree,\n nextUrl,\n prefetchCache,\n}: Pick<ReadonlyReducerState, 'nextUrl' | 'tree' | 'prefetchCache'> & {\n url: URL\n kind: PrefetchKind\n}): PrefetchCacheEntry {\n const prefetchCacheKey = createPrefetchCacheKey(url, kind)\n\n // initiates the fetch request for the prefetch and attaches a listener\n // to the promise to update the prefetch cache entry when the promise resolves (if necessary)\n const data = prefetchQueue.enqueue(() =>\n fetchServerResponse(url, {\n flightRouterState: tree,\n nextUrl,\n prefetchKind: kind,\n }).then((prefetchResponse) => {\n // TODO: `fetchServerResponse` should be more tighly coupled to these prefetch cache operations\n // to avoid drift between this cache key prefixing logic\n // (which is currently directly influenced by the server response)\n let newCacheKey\n\n if (prefetchResponse.couldBeIntercepted) {\n // Determine if we need to prefix the cache key with the nextUrl\n newCacheKey = prefixExistingPrefetchCacheEntry({\n url,\n existingCacheKey: prefetchCacheKey,\n nextUrl,\n prefetchCache,\n })\n }\n\n // If the prefetch was a cache hit, we want to update the existing cache entry to reflect that it was a full prefetch.\n // This is because we know that a static response will contain the full RSC payload, and can be updated to respect the `static`\n // staleTime.\n if (prefetchResponse.prerendered) {\n const existingCacheEntry = prefetchCache.get(\n // if we prefixed the cache key due to route interception, we want to use the new key. Otherwise we use the original key\n newCacheKey ?? prefetchCacheKey\n )\n if (existingCacheEntry) {\n existingCacheEntry.kind = PrefetchKind.FULL\n if (prefetchResponse.staleTime !== -1) {\n // This is the stale time that was collected by the server during\n // static generation. Use this in place of the default stale time.\n existingCacheEntry.staleTime = prefetchResponse.staleTime\n }\n }\n }\n\n return prefetchResponse\n })\n )\n\n const prefetchEntry = {\n treeAtTimeOfPrefetch: tree,\n data,\n kind,\n prefetchTime: Date.now(),\n lastUsedTime: null,\n staleTime: -1,\n key: prefetchCacheKey,\n status: PrefetchCacheEntryStatus.fresh,\n url,\n }\n\n prefetchCache.set(prefetchCacheKey, prefetchEntry)\n\n return prefetchEntry\n}\n\nexport function prunePrefetchCache(\n prefetchCache: ReadonlyReducerState['prefetchCache']\n) {\n for (const [href, prefetchCacheEntry] of prefetchCache) {\n if (\n getPrefetchEntryCacheStatus(prefetchCacheEntry) ===\n PrefetchCacheEntryStatus.expired\n ) {\n prefetchCache.delete(href)\n }\n }\n}\n\n// These values are set by `define-env-plugin` (based on `nextConfig.experimental.staleTimes`)\n// and default to 5 minutes (static) / 0 seconds (dynamic)\nexport const DYNAMIC_STALETIME_MS =\n Number(process.env.__NEXT_CLIENT_ROUTER_DYNAMIC_STALETIME) * 1000\n\nexport const STATIC_STALETIME_MS =\n Number(process.env.__NEXT_CLIENT_ROUTER_STATIC_STALETIME) * 1000\n\nfunction getPrefetchEntryCacheStatus({\n kind,\n prefetchTime,\n lastUsedTime,\n staleTime,\n}: PrefetchCacheEntry): PrefetchCacheEntryStatus {\n if (staleTime !== -1) {\n // `staleTime` is the value sent by the server during static generation.\n // When this is available, it takes precedence over any of the heuristics\n // that follow.\n //\n // TODO: When PPR is enabled, the server will *always* return a stale time\n // when prefetching. We should never use a prefetch entry that hasn't yet\n // received data from the server. So the only two cases should be 1) we use\n // the server-generated stale time 2) the unresolved entry is discarded.\n return Date.now() < prefetchTime + staleTime\n ? PrefetchCacheEntryStatus.fresh\n : PrefetchCacheEntryStatus.stale\n }\n\n // We will re-use the cache entry data for up to the `dynamic` staletime window.\n if (Date.now() < (lastUsedTime ?? prefetchTime) + DYNAMIC_STALETIME_MS) {\n return lastUsedTime\n ? PrefetchCacheEntryStatus.reusable\n : PrefetchCacheEntryStatus.fresh\n }\n\n // For \"auto\" prefetching, we'll re-use only the loading boundary for up to `static` staletime window.\n // A stale entry will only re-use the `loading` boundary, not the full data.\n // This will trigger a \"lazy fetch\" for the full data.\n if (kind === PrefetchKind.AUTO) {\n if (Date.now() < prefetchTime + STATIC_STALETIME_MS) {\n return PrefetchCacheEntryStatus.stale\n }\n }\n\n // for \"full\" prefetching, we'll re-use the cache entry data for up to `static` staletime window.\n if (kind === PrefetchKind.FULL) {\n if (Date.now() < prefetchTime + STATIC_STALETIME_MS) {\n return PrefetchCacheEntryStatus.reusable\n }\n }\n\n return PrefetchCacheEntryStatus.expired\n}\n","import { warnOnce } from '../../utils/warn-once'\n\n/**\n * Run function with `scroll-behavior: auto` applied to `<html/>`.\n * This css change will be reverted after the function finishes.\n */\nexport function disableSmoothScrollDuringRouteTransition(\n fn: () => void,\n options: { dontForceLayout?: boolean; onlyHashChange?: boolean } = {}\n) {\n // if only the hash is changed, we don't need to disable smooth scrolling\n // we only care to prevent smooth scrolling when navigating to a new page to avoid jarring UX\n if (options.onlyHashChange) {\n fn()\n return\n }\n\n const htmlElement = document.documentElement\n const hasDataAttribute = htmlElement.dataset.scrollBehavior === 'smooth'\n\n // Since this is a breaking change, this is temporarily flagged\n // and will be false by default.\n // In the next major (v16), this will be automatically enabled\n if (process.env.__NEXT_OPTIMIZE_ROUTER_SCROLL) {\n if (!hasDataAttribute) {\n // No smooth scrolling configured, run directly without style manipulation\n fn()\n return\n }\n } else {\n // Old behavior: always manipulate styles, but warn about upcoming change\n\n // Warn if smooth scrolling is detected but no data attribute is present\n if (\n process.env.NODE_ENV === 'development' &&\n !hasDataAttribute &&\n getComputedStyle(htmlElement).scrollBehavior === 'smooth'\n ) {\n warnOnce(\n 'Detected `scroll-behavior: smooth` on the `<html>` element. In a future version, ' +\n 'Next.js will no longer automatically disable smooth scrolling during route transitions. ' +\n 'To prepare for this change, add `data-scroll-behavior=\"smooth\"` to your <html> element. ' +\n 'Learn more: https://nextjs.org/docs/messages/missing-data-scroll-behavior'\n )\n }\n }\n\n // Proceed with temporarily disabling smooth scrolling\n const existing = htmlElement.style.scrollBehavior\n htmlElement.style.scrollBehavior = 'auto'\n if (!options.dontForceLayout) {\n // In Chrome-based browsers we need to force reflow before calling `scrollTo`.\n // Otherwise it will not pickup the change in scrollBehavior\n // More info here: https://github.com/vercel/next.js/issues/40719#issuecomment-1336248042\n htmlElement.getClientRects()\n }\n fn()\n htmlElement.style.scrollBehavior = existing\n}\n","import type { FlightRouterState } from '../../../server/app-render/types'\n\nexport function isNavigatingToNewRootLayout(\n currentTree: FlightRouterState,\n nextTree: FlightRouterState\n): boolean {\n // Compare segments\n const currentTreeSegment = currentTree[0]\n const nextTreeSegment = nextTree[0]\n\n // If any segment is different before we find the root layout, the root layout has changed.\n // E.g. /same/(group1)/layout.js -> /same/(group2)/layout.js\n // First segment is 'same' for both, keep looking. (group1) changed to (group2) before the root layout was found, it must have changed.\n if (Array.isArray(currentTreeSegment) && Array.isArray(nextTreeSegment)) {\n // Compare dynamic param name and type but ignore the value, different values would not affect the current root layout\n // /[name] - /slug1 and /slug2, both values (slug1 & slug2) still has the same layout /[name]/layout.js\n if (\n currentTreeSegment[0] !== nextTreeSegment[0] ||\n currentTreeSegment[2] !== nextTreeSegment[2]\n ) {\n return true\n }\n } else if (currentTreeSegment !== nextTreeSegment) {\n return true\n }\n\n // Current tree root layout found\n if (currentTree[4]) {\n // If the next tree doesn't have the root layout flag, it must have changed.\n return !nextTree[4]\n }\n // Current tree didn't have its root layout here, must have changed.\n if (nextTree[4]) {\n return true\n }\n // We can't assume it's `parallelRoutes.children` here in case the root layout is `app/@something/layout.js`\n // But it's not possible to be more than one parallelRoutes before the root layout is found\n // TODO-APP: change to traverse all parallel routes\n const currentTreeChild = Object.values(currentTree[1])[0]\n const nextTreeChild = Object.values(nextTree[1])[0]\n if (!currentTreeChild || !nextTreeChild) return true\n return isNavigatingToNewRootLayout(currentTreeChild, nextTreeChild)\n}\n","/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, self, source, owner, props) {\n self = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== self ? self : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(\n oldElement.type,\n newKey,\n void 0,\n void 0,\n void 0,\n oldElement.props\n );\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n };\nexports.Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n};\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key,\n owner = void 0;\n if (null != config)\n for (propName in (void 0 !== config.ref && (owner = void 0),\n void 0 !== config.key && (key = \"\" + config.key),\n config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, void 0, void 0, owner, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, void 0, void 0, null, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.2.0-canary-97cdd5d3-20250710\";\n","import { normalizeAppPath } from './app-paths'\n\n// order matters here, the first match will be used\nexport const INTERCEPTION_ROUTE_MARKERS = [\n '(..)(..)',\n '(.)',\n '(..)',\n '(...)',\n] as const\n\nexport function isInterceptionRouteAppPath(path: string): boolean {\n // TODO-APP: add more serious validation\n return (\n path\n .split('/')\n .find((segment) =>\n INTERCEPTION_ROUTE_MARKERS.find((m) => segment.startsWith(m))\n ) !== undefined\n )\n}\n\nexport function extractInterceptionRouteInformation(path: string) {\n let interceptingRoute: string | undefined,\n marker: (typeof INTERCEPTION_ROUTE_MARKERS)[number] | undefined,\n interceptedRoute: string | undefined\n\n for (const segment of path.split('/')) {\n marker = INTERCEPTION_ROUTE_MARKERS.find((m) => segment.startsWith(m))\n if (marker) {\n ;[interceptingRoute, interceptedRoute] = path.split(marker, 2)\n break\n }\n }\n\n if (!interceptingRoute || !marker || !interceptedRoute) {\n throw new Error(\n `Invalid interception route: ${path}. Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>`\n )\n }\n\n interceptingRoute = normalizeAppPath(interceptingRoute) // normalize the path, e.g. /(blog)/feed -> /feed\n\n switch (marker) {\n case '(.)':\n // (.) indicates that we should match with sibling routes, so we just need to append the intercepted route to the intercepting route\n if (interceptingRoute === '/') {\n interceptedRoute = `/${interceptedRoute}`\n } else {\n interceptedRoute = interceptingRoute + '/' + interceptedRoute\n }\n break\n case '(..)':\n // (..) indicates that we should match at one level up, so we need to remove the last segment of the intercepting route\n if (interceptingRoute === '/') {\n throw new Error(\n `Invalid interception route: ${path}. Cannot use (..) marker at the root level, use (.) instead.`\n )\n }\n interceptedRoute = interceptingRoute\n .split('/')\n .slice(0, -1)\n .concat(interceptedRoute)\n .join('/')\n break\n case '(...)':\n // (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route\n interceptedRoute = '/' + interceptedRoute\n break\n case '(..)(..)':\n // (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route\n\n const splitInterceptingRoute = interceptingRoute.split('/')\n if (splitInterceptingRoute.length <= 2) {\n throw new Error(\n `Invalid interception route: ${path}. Cannot use (..)(..) marker at the root level or one level up.`\n )\n }\n\n interceptedRoute = splitInterceptingRoute\n .slice(0, -2)\n .concat(interceptedRoute)\n .join('/')\n break\n default:\n throw new Error('Invariant: unexpected marker')\n }\n\n return { interceptingRoute, interceptedRoute }\n}\n","'use client'\n\nimport type {\n CacheNode,\n LazyCacheNode,\n LoadingModuleData,\n} from '../../shared/lib/app-router-context.shared-runtime'\nimport type {\n FlightRouterState,\n FlightSegmentPath,\n} from '../../server/app-render/types'\nimport type { ErrorComponent } from './error-boundary'\nimport {\n ACTION_SERVER_PATCH,\n type FocusAndScrollRef,\n} from './router-reducer/router-reducer-types'\n\nimport React, {\n useContext,\n use,\n startTransition,\n Suspense,\n useDeferredValue,\n type JSX,\n} from 'react'\nimport ReactDOM from 'react-dom'\nimport {\n LayoutRouterContext,\n GlobalLayoutRouterContext,\n TemplateContext,\n} from '../../shared/lib/app-router-context.shared-runtime'\nimport { fetchServerResponse } from './router-reducer/fetch-server-response'\nimport { unresolvedThenable } from './unresolved-thenable'\nimport { ErrorBoundary } from './error-boundary'\nimport { matchSegment } from './match-segments'\nimport { disableSmoothScrollDuringRouteTransition } from '../../shared/lib/router/utils/disable-smooth-scroll'\nimport { RedirectBoundary } from './redirect-boundary'\nimport { HTTPAccessFallbackBoundary } from './http-access-fallback/error-boundary'\nimport { createRouterCacheKey } from './router-reducer/create-router-cache-key'\nimport { hasInterceptionRouteInCurrentTree } from './router-reducer/reducers/has-interception-route-in-current-tree'\nimport { dispatchAppRouterAction } from './use-action-queue'\nimport { useRouterBFCache, type RouterBFCacheEntry } from './bfcache'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\n\nconst Activity = process.env.__NEXT_ROUTER_BF_CACHE\n ? (require('react') as typeof import('react')).unstable_Activity\n : null!\n\n/**\n * Add refetch marker to router state at the point of the current layout segment.\n * This ensures the response returned is not further down than the current layout segment.\n */\nfunction walkAddRefetch(\n segmentPathToWalk: FlightSegmentPath | undefined,\n treeToRecreate: FlightRouterState\n): FlightRouterState {\n if (segmentPathToWalk) {\n const [segment, parallelRouteKey] = segmentPathToWalk\n const isLast = segmentPathToWalk.length === 2\n\n if (matchSegment(treeToRecreate[0], segment)) {\n if (treeToRecreate[1].hasOwnProperty(parallelRouteKey)) {\n if (isLast) {\n const subTree = walkAddRefetch(\n undefined,\n treeToRecreate[1][parallelRouteKey]\n )\n return [\n treeToRecreate[0],\n {\n ...treeToRecreate[1],\n [parallelRouteKey]: [\n subTree[0],\n subTree[1],\n subTree[2],\n 'refetch',\n ],\n },\n ]\n }\n\n return [\n treeToRecreate[0],\n {\n ...treeToRecreate[1],\n [parallelRouteKey]: walkAddRefetch(\n segmentPathToWalk.slice(2),\n treeToRecreate[1][parallelRouteKey]\n ),\n },\n ]\n }\n }\n }\n\n return treeToRecreate\n}\n\nconst __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = (\n ReactDOM as any\n).__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE\n\n// TODO-APP: Replace with new React API for finding dom nodes without a `ref` when available\n/**\n * Wraps ReactDOM.findDOMNode with additional logic to hide React Strict Mode warning\n */\nfunction findDOMNode(\n instance: React.ReactInstance | null | undefined\n): Element | Text | null {\n // Tree-shake for server bundle\n if (typeof window === 'undefined') return null\n\n // __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode is null during module init.\n // We need to lazily reference it.\n const internal_reactDOMfindDOMNode =\n __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode\n return internal_reactDOMfindDOMNode(instance)\n}\n\nconst rectProperties = [\n 'bottom',\n 'height',\n 'left',\n 'right',\n 'top',\n 'width',\n 'x',\n 'y',\n] as const\n/**\n * Check if a HTMLElement is hidden or fixed/sticky position\n */\nfunction shouldSkipElement(element: HTMLElement) {\n // we ignore fixed or sticky positioned elements since they'll likely pass the \"in-viewport\" check\n // and will result in a situation we bail on scroll because of something like a fixed nav,\n // even though the actual page content is offscreen\n if (['sticky', 'fixed'].includes(getComputedStyle(element).position)) {\n if (process.env.NODE_ENV === 'development') {\n console.warn(\n 'Skipping auto-scroll behavior due to `position: sticky` or `position: fixed` on element:',\n element\n )\n }\n return true\n }\n\n // Uses `getBoundingClientRect` to check if the element is hidden instead of `offsetParent`\n // because `offsetParent` doesn't consider document/body\n const rect = element.getBoundingClientRect()\n return rectProperties.every((item) => rect[item] === 0)\n}\n\n/**\n * Check if the top corner of the HTMLElement is in the viewport.\n */\nfunction topOfElementInViewport(element: HTMLElement, viewportHeight: number) {\n const rect = element.getBoundingClientRect()\n return rect.top >= 0 && rect.top <= viewportHeight\n}\n\n/**\n * Find the DOM node for a hash fragment.\n * If `top` the page has to scroll to the top of the page. This mirrors the browser's behavior.\n * If the hash fragment is an id, the page has to scroll to the element with that id.\n * If the hash fragment is a name, the page has to scroll to the first element with that name.\n */\nfunction getHashFragmentDomNode(hashFragment: string) {\n // If the hash fragment is `top` the page has to scroll to the top of the page.\n if (hashFragment === 'top') {\n return document.body\n }\n\n // If the hash fragment is an id, the page has to scroll to the element with that id.\n return (\n document.getElementById(hashFragment) ??\n // If the hash fragment is a name, the page has to scroll to the first element with that name.\n document.getElementsByName(hashFragment)[0]\n )\n}\ninterface ScrollAndFocusHandlerProps {\n focusAndScrollRef: FocusAndScrollRef\n children: React.ReactNode\n segmentPath: FlightSegmentPath\n}\nclass InnerScrollAndFocusHandler extends React.Component<ScrollAndFocusHandlerProps> {\n handlePotentialScroll = () => {\n // Handle scroll and focus, it's only applied once in the first useEffect that triggers that changed.\n const { focusAndScrollRef, segmentPath } = this.props\n\n if (focusAndScrollRef.apply) {\n // segmentPaths is an array of segment paths that should be scrolled to\n // if the current segment path is not in the array, the scroll is not applied\n // unless the array is empty, in which case the scroll is always applied\n if (\n focusAndScrollRef.segmentPaths.length !== 0 &&\n !focusAndScrollRef.segmentPaths.some((scrollRefSegmentPath) =>\n segmentPath.every((segment, index) =>\n matchSegment(segment, scrollRefSegmentPath[index])\n )\n )\n ) {\n return\n }\n\n let domNode:\n | ReturnType<typeof getHashFragmentDomNode>\n | ReturnType<typeof findDOMNode> = null\n const hashFragment = focusAndScrollRef.hashFragment\n\n if (hashFragment) {\n domNode = getHashFragmentDomNode(hashFragment)\n }\n\n // `findDOMNode` is tricky because it returns just the first child if the component is a fragment.\n // This already caused a bug where the first child was a <link/> in head.\n if (!domNode) {\n domNode = findDOMNode(this)\n }\n\n // If there is no DOM node this layout-router level is skipped. It'll be handled higher-up in the tree.\n if (!(domNode instanceof Element)) {\n return\n }\n\n // Verify if the element is a HTMLElement and if we want to consider it for scroll behavior.\n // If the element is skipped, try to select the next sibling and try again.\n while (!(domNode instanceof HTMLElement) || shouldSkipElement(domNode)) {\n if (process.env.NODE_ENV !== 'production') {\n if (domNode.parentElement?.localName === 'head') {\n // TODO: We enter this state when metadata was rendered as part of the page or via Next.js.\n // This is always a bug in Next.js and caused by React hoisting metadata.\n // We need to replace `findDOMNode` in favor of Fragment Refs (when available) so that we can skip over metadata.\n }\n }\n\n // No siblings found that match the criteria are found, so handle scroll higher up in the tree instead.\n if (domNode.nextElementSibling === null) {\n return\n }\n domNode = domNode.nextElementSibling\n }\n\n // State is mutated to ensure that the focus and scroll is applied only once.\n focusAndScrollRef.apply = false\n focusAndScrollRef.hashFragment = null\n focusAndScrollRef.segmentPaths = []\n\n disableSmoothScrollDuringRouteTransition(\n () => {\n // In case of hash scroll, we only need to scroll the element into view\n if (hashFragment) {\n ;(domNode as HTMLElement).scrollIntoView()\n\n return\n }\n // Store the current viewport height because reading `clientHeight` causes a reflow,\n // and it won't change during this function.\n const htmlElement = document.documentElement\n const viewportHeight = htmlElement.clientHeight\n\n // If the element's top edge is already in the viewport, exit early.\n if (topOfElementInViewport(domNode as HTMLElement, viewportHeight)) {\n return\n }\n\n // Otherwise, try scrolling go the top of the document to be backward compatible with pages\n // scrollIntoView() called on `<html/>` element scrolls horizontally on chrome and firefox (that shouldn't happen)\n // We could use it to scroll horizontally following RTL but that also seems to be broken - it will always scroll left\n // scrollLeft = 0 also seems to ignore RTL and manually checking for RTL is too much hassle so we will scroll just vertically\n htmlElement.scrollTop = 0\n\n // Scroll to domNode if domNode is not in viewport when scrolled to top of document\n if (!topOfElementInViewport(domNode as HTMLElement, viewportHeight)) {\n // Scroll into view doesn't scroll horizontally by default when not needed\n ;(domNode as HTMLElement).scrollIntoView()\n }\n },\n {\n // We will force layout by querying domNode position\n dontForceLayout: true,\n onlyHashChange: focusAndScrollRef.onlyHashChange,\n }\n )\n\n // Mutate after scrolling so that it can be read by `disableSmoothScrollDuringRouteTransition`\n focusAndScrollRef.onlyHashChange = false\n\n // Set focus on the element\n domNode.focus()\n }\n }\n\n componentDidMount() {\n this.handlePotentialScroll()\n }\n\n componentDidUpdate() {\n // Because this property is overwritten in handlePotentialScroll it's fine to always run it when true as it'll be set to false for subsequent renders.\n if (this.props.focusAndScrollRef.apply) {\n this.handlePotentialScroll()\n }\n }\n\n render() {\n return this.props.children\n }\n}\n\nfunction ScrollAndFocusHandler({\n segmentPath,\n children,\n}: {\n segmentPath: FlightSegmentPath\n children: React.ReactNode\n}) {\n const context = useContext(GlobalLayoutRouterContext)\n if (!context) {\n throw new Error('invariant global layout router not mounted')\n }\n\n return (\n <InnerScrollAndFocusHandler\n segmentPath={segmentPath}\n focusAndScrollRef={context.focusAndScrollRef}\n >\n {children}\n </InnerScrollAndFocusHandler>\n )\n}\n\n/**\n * InnerLayoutRouter handles rendering the provided segment based on the cache.\n */\nfunction InnerLayoutRouter({\n tree,\n segmentPath,\n cacheNode,\n url,\n}: {\n tree: FlightRouterState\n segmentPath: FlightSegmentPath\n cacheNode: CacheNode\n url: string\n}) {\n const context = useContext(GlobalLayoutRouterContext)\n if (!context) {\n throw new Error('invariant global layout router not mounted')\n }\n\n const { tree: fullTree } = context\n\n // `rsc` represents the renderable node for this segment.\n\n // If this segment has a `prefetchRsc`, it's the statically prefetched data.\n // We should use that on initial render instead of `rsc`. Then we'll switch\n // to `rsc` when the dynamic response streams in.\n //\n // If no prefetch data is available, then we go straight to rendering `rsc`.\n const resolvedPrefetchRsc =\n cacheNode.prefetchRsc !== null ? cacheNode.prefetchRsc : cacheNode.rsc\n\n // We use `useDeferredValue` to handle switching between the prefetched and\n // final values. The second argument is returned on initial render, then it\n // re-renders with the first argument.\n const rsc: any = useDeferredValue(cacheNode.rsc, resolvedPrefetchRsc)\n\n // `rsc` is either a React node or a promise for a React node, except we\n // special case `null` to represent that this segment's data is missing. If\n // it's a promise, we need to unwrap it so we can determine whether or not the\n // data is missing.\n const resolvedRsc: React.ReactNode =\n typeof rsc === 'object' && rsc !== null && typeof rsc.then === 'function'\n ? use(rsc)\n : rsc\n\n if (!resolvedRsc) {\n // The data for this segment is not available, and there's no pending\n // navigation that will be able to fulfill it. We need to fetch more from\n // the server and patch the cache.\n\n // Check if there's already a pending request.\n let lazyData = cacheNode.lazyData\n if (lazyData === null) {\n /**\n * Router state with refetch marker added\n */\n // TODO-APP: remove ''\n const refetchTree = walkAddRefetch(['', ...segmentPath], fullTree)\n const includeNextUrl = hasInterceptionRouteInCurrentTree(fullTree)\n const navigatedAt = Date.now()\n cacheNode.lazyData = lazyData = fetchServerResponse(\n new URL(url, location.origin),\n {\n flightRouterState: refetchTree,\n nextUrl: includeNextUrl ? context.nextUrl : null,\n }\n ).then((serverResponse) => {\n startTransition(() => {\n dispatchAppRouterAction({\n type: ACTION_SERVER_PATCH,\n previousTree: fullTree,\n serverResponse,\n navigatedAt,\n })\n })\n\n return serverResponse\n })\n\n // Suspend while waiting for lazyData to resolve\n use(lazyData)\n }\n // Suspend infinitely as `changeByServerResponse` will cause a different part of the tree to be rendered.\n // A falsey `resolvedRsc` indicates missing data -- we should not commit that branch, and we need to wait for the data to arrive.\n use(unresolvedThenable) as never\n }\n\n // If we get to this point, then we know we have something we can render.\n const subtree = (\n // The layout router context narrows down tree and childNodes at each level.\n <LayoutRouterContext.Provider\n value={{\n parentTree: tree,\n parentCacheNode: cacheNode,\n parentSegmentPath: segmentPath,\n\n // TODO-APP: overriding of url for parallel routes\n url: url,\n }}\n >\n {resolvedRsc}\n </LayoutRouterContext.Provider>\n )\n // Ensure root layout is not wrapped in a div as the root layout renders `<html>`\n return subtree\n}\n\n/**\n * Renders suspense boundary with the provided \"loading\" property as the fallback.\n * If no loading property is provided it renders the children without a suspense boundary.\n */\nfunction LoadingBoundary({\n loading,\n children,\n}: {\n loading: LoadingModuleData | Promise<LoadingModuleData>\n children: React.ReactNode\n}): JSX.Element {\n // If loading is a promise, unwrap it. This happens in cases where we haven't\n // yet received the loading data from the server — which includes whether or\n // not this layout has a loading component at all.\n //\n // It's OK to suspend here instead of inside the fallback because this\n // promise will resolve simultaneously with the data for the segment itself.\n // So it will never suspend for longer than it would have if we didn't use\n // a Suspense fallback at all.\n let loadingModuleData\n if (\n typeof loading === 'object' &&\n loading !== null &&\n typeof (loading as any).then === 'function'\n ) {\n const promiseForLoading = loading as Promise<LoadingModuleData>\n loadingModuleData = use(promiseForLoading)\n } else {\n loadingModuleData = loading as LoadingModuleData\n }\n\n if (loadingModuleData) {\n const loadingRsc = loadingModuleData[0]\n const loadingStyles = loadingModuleData[1]\n const loadingScripts = loadingModuleData[2]\n return (\n <Suspense\n fallback={\n <>\n {loadingStyles}\n {loadingScripts}\n {loadingRsc}\n </>\n }\n >\n {children}\n </Suspense>\n )\n }\n\n return <>{children}</>\n}\n\nfunction RenderChildren({ children }: { children: React.ReactNode }) {\n return <>{children}</>\n}\n\n/**\n * OuterLayoutRouter handles the current segment as well as <Offscreen> rendering of other segments.\n * It can be rendered next to each other with a different `parallelRouterKey`, allowing for Parallel routes.\n */\nexport default function OuterLayoutRouter({\n parallelRouterKey,\n error,\n errorStyles,\n errorScripts,\n templateStyles,\n templateScripts,\n template,\n notFound,\n forbidden,\n unauthorized,\n gracefullyDegrade,\n segmentViewBoundaries,\n}: {\n parallelRouterKey: string\n error: ErrorComponent | undefined\n errorStyles: React.ReactNode | undefined\n errorScripts: React.ReactNode | undefined\n templateStyles: React.ReactNode | undefined\n templateScripts: React.ReactNode | undefined\n template: React.ReactNode\n notFound: React.ReactNode | undefined\n forbidden: React.ReactNode | undefined\n unauthorized: React.ReactNode | undefined\n gracefullyDegrade?: boolean\n segmentViewBoundaries?: React.ReactNode\n}) {\n const context = useContext(LayoutRouterContext)\n if (!context) {\n throw new Error('invariant expected layout router to be mounted')\n }\n\n const { parentTree, parentCacheNode, parentSegmentPath, url } = context\n\n // Get the CacheNode for this segment by reading it from the parent segment's\n // child map.\n const parentParallelRoutes = parentCacheNode.parallelRoutes\n let segmentMap = parentParallelRoutes.get(parallelRouterKey)\n // If the parallel router cache node does not exist yet, create it.\n // This writes to the cache when there is no item in the cache yet. It never *overwrites* existing cache items which is why it's safe in concurrent mode.\n if (!segmentMap) {\n segmentMap = new Map()\n parentParallelRoutes.set(parallelRouterKey, segmentMap)\n }\n const parentTreeSegment = parentTree[0]\n const segmentPath =\n parentSegmentPath === null\n ? // TODO: The root segment value is currently omitted from the segment\n // path. This has led to a bunch of special cases scattered throughout\n // the code. We should clean this up.\n [parallelRouterKey]\n : parentSegmentPath.concat([parentTreeSegment, parallelRouterKey])\n\n // The \"state\" key of a segment is the one passed to React — it represents the\n // identity of the UI tree. Whenever the state key changes, the tree is\n // recreated and the state is reset. In the App Router model, search params do\n // not cause state to be lost, so two segments with the same segment path but\n // different search params should have the same state key.\n //\n // The \"cache\" key of a segment, however, *does* include the search params, if\n // it's possible that the segment accessed the search params on the server.\n // (This only applies to page segments; layout segments cannot access search\n // params on the server.)\n const activeTree = parentTree[1][parallelRouterKey]\n const activeSegment = activeTree[0]\n const activeStateKey = createRouterCacheKey(activeSegment, true) // no search params\n\n // At each level of the route tree, not only do we render the currently\n // active segment — we also render the last N segments that were active at\n // this level inside a hidden <Activity> boundary, to preserve their state\n // if or when the user navigates to them again.\n //\n // bfcacheEntry is a linked list of FlightRouterStates.\n let bfcacheEntry: RouterBFCacheEntry | null = useRouterBFCache(\n activeTree,\n activeStateKey\n )\n let children: Array<React.ReactNode> = []\n do {\n const tree = bfcacheEntry.tree\n const stateKey = bfcacheEntry.stateKey\n const segment = tree[0]\n const cacheKey = createRouterCacheKey(segment)\n\n // Read segment path from the parallel router cache node.\n let cacheNode = segmentMap.get(cacheKey)\n if (cacheNode === undefined) {\n // When data is not available during rendering client-side we need to fetch\n // it from the server.\n const newLazyCacheNode: LazyCacheNode = {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1,\n }\n\n // Flight data fetch kicked off during render and put into the cache.\n cacheNode = newLazyCacheNode\n segmentMap.set(cacheKey, newLazyCacheNode)\n }\n\n /*\n - Error boundary\n - Only renders error boundary if error component is provided.\n - Rendered for each segment to ensure they have their own error state.\n - When gracefully degrade for bots, skip rendering error boundary.\n - Loading boundary\n - Only renders suspense boundary if loading components is provided.\n - Rendered for each segment to ensure they have their own loading state.\n - Passed to the router during rendering to ensure it can be immediately rendered when suspending on a Flight fetch.\n */\n\n const ErrorBoundaryComponent = gracefullyDegrade\n ? RenderChildren\n : ErrorBoundary\n\n let segmentBoundaryTriggerNode: React.ReactNode = null\n let segmentViewStateNode: React.ReactNode = null\n if (\n process.env.NODE_ENV !== 'production' &&\n process.env.__NEXT_DEVTOOL_SEGMENT_EXPLORER\n ) {\n const { SegmentBoundaryTriggerNode, SegmentViewStateNode } =\n require('../../next-devtools/userspace/app/segment-explorer-node') as typeof import('../../next-devtools/userspace/app/segment-explorer-node')\n\n const pagePrefix = normalizeAppPath(url)\n segmentViewStateNode = (\n <SegmentViewStateNode key={pagePrefix} page={pagePrefix} />\n )\n\n segmentBoundaryTriggerNode = (\n <>\n <SegmentBoundaryTriggerNode />\n </>\n )\n }\n\n // TODO: The loading module data for a segment is stored on the parent, then\n // applied to each of that parent segment's parallel route slots. In the\n // simple case where there's only one parallel route (the `children` slot),\n // this is no different from if the loading module data where stored on the\n // child directly. But I'm not sure this actually makes sense when there are\n // multiple parallel routes. It's not a huge issue because you always have\n // the option to define a narrower loading boundary for a particular slot. But\n // this sort of smells like an implementation accident to me.\n const loadingModuleData = parentCacheNode.loading\n let child = (\n <TemplateContext.Provider\n key={stateKey}\n value={\n <ScrollAndFocusHandler segmentPath={segmentPath}>\n <ErrorBoundaryComponent\n errorComponent={error}\n errorStyles={errorStyles}\n errorScripts={errorScripts}\n >\n <LoadingBoundary loading={loadingModuleData}>\n <HTTPAccessFallbackBoundary\n notFound={notFound}\n forbidden={forbidden}\n unauthorized={unauthorized}\n >\n <RedirectBoundary>\n <InnerLayoutRouter\n url={url}\n tree={tree}\n cacheNode={cacheNode}\n segmentPath={segmentPath}\n />\n {segmentBoundaryTriggerNode}\n </RedirectBoundary>\n </HTTPAccessFallbackBoundary>\n </LoadingBoundary>\n </ErrorBoundaryComponent>\n {segmentViewStateNode}\n </ScrollAndFocusHandler>\n }\n >\n {templateStyles}\n {templateScripts}\n {template}\n </TemplateContext.Provider>\n )\n\n if (process.env.NODE_ENV !== 'production') {\n const { SegmentStateProvider } =\n require('../../next-devtools/userspace/app/segment-explorer-node') as typeof import('../../next-devtools/userspace/app/segment-explorer-node')\n\n child = (\n <SegmentStateProvider key={stateKey}>\n {child}\n {segmentViewBoundaries}\n </SegmentStateProvider>\n )\n }\n\n if (process.env.__NEXT_ROUTER_BF_CACHE) {\n child = (\n <Activity\n key={stateKey}\n mode={stateKey === activeStateKey ? 'visible' : 'hidden'}\n >\n {child}\n </Activity>\n )\n }\n\n children.push(child)\n\n bfcacheEntry = bfcacheEntry.next\n } while (bfcacheEntry !== null)\n\n return children\n}\n","import type { Segment } from '../../../../server/app-render/types'\n\nexport function getSegmentValue(segment: Segment) {\n return Array.isArray(segment) ? segment[1] : segment\n}\n","export const RSC_HEADER = 'RSC' as const\nexport const ACTION_HEADER = 'Next-Action' as const\n// TODO: Instead of sending the full router state, we only need to send the\n// segment path. Saves bytes. Then we could also use this field for segment\n// prefetches, which also need to specify a particular segment.\nexport const NEXT_ROUTER_STATE_TREE_HEADER = 'Next-Router-State-Tree' as const\nexport const NEXT_ROUTER_PREFETCH_HEADER = 'Next-Router-Prefetch' as const\n// This contains the path to the segment being prefetched.\n// TODO: If we change Next-Router-State-Tree to be a segment path, we can use\n// that instead. Then Next-Router-Prefetch and Next-Router-Segment-Prefetch can\n// be merged into a single enum.\nexport const NEXT_ROUTER_SEGMENT_PREFETCH_HEADER =\n 'Next-Router-Segment-Prefetch' as const\nexport const NEXT_HMR_REFRESH_HEADER = 'Next-HMR-Refresh' as const\nexport const NEXT_HMR_REFRESH_HASH_COOKIE = '__next_hmr_refresh_hash__' as const\nexport const NEXT_URL = 'Next-Url' as const\nexport const RSC_CONTENT_TYPE_HEADER = 'text/x-component' as const\n\nexport const FLIGHT_HEADERS = [\n RSC_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_ROUTER_PREFETCH_HEADER,\n NEXT_HMR_REFRESH_HEADER,\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER,\n] as const\n\nexport const NEXT_RSC_UNION_QUERY = '_rsc' as const\n\nexport const NEXT_ROUTER_STALE_TIME_HEADER = 'x-nextjs-stale-time' as const\nexport const NEXT_DID_POSTPONE_HEADER = 'x-nextjs-postponed' as const\nexport const NEXT_REWRITTEN_PATH_HEADER = 'x-nextjs-rewritten-path' as const\nexport const NEXT_REWRITTEN_QUERY_HEADER = 'x-nextjs-rewritten-query' as const\nexport const NEXT_IS_PRERENDER_HEADER = 'x-nextjs-prerender' as const\nexport const NEXT_ACTION_NOT_FOUND_HEADER = 'x-nextjs-action-not-found' as const\n","'use client'\n\n/**\n * HTTPAccessFallbackBoundary is a boundary that catches errors and renders a\n * fallback component for HTTP errors.\n *\n * It receives the status code, and determine if it should render fallbacks for few HTTP 4xx errors.\n *\n * e.g. 404\n * 404 represents not found, and the fallback component pair contains the component and its styles.\n *\n */\n\nimport React, { useContext } from 'react'\nimport { useUntrackedPathname } from '../navigation-untracked'\nimport {\n HTTPAccessErrorStatus,\n getAccessFallbackHTTPStatus,\n getAccessFallbackErrorTypeByStatus,\n isHTTPAccessFallbackError,\n} from './http-access-fallback'\nimport { warnOnce } from '../../../shared/lib/utils/warn-once'\nimport { MissingSlotContext } from '../../../shared/lib/app-router-context.shared-runtime'\n\ninterface HTTPAccessFallbackBoundaryProps {\n notFound?: React.ReactNode\n forbidden?: React.ReactNode\n unauthorized?: React.ReactNode\n children: React.ReactNode\n missingSlots?: Set<string>\n}\n\ninterface HTTPAccessFallbackErrorBoundaryProps\n extends HTTPAccessFallbackBoundaryProps {\n pathname: string | null\n missingSlots?: Set<string>\n}\n\ninterface HTTPAccessBoundaryState {\n triggeredStatus: number | undefined\n previousPathname: string | null\n}\n\nclass HTTPAccessFallbackErrorBoundary extends React.Component<\n HTTPAccessFallbackErrorBoundaryProps,\n HTTPAccessBoundaryState\n> {\n constructor(props: HTTPAccessFallbackErrorBoundaryProps) {\n super(props)\n this.state = {\n triggeredStatus: undefined,\n previousPathname: props.pathname,\n }\n }\n\n componentDidCatch(): void {\n if (\n process.env.NODE_ENV === 'development' &&\n this.props.missingSlots &&\n this.props.missingSlots.size > 0 &&\n // A missing children slot is the typical not-found case, so no need to warn\n !this.props.missingSlots.has('children')\n ) {\n let warningMessage =\n 'No default component was found for a parallel route rendered on this page. Falling back to nearest NotFound boundary.\\n' +\n 'Learn more: https://nextjs.org/docs/app/building-your-application/routing/parallel-routes#defaultjs\\n\\n'\n\n const formattedSlots = Array.from(this.props.missingSlots)\n .sort((a, b) => a.localeCompare(b))\n .map((slot) => `@${slot}`)\n .join(', ')\n\n warningMessage += 'Missing slots: ' + formattedSlots\n\n warnOnce(warningMessage)\n }\n }\n\n static getDerivedStateFromError(error: any) {\n if (isHTTPAccessFallbackError(error)) {\n const httpStatus = getAccessFallbackHTTPStatus(error)\n return {\n triggeredStatus: httpStatus,\n }\n }\n // Re-throw if error is not for 404\n throw error\n }\n\n static getDerivedStateFromProps(\n props: HTTPAccessFallbackErrorBoundaryProps,\n state: HTTPAccessBoundaryState\n ): HTTPAccessBoundaryState | null {\n /**\n * Handles reset of the error boundary when a navigation happens.\n * Ensures the error boundary does not stay enabled when navigating to a new page.\n * Approach of setState in render is safe as it checks the previous pathname and then overrides\n * it as outlined in https://react.dev/reference/react/useState#storing-information-from-previous-renders\n */\n if (props.pathname !== state.previousPathname && state.triggeredStatus) {\n return {\n triggeredStatus: undefined,\n previousPathname: props.pathname,\n }\n }\n return {\n triggeredStatus: state.triggeredStatus,\n previousPathname: props.pathname,\n }\n }\n\n render() {\n const { notFound, forbidden, unauthorized, children } = this.props\n const { triggeredStatus } = this.state\n const errorComponents = {\n [HTTPAccessErrorStatus.NOT_FOUND]: notFound,\n [HTTPAccessErrorStatus.FORBIDDEN]: forbidden,\n [HTTPAccessErrorStatus.UNAUTHORIZED]: unauthorized,\n }\n\n if (triggeredStatus) {\n const isNotFound =\n triggeredStatus === HTTPAccessErrorStatus.NOT_FOUND && notFound\n const isForbidden =\n triggeredStatus === HTTPAccessErrorStatus.FORBIDDEN && forbidden\n const isUnauthorized =\n triggeredStatus === HTTPAccessErrorStatus.UNAUTHORIZED && unauthorized\n\n // If there's no matched boundary in this layer, keep throwing the error by rendering the children\n if (!(isNotFound || isForbidden || isUnauthorized)) {\n return children\n }\n\n return (\n <>\n <meta name=\"robots\" content=\"noindex\" />\n {process.env.NODE_ENV === 'development' && (\n <meta\n name=\"boundary-next-error\"\n content={getAccessFallbackErrorTypeByStatus(triggeredStatus)}\n />\n )}\n {errorComponents[triggeredStatus]}\n </>\n )\n }\n\n return children\n }\n}\n\nexport function HTTPAccessFallbackBoundary({\n notFound,\n forbidden,\n unauthorized,\n children,\n}: HTTPAccessFallbackBoundaryProps) {\n // When we're rendering the missing params shell, this will return null. This\n // is because we won't be rendering any not found boundaries or error\n // boundaries for the missing params shell. When this runs on the client\n // (where these error can occur), we will get the correct pathname.\n const pathname = useUntrackedPathname()\n const missingSlots = useContext(MissingSlotContext)\n const hasErrorFallback = !!(notFound || forbidden || unauthorized)\n\n if (hasErrorFallback) {\n return (\n <HTTPAccessFallbackErrorBoundary\n pathname={pathname}\n notFound={notFound}\n forbidden={forbidden}\n unauthorized={unauthorized}\n missingSlots={missingSlots}\n >\n {children}\n </HTTPAccessFallbackErrorBoundary>\n )\n }\n\n return <>{children}</>\n}\n","import type {\n CacheNodeSeedData,\n FlightRouterState,\n FlightSegmentPath,\n Segment,\n} from '../../../server/app-render/types'\nimport type {\n CacheNode,\n ChildSegmentMap,\n HeadData,\n LoadingModuleData,\n ReadyCacheNode,\n} from '../../../shared/lib/app-router-context.shared-runtime'\nimport { DEFAULT_SEGMENT_KEY } from '../../../shared/lib/segment'\nimport { matchSegment } from '../match-segments'\nimport { createRouterCacheKey } from './create-router-cache-key'\nimport type { FetchServerResponseResult } from './fetch-server-response'\nimport { isNavigatingToNewRootLayout } from './is-navigating-to-new-root-layout'\nimport { DYNAMIC_STALETIME_MS } from './prefetch-cache-utils'\n\n// This is yet another tree type that is used to track pending promises that\n// need to be fulfilled once the dynamic data is received. The terminal nodes of\n// this tree represent the new Cache Node trees that were created during this\n// request. We can't use the Cache Node tree or Route State tree directly\n// because those include reused nodes, too. This tree is discarded as soon as\n// the navigation response is received.\ntype SPANavigationTask = {\n // The router state that corresponds to the tree that this Task represents.\n route: FlightRouterState\n // The CacheNode that corresponds to the tree that this Task represents. If\n // `children` is null (i.e. if this is a terminal task node), then `node`\n // represents a brand new Cache Node tree, which way or may not need to be\n // filled with dynamic data from the server.\n node: CacheNode | null\n // The tree sent to the server during the dynamic request. This is the\n // same as `route`, except with the `refetch` marker set on dynamic segments.\n // If all the segments are static, then this will be null, and no server\n // request is required.\n dynamicRequestTree: FlightRouterState | null\n children: Map<string, SPANavigationTask> | null\n}\n\n// A special type used to bail out and trigger a full-page navigation.\ntype MPANavigationTask = {\n // MPA tasks are distinguised from SPA tasks by having a null `route`.\n route: null\n node: null\n dynamicRequestTree: null\n children: null\n}\n\nconst MPA_NAVIGATION_TASK: MPANavigationTask = {\n route: null,\n node: null,\n dynamicRequestTree: null,\n children: null,\n}\n\nexport type Task = SPANavigationTask | MPANavigationTask\n\n// Creates a new Cache Node tree (i.e. copy-on-write) that represents the\n// optimistic result of a navigation, using both the current Cache Node tree and\n// data that was prefetched prior to navigation.\n//\n// At the moment we call this function, we haven't yet received the navigation\n// response from the server. It could send back something completely different\n// from the tree that was prefetched — due to rewrites, default routes, parallel\n// routes, etc.\n//\n// But in most cases, it will return the same tree that we prefetched, just with\n// the dynamic holes filled in. So we optimistically assume this will happen,\n// and accept that the real result could be arbitrarily different.\n//\n// We'll reuse anything that was already in the previous tree, since that's what\n// the server does.\n//\n// New segments (ones that don't appear in the old tree) are assigned an\n// unresolved promise. The data for these promises will be fulfilled later, when\n// the navigation response is received.\n//\n// The tree can be rendered immediately after it is created (that's why this is\n// a synchronous function). Any new trees that do not have prefetch data will\n// suspend during rendering, until the dynamic data streams in.\n//\n// Returns a Task object, which contains both the updated Cache Node and a path\n// to the pending subtrees that need to be resolved by the navigation response.\n//\n// A return value of `null` means there were no changes, and the previous tree\n// can be reused without initiating a server request.\nexport function startPPRNavigation(\n navigatedAt: number,\n oldCacheNode: CacheNode,\n oldRouterState: FlightRouterState,\n newRouterState: FlightRouterState,\n prefetchData: CacheNodeSeedData | null,\n prefetchHead: HeadData | null,\n isPrefetchHeadPartial: boolean,\n isSamePageNavigation: boolean,\n scrollableSegmentsResult: Array<FlightSegmentPath>\n): Task | null {\n const segmentPath: Array<FlightSegmentPath> = []\n return updateCacheNodeOnNavigation(\n navigatedAt,\n oldCacheNode,\n oldRouterState,\n newRouterState,\n false,\n prefetchData,\n prefetchHead,\n isPrefetchHeadPartial,\n isSamePageNavigation,\n segmentPath,\n scrollableSegmentsResult\n )\n}\n\nfunction updateCacheNodeOnNavigation(\n navigatedAt: number,\n oldCacheNode: CacheNode,\n oldRouterState: FlightRouterState,\n newRouterState: FlightRouterState,\n didFindRootLayout: boolean,\n prefetchData: CacheNodeSeedData | null,\n prefetchHead: HeadData | null,\n isPrefetchHeadPartial: boolean,\n isSamePageNavigation: boolean,\n segmentPath: FlightSegmentPath,\n scrollableSegmentsResult: Array<FlightSegmentPath>\n): Task | null {\n // Diff the old and new trees to reuse the shared layouts.\n const oldRouterStateChildren = oldRouterState[1]\n const newRouterStateChildren = newRouterState[1]\n const prefetchDataChildren = prefetchData !== null ? prefetchData[2] : null\n\n if (!didFindRootLayout) {\n // We're currently traversing the part of the tree that was also part of\n // the previous route. If we discover a root layout, then we don't need to\n // trigger an MPA navigation. See beginRenderingNewRouteTree for context.\n const isRootLayout = newRouterState[4] === true\n if (isRootLayout) {\n // Found a matching root layout.\n didFindRootLayout = true\n }\n }\n\n const oldParallelRoutes = oldCacheNode.parallelRoutes\n\n // Clone the current set of segment children, even if they aren't active in\n // the new tree.\n // TODO: We currently retain all the inactive segments indefinitely, until\n // there's an explicit refresh, or a parent layout is lazily refreshed. We\n // rely on this for popstate navigations, which update the Router State Tree\n // but do not eagerly perform a data fetch, because they expect the segment\n // data to already be in the Cache Node tree. For highly static sites that\n // are mostly read-only, this may happen only rarely, causing memory to\n // leak. We should figure out a better model for the lifetime of inactive\n // segments, so we can maintain instant back/forward navigations without\n // leaking memory indefinitely.\n const prefetchParallelRoutes = new Map(oldParallelRoutes)\n\n // As we diff the trees, we may sometimes modify (copy-on-write, not mutate)\n // the Route Tree that was returned by the server — for example, in the case\n // of default parallel routes, we preserve the currently active segment. To\n // avoid mutating the original tree, we clone the router state children along\n // the return path.\n let patchedRouterStateChildren: {\n [parallelRouteKey: string]: FlightRouterState\n } = {}\n let taskChildren = null\n\n // Most navigations require a request to fetch additional data from the\n // server, either because the data was not already prefetched, or because the\n // target route contains dynamic data that cannot be prefetched.\n //\n // However, if the target route is fully static, and it's already completely\n // loaded into the segment cache, then we can skip the server request.\n //\n // This starts off as `false`, and is set to `true` if any of the child\n // routes requires a dynamic request.\n let needsDynamicRequest = false\n // As we traverse the children, we'll construct a FlightRouterState that can\n // be sent to the server to request the dynamic data. If it turns out that\n // nothing in the subtree is dynamic (i.e. needsDynamicRequest is false at the\n // end), then this will be discarded.\n // TODO: We can probably optimize the format of this data structure to only\n // include paths that are dynamic. Instead of reusing the\n // FlightRouterState type.\n let dynamicRequestTreeChildren: {\n [parallelRouteKey: string]: FlightRouterState\n } = {}\n\n for (let parallelRouteKey in newRouterStateChildren) {\n const newRouterStateChild: FlightRouterState =\n newRouterStateChildren[parallelRouteKey]\n const oldRouterStateChild: FlightRouterState | void =\n oldRouterStateChildren[parallelRouteKey]\n const oldSegmentMapChild = oldParallelRoutes.get(parallelRouteKey)\n const prefetchDataChild: CacheNodeSeedData | void | null =\n prefetchDataChildren !== null\n ? prefetchDataChildren[parallelRouteKey]\n : null\n\n const newSegmentChild = newRouterStateChild[0]\n const newSegmentPathChild = segmentPath.concat([\n parallelRouteKey,\n newSegmentChild,\n ])\n const newSegmentKeyChild = createRouterCacheKey(newSegmentChild)\n\n const oldSegmentChild =\n oldRouterStateChild !== undefined ? oldRouterStateChild[0] : undefined\n\n const oldCacheNodeChild =\n oldSegmentMapChild !== undefined\n ? oldSegmentMapChild.get(newSegmentKeyChild)\n : undefined\n\n let taskChild: Task | null\n if (newSegmentChild === DEFAULT_SEGMENT_KEY) {\n // This is another kind of leaf segment — a default route.\n //\n // Default routes have special behavior. When there's no matching segment\n // for a parallel route, Next.js preserves the currently active segment\n // during a client navigation — but not for initial render. The server\n // leaves it to the client to account for this. So we need to handle\n // it here.\n if (oldRouterStateChild !== undefined) {\n // Reuse the existing Router State for this segment. We spawn a \"task\"\n // just to keep track of the updated router state; unlike most, it's\n // already fulfilled and won't be affected by the dynamic response.\n taskChild = spawnReusedTask(oldRouterStateChild)\n } else {\n // There's no currently active segment. Switch to the \"create\" path.\n taskChild = beginRenderingNewRouteTree(\n navigatedAt,\n oldRouterStateChild,\n newRouterStateChild,\n oldCacheNodeChild,\n didFindRootLayout,\n prefetchDataChild !== undefined ? prefetchDataChild : null,\n prefetchHead,\n isPrefetchHeadPartial,\n newSegmentPathChild,\n scrollableSegmentsResult\n )\n }\n } else if (\n isSamePageNavigation &&\n // Check if this is a page segment.\n // TODO: We're not consistent about how we do this check. Some places\n // check if the segment starts with PAGE_SEGMENT_KEY, but most seem to\n // check if there any any children, which is why I'm doing it here. We\n // should probably encode an empty children set as `null` though. Either\n // way, we should update all the checks to be consistent.\n Object.keys(newRouterStateChild[1]).length === 0\n ) {\n // We special case navigations to the exact same URL as the current\n // location. It's a common UI pattern for apps to refresh when you click a\n // link to the current page. So when this happens, we refresh the dynamic\n // data in the page segments.\n //\n // Note that this does not apply if the any part of the hash or search\n // query has changed. This might feel a bit weird but it makes more sense\n // when you consider that the way to trigger this behavior is to click\n // the same link multiple times.\n //\n // TODO: We should probably refresh the *entire* route when this case\n // occurs, not just the page segments. Essentially treating it the same as\n // a refresh() triggered by an action, which is the more explicit way of\n // modeling the UI pattern described above.\n //\n // Also note that this only refreshes the dynamic data, not static/\n // cached data. If the page segment is fully static and prefetched, the\n // request is skipped. (This is also how refresh() works.)\n taskChild = beginRenderingNewRouteTree(\n navigatedAt,\n oldRouterStateChild,\n newRouterStateChild,\n oldCacheNodeChild,\n didFindRootLayout,\n prefetchDataChild !== undefined ? prefetchDataChild : null,\n prefetchHead,\n isPrefetchHeadPartial,\n newSegmentPathChild,\n scrollableSegmentsResult\n )\n } else if (\n oldRouterStateChild !== undefined &&\n oldSegmentChild !== undefined &&\n matchSegment(newSegmentChild, oldSegmentChild)\n ) {\n if (\n oldCacheNodeChild !== undefined &&\n oldRouterStateChild !== undefined\n ) {\n // This segment exists in both the old and new trees. Recursively update\n // the children.\n taskChild = updateCacheNodeOnNavigation(\n navigatedAt,\n oldCacheNodeChild,\n oldRouterStateChild,\n newRouterStateChild,\n didFindRootLayout,\n prefetchDataChild,\n prefetchHead,\n isPrefetchHeadPartial,\n isSamePageNavigation,\n newSegmentPathChild,\n scrollableSegmentsResult\n )\n } else {\n // There's no existing Cache Node for this segment. Switch to the\n // \"create\" path.\n taskChild = beginRenderingNewRouteTree(\n navigatedAt,\n oldRouterStateChild,\n newRouterStateChild,\n oldCacheNodeChild,\n didFindRootLayout,\n prefetchDataChild !== undefined ? prefetchDataChild : null,\n prefetchHead,\n isPrefetchHeadPartial,\n newSegmentPathChild,\n scrollableSegmentsResult\n )\n }\n } else {\n // This is a new tree. Switch to the \"create\" path.\n taskChild = beginRenderingNewRouteTree(\n navigatedAt,\n oldRouterStateChild,\n newRouterStateChild,\n oldCacheNodeChild,\n didFindRootLayout,\n prefetchDataChild !== undefined ? prefetchDataChild : null,\n prefetchHead,\n isPrefetchHeadPartial,\n newSegmentPathChild,\n scrollableSegmentsResult\n )\n }\n\n if (taskChild !== null) {\n // Recursively propagate up the child tasks.\n\n if (taskChild.route === null) {\n // One of the child tasks discovered a change to the root layout.\n // Immediately unwind from this recursive traversal.\n return MPA_NAVIGATION_TASK\n }\n\n if (taskChildren === null) {\n taskChildren = new Map()\n }\n taskChildren.set(parallelRouteKey, taskChild)\n const newCacheNodeChild = taskChild.node\n if (newCacheNodeChild !== null) {\n const newSegmentMapChild: ChildSegmentMap = new Map(oldSegmentMapChild)\n newSegmentMapChild.set(newSegmentKeyChild, newCacheNodeChild)\n prefetchParallelRoutes.set(parallelRouteKey, newSegmentMapChild)\n }\n\n // The child tree's route state may be different from the prefetched\n // route sent by the server. We need to clone it as we traverse back up\n // the tree.\n const taskChildRoute = taskChild.route\n patchedRouterStateChildren[parallelRouteKey] = taskChildRoute\n\n const dynamicRequestTreeChild = taskChild.dynamicRequestTree\n if (dynamicRequestTreeChild !== null) {\n // Something in the child tree is dynamic.\n needsDynamicRequest = true\n dynamicRequestTreeChildren[parallelRouteKey] = dynamicRequestTreeChild\n } else {\n dynamicRequestTreeChildren[parallelRouteKey] = taskChildRoute\n }\n } else {\n // The child didn't change. We can use the prefetched router state.\n patchedRouterStateChildren[parallelRouteKey] = newRouterStateChild\n dynamicRequestTreeChildren[parallelRouteKey] = newRouterStateChild\n }\n }\n\n if (taskChildren === null) {\n // No new tasks were spawned.\n return null\n }\n\n const newCacheNode: ReadyCacheNode = {\n lazyData: null,\n rsc: oldCacheNode.rsc,\n // We intentionally aren't updating the prefetchRsc field, since this node\n // is already part of the current tree, because it would be weird for\n // prefetch data to be newer than the final data. It probably won't ever be\n // observable anyway, but it could happen if the segment is unmounted then\n // mounted again, because LayoutRouter will momentarily switch to rendering\n // prefetchRsc, via useDeferredValue.\n prefetchRsc: oldCacheNode.prefetchRsc,\n head: oldCacheNode.head,\n prefetchHead: oldCacheNode.prefetchHead,\n loading: oldCacheNode.loading,\n\n // Everything is cloned except for the children, which we computed above.\n parallelRoutes: prefetchParallelRoutes,\n\n navigatedAt,\n }\n\n return {\n // Return a cloned copy of the router state with updated children.\n route: patchRouterStateWithNewChildren(\n newRouterState,\n patchedRouterStateChildren\n ),\n node: newCacheNode,\n dynamicRequestTree: needsDynamicRequest\n ? patchRouterStateWithNewChildren(\n newRouterState,\n dynamicRequestTreeChildren\n )\n : null,\n children: taskChildren,\n }\n}\n\nfunction beginRenderingNewRouteTree(\n navigatedAt: number,\n oldRouterState: FlightRouterState | void,\n newRouterState: FlightRouterState,\n existingCacheNode: CacheNode | void,\n didFindRootLayout: boolean,\n prefetchData: CacheNodeSeedData | null,\n possiblyPartialPrefetchHead: HeadData | null,\n isPrefetchHeadPartial: boolean,\n segmentPath: FlightSegmentPath,\n scrollableSegmentsResult: Array<FlightSegmentPath>\n): Task {\n if (!didFindRootLayout) {\n // The route tree changed before we reached a layout. (The highest-level\n // layout in a route tree is referred to as the \"root\" layout.) This could\n // mean that we're navigating between two different root layouts. When this\n // happens, we perform a full-page (MPA-style) navigation.\n //\n // However, the algorithm for deciding where to start rendering a route\n // (i.e. the one performed in order to reach this function) is stricter\n // than the one used to detect a change in the root layout. So just because\n // we're re-rendering a segment outside of the root layout does not mean we\n // should trigger a full-page navigation.\n //\n // Specifically, we handle dynamic parameters differently: two segments are\n // considered the same even if their parameter values are different.\n //\n // Refer to isNavigatingToNewRootLayout for details.\n //\n // Note that we only have to perform this extra traversal if we didn't\n // already discover a root layout in the part of the tree that is unchanged.\n // In the common case, this branch is skipped completely.\n if (\n oldRouterState === undefined ||\n isNavigatingToNewRootLayout(oldRouterState, newRouterState)\n ) {\n // The root layout changed. Perform a full-page navigation.\n return MPA_NAVIGATION_TASK\n }\n }\n return createCacheNodeOnNavigation(\n navigatedAt,\n newRouterState,\n existingCacheNode,\n prefetchData,\n possiblyPartialPrefetchHead,\n isPrefetchHeadPartial,\n segmentPath,\n scrollableSegmentsResult\n )\n}\n\nfunction createCacheNodeOnNavigation(\n navigatedAt: number,\n routerState: FlightRouterState,\n existingCacheNode: CacheNode | void,\n prefetchData: CacheNodeSeedData | null,\n possiblyPartialPrefetchHead: HeadData | null,\n isPrefetchHeadPartial: boolean,\n segmentPath: FlightSegmentPath,\n scrollableSegmentsResult: Array<FlightSegmentPath>\n): SPANavigationTask {\n // Same traversal as updateCacheNodeNavigation, but we switch to this path\n // once we reach the part of the tree that was not in the previous route. We\n // don't need to diff against the old tree, we just need to create a new one.\n\n // The head is assigned to every leaf segment delivered by the server. Based\n // on corresponding logic in fill-lazy-items-till-leaf-with-head.ts\n const routerStateChildren = routerState[1]\n const isLeafSegment = Object.keys(routerStateChildren).length === 0\n\n // Even we're rendering inside the \"new\" part of the target tree, we may have\n // a locally cached segment that we can reuse. This may come from either 1)\n // the CacheNode tree, which lives in React state and is populated by previous\n // navigations; or 2) the prefetch cache, which is a separate cache that is\n // populated by prefetches.\n let rsc: React.ReactNode\n let loading: LoadingModuleData | Promise<LoadingModuleData>\n let head: HeadData | null\n let cacheNodeNavigatedAt: number\n if (\n existingCacheNode !== undefined &&\n // DYNAMIC_STALETIME_MS defaults to 0, but it can be increased using\n // the experimental.staleTimes.dynamic config. When set, we'll avoid\n // refetching dynamic data if it was fetched within the given threshold.\n existingCacheNode.navigatedAt + DYNAMIC_STALETIME_MS > navigatedAt\n ) {\n // We have an existing CacheNode for this segment, and it's not stale. We\n // should reuse it rather than request a new one.\n rsc = existingCacheNode.rsc\n loading = existingCacheNode.loading\n head = existingCacheNode.head\n\n // Don't update the navigatedAt timestamp, since we're reusing stale data.\n cacheNodeNavigatedAt = existingCacheNode.navigatedAt\n } else if (prefetchData !== null) {\n // There's no existing CacheNode for this segment, but we do have prefetch\n // data. If the prefetch data is fully static (i.e. does not contain any\n // dynamic holes), we don't need to request it from the server.\n rsc = prefetchData[1]\n loading = prefetchData[3]\n head = isLeafSegment ? possiblyPartialPrefetchHead : null\n // Even though we're accessing the data from the prefetch cache, this is\n // conceptually a new segment, not a reused one. So we should update the\n // navigatedAt timestamp.\n cacheNodeNavigatedAt = navigatedAt\n const isPrefetchRscPartial = prefetchData[4]\n if (\n // Check if the segment data is partial\n isPrefetchRscPartial ||\n // Check if the head is partial (only relevant if this is a leaf segment)\n (isPrefetchHeadPartial && isLeafSegment)\n ) {\n // We only have partial data from this segment. Like missing segments, we\n // must request the full data from the server.\n return spawnPendingTask(\n navigatedAt,\n routerState,\n prefetchData,\n possiblyPartialPrefetchHead,\n isPrefetchHeadPartial,\n segmentPath,\n scrollableSegmentsResult\n )\n } else {\n // The prefetch data is fully static, so we can omit it from the\n // navigation request.\n }\n } else {\n // There's no prefetch for this segment. Everything from this point will be\n // requested from the server, even if there are static children below it.\n // Create a terminal task node that will later be fulfilled by\n // server response.\n return spawnPendingTask(\n navigatedAt,\n routerState,\n null,\n possiblyPartialPrefetchHead,\n isPrefetchHeadPartial,\n segmentPath,\n scrollableSegmentsResult\n )\n }\n\n // We already have a full segment we can render, so we don't need to request a\n // new one from the server. Keep traversing down the tree until we reach\n // something that requires a dynamic request.\n const prefetchDataChildren = prefetchData !== null ? prefetchData[2] : null\n const taskChildren = new Map()\n const existingCacheNodeChildren =\n existingCacheNode !== undefined ? existingCacheNode.parallelRoutes : null\n const cacheNodeChildren = new Map(existingCacheNodeChildren)\n let dynamicRequestTreeChildren: {\n [parallelRouteKey: string]: FlightRouterState\n } = {}\n let needsDynamicRequest = false\n if (isLeafSegment) {\n // The segment path of every leaf segment (i.e. page) is collected into\n // a result array. This is used by the LayoutRouter to scroll to ensure that\n // new pages are visible after a navigation.\n // TODO: We should use a string to represent the segment path instead of\n // an array. We already use a string representation for the path when\n // accessing the Segment Cache, so we can use the same one.\n scrollableSegmentsResult.push(segmentPath)\n } else {\n for (let parallelRouteKey in routerStateChildren) {\n const routerStateChild: FlightRouterState =\n routerStateChildren[parallelRouteKey]\n const prefetchDataChild: CacheNodeSeedData | void | null =\n prefetchDataChildren !== null\n ? prefetchDataChildren[parallelRouteKey]\n : null\n const existingSegmentMapChild =\n existingCacheNodeChildren !== null\n ? existingCacheNodeChildren.get(parallelRouteKey)\n : undefined\n const segmentChild = routerStateChild[0]\n const segmentPathChild = segmentPath.concat([\n parallelRouteKey,\n segmentChild,\n ])\n const segmentKeyChild = createRouterCacheKey(segmentChild)\n\n const existingCacheNodeChild =\n existingSegmentMapChild !== undefined\n ? existingSegmentMapChild.get(segmentKeyChild)\n : undefined\n\n const taskChild = createCacheNodeOnNavigation(\n navigatedAt,\n routerStateChild,\n existingCacheNodeChild,\n prefetchDataChild,\n possiblyPartialPrefetchHead,\n isPrefetchHeadPartial,\n segmentPathChild,\n scrollableSegmentsResult\n )\n taskChildren.set(parallelRouteKey, taskChild)\n const dynamicRequestTreeChild = taskChild.dynamicRequestTree\n if (dynamicRequestTreeChild !== null) {\n // Something in the child tree is dynamic.\n needsDynamicRequest = true\n dynamicRequestTreeChildren[parallelRouteKey] = dynamicRequestTreeChild\n } else {\n dynamicRequestTreeChildren[parallelRouteKey] = routerStateChild\n }\n const newCacheNodeChild = taskChild.node\n if (newCacheNodeChild !== null) {\n const newSegmentMapChild: ChildSegmentMap = new Map()\n newSegmentMapChild.set(segmentKeyChild, newCacheNodeChild)\n cacheNodeChildren.set(parallelRouteKey, newSegmentMapChild)\n }\n }\n }\n\n return {\n // Since we're inside a new route tree, unlike the\n // `updateCacheNodeOnNavigation` path, the router state on the children\n // tasks is always the same as the router state we pass in. So we don't need\n // to clone/modify it.\n route: routerState,\n node: {\n lazyData: null,\n // Since this segment is already full, we don't need to use the\n // `prefetchRsc` field.\n rsc,\n prefetchRsc: null,\n head,\n prefetchHead: null,\n loading,\n parallelRoutes: cacheNodeChildren,\n navigatedAt: cacheNodeNavigatedAt,\n },\n dynamicRequestTree: needsDynamicRequest\n ? patchRouterStateWithNewChildren(routerState, dynamicRequestTreeChildren)\n : null,\n children: taskChildren,\n }\n}\n\nfunction patchRouterStateWithNewChildren(\n baseRouterState: FlightRouterState,\n newChildren: { [parallelRouteKey: string]: FlightRouterState }\n): FlightRouterState {\n const clone: FlightRouterState = [baseRouterState[0], newChildren]\n // Based on equivalent logic in apply-router-state-patch-to-tree, but should\n // confirm whether we need to copy all of these fields. Not sure the server\n // ever sends, e.g. the refetch marker.\n if (2 in baseRouterState) {\n clone[2] = baseRouterState[2]\n }\n if (3 in baseRouterState) {\n clone[3] = baseRouterState[3]\n }\n if (4 in baseRouterState) {\n clone[4] = baseRouterState[4]\n }\n return clone\n}\n\nfunction spawnPendingTask(\n navigatedAt: number,\n routerState: FlightRouterState,\n prefetchData: CacheNodeSeedData | null,\n prefetchHead: HeadData | null,\n isPrefetchHeadPartial: boolean,\n segmentPath: FlightSegmentPath,\n scrollableSegmentsResult: Array<FlightSegmentPath>\n): SPANavigationTask {\n // Create a task that will later be fulfilled by data from the server.\n\n // Clone the prefetched route tree and the `refetch` marker to it. We'll send\n // this to the server so it knows where to start rendering.\n const dynamicRequestTree = patchRouterStateWithNewChildren(\n routerState,\n routerState[1]\n )\n dynamicRequestTree[3] = 'refetch'\n\n const newTask: Task = {\n route: routerState,\n\n // Corresponds to the part of the route that will be rendered on the server.\n node: createPendingCacheNode(\n navigatedAt,\n routerState,\n prefetchData,\n prefetchHead,\n isPrefetchHeadPartial,\n segmentPath,\n scrollableSegmentsResult\n ),\n // Because this is non-null, and it gets propagated up through the parent\n // tasks, the root task will know that it needs to perform a server request.\n dynamicRequestTree,\n children: null,\n }\n return newTask\n}\n\nfunction spawnReusedTask(reusedRouterState: FlightRouterState): Task {\n // Create a task that reuses an existing segment, e.g. when reusing\n // the current active segment in place of a default route.\n return {\n route: reusedRouterState,\n node: null,\n dynamicRequestTree: null,\n children: null,\n }\n}\n\n// Writes a dynamic server response into the tree created by\n// updateCacheNodeOnNavigation. All pending promises that were spawned by the\n// navigation will be resolved, either with dynamic data from the server, or\n// `null` to indicate that the data is missing.\n//\n// A `null` value will trigger a lazy fetch during render, which will then patch\n// up the tree using the same mechanism as the non-PPR implementation\n// (serverPatchReducer).\n//\n// Usually, the server will respond with exactly the subset of data that we're\n// waiting for — everything below the nearest shared layout. But technically,\n// the server can return anything it wants.\n//\n// This does _not_ create a new tree; it modifies the existing one in place.\n// Which means it must follow the Suspense rules of cache safety.\nexport function listenForDynamicRequest(\n task: SPANavigationTask,\n responsePromise: Promise<FetchServerResponseResult>\n) {\n responsePromise.then(\n ({ flightData }: FetchServerResponseResult) => {\n if (typeof flightData === 'string') {\n // Happens when navigating to page in `pages` from `app`. We shouldn't\n // get here because should have already handled this during\n // the prefetch.\n return\n }\n for (const normalizedFlightData of flightData) {\n const {\n segmentPath,\n tree: serverRouterState,\n seedData: dynamicData,\n head: dynamicHead,\n } = normalizedFlightData\n\n if (!dynamicData) {\n // This shouldn't happen. PPR should always send back a response.\n // However, `FlightDataPath` is a shared type and the pre-PPR handling of\n // this might return null.\n continue\n }\n\n writeDynamicDataIntoPendingTask(\n task,\n segmentPath,\n serverRouterState,\n dynamicData,\n dynamicHead\n )\n }\n\n // Now that we've exhausted all the data we received from the server, if\n // there are any remaining pending tasks in the tree, abort them now.\n // If there's any missing data, it will trigger a lazy fetch.\n abortTask(task, null)\n },\n (error: any) => {\n // This will trigger an error during render\n abortTask(task, error)\n }\n )\n}\n\nfunction writeDynamicDataIntoPendingTask(\n rootTask: SPANavigationTask,\n segmentPath: FlightSegmentPath,\n serverRouterState: FlightRouterState,\n dynamicData: CacheNodeSeedData,\n dynamicHead: HeadData\n) {\n // The data sent by the server represents only a subtree of the app. We need\n // to find the part of the task tree that matches the server response, and\n // fulfill it using the dynamic data.\n //\n // segmentPath represents the parent path of subtree. It's a repeating pattern\n // of parallel route key and segment:\n //\n // [string, Segment, string, Segment, string, Segment, ...]\n //\n // Iterate through the path and finish any tasks that match this payload.\n let task = rootTask\n for (let i = 0; i < segmentPath.length; i += 2) {\n const parallelRouteKey: string = segmentPath[i]\n const segment: Segment = segmentPath[i + 1]\n const taskChildren = task.children\n if (taskChildren !== null) {\n const taskChild = taskChildren.get(parallelRouteKey)\n if (taskChild !== undefined) {\n const taskSegment = taskChild.route[0]\n if (matchSegment(segment, taskSegment)) {\n // Found a match for this task. Keep traversing down the task tree.\n task = taskChild\n continue\n }\n }\n }\n // We didn't find a child task that matches the server data. Exit. We won't\n // abort the task, though, because a different FlightDataPath may be able to\n // fulfill it (see loop in listenForDynamicRequest). We only abort tasks\n // once we've run out of data.\n return\n }\n\n finishTaskUsingDynamicDataPayload(\n task,\n serverRouterState,\n dynamicData,\n dynamicHead\n )\n}\n\nfunction finishTaskUsingDynamicDataPayload(\n task: SPANavigationTask,\n serverRouterState: FlightRouterState,\n dynamicData: CacheNodeSeedData,\n dynamicHead: HeadData\n) {\n if (task.dynamicRequestTree === null) {\n // Everything in this subtree is already complete. Bail out.\n return\n }\n\n // dynamicData may represent a larger subtree than the task. Before we can\n // finish the task, we need to line them up.\n const taskChildren = task.children\n const taskNode = task.node\n if (taskChildren === null) {\n // We've reached the leaf node of the pending task. The server data tree\n // lines up the pending Cache Node tree. We can now switch to the\n // normal algorithm.\n if (taskNode !== null) {\n finishPendingCacheNode(\n taskNode,\n task.route,\n serverRouterState,\n dynamicData,\n dynamicHead\n )\n // Set this to null to indicate that this task is now complete.\n task.dynamicRequestTree = null\n }\n return\n }\n // The server returned more data than we need to finish the task. Skip over\n // the extra segments until we reach the leaf task node.\n const serverChildren = serverRouterState[1]\n const dynamicDataChildren = dynamicData[2]\n\n for (const parallelRouteKey in serverRouterState) {\n const serverRouterStateChild: FlightRouterState =\n serverChildren[parallelRouteKey]\n const dynamicDataChild: CacheNodeSeedData | null | void =\n dynamicDataChildren[parallelRouteKey]\n\n const taskChild = taskChildren.get(parallelRouteKey)\n if (taskChild !== undefined) {\n const taskSegment = taskChild.route[0]\n if (\n matchSegment(serverRouterStateChild[0], taskSegment) &&\n dynamicDataChild !== null &&\n dynamicDataChild !== undefined\n ) {\n // Found a match for this task. Keep traversing down the task tree.\n return finishTaskUsingDynamicDataPayload(\n taskChild,\n serverRouterStateChild,\n dynamicDataChild,\n dynamicHead\n )\n }\n }\n // We didn't find a child task that matches the server data. We won't abort\n // the task, though, because a different FlightDataPath may be able to\n // fulfill it (see loop in listenForDynamicRequest). We only abort tasks\n // once we've run out of data.\n }\n}\n\nfunction createPendingCacheNode(\n navigatedAt: number,\n routerState: FlightRouterState,\n prefetchData: CacheNodeSeedData | null,\n prefetchHead: HeadData | null,\n isPrefetchHeadPartial: boolean,\n segmentPath: FlightSegmentPath,\n scrollableSegmentsResult: Array<FlightSegmentPath>\n): ReadyCacheNode {\n const routerStateChildren = routerState[1]\n const prefetchDataChildren = prefetchData !== null ? prefetchData[2] : null\n\n const parallelRoutes = new Map()\n for (let parallelRouteKey in routerStateChildren) {\n const routerStateChild: FlightRouterState =\n routerStateChildren[parallelRouteKey]\n const prefetchDataChild: CacheNodeSeedData | null | void =\n prefetchDataChildren !== null\n ? prefetchDataChildren[parallelRouteKey]\n : null\n\n const segmentChild = routerStateChild[0]\n const segmentPathChild = segmentPath.concat([\n parallelRouteKey,\n segmentChild,\n ])\n const segmentKeyChild = createRouterCacheKey(segmentChild)\n\n const newCacheNodeChild = createPendingCacheNode(\n navigatedAt,\n routerStateChild,\n prefetchDataChild === undefined ? null : prefetchDataChild,\n prefetchHead,\n isPrefetchHeadPartial,\n segmentPathChild,\n scrollableSegmentsResult\n )\n\n const newSegmentMapChild: ChildSegmentMap = new Map()\n newSegmentMapChild.set(segmentKeyChild, newCacheNodeChild)\n parallelRoutes.set(parallelRouteKey, newSegmentMapChild)\n }\n\n // The head is assigned to every leaf segment delivered by the server. Based\n // on corresponding logic in fill-lazy-items-till-leaf-with-head.ts\n const isLeafSegment = parallelRoutes.size === 0\n\n if (isLeafSegment) {\n // The segment path of every leaf segment (i.e. page) is collected into\n // a result array. This is used by the LayoutRouter to scroll to ensure that\n // new pages are visible after a navigation.\n // TODO: We should use a string to represent the segment path instead of\n // an array. We already use a string representation for the path when\n // accessing the Segment Cache, so we can use the same one.\n scrollableSegmentsResult.push(segmentPath)\n }\n\n const maybePrefetchRsc = prefetchData !== null ? prefetchData[1] : null\n const maybePrefetchLoading = prefetchData !== null ? prefetchData[3] : null\n return {\n lazyData: null,\n parallelRoutes: parallelRoutes,\n\n prefetchRsc: maybePrefetchRsc !== undefined ? maybePrefetchRsc : null,\n prefetchHead: isLeafSegment ? prefetchHead : [null, null],\n\n // TODO: Technically, a loading boundary could contain dynamic data. We must\n // have separate `loading` and `prefetchLoading` fields to handle this, like\n // we do for the segment data and head.\n loading: maybePrefetchLoading !== undefined ? maybePrefetchLoading : null,\n\n // Create a deferred promise. This will be fulfilled once the dynamic\n // response is received from the server.\n rsc: createDeferredRsc() as React.ReactNode,\n head: isLeafSegment ? (createDeferredRsc() as React.ReactNode) : null,\n\n navigatedAt,\n }\n}\n\nfunction finishPendingCacheNode(\n cacheNode: CacheNode,\n taskState: FlightRouterState,\n serverState: FlightRouterState,\n dynamicData: CacheNodeSeedData,\n dynamicHead: HeadData\n): void {\n // Writes a dynamic response into an existing Cache Node tree. This does _not_\n // create a new tree, it updates the existing tree in-place. So it must follow\n // the Suspense rules of cache safety — it can resolve pending promises, but\n // it cannot overwrite existing data. It can add segments to the tree (because\n // a missing segment will cause the layout router to suspend).\n // but it cannot delete them.\n //\n // We must resolve every promise in the tree, or else it will suspend\n // indefinitely. If we did not receive data for a segment, we will resolve its\n // data promise to `null` to trigger a lazy fetch during render.\n const taskStateChildren = taskState[1]\n const serverStateChildren = serverState[1]\n const dataChildren = dynamicData[2]\n\n // The router state that we traverse the tree with (taskState) is the same one\n // that we used to construct the pending Cache Node tree. That way we're sure\n // to resolve all the pending promises.\n const parallelRoutes = cacheNode.parallelRoutes\n for (let parallelRouteKey in taskStateChildren) {\n const taskStateChild: FlightRouterState =\n taskStateChildren[parallelRouteKey]\n const serverStateChild: FlightRouterState | void =\n serverStateChildren[parallelRouteKey]\n const dataChild: CacheNodeSeedData | null | void =\n dataChildren[parallelRouteKey]\n\n const segmentMapChild = parallelRoutes.get(parallelRouteKey)\n const taskSegmentChild = taskStateChild[0]\n const taskSegmentKeyChild = createRouterCacheKey(taskSegmentChild)\n\n const cacheNodeChild =\n segmentMapChild !== undefined\n ? segmentMapChild.get(taskSegmentKeyChild)\n : undefined\n\n if (cacheNodeChild !== undefined) {\n if (\n serverStateChild !== undefined &&\n matchSegment(taskSegmentChild, serverStateChild[0])\n ) {\n if (dataChild !== undefined && dataChild !== null) {\n // This is the happy path. Recursively update all the children.\n finishPendingCacheNode(\n cacheNodeChild,\n taskStateChild,\n serverStateChild,\n dataChild,\n dynamicHead\n )\n } else {\n // The server never returned data for this segment. Trigger a lazy\n // fetch during render. This shouldn't happen because the Route Tree\n // and the Seed Data tree sent by the server should always be the same\n // shape when part of the same server response.\n abortPendingCacheNode(taskStateChild, cacheNodeChild, null)\n }\n } else {\n // The server never returned data for this segment. Trigger a lazy\n // fetch during render.\n abortPendingCacheNode(taskStateChild, cacheNodeChild, null)\n }\n } else {\n // The server response matches what was expected to receive, but there's\n // no matching Cache Node in the task tree. This is a bug in the\n // implementation because we should have created a node for every\n // segment in the tree that's associated with this task.\n }\n }\n\n // Use the dynamic data from the server to fulfill the deferred RSC promise\n // on the Cache Node.\n const rsc = cacheNode.rsc\n const dynamicSegmentData = dynamicData[1]\n if (rsc === null) {\n // This is a lazy cache node. We can overwrite it. This is only safe\n // because we know that the LayoutRouter suspends if `rsc` is `null`.\n cacheNode.rsc = dynamicSegmentData\n } else if (isDeferredRsc(rsc)) {\n // This is a deferred RSC promise. We can fulfill it with the data we just\n // received from the server. If it was already resolved by a different\n // navigation, then this does nothing because we can't overwrite data.\n rsc.resolve(dynamicSegmentData)\n } else {\n // This is not a deferred RSC promise, nor is it empty, so it must have\n // been populated by a different navigation. We must not overwrite it.\n }\n\n // Check if this is a leaf segment. If so, it will have a `head` property with\n // a pending promise that needs to be resolved with the dynamic head from\n // the server.\n const head = cacheNode.head\n if (isDeferredRsc(head)) {\n head.resolve(dynamicHead)\n }\n}\n\nexport function abortTask(task: SPANavigationTask, error: any): void {\n const cacheNode = task.node\n if (cacheNode === null) {\n // This indicates the task is already complete.\n return\n }\n\n const taskChildren = task.children\n if (taskChildren === null) {\n // Reached the leaf task node. This is the root of a pending cache\n // node tree.\n abortPendingCacheNode(task.route, cacheNode, error)\n } else {\n // This is an intermediate task node. Keep traversing until we reach a\n // task node with no children. That will be the root of the cache node tree\n // that needs to be resolved.\n for (const taskChild of taskChildren.values()) {\n abortTask(taskChild, error)\n }\n }\n\n // Set this to null to indicate that this task is now complete.\n task.dynamicRequestTree = null\n}\n\nfunction abortPendingCacheNode(\n routerState: FlightRouterState,\n cacheNode: CacheNode,\n error: any\n): void {\n // For every pending segment in the tree, resolve its `rsc` promise to `null`\n // to trigger a lazy fetch during render.\n //\n // Or, if an error object is provided, it will error instead.\n const routerStateChildren = routerState[1]\n const parallelRoutes = cacheNode.parallelRoutes\n for (let parallelRouteKey in routerStateChildren) {\n const routerStateChild: FlightRouterState =\n routerStateChildren[parallelRouteKey]\n const segmentMapChild = parallelRoutes.get(parallelRouteKey)\n if (segmentMapChild === undefined) {\n // This shouldn't happen because we're traversing the same tree that was\n // used to construct the cache nodes in the first place.\n continue\n }\n const segmentChild = routerStateChild[0]\n const segmentKeyChild = createRouterCacheKey(segmentChild)\n const cacheNodeChild = segmentMapChild.get(segmentKeyChild)\n if (cacheNodeChild !== undefined) {\n abortPendingCacheNode(routerStateChild, cacheNodeChild, error)\n } else {\n // This shouldn't happen because we're traversing the same tree that was\n // used to construct the cache nodes in the first place.\n }\n }\n const rsc = cacheNode.rsc\n if (isDeferredRsc(rsc)) {\n if (error === null) {\n // This will trigger a lazy fetch during render.\n rsc.resolve(null)\n } else {\n // This will trigger an error during rendering.\n rsc.reject(error)\n }\n }\n\n // Check if this is a leaf segment. If so, it will have a `head` property with\n // a pending promise that needs to be resolved. If an error was provided, we\n // will not resolve it with an error, since this is rendered at the root of\n // the app. We want the segment to error, not the entire app.\n const head = cacheNode.head\n if (isDeferredRsc(head)) {\n head.resolve(null)\n }\n}\n\nexport function updateCacheNodeOnPopstateRestoration(\n oldCacheNode: CacheNode,\n routerState: FlightRouterState\n): ReadyCacheNode {\n // A popstate navigation reads data from the local cache. It does not issue\n // new network requests (unless the cache entries have been evicted). So, we\n // update the cache to drop the prefetch data for any segment whose dynamic\n // data was already received. This prevents an unnecessary flash back to PPR\n // state during a back/forward navigation.\n //\n // This function clones the entire cache node tree and sets the `prefetchRsc`\n // field to `null` to prevent it from being rendered. We can't mutate the node\n // in place because this is a concurrent data structure.\n\n const routerStateChildren = routerState[1]\n const oldParallelRoutes = oldCacheNode.parallelRoutes\n const newParallelRoutes = new Map(oldParallelRoutes)\n for (let parallelRouteKey in routerStateChildren) {\n const routerStateChild: FlightRouterState =\n routerStateChildren[parallelRouteKey]\n const segmentChild = routerStateChild[0]\n const segmentKeyChild = createRouterCacheKey(segmentChild)\n const oldSegmentMapChild = oldParallelRoutes.get(parallelRouteKey)\n if (oldSegmentMapChild !== undefined) {\n const oldCacheNodeChild = oldSegmentMapChild.get(segmentKeyChild)\n if (oldCacheNodeChild !== undefined) {\n const newCacheNodeChild = updateCacheNodeOnPopstateRestoration(\n oldCacheNodeChild,\n routerStateChild\n )\n const newSegmentMapChild = new Map(oldSegmentMapChild)\n newSegmentMapChild.set(segmentKeyChild, newCacheNodeChild)\n newParallelRoutes.set(parallelRouteKey, newSegmentMapChild)\n }\n }\n }\n\n // Only show prefetched data if the dynamic data is still pending.\n //\n // Tehnically, what we're actually checking is whether the dynamic network\n // response was received. But since it's a streaming response, this does not\n // mean that all the dynamic data has fully streamed in. It just means that\n // _some_ of the dynamic data was received. But as a heuristic, we assume that\n // the rest dynamic data will stream in quickly, so it's still better to skip\n // the prefetch state.\n const rsc = oldCacheNode.rsc\n const shouldUsePrefetch = isDeferredRsc(rsc) && rsc.status === 'pending'\n\n return {\n lazyData: null,\n rsc,\n head: oldCacheNode.head,\n\n prefetchHead: shouldUsePrefetch ? oldCacheNode.prefetchHead : [null, null],\n prefetchRsc: shouldUsePrefetch ? oldCacheNode.prefetchRsc : null,\n loading: oldCacheNode.loading,\n\n // These are the cloned children we computed above\n parallelRoutes: newParallelRoutes,\n\n navigatedAt: oldCacheNode.navigatedAt,\n }\n}\n\nconst DEFERRED = Symbol()\n\ntype PendingDeferredRsc = Promise<React.ReactNode> & {\n status: 'pending'\n resolve: (value: React.ReactNode) => void\n reject: (error: any) => void\n tag: Symbol\n}\n\ntype FulfilledDeferredRsc = Promise<React.ReactNode> & {\n status: 'fulfilled'\n value: React.ReactNode\n resolve: (value: React.ReactNode) => void\n reject: (error: any) => void\n tag: Symbol\n}\n\ntype RejectedDeferredRsc = Promise<React.ReactNode> & {\n status: 'rejected'\n reason: any\n resolve: (value: React.ReactNode) => void\n reject: (error: any) => void\n tag: Symbol\n}\n\ntype DeferredRsc =\n | PendingDeferredRsc\n | FulfilledDeferredRsc\n | RejectedDeferredRsc\n\n// This type exists to distinguish a DeferredRsc from a Flight promise. It's a\n// compromise to avoid adding an extra field on every Cache Node, which would be\n// awkward because the pre-PPR parts of codebase would need to account for it,\n// too. We can remove it once type Cache Node type is more settled.\nfunction isDeferredRsc(value: any): value is DeferredRsc {\n return value && value.tag === DEFERRED\n}\n\nfunction createDeferredRsc(): PendingDeferredRsc {\n let resolve: any\n let reject: any\n const pendingRsc = new Promise<React.ReactNode>((res, rej) => {\n resolve = res\n reject = rej\n }) as PendingDeferredRsc\n pendingRsc.status = 'pending'\n pendingRsc.resolve = (value: React.ReactNode) => {\n if (pendingRsc.status === 'pending') {\n const fulfilledRsc: FulfilledDeferredRsc = pendingRsc as any\n fulfilledRsc.status = 'fulfilled'\n fulfilledRsc.value = value\n resolve(value)\n }\n }\n pendingRsc.reject = (error: any) => {\n if (pendingRsc.status === 'pending') {\n const rejectedRsc: RejectedDeferredRsc = pendingRsc as any\n rejectedRsc.status = 'rejected'\n rejectedRsc.reason = error\n reject(error)\n }\n }\n pendingRsc.tag = DEFERRED\n return pendingRsc\n}\n","import type {\n CacheNodeSeedData,\n FlightRouterState,\n} from '../../../server/app-render/types'\nimport type { CacheNode } from '../../../shared/lib/app-router-context.shared-runtime'\nimport {\n addSearchParamsIfPageSegment,\n PAGE_SEGMENT_KEY,\n} from '../../../shared/lib/segment'\nimport type { NormalizedFlightData } from '../../flight-data-helpers'\nimport { createEmptyCacheNode } from '../app-router'\nimport { applyRouterStatePatchToTree } from './apply-router-state-patch-to-tree'\nimport { createHrefFromUrl } from './create-href-from-url'\nimport { createRouterCacheKey } from './create-router-cache-key'\nimport { fillCacheWithNewSubTreeDataButOnlyLoading } from './fill-cache-with-new-subtree-data'\nimport { handleMutable } from './handle-mutable'\nimport type { Mutable, ReadonlyReducerState } from './router-reducer-types'\n\n/**\n * This is a stop-gap until per-segment caching is implemented. It leverages the `aliased` flag that is added\n * to prefetch entries when it's determined that the loading state from that entry should be used for this navigation.\n * This function takes the aliased entry and only applies the loading state to the updated cache node.\n * We should remove this once per-segment fetching is implemented as ideally the prefetch cache will contain a\n * more granular segment map and so the router will be able to simply re-use the loading segment for the new navigation.\n */\nexport function handleAliasedPrefetchEntry(\n navigatedAt: number,\n state: ReadonlyReducerState,\n flightData: string | NormalizedFlightData[],\n url: URL,\n mutable: Mutable\n) {\n let currentTree = state.tree\n let currentCache = state.cache\n const href = createHrefFromUrl(url)\n let applied\n\n if (typeof flightData === 'string') {\n return false\n }\n\n for (const normalizedFlightData of flightData) {\n // If the segment doesn't have a loading component, we don't need to do anything.\n if (!hasLoadingComponentInSeedData(normalizedFlightData.seedData)) {\n continue\n }\n\n let treePatch = normalizedFlightData.tree\n // Segments are keyed by searchParams (e.g. __PAGE__?{\"foo\":\"bar\"}). We might return a less specific, param-less entry,\n // so we ensure that the final tree contains the correct searchParams (reflected in the URL) are provided in the updated FlightRouterState tree.\n // We only do this on the first read, as otherwise we'd be overwriting the searchParams that may have already been set\n treePatch = addSearchParamsToPageSegments(\n treePatch,\n Object.fromEntries(url.searchParams)\n )\n\n const { seedData, isRootRender, pathToSegment } = normalizedFlightData\n // TODO-APP: remove ''\n const flightSegmentPathWithLeadingEmpty = ['', ...pathToSegment]\n\n // Segments are keyed by searchParams (e.g. __PAGE__?{\"foo\":\"bar\"}). We might return a less specific, param-less entry,\n // so we ensure that the final tree contains the correct searchParams (reflected in the URL) are provided in the updated FlightRouterState tree.\n // We only do this on the first read, as otherwise we'd be overwriting the searchParams that may have already been set\n treePatch = addSearchParamsToPageSegments(\n treePatch,\n Object.fromEntries(url.searchParams)\n )\n\n let newTree = applyRouterStatePatchToTree(\n flightSegmentPathWithLeadingEmpty,\n currentTree,\n treePatch,\n href\n )\n\n const newCache = createEmptyCacheNode()\n\n // The prefetch cache entry was aliased -- this signals that we only fill in the cache with the\n // loading state and not the actual parallel route seed data.\n if (isRootRender && seedData) {\n // Fill in the cache with the new loading / rsc data\n const rsc = seedData[1]\n const loading = seedData[3]\n newCache.loading = loading\n newCache.rsc = rsc\n\n // Construct a new tree and apply the aliased loading state for each parallel route\n fillNewTreeWithOnlyLoadingSegments(\n navigatedAt,\n newCache,\n currentCache,\n treePatch,\n seedData\n )\n } else {\n // Copy rsc for the root node of the cache.\n newCache.rsc = currentCache.rsc\n newCache.prefetchRsc = currentCache.prefetchRsc\n newCache.loading = currentCache.loading\n newCache.parallelRoutes = new Map(currentCache.parallelRoutes)\n\n // copy the loading state only into the leaf node (the part that changed)\n fillCacheWithNewSubTreeDataButOnlyLoading(\n navigatedAt,\n newCache,\n currentCache,\n normalizedFlightData\n )\n }\n\n // If we don't have an updated tree, there's no reason to update the cache, as the tree\n // dictates what cache nodes to render.\n if (newTree) {\n currentTree = newTree\n currentCache = newCache\n applied = true\n }\n }\n\n if (!applied) {\n return false\n }\n\n mutable.patchedTree = currentTree\n mutable.cache = currentCache\n mutable.canonicalUrl = href\n mutable.hashFragment = url.hash\n\n return handleMutable(state, mutable)\n}\n\nfunction hasLoadingComponentInSeedData(seedData: CacheNodeSeedData | null) {\n if (!seedData) return false\n\n const parallelRoutes = seedData[2]\n const loading = seedData[3]\n\n if (loading) {\n return true\n }\n\n for (const key in parallelRoutes) {\n if (hasLoadingComponentInSeedData(parallelRoutes[key])) {\n return true\n }\n }\n\n return false\n}\n\nfunction fillNewTreeWithOnlyLoadingSegments(\n navigatedAt: number,\n newCache: CacheNode,\n existingCache: CacheNode,\n routerState: FlightRouterState,\n cacheNodeSeedData: CacheNodeSeedData | null\n) {\n const isLastSegment = Object.keys(routerState[1]).length === 0\n if (isLastSegment) {\n return\n }\n\n for (const key in routerState[1]) {\n const parallelRouteState = routerState[1][key]\n const segmentForParallelRoute = parallelRouteState[0]\n const cacheKey = createRouterCacheKey(segmentForParallelRoute)\n\n const parallelSeedData =\n cacheNodeSeedData !== null && cacheNodeSeedData[2][key] !== undefined\n ? cacheNodeSeedData[2][key]\n : null\n\n let newCacheNode: CacheNode\n if (parallelSeedData !== null) {\n // New data was sent from the server.\n const rsc = parallelSeedData[1]\n const loading = parallelSeedData[3]\n newCacheNode = {\n lazyData: null,\n // copy the layout but null the page segment as that's not meant to be used\n rsc: segmentForParallelRoute.includes(PAGE_SEGMENT_KEY) ? null : rsc,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading,\n navigatedAt,\n }\n } else {\n // No data available for this node. This will trigger a lazy fetch\n // during render.\n newCacheNode = {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1,\n }\n }\n\n const existingParallelRoutes = newCache.parallelRoutes.get(key)\n if (existingParallelRoutes) {\n existingParallelRoutes.set(cacheKey, newCacheNode)\n } else {\n newCache.parallelRoutes.set(key, new Map([[cacheKey, newCacheNode]]))\n }\n\n fillNewTreeWithOnlyLoadingSegments(\n navigatedAt,\n newCacheNode,\n existingCache,\n parallelRouteState,\n parallelSeedData\n )\n }\n}\n\n/**\n * Add search params to the page segments in the flight router state\n * Page segments that are associated with search params have a page segment key\n * followed by a query string. This function will add those params to the page segment.\n * This is useful if we return an aliased prefetch entry (ie, won't have search params)\n * but the canonical router URL has search params.\n */\nexport function addSearchParamsToPageSegments(\n flightRouterState: FlightRouterState,\n searchParams: Record<string, string | string[] | undefined>\n): FlightRouterState {\n const [segment, parallelRoutes, ...rest] = flightRouterState\n\n // If it's a page segment, modify the segment by adding search params\n if (segment.includes(PAGE_SEGMENT_KEY)) {\n const newSegment = addSearchParamsIfPageSegment(segment, searchParams)\n return [newSegment, parallelRoutes, ...rest]\n }\n\n // Otherwise, recurse through the parallel routes and return a new tree\n const updatedParallelRoutes: { [key: string]: FlightRouterState } = {}\n\n for (const [key, parallelRoute] of Object.entries(parallelRoutes)) {\n updatedParallelRoutes[key] = addSearchParamsToPageSegments(\n parallelRoute,\n searchParams\n )\n }\n\n return [segment, updatedParallelRoutes, ...rest]\n}\n","import { ensureLeadingSlash } from '../../page-path/ensure-leading-slash'\nimport { isGroupSegment } from '../../segment'\n\n/**\n * Normalizes an app route so it represents the actual request path. Essentially\n * performing the following transformations:\n *\n * - `/(dashboard)/user/[id]/page` to `/user/[id]`\n * - `/(dashboard)/account/page` to `/account`\n * - `/user/[id]/page` to `/user/[id]`\n * - `/account/page` to `/account`\n * - `/page` to `/`\n * - `/(dashboard)/user/[id]/route` to `/user/[id]`\n * - `/(dashboard)/account/route` to `/account`\n * - `/user/[id]/route` to `/user/[id]`\n * - `/account/route` to `/account`\n * - `/route` to `/`\n * - `/` to `/`\n *\n * @param route the app route to normalize\n * @returns the normalized pathname\n */\nexport function normalizeAppPath(route: string) {\n return ensureLeadingSlash(\n route.split('/').reduce((pathname, segment, index, segments) => {\n // Empty segments are ignored.\n if (!segment) {\n return pathname\n }\n\n // Groups are ignored.\n if (isGroupSegment(segment)) {\n return pathname\n }\n\n // Parallel segments are ignored.\n if (segment[0] === '@') {\n return pathname\n }\n\n // The last segment (if it's a leaf) should be ignored.\n if (\n (segment === 'page' || segment === 'route') &&\n index === segments.length - 1\n ) {\n return pathname\n }\n\n return `${pathname}/${segment}`\n }, '')\n )\n}\n\n/**\n * Strips the `.rsc` extension if it's in the pathname.\n * Since this function is used on full urls it checks `?` for searchParams handling.\n */\nexport function normalizeRscURL(url: string) {\n return url.replace(\n /\\.rsc($|\\?)/,\n // $1 ensures `?` is preserved\n '$1'\n )\n}\n","'use client'\n\nimport { Suspense, use } from 'react'\nimport type { StreamingMetadataResolvedState } from './types'\n\nfunction MetadataOutlet({\n promise,\n}: {\n promise: Promise<StreamingMetadataResolvedState>\n}) {\n const { error, digest } = use(promise)\n if (error) {\n if (digest) {\n // The error will lose its original digest after passing from server layer to client layer;\n // We recover the digest property here to override the React created one if original digest exists.\n ;(error as any).digest = digest\n }\n throw error\n }\n return null\n}\n\nexport function AsyncMetadataOutlet({\n promise,\n}: {\n promise: Promise<StreamingMetadataResolvedState>\n}) {\n return (\n <Suspense fallback={null}>\n <MetadataOutlet promise={promise} />\n </Suspense>\n )\n}\n","import { fetchServerResponse } from '../fetch-server-response'\nimport { createHrefFromUrl } from '../create-href-from-url'\nimport { applyRouterStatePatchToTree } from '../apply-router-state-patch-to-tree'\nimport { isNavigatingToNewRootLayout } from '../is-navigating-to-new-root-layout'\nimport type {\n Mutable,\n ReadonlyReducerState,\n ReducerState,\n RefreshAction,\n} from '../router-reducer-types'\nimport { handleExternalUrl } from './navigate-reducer'\nimport { handleMutable } from '../handle-mutable'\nimport type { CacheNode } from '../../../../shared/lib/app-router-context.shared-runtime'\nimport { fillLazyItemsTillLeafWithHead } from '../fill-lazy-items-till-leaf-with-head'\nimport { createEmptyCacheNode } from '../../app-router'\nimport { handleSegmentMismatch } from '../handle-segment-mismatch'\nimport { hasInterceptionRouteInCurrentTree } from './has-interception-route-in-current-tree'\nimport { refreshInactiveParallelSegments } from '../refetch-inactive-parallel-segments'\nimport { revalidateEntireCache } from '../../segment-cache'\n\nexport function refreshReducer(\n state: ReadonlyReducerState,\n action: RefreshAction\n): ReducerState {\n const { origin } = action\n const mutable: Mutable = {}\n const href = state.canonicalUrl\n\n let currentTree = state.tree\n\n mutable.preserveCustomHistoryState = false\n\n const cache: CacheNode = createEmptyCacheNode()\n\n // If the current tree was intercepted, the nextUrl should be included in the request.\n // This is to ensure that the refresh request doesn't get intercepted, accidentally triggering the interception route.\n const includeNextUrl = hasInterceptionRouteInCurrentTree(state.tree)\n\n // TODO-APP: verify that `href` is not an external url.\n // Fetch data from the root of the tree.\n cache.lazyData = fetchServerResponse(new URL(href, origin), {\n flightRouterState: [\n currentTree[0],\n currentTree[1],\n currentTree[2],\n 'refetch',\n ],\n nextUrl: includeNextUrl ? state.nextUrl : null,\n })\n\n const navigatedAt = Date.now()\n return cache.lazyData.then(\n async ({ flightData, canonicalUrl: canonicalUrlOverride }) => {\n // Handle case when navigating to page in `pages` from `app`\n if (typeof flightData === 'string') {\n return handleExternalUrl(\n state,\n mutable,\n flightData,\n state.pushRef.pendingPush\n )\n }\n\n // Remove cache.lazyData as it has been resolved at this point.\n cache.lazyData = null\n\n for (const normalizedFlightData of flightData) {\n const {\n tree: treePatch,\n seedData: cacheNodeSeedData,\n head,\n isRootRender,\n } = normalizedFlightData\n\n if (!isRootRender) {\n // TODO-APP: handle this case better\n console.log('REFRESH FAILED')\n return state\n }\n\n const newTree = applyRouterStatePatchToTree(\n // TODO-APP: remove ''\n [''],\n currentTree,\n treePatch,\n state.canonicalUrl\n )\n\n if (newTree === null) {\n return handleSegmentMismatch(state, action, treePatch)\n }\n\n if (isNavigatingToNewRootLayout(currentTree, newTree)) {\n return handleExternalUrl(\n state,\n mutable,\n href,\n state.pushRef.pendingPush\n )\n }\n\n const canonicalUrlOverrideHref = canonicalUrlOverride\n ? createHrefFromUrl(canonicalUrlOverride)\n : undefined\n\n if (canonicalUrlOverride) {\n mutable.canonicalUrl = canonicalUrlOverrideHref\n }\n\n // Handles case where prefetch only returns the router tree patch without rendered components.\n if (cacheNodeSeedData !== null) {\n const rsc = cacheNodeSeedData[1]\n const loading = cacheNodeSeedData[3]\n cache.rsc = rsc\n cache.prefetchRsc = null\n cache.loading = loading\n fillLazyItemsTillLeafWithHead(\n navigatedAt,\n cache,\n // Existing cache is not passed in as `router.refresh()` has to invalidate the entire cache.\n undefined,\n treePatch,\n cacheNodeSeedData,\n head,\n undefined\n )\n if (process.env.__NEXT_CLIENT_SEGMENT_CACHE) {\n revalidateEntireCache(state.nextUrl, newTree)\n } else {\n mutable.prefetchCache = new Map()\n }\n }\n\n await refreshInactiveParallelSegments({\n navigatedAt,\n state,\n updatedTree: newTree,\n updatedCache: cache,\n includeNextUrl,\n canonicalUrl: mutable.canonicalUrl || state.canonicalUrl,\n })\n\n mutable.cache = cache\n mutable.patchedTree = newTree\n\n currentTree = newTree\n }\n\n return handleMutable(state, mutable)\n },\n () => state\n )\n}\n","import type { CacheNode } from '../../../shared/lib/app-router-context.shared-runtime'\nimport type { FlightRouterState } from '../../../server/app-render/types'\nimport { createRouterCacheKey } from './create-router-cache-key'\n\n/**\n * Invalidate cache one level down from the router state.\n */\nexport function invalidateCacheByRouterState(\n newCache: CacheNode,\n existingCache: CacheNode,\n routerState: FlightRouterState\n): void {\n // Remove segment that we got data for so that it is filled in during rendering of rsc.\n for (const key in routerState[1]) {\n const segmentForParallelRoute = routerState[1][key][0]\n const cacheKey = createRouterCacheKey(segmentForParallelRoute)\n const existingParallelRoutesCacheNode =\n existingCache.parallelRoutes.get(key)\n if (existingParallelRoutesCacheNode) {\n let parallelRouteCacheNode = new Map(existingParallelRoutesCacheNode)\n parallelRouteCacheNode.delete(cacheKey)\n newCache.parallelRoutes.set(key, parallelRouteCacheNode)\n }\n }\n}\n","import type { FlightRouterState } from '../../../server/app-render/types'\nimport type { CacheNode } from '../../../shared/lib/app-router-context.shared-runtime'\nimport type { AppRouterState } from './router-reducer-types'\nimport { applyFlightData } from './apply-flight-data'\nimport { fetchServerResponse } from './fetch-server-response'\nimport { PAGE_SEGMENT_KEY } from '../../../shared/lib/segment'\n\ninterface RefreshInactiveParallelSegments {\n navigatedAt: number\n state: AppRouterState\n updatedTree: FlightRouterState\n updatedCache: CacheNode\n includeNextUrl: boolean\n canonicalUrl: string\n}\n\n/**\n * Refreshes inactive segments that are still in the current FlightRouterState.\n * A segment is considered \"inactive\" when the server response indicates it didn't match to a page component.\n * This happens during a soft-navigation, where the server will want to patch in the segment\n * with the \"default\" component, but we explicitly ignore the server in this case\n * and keep the existing state for that segment. New data for inactive segments are inherently\n * not part of the server response when we patch the tree, because they were associated with a response\n * from an earlier navigation/request. For each segment, once it becomes \"active\", we encode the URL that provided\n * the data for it. This function traverses parallel routes looking for these markers so that it can re-fetch\n * and patch the new data into the tree.\n */\nexport async function refreshInactiveParallelSegments(\n options: RefreshInactiveParallelSegments\n) {\n const fetchedSegments = new Set<string>()\n await refreshInactiveParallelSegmentsImpl({\n ...options,\n rootTree: options.updatedTree,\n fetchedSegments,\n })\n}\n\nasync function refreshInactiveParallelSegmentsImpl({\n navigatedAt,\n state,\n updatedTree,\n updatedCache,\n includeNextUrl,\n fetchedSegments,\n rootTree = updatedTree,\n canonicalUrl,\n}: RefreshInactiveParallelSegments & {\n fetchedSegments: Set<string>\n rootTree: FlightRouterState\n}) {\n const [, parallelRoutes, refetchPath, refetchMarker] = updatedTree\n const fetchPromises = []\n\n if (\n refetchPath &&\n refetchPath !== canonicalUrl &&\n refetchMarker === 'refresh' &&\n // it's possible for the tree to contain multiple segments that contain data at the same URL\n // we keep track of them so we can dedupe the requests\n !fetchedSegments.has(refetchPath)\n ) {\n fetchedSegments.add(refetchPath) // Mark this URL as fetched\n\n // Eagerly kick off the fetch for the refetch path & the parallel routes. This should be fine to do as they each operate\n // independently on their own cache nodes, and `applyFlightData` will copy anything it doesn't care about from the existing cache.\n const fetchPromise = fetchServerResponse(\n new URL(refetchPath, location.origin),\n {\n // refetch from the root of the updated tree, otherwise it will be scoped to the current segment\n // and might not contain the data we need to patch in interception route data (such as dynamic params from a previous segment)\n flightRouterState: [rootTree[0], rootTree[1], rootTree[2], 'refetch'],\n nextUrl: includeNextUrl ? state.nextUrl : null,\n }\n ).then(({ flightData }) => {\n if (typeof flightData !== 'string') {\n for (const flightDataPath of flightData) {\n // we only pass the new cache as this function is called after clearing the router cache\n // and filling in the new page data from the server. Meaning the existing cache is actually the cache that's\n // just been created & has been written to, but hasn't been \"committed\" yet.\n applyFlightData(\n navigatedAt,\n updatedCache,\n updatedCache,\n flightDataPath\n )\n }\n } else {\n // When flightData is a string, it suggests that the server response should have triggered an MPA navigation\n // I'm not 100% sure of this decision, but it seems unlikely that we'd want to introduce a redirect side effect\n // when refreshing on-screen data, so handling this has been ommitted.\n }\n })\n\n fetchPromises.push(fetchPromise)\n }\n\n for (const key in parallelRoutes) {\n const parallelFetchPromise = refreshInactiveParallelSegmentsImpl({\n navigatedAt,\n state,\n updatedTree: parallelRoutes[key],\n updatedCache,\n includeNextUrl,\n fetchedSegments,\n rootTree,\n canonicalUrl,\n })\n\n fetchPromises.push(parallelFetchPromise)\n }\n\n await Promise.all(fetchPromises)\n}\n\n/**\n * Walks the current parallel segments to determine if they are \"active\".\n * An active parallel route will have a `__PAGE__` segment in the FlightRouterState.\n * As opposed to a `__DEFAULT__` segment, which means there was no match for that parallel route.\n * We add a special marker here so that we know how to refresh its data when the router is revalidated.\n */\nexport function addRefreshMarkerToActiveParallelSegments(\n tree: FlightRouterState,\n path: string\n) {\n const [segment, parallelRoutes, , refetchMarker] = tree\n // a page segment might also contain concatenated search params, so we do a partial match on the key\n if (segment.includes(PAGE_SEGMENT_KEY) && refetchMarker !== 'refresh') {\n tree[2] = path\n tree[3] = 'refresh'\n }\n\n for (const key in parallelRoutes) {\n addRefreshMarkerToActiveParallelSegments(parallelRoutes[key], path)\n }\n}\n","import { RedirectStatusCode } from './redirect-status-code'\nimport {\n RedirectType,\n type RedirectError,\n isRedirectError,\n REDIRECT_ERROR_CODE,\n} from './redirect-error'\n\nconst actionAsyncStorage =\n typeof window === 'undefined'\n ? (\n require('../../server/app-render/action-async-storage.external') as typeof import('../../server/app-render/action-async-storage.external')\n ).actionAsyncStorage\n : undefined\n\nexport function getRedirectError(\n url: string,\n type: RedirectType,\n statusCode: RedirectStatusCode = RedirectStatusCode.TemporaryRedirect\n): RedirectError {\n const error = new Error(REDIRECT_ERROR_CODE) as RedirectError\n error.digest = `${REDIRECT_ERROR_CODE};${type};${url};${statusCode};`\n return error\n}\n\n/**\n * This function allows you to redirect the user to another URL. It can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * - In a Server Component, this will insert a meta tag to redirect the user to the target page.\n * - In a Route Handler or Server Action, it will serve a 307/303 to the caller.\n * - In a Server Action, type defaults to 'push' and 'replace' elsewhere.\n *\n * Read more: [Next.js Docs: `redirect`](https://nextjs.org/docs/app/api-reference/functions/redirect)\n */\nexport function redirect(\n /** The URL to redirect to */\n url: string,\n type?: RedirectType\n): never {\n type ??= actionAsyncStorage?.getStore()?.isAction\n ? RedirectType.push\n : RedirectType.replace\n\n throw getRedirectError(url, type, RedirectStatusCode.TemporaryRedirect)\n}\n\n/**\n * This function allows you to redirect the user to another URL. It can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * - In a Server Component, this will insert a meta tag to redirect the user to the target page.\n * - In a Route Handler or Server Action, it will serve a 308/303 to the caller.\n *\n * Read more: [Next.js Docs: `redirect`](https://nextjs.org/docs/app/api-reference/functions/redirect)\n */\nexport function permanentRedirect(\n /** The URL to redirect to */\n url: string,\n type: RedirectType = RedirectType.replace\n): never {\n throw getRedirectError(url, type, RedirectStatusCode.PermanentRedirect)\n}\n\n/**\n * Returns the encoded URL from the error if it's a RedirectError, null\n * otherwise. Note that this does not validate the URL returned.\n *\n * @param error the error that may be a redirect error\n * @return the url if the error was a redirect error\n */\nexport function getURLFromRedirectError(error: RedirectError): string\nexport function getURLFromRedirectError(error: unknown): string | null {\n if (!isRedirectError(error)) return null\n\n // Slices off the beginning of the digest that contains the code and the\n // separating ';'.\n return error.digest.split(';').slice(2, -2).join(';')\n}\n\nexport function getRedirectTypeFromError(error: RedirectError): RedirectType {\n if (!isRedirectError(error)) {\n throw new Error('Not a redirect error')\n }\n\n return error.digest.split(';', 2)[1] as RedirectType\n}\n\nexport function getRedirectStatusCodeFromError(error: RedirectError): number {\n if (!isRedirectError(error)) {\n throw new Error('Not a redirect error')\n }\n\n return Number(error.digest.split(';').at(-2))\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n default: null,\n getProperError: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n /**\n * Checks whether the given value is a NextError.\n * This can be used to print a more detailed error message with properties like `code` & `digest`.\n */ default: function() {\n return isError;\n },\n getProperError: function() {\n return getProperError;\n }\n});\nconst _isplainobject = require(\"../shared/lib/is-plain-object\");\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\nfunction safeStringify(obj) {\n const seen = new WeakSet();\n return JSON.stringify(obj, (_key, value)=>{\n // If value is an object and already seen, replace with \"[Circular]\"\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return '[Circular]';\n }\n seen.add(value);\n }\n return value;\n });\n}\nfunction getProperError(err) {\n if (isError(err)) {\n return err;\n }\n if (process.env.NODE_ENV === 'development') {\n // provide better error for case where `throw undefined`\n // is called in development\n if (typeof err === 'undefined') {\n return Object.defineProperty(new Error('An undefined error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E98\",\n enumerable: false,\n configurable: true\n });\n }\n if (err === null) {\n return Object.defineProperty(new Error('A null error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E336\",\n enumerable: false,\n configurable: true\n });\n }\n }\n return Object.defineProperty(new Error((0, _isplainobject.isPlainObject)(err) ? safeStringify(err) : err + ''), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n}\n\n//# sourceMappingURL=is-error.js.map","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","\"trimStart\"in String.prototype||(String.prototype.trimStart=String.prototype.trimLeft),\"trimEnd\"in String.prototype||(String.prototype.trimEnd=String.prototype.trimRight),\"description\"in Symbol.prototype||Object.defineProperty(Symbol.prototype,\"description\",{configurable:!0,get:function(){var t=/\\((.*)\\)/.exec(this.toString());return t?t[1]:void 0}}),Array.prototype.flat||(Array.prototype.flat=function(t,r){return r=this.concat.apply([],this),t>1&&r.some(Array.isArray)?r.flat(t-1):r},Array.prototype.flatMap=function(t,r){return this.map(t,r).flat()}),Promise.prototype.finally||(Promise.prototype.finally=function(t){if(\"function\"!=typeof t)return this.then(t,t);var r=this.constructor||Promise;return this.then(function(n){return r.resolve(t()).then(function(){return n})},function(n){return r.resolve(t()).then(function(){throw n})})}),Object.fromEntries||(Object.fromEntries=function(t){return Array.from(t).reduce(function(t,r){return t[r[0]]=r[1],t},{})}),Array.prototype.at||(Array.prototype.at=function(t){var r=Math.trunc(t)||0;if(r<0&&(r+=this.length),!(r<0||r>=this.length))return this[r]}),Object.hasOwn||(Object.hasOwn=function(t,r){if(null==t)throw new TypeError(\"Cannot convert undefined or null to object\");return Object.prototype.hasOwnProperty.call(Object(t),r)}),\"canParse\"in URL||(URL.canParse=function(t,r){try{return!!new URL(t,r)}catch(t){return!1}});\n","import { computeChangedPath } from './compute-changed-path'\nimport type {\n Mutable,\n ReadonlyReducerState,\n ReducerState,\n} from './router-reducer-types'\n\nfunction isNotUndefined<T>(value: T): value is Exclude<T, undefined> {\n return typeof value !== 'undefined'\n}\n\nexport function handleMutable(\n state: ReadonlyReducerState,\n mutable: Mutable\n): ReducerState {\n // shouldScroll is true by default, can override to false.\n const shouldScroll = mutable.shouldScroll ?? true\n\n let nextUrl = state.nextUrl\n\n if (isNotUndefined(mutable.patchedTree)) {\n // If we received a patched tree, we need to compute the changed path.\n const changedPath = computeChangedPath(state.tree, mutable.patchedTree)\n if (changedPath) {\n // If the tree changed, we need to update the nextUrl\n nextUrl = changedPath\n } else if (!nextUrl) {\n // if the tree ends up being the same (ie, no changed path), and we don't have a nextUrl, then we should use the canonicalUrl\n nextUrl = state.canonicalUrl\n }\n // otherwise this will be a no-op and continue to use the existing nextUrl\n }\n\n return {\n // Set href.\n canonicalUrl: isNotUndefined(mutable.canonicalUrl)\n ? mutable.canonicalUrl === state.canonicalUrl\n ? state.canonicalUrl\n : mutable.canonicalUrl\n : state.canonicalUrl,\n pushRef: {\n pendingPush: isNotUndefined(mutable.pendingPush)\n ? mutable.pendingPush\n : state.pushRef.pendingPush,\n mpaNavigation: isNotUndefined(mutable.mpaNavigation)\n ? mutable.mpaNavigation\n : state.pushRef.mpaNavigation,\n preserveCustomHistoryState: isNotUndefined(\n mutable.preserveCustomHistoryState\n )\n ? mutable.preserveCustomHistoryState\n : state.pushRef.preserveCustomHistoryState,\n },\n // All navigation requires scroll and focus management to trigger.\n focusAndScrollRef: {\n apply: shouldScroll\n ? isNotUndefined(mutable?.scrollableSegments)\n ? true\n : state.focusAndScrollRef.apply\n : // If shouldScroll is false then we should not apply scroll and focus management.\n false,\n onlyHashChange: mutable.onlyHashChange || false,\n hashFragment: shouldScroll\n ? // Empty hash should trigger default behavior of scrolling layout into view.\n // #top is handled in layout-router.\n mutable.hashFragment && mutable.hashFragment !== ''\n ? // Remove leading # and decode hash to make non-latin hashes work.\n decodeURIComponent(mutable.hashFragment.slice(1))\n : state.focusAndScrollRef.hashFragment\n : // If shouldScroll is false then we should not apply scroll and focus management.\n null,\n segmentPaths: shouldScroll\n ? mutable?.scrollableSegments ?? state.focusAndScrollRef.segmentPaths\n : // If shouldScroll is false then we should not apply scroll and focus management.\n [],\n },\n // Apply cache.\n cache: mutable.cache ? mutable.cache : state.cache,\n prefetchCache: mutable.prefetchCache\n ? mutable.prefetchCache\n : state.prefetchCache,\n // Apply patched router state.\n tree: isNotUndefined(mutable.patchedTree)\n ? mutable.patchedTree\n : state.tree,\n nextUrl,\n }\n}\n","'use client'\nimport React, { useEffect } from 'react'\nimport type { AppRouterInstance } from '../../shared/lib/app-router-context.shared-runtime'\nimport { useRouter } from './navigation'\nimport { getRedirectTypeFromError, getURLFromRedirectError } from './redirect'\nimport { RedirectType, isRedirectError } from './redirect-error'\n\ninterface RedirectBoundaryProps {\n router: AppRouterInstance\n children: React.ReactNode\n}\n\nfunction HandleRedirect({\n redirect,\n reset,\n redirectType,\n}: {\n redirect: string\n redirectType: RedirectType\n reset: () => void\n}) {\n const router = useRouter()\n\n useEffect(() => {\n React.startTransition(() => {\n if (redirectType === RedirectType.push) {\n router.push(redirect, {})\n } else {\n router.replace(redirect, {})\n }\n reset()\n })\n }, [redirect, redirectType, reset, router])\n\n return null\n}\n\nexport class RedirectErrorBoundary extends React.Component<\n RedirectBoundaryProps,\n { redirect: string | null; redirectType: RedirectType | null }\n> {\n constructor(props: RedirectBoundaryProps) {\n super(props)\n this.state = { redirect: null, redirectType: null }\n }\n\n static getDerivedStateFromError(error: any) {\n if (isRedirectError(error)) {\n const url = getURLFromRedirectError(error)\n const redirectType = getRedirectTypeFromError(error)\n return { redirect: url, redirectType }\n }\n // Re-throw if error is not for redirect\n throw error\n }\n\n // Explicit type is needed to avoid the generated `.d.ts` having a wide return type that could be specific to the `@types/react` version.\n render(): React.ReactNode {\n const { redirect, redirectType } = this.state\n if (redirect !== null && redirectType !== null) {\n return (\n <HandleRedirect\n redirect={redirect}\n redirectType={redirectType}\n reset={() => this.setState({ redirect: null })}\n />\n )\n }\n\n return this.props.children\n }\n}\n\nexport function RedirectBoundary({ children }: { children: React.ReactNode }) {\n const router = useRouter()\n return (\n <RedirectErrorBoundary router={router}>{children}</RedirectErrorBoundary>\n )\n}\n","import { removeTrailingSlash } from '../shared/lib/router/utils/remove-trailing-slash'\nimport { parsePath } from '../shared/lib/router/utils/parse-path'\n\n/**\n * Normalizes the trailing slash of a path according to the `trailingSlash` option\n * in `next.config.js`.\n */\nexport const normalizePathTrailingSlash = (path: string) => {\n if (!path.startsWith('/') || process.env.__NEXT_MANUAL_TRAILING_SLASH) {\n return path\n }\n\n const { pathname, query, hash } = parsePath(path)\n if (process.env.__NEXT_TRAILING_SLASH) {\n if (/\\.[^/]+\\/?$/.test(pathname)) {\n return `${removeTrailingSlash(pathname)}${query}${hash}`\n } else if (pathname.endsWith('/')) {\n return `${pathname}${query}${hash}`\n } else {\n return `${pathname}/${query}${hash}`\n }\n }\n\n return `${removeTrailingSlash(pathname)}${query}${hash}`\n}\n","import {\n HTTP_ERROR_FALLBACK_ERROR_CODE,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\n\n// TODO: Add `unauthorized` docs\n/**\n * @experimental\n * This function allows you to render the [unauthorized.js file](https://nextjs.org/docs/app/api-reference/file-conventions/unauthorized)\n * within a route segment as well as inject a tag.\n *\n * `unauthorized()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n *\n * Read more: [Next.js Docs: `unauthorized`](https://nextjs.org/docs/app/api-reference/functions/unauthorized)\n */\n\nconst DIGEST = `${HTTP_ERROR_FALLBACK_ERROR_CODE};401`\n\nexport function unauthorized(): never {\n if (!process.env.__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS) {\n throw new Error(\n `\\`unauthorized()\\` is experimental and only allowed to be used when \\`experimental.authInterrupts\\` is enabled.`\n )\n }\n\n // eslint-disable-next-line no-throw-literal\n const error = new Error(DIGEST) as HTTPAccessFallbackError\n ;(error as HTTPAccessFallbackError).digest = DIGEST\n throw error\n}\n","var id = 0;\n\nfunction _class_private_field_loose_key(name) {\n return \"__private_\" + id++ + \"_\" + name;\n}\nexport { _class_private_field_loose_key as _ };\n","// imports polyfill from `@next/polyfill-module` after build.\nimport '../build/polyfills/polyfill-module'\n\n// Only setup devtools in development\nif (process.env.NODE_ENV !== 'production') {\n require('../next-devtools/userspace/app/app-dev-overlay-setup') as typeof import('../next-devtools/userspace/app/app-dev-overlay-setup')\n}\n","export function encodeURIPath(file: string) {\n return file\n .split('/')\n .map((p) => encodeURIComponent(p))\n .join('/')\n}\n","import type {\n FlightRouterState,\n Segment,\n} from '../../../server/app-render/types'\nimport { INTERCEPTION_ROUTE_MARKERS } from '../../../shared/lib/router/utils/interception-routes'\nimport type { Params } from '../../../server/request/params'\nimport {\n isGroupSegment,\n DEFAULT_SEGMENT_KEY,\n PAGE_SEGMENT_KEY,\n} from '../../../shared/lib/segment'\nimport { matchSegment } from '../match-segments'\n\nconst removeLeadingSlash = (segment: string): string => {\n return segment[0] === '/' ? segment.slice(1) : segment\n}\n\nconst segmentToPathname = (segment: Segment): string => {\n if (typeof segment === 'string') {\n // 'children' is not a valid path -- it's technically a parallel route that corresponds with the current segment's page\n // if we don't skip it, then the computed pathname might be something like `/children` which doesn't make sense.\n if (segment === 'children') return ''\n\n return segment\n }\n\n return segment[1]\n}\n\nfunction normalizeSegments(segments: string[]): string {\n return (\n segments.reduce((acc, segment) => {\n segment = removeLeadingSlash(segment)\n if (segment === '' || isGroupSegment(segment)) {\n return acc\n }\n\n return `${acc}/${segment}`\n }, '') || '/'\n )\n}\n\nexport function extractPathFromFlightRouterState(\n flightRouterState: FlightRouterState\n): string | undefined {\n const segment = Array.isArray(flightRouterState[0])\n ? flightRouterState[0][1]\n : flightRouterState[0]\n\n if (\n segment === DEFAULT_SEGMENT_KEY ||\n INTERCEPTION_ROUTE_MARKERS.some((m) => segment.startsWith(m))\n )\n return undefined\n\n if (segment.startsWith(PAGE_SEGMENT_KEY)) return ''\n\n const segments = [segmentToPathname(segment)]\n const parallelRoutes = flightRouterState[1] ?? {}\n\n const childrenPath = parallelRoutes.children\n ? extractPathFromFlightRouterState(parallelRoutes.children)\n : undefined\n\n if (childrenPath !== undefined) {\n segments.push(childrenPath)\n } else {\n for (const [key, value] of Object.entries(parallelRoutes)) {\n if (key === 'children') continue\n\n const childPath = extractPathFromFlightRouterState(value)\n\n if (childPath !== undefined) {\n segments.push(childPath)\n }\n }\n }\n\n return normalizeSegments(segments)\n}\n\nfunction computeChangedPathImpl(\n treeA: FlightRouterState,\n treeB: FlightRouterState\n): string | null {\n const [segmentA, parallelRoutesA] = treeA\n const [segmentB, parallelRoutesB] = treeB\n\n const normalizedSegmentA = segmentToPathname(segmentA)\n const normalizedSegmentB = segmentToPathname(segmentB)\n\n if (\n INTERCEPTION_ROUTE_MARKERS.some(\n (m) =>\n normalizedSegmentA.startsWith(m) || normalizedSegmentB.startsWith(m)\n )\n ) {\n return ''\n }\n\n if (!matchSegment(segmentA, segmentB)) {\n // once we find where the tree changed, we compute the rest of the path by traversing the tree\n return extractPathFromFlightRouterState(treeB) ?? ''\n }\n\n for (const parallelRouterKey in parallelRoutesA) {\n if (parallelRoutesB[parallelRouterKey]) {\n const changedPath = computeChangedPathImpl(\n parallelRoutesA[parallelRouterKey],\n parallelRoutesB[parallelRouterKey]\n )\n if (changedPath !== null) {\n return `${segmentToPathname(segmentB)}/${changedPath}`\n }\n }\n }\n\n return null\n}\n\nexport function computeChangedPath(\n treeA: FlightRouterState,\n treeB: FlightRouterState\n): string | null {\n const changedPath = computeChangedPathImpl(treeA, treeB)\n\n if (changedPath == null || changedPath === '/') {\n return changedPath\n }\n\n // lightweight normalization to remove route groups\n return normalizeSegments(changedPath.split('/'))\n}\n\n/**\n * Recursively extracts dynamic parameters from FlightRouterState.\n */\nexport function getSelectedParams(\n currentTree: FlightRouterState,\n params: Params = {}\n): Params {\n const parallelRoutes = currentTree[1]\n\n for (const parallelRoute of Object.values(parallelRoutes)) {\n const segment = parallelRoute[0]\n const isDynamicParameter = Array.isArray(segment)\n const segmentValue = isDynamicParameter ? segment[1] : segment\n if (!segmentValue || segmentValue.startsWith(PAGE_SEGMENT_KEY)) continue\n\n // Ensure catchAll and optional catchall are turned into an array\n const isCatchAll =\n isDynamicParameter && (segment[2] === 'c' || segment[2] === 'oc')\n\n if (isCatchAll) {\n params[segment[0]] = segment[1].split('/')\n } else if (isDynamicParameter) {\n params[segment[0]] = segment[1]\n }\n\n params = getSelectedParams(parallelRoute, params)\n }\n\n return params\n}\n","import type {\n PrefetchAction,\n ReducerState,\n ReadonlyReducerState,\n} from '../router-reducer-types'\nimport { PromiseQueue } from '../../promise-queue'\nimport {\n getOrCreatePrefetchCacheEntry,\n prunePrefetchCache,\n} from '../prefetch-cache-utils'\nexport const prefetchQueue = new PromiseQueue(5)\n\nexport const prefetchReducer = process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? identityReducerWhenSegmentCacheIsEnabled\n : prefetchReducerImpl\n\nfunction identityReducerWhenSegmentCacheIsEnabled<T>(state: T): T {\n // Unlike the old implementation, the Segment Cache doesn't store its data in\n // the router reducer state.\n //\n // This shouldn't be reachable because we wrap the prefetch API in a check,\n // too, which prevents the action from being dispatched. But it's here for\n // clarity + code elimination.\n return state\n}\n\nfunction prefetchReducerImpl(\n state: ReadonlyReducerState,\n action: PrefetchAction\n): ReducerState {\n // let's prune the prefetch cache before we do anything else\n prunePrefetchCache(state.prefetchCache)\n\n const { url } = action\n\n getOrCreatePrefetchCacheEntry({\n url,\n nextUrl: state.nextUrl,\n prefetchCache: state.prefetchCache,\n kind: action.kind,\n tree: state.tree,\n allowAliasing: true,\n })\n\n return state\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","import { parsePath } from './parse-path'\n\n/**\n * Adds the provided prefix to the given path. It first ensures that the path\n * is indeed starting with a slash.\n */\nexport function addPathPrefix(path: string, prefix?: string) {\n if (!path.startsWith('/') || !prefix) {\n return path\n }\n\n const { pathname, query, hash } = parsePath(path)\n return `${prefix}${pathname}${query}${hash}`\n}\n","import { hasBasePath } from './has-base-path'\n\nconst basePath = (process.env.__NEXT_ROUTER_BASEPATH as string) || ''\n\nexport function removeBasePath(path: string): string {\n if (process.env.__NEXT_MANUAL_CLIENT_BASE_PATH) {\n if (!hasBasePath(path)) {\n return path\n }\n }\n\n // Can't trim the basePath if it has zero length!\n if (basePath.length === 0) return path\n\n path = path.slice(basePath.length)\n if (!path.startsWith('/')) path = `/${path}`\n return path\n}\n","const basePath = process.env.__NEXT_ROUTER_BASEPATH || ''\nconst pathname = `${basePath}/__nextjs_source-map`\n\nexport const findSourceMapURL =\n process.env.NODE_ENV === 'development'\n ? function findSourceMapURL(filename: string): string | null {\n if (filename === '') {\n return null\n }\n\n if (\n filename.startsWith(document.location.origin) &&\n filename.includes('/_next/static')\n ) {\n // This is a request for a client chunk. This can only happen when\n // using Turbopack. In this case, since we control how those source\n // maps are generated, we can safely assume that the sourceMappingURL\n // is relative to the filename, with an added `.map` extension. The\n // browser can just request this file, and it gets served through the\n // normal dev server, without the need to route this through\n // the `/__nextjs_source-map` dev middleware.\n return `${filename}.map`\n }\n\n const url = new URL(pathname, document.location.origin)\n url.searchParams.set('filename', filename)\n\n return url.href\n }\n : undefined\n","import type { Dispatch } from 'react'\nimport React, { use } from 'react'\nimport { isThenable } from '../../shared/lib/is-thenable'\nimport type { AppRouterActionQueue } from './app-router-instance'\nimport type {\n AppRouterState,\n ReducerActions,\n ReducerState,\n} from './router-reducer/router-reducer-types'\n\n// The app router state lives outside of React, so we can import the dispatch\n// method directly wherever we need it, rather than passing it around via props\n// or context.\nlet dispatch: Dispatch<ReducerActions> | null = null\n\nexport function dispatchAppRouterAction(action: ReducerActions) {\n if (dispatch === null) {\n throw new Error(\n 'Internal Next.js error: Router action dispatched before initialization.'\n )\n }\n dispatch(action)\n}\n\nexport function useActionQueue(\n actionQueue: AppRouterActionQueue\n): AppRouterState {\n const [state, setState] = React.useState<ReducerState>(actionQueue.state)\n\n // Because of a known issue that requires to decode Flight streams inside the\n // render phase, we have to be a bit clever and assign the dispatch method to\n // a module-level variable upon initialization. The useState hook in this\n // module only exists to synchronize state that lives outside of React.\n // Ideally, what we'd do instead is pass the state as a prop to root.render;\n // this is conceptually how we're modeling the app router state, despite the\n // weird implementation details.\n if (process.env.NODE_ENV !== 'production') {\n const { useAppDevRenderingIndicator } =\n require('../../next-devtools/userspace/use-app-dev-rendering-indicator') as typeof import('../../next-devtools/userspace/use-app-dev-rendering-indicator')\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const appDevRenderingIndicator = useAppDevRenderingIndicator()\n\n dispatch = (action: ReducerActions) => {\n appDevRenderingIndicator(() => {\n actionQueue.dispatch(action, setState)\n })\n }\n } else {\n dispatch = (action: ReducerActions) =>\n actionQueue.dispatch(action, setState)\n }\n\n return isThenable(state) ? use(state) : state\n}\n","import type { FlightSegmentPath } from '../../../server/app-render/types'\nimport type { CacheNode } from '../../../shared/lib/app-router-context.shared-runtime'\nimport { getNextFlightSegmentPath } from '../../flight-data-helpers'\nimport { createRouterCacheKey } from './create-router-cache-key'\n\n/**\n * This will clear the CacheNode data for a particular segment path. This will cause a lazy-fetch in layout router to fill in new data.\n */\nexport function clearCacheNodeDataForSegmentPath(\n newCache: CacheNode,\n existingCache: CacheNode,\n flightSegmentPath: FlightSegmentPath\n): void {\n const isLastEntry = flightSegmentPath.length <= 2\n\n const [parallelRouteKey, segment] = flightSegmentPath\n const cacheKey = createRouterCacheKey(segment)\n\n const existingChildSegmentMap =\n existingCache.parallelRoutes.get(parallelRouteKey)\n\n let childSegmentMap = newCache.parallelRoutes.get(parallelRouteKey)\n\n if (!childSegmentMap || childSegmentMap === existingChildSegmentMap) {\n childSegmentMap = new Map(existingChildSegmentMap)\n newCache.parallelRoutes.set(parallelRouteKey, childSegmentMap)\n }\n\n const existingChildCacheNode = existingChildSegmentMap?.get(cacheKey)\n let childCacheNode = childSegmentMap.get(cacheKey)\n\n // In case of last segment start off the fetch at this level and don't copy further down.\n if (isLastEntry) {\n if (\n !childCacheNode ||\n !childCacheNode.lazyData ||\n childCacheNode === existingChildCacheNode\n ) {\n childSegmentMap.set(cacheKey, {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1,\n })\n }\n return\n }\n\n if (!childCacheNode || !existingChildCacheNode) {\n // Start fetch in the place where the existing cache doesn't have the data yet.\n if (!childCacheNode) {\n childSegmentMap.set(cacheKey, {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1,\n })\n }\n return\n }\n\n if (childCacheNode === existingChildCacheNode) {\n childCacheNode = {\n lazyData: childCacheNode.lazyData,\n rsc: childCacheNode.rsc,\n prefetchRsc: childCacheNode.prefetchRsc,\n head: childCacheNode.head,\n prefetchHead: childCacheNode.prefetchHead,\n parallelRoutes: new Map(childCacheNode.parallelRoutes),\n loading: childCacheNode.loading,\n } as CacheNode\n childSegmentMap.set(cacheKey, childCacheNode)\n }\n\n return clearCacheNodeDataForSegmentPath(\n childCacheNode,\n existingChildCacheNode,\n getNextFlightSegmentPath(flightSegmentPath)\n )\n}\n","// http://www.cse.yorku.ca/~oz/hash.html\n// More specifically, 32-bit hash via djbxor\n// (ref: https://gist.github.com/eplawless/52813b1d8ad9af510d85?permalink_comment_id=3367765#gistcomment-3367765)\n// This is due to number type differences between rust for turbopack to js number types,\n// where rust does not have easy way to repreesnt js's 53-bit float number type for the matching\n// overflow behavior. This is more `correct` in terms of having canonical hash across different runtime / implementation\n// as can gaurantee determinstic output from 32bit hash.\nexport function djb2Hash(str: string) {\n let hash = 5381\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i)\n hash = ((hash << 5) + hash + char) & 0xffffffff\n }\n return hash >>> 0\n}\n\nexport function hexHash(str: string) {\n return djb2Hash(str).toString(36).slice(0, 5)\n}\n","import { HTML_LIMITED_BOT_UA_RE } from './html-bots'\n\n// Bot crawler that will spin up a headless browser and execute JS.\n// By default, only googlebots are considered as DOM bots. Blow is where the regex is computed from:\n// x-ref: https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers\nconst HEADLESS_BROWSER_BOT_UA_RE = /google/i\n\nexport const HTML_LIMITED_BOT_UA_RE_STRING = HTML_LIMITED_BOT_UA_RE.source\n\nexport { HTML_LIMITED_BOT_UA_RE }\n\nfunction isDomBotUA(userAgent: string) {\n return HEADLESS_BROWSER_BOT_UA_RE.test(userAgent)\n}\n\nfunction isHtmlLimitedBotUA(userAgent: string) {\n return HTML_LIMITED_BOT_UA_RE.test(userAgent)\n}\n\nexport function isBot(userAgent: string): boolean {\n return isDomBotUA(userAgent) || isHtmlLimitedBotUA(userAgent)\n}\n\nexport function getBotType(userAgent: string): 'dom' | 'html' | undefined {\n if (isDomBotUA(userAgent)) {\n return 'dom'\n }\n if (isHtmlLimitedBotUA(userAgent)) {\n return 'html'\n }\n return undefined\n}\n","// This has to be a shared module which is shared between client component error boundary and dynamic component\nconst BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING'\n\n/** An error that should be thrown when we want to bail out to client-side rendering. */\nexport class BailoutToCSRError extends Error {\n public readonly digest = BAILOUT_TO_CSR\n\n constructor(public readonly reason: string) {\n super(`Bail out to client-side rendering: ${reason}`)\n }\n}\n\n/** Checks if a passed argument is an error that is thrown if we want to bail out to client-side rendering. */\nexport function isBailoutToCSRError(err: unknown): err is BailoutToCSRError {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false\n }\n\n return err.digest === BAILOUT_TO_CSR\n}\n","'use client'\n\nimport { InvariantError } from '../../shared/lib/invariant-error'\n\nimport type { Params } from '../../server/request/params'\n\n/**\n * When the Page is a client component we send the params to this client wrapper\n * where they are turned into dynamically tracked values before being passed to the actual Segment component.\n *\n * additionally we may send a promise representing params. We don't ever use this passed\n * value but it can be necessary for the sender to send a Promise that doesn't resolve in certain situations\n * such as when dynamicIO is enabled. It is up to the caller to decide if the promises are needed.\n */\nexport function ClientSegmentRoot({\n Component,\n slots,\n params,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n promise,\n}: {\n Component: React.ComponentType<any>\n slots: { [key: string]: React.ReactNode }\n params: Params\n promise?: Promise<any>\n}) {\n if (typeof window === 'undefined') {\n const { workAsyncStorage } =\n require('../../server/app-render/work-async-storage.external') as typeof import('../../server/app-render/work-async-storage.external')\n\n let clientParams: Promise<Params>\n // We are going to instrument the searchParams prop with tracking for the\n // appropriate context. We wrap differently in prerendering vs rendering\n const store = workAsyncStorage.getStore()\n if (!store) {\n throw new InvariantError(\n 'Expected workStore to exist when handling params in a client segment such as a Layout or Template.'\n )\n }\n\n const { createParamsFromClient } =\n require('../../server/request/params') as typeof import('../../server/request/params')\n clientParams = createParamsFromClient(params, store)\n\n return <Component {...slots} params={clientParams} />\n } else {\n const { createRenderParamsFromClient } =\n require('../request/params.browser') as typeof import('../request/params.browser')\n const clientParams = createRenderParamsFromClient(params)\n return <Component {...slots} params={clientParams} />\n }\n}\n","function _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexport { _interop_require_wildcard as _ };\n","import type { FlightRouterState } from '../../server/app-render/types'\nimport type { Params } from '../../server/request/params'\n\nimport { useContext, useMemo } from 'react'\nimport {\n AppRouterContext,\n LayoutRouterContext,\n type AppRouterInstance,\n} from '../../shared/lib/app-router-context.shared-runtime'\nimport {\n SearchParamsContext,\n PathnameContext,\n PathParamsContext,\n} from '../../shared/lib/hooks-client-context.shared-runtime'\nimport { getSegmentValue } from './router-reducer/reducers/get-segment-value'\nimport { PAGE_SEGMENT_KEY, DEFAULT_SEGMENT_KEY } from '../../shared/lib/segment'\nimport { ReadonlyURLSearchParams } from './navigation.react-server'\n\nconst useDynamicRouteParams =\n typeof window === 'undefined'\n ? (\n require('../../server/app-render/dynamic-rendering') as typeof import('../../server/app-render/dynamic-rendering')\n ).useDynamicRouteParams\n : undefined\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you *read* the current URL's search parameters.\n *\n * Learn more about [`URLSearchParams` on MDN](https://developer.mozilla.org/docs/Web/API/URLSearchParams)\n *\n * @example\n * ```ts\n * \"use client\"\n * import { useSearchParams } from 'next/navigation'\n *\n * export default function Page() {\n * const searchParams = useSearchParams()\n * searchParams.get('foo') // returns 'bar' when ?foo=bar\n * // ...\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useSearchParams`](https://nextjs.org/docs/app/api-reference/functions/use-search-params)\n */\n// Client components API\nexport function useSearchParams(): ReadonlyURLSearchParams {\n const searchParams = useContext(SearchParamsContext)\n\n // In the case where this is `null`, the compat types added in\n // `next-env.d.ts` will add a new overload that changes the return type to\n // include `null`.\n const readonlySearchParams = useMemo(() => {\n if (!searchParams) {\n // When the router is not ready in pages, we won't have the search params\n // available.\n return null\n }\n\n return new ReadonlyURLSearchParams(searchParams)\n }, [searchParams]) as ReadonlyURLSearchParams\n\n if (typeof window === 'undefined') {\n // AsyncLocalStorage should not be included in the client bundle.\n const { bailoutToClientRendering } =\n require('./bailout-to-client-rendering') as typeof import('./bailout-to-client-rendering')\n // TODO-APP: handle dynamic = 'force-static' here and on the client\n bailoutToClientRendering('useSearchParams()')\n }\n\n return readonlySearchParams\n}\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you read the current URL's pathname.\n *\n * @example\n * ```ts\n * \"use client\"\n * import { usePathname } from 'next/navigation'\n *\n * export default function Page() {\n * const pathname = usePathname() // returns \"/dashboard\" on /dashboard?foo=bar\n * // ...\n * }\n * ```\n *\n * Read more: [Next.js Docs: `usePathname`](https://nextjs.org/docs/app/api-reference/functions/use-pathname)\n */\n// Client components API\nexport function usePathname(): string {\n useDynamicRouteParams?.('usePathname()')\n\n // In the case where this is `null`, the compat types added in `next-env.d.ts`\n // will add a new overload that changes the return type to include `null`.\n return useContext(PathnameContext) as string\n}\n\n// Client components API\nexport {\n ServerInsertedHTMLContext,\n useServerInsertedHTML,\n} from '../../shared/lib/server-inserted-html.shared-runtime'\n\n/**\n *\n * This hook allows you to programmatically change routes inside [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components).\n *\n * @example\n * ```ts\n * \"use client\"\n * import { useRouter } from 'next/navigation'\n *\n * export default function Page() {\n * const router = useRouter()\n * // ...\n * router.push('/dashboard') // Navigate to /dashboard\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useRouter`](https://nextjs.org/docs/app/api-reference/functions/use-router)\n */\n// Client components API\nexport function useRouter(): AppRouterInstance {\n const router = useContext(AppRouterContext)\n if (router === null) {\n throw new Error('invariant expected app router to be mounted')\n }\n\n return router\n}\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you read a route's dynamic params filled in by the current URL.\n *\n * @example\n * ```ts\n * \"use client\"\n * import { useParams } from 'next/navigation'\n *\n * export default function Page() {\n * // on /dashboard/[team] where pathname is /dashboard/nextjs\n * const { team } = useParams() // team === \"nextjs\"\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useParams`](https://nextjs.org/docs/app/api-reference/functions/use-params)\n */\n// Client components API\nexport function useParams<T extends Params = Params>(): T {\n useDynamicRouteParams?.('useParams()')\n\n return useContext(PathParamsContext) as T\n}\n\n/** Get the canonical parameters from the current level to the leaf node. */\n// Client components API\nfunction getSelectedLayoutSegmentPath(\n tree: FlightRouterState,\n parallelRouteKey: string,\n first = true,\n segmentPath: string[] = []\n): string[] {\n let node: FlightRouterState\n if (first) {\n // Use the provided parallel route key on the first parallel route\n node = tree[1][parallelRouteKey]\n } else {\n // After first parallel route prefer children, if there's no children pick the first parallel route.\n const parallelRoutes = tree[1]\n node = parallelRoutes.children ?? Object.values(parallelRoutes)[0]\n }\n\n if (!node) return segmentPath\n const segment = node[0]\n\n let segmentValue = getSegmentValue(segment)\n\n if (!segmentValue || segmentValue.startsWith(PAGE_SEGMENT_KEY)) {\n return segmentPath\n }\n\n segmentPath.push(segmentValue)\n\n return getSelectedLayoutSegmentPath(\n node,\n parallelRouteKey,\n false,\n segmentPath\n )\n}\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you read the active route segments **below** the Layout it is called from.\n *\n * @example\n * ```ts\n * 'use client'\n *\n * import { useSelectedLayoutSegments } from 'next/navigation'\n *\n * export default function ExampleClientComponent() {\n * const segments = useSelectedLayoutSegments()\n *\n * return (\n * <ul>\n * {segments.map((segment, index) => (\n * <li key={index}>{segment}</li>\n * ))}\n * </ul>\n * )\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useSelectedLayoutSegments`](https://nextjs.org/docs/app/api-reference/functions/use-selected-layout-segments)\n */\n// Client components API\nexport function useSelectedLayoutSegments(\n parallelRouteKey: string = 'children'\n): string[] {\n useDynamicRouteParams?.('useSelectedLayoutSegments()')\n\n const context = useContext(LayoutRouterContext)\n // @ts-expect-error This only happens in `pages`. Type is overwritten in navigation.d.ts\n if (!context) return null\n\n return getSelectedLayoutSegmentPath(context.parentTree, parallelRouteKey)\n}\n\n/**\n * A [Client Component](https://nextjs.org/docs/app/building-your-application/rendering/client-components) hook\n * that lets you read the active route segment **one level below** the Layout it is called from.\n *\n * @example\n * ```ts\n * 'use client'\n * import { useSelectedLayoutSegment } from 'next/navigation'\n *\n * export default function ExampleClientComponent() {\n * const segment = useSelectedLayoutSegment()\n *\n * return <p>Active segment: {segment}</p>\n * }\n * ```\n *\n * Read more: [Next.js Docs: `useSelectedLayoutSegment`](https://nextjs.org/docs/app/api-reference/functions/use-selected-layout-segment)\n */\n// Client components API\nexport function useSelectedLayoutSegment(\n parallelRouteKey: string = 'children'\n): string | null {\n useDynamicRouteParams?.('useSelectedLayoutSegment()')\n\n const selectedLayoutSegments = useSelectedLayoutSegments(parallelRouteKey)\n\n if (!selectedLayoutSegments || selectedLayoutSegments.length === 0) {\n return null\n }\n\n const selectedLayoutSegment =\n parallelRouteKey === 'children'\n ? selectedLayoutSegments[0]\n : selectedLayoutSegments[selectedLayoutSegments.length - 1]\n\n // if the default slot is showing, we return null since it's not technically \"selected\" (it's a fallback)\n // and returning an internal value like `__DEFAULT__` would be confusing.\n return selectedLayoutSegment === DEFAULT_SEGMENT_KEY\n ? null\n : selectedLayoutSegment\n}\n\n// Shared components APIs\nexport {\n notFound,\n forbidden,\n unauthorized,\n redirect,\n permanentRedirect,\n RedirectType,\n ReadonlyURLSearchParams,\n unstable_rethrow,\n} from './navigation.react-server'\n","'use client'\n\n// This is a client component that only renders during SSR,\n// but will be replaced during streaming with an icon insertion script tag.\n// We don't want it to be presented anywhere so it's only visible during streaming,\n// right after the icon meta tags so that browser can pick it up as soon as it's rendered.\n// Note: we don't just emit the script here because we only need the script if it's not in the head,\n// and we need it to be hoistable alongside the other metadata but sync scripts are not hoistable.\nexport const IconMark = () => {\n if (typeof window !== 'undefined') {\n return null\n }\n return <meta name=\"«nxt-icon»\" />\n}\n","const workAsyncStorage =\n typeof window === 'undefined'\n ? (\n require('../../server/app-render/work-async-storage.external') as typeof import('../../server/app-render/work-async-storage.external')\n ).workAsyncStorage\n : undefined\n\n// if we are revalidating we want to re-throw the error so the\n// function crashes so we can maintain our previous cache\n// instead of caching the error page\nexport function HandleISRError({ error }: { error: any }) {\n if (workAsyncStorage) {\n const store = workAsyncStorage.getStore()\n if (store?.isRevalidate || store?.isStaticGeneration) {\n console.error(error)\n throw error\n }\n }\n\n return null\n}\n","'use client'\n\nimport { createContext } from 'react'\nimport type { Params } from '../../server/request/params'\n\nexport const SearchParamsContext = createContext<URLSearchParams | null>(null)\nexport const PathnameContext = createContext<string | null>(null)\nexport const PathParamsContext = createContext<Params | null>(null)\n\nif (process.env.NODE_ENV !== 'production') {\n SearchParamsContext.displayName = 'SearchParamsContext'\n PathnameContext.displayName = 'PathnameContext'\n PathParamsContext.displayName = 'PathParamsContext'\n}\n","/**\n * Check to see if a value is Thenable.\n *\n * @param promise the maybe-thenable value\n * @returns true if the value is thenable\n */\nexport function isThenable<T = unknown>(\n promise: Promise<T> | T\n): promise is Promise<T> {\n return (\n promise !== null &&\n typeof promise === 'object' &&\n 'then' in promise &&\n typeof promise.then === 'function'\n )\n}\n","import {\n ACTION_NAVIGATE,\n ACTION_SERVER_PATCH,\n ACTION_RESTORE,\n ACTION_REFRESH,\n ACTION_PREFETCH,\n ACTION_HMR_REFRESH,\n ACTION_SERVER_ACTION,\n} from './router-reducer-types'\nimport type {\n ReducerActions,\n ReducerState,\n ReadonlyReducerState,\n} from './router-reducer-types'\nimport { navigateReducer } from './reducers/navigate-reducer'\nimport { serverPatchReducer } from './reducers/server-patch-reducer'\nimport { restoreReducer } from './reducers/restore-reducer'\nimport { refreshReducer } from './reducers/refresh-reducer'\nimport { prefetchReducer } from './reducers/prefetch-reducer'\nimport { hmrRefreshReducer } from './reducers/hmr-refresh-reducer'\nimport { serverActionReducer } from './reducers/server-action-reducer'\n\n/**\n * Reducer that handles the app-router state updates.\n */\nfunction clientReducer(\n state: ReadonlyReducerState,\n action: ReducerActions\n): ReducerState {\n switch (action.type) {\n case ACTION_NAVIGATE: {\n return navigateReducer(state, action)\n }\n case ACTION_SERVER_PATCH: {\n return serverPatchReducer(state, action)\n }\n case ACTION_RESTORE: {\n return restoreReducer(state, action)\n }\n case ACTION_REFRESH: {\n return refreshReducer(state, action)\n }\n case ACTION_HMR_REFRESH: {\n return hmrRefreshReducer(state, action)\n }\n case ACTION_PREFETCH: {\n return prefetchReducer(state, action)\n }\n case ACTION_SERVER_ACTION: {\n return serverActionReducer(state, action)\n }\n // This case should never be hit as dispatch is strongly typed.\n default:\n throw new Error('Unknown action')\n }\n}\n\nfunction serverReducer(\n state: ReadonlyReducerState,\n _action: ReducerActions\n): ReducerState {\n return state\n}\n\n// we don't run the client reducer on the server, so we use a noop function for better tree shaking\nexport const reducer =\n typeof window === 'undefined' ? serverReducer : clientReducer\n","export const createRenderParamsFromClient =\n process.env.NODE_ENV === 'development'\n ? (require('./params.browser.dev') as typeof import('./params.browser.dev'))\n .createRenderParamsFromClient\n : (\n require('./params.browser.prod') as typeof import('./params.browser.prod')\n ).createRenderParamsFromClient\n","import type { FlightRouterState } from '../../../../server/app-render/types'\nimport type { CacheNode } from '../../../../shared/lib/app-router-context.shared-runtime'\nimport { DEFAULT_SEGMENT_KEY } from '../../../../shared/lib/segment'\nimport { createRouterCacheKey } from '../create-router-cache-key'\n\nexport function findHeadInCache(\n cache: CacheNode,\n parallelRoutes: FlightRouterState[1]\n): [CacheNode, string] | null {\n return findHeadInCacheImpl(cache, parallelRoutes, '')\n}\n\nfunction findHeadInCacheImpl(\n cache: CacheNode,\n parallelRoutes: FlightRouterState[1],\n keyPrefix: string\n): [CacheNode, string] | null {\n const isLastItem = Object.keys(parallelRoutes).length === 0\n if (isLastItem) {\n // Returns the entire Cache Node of the segment whose head we will render.\n return [cache, keyPrefix]\n }\n\n // First try the 'children' parallel route if it exists\n // when starting from the \"root\", this corresponds with the main page component\n const parallelRoutesKeys = Object.keys(parallelRoutes).filter(\n (key) => key !== 'children'\n )\n\n // if we are at the root, we need to check the children slot first\n if ('children' in parallelRoutes) {\n parallelRoutesKeys.unshift('children')\n }\n\n for (const key of parallelRoutesKeys) {\n const [segment, childParallelRoutes] = parallelRoutes[key]\n // If the parallel is not matched and using the default segment,\n // skip searching the head from it.\n if (segment === DEFAULT_SEGMENT_KEY) {\n continue\n }\n const childSegmentMap = cache.parallelRoutes.get(key)\n if (!childSegmentMap) {\n continue\n }\n\n const cacheKey = createRouterCacheKey(segment)\n\n const cacheNode = childSegmentMap.get(cacheKey)\n if (!cacheNode) {\n continue\n }\n\n const item = findHeadInCacheImpl(\n cacheNode,\n childParallelRoutes,\n keyPrefix + '/' + cacheKey\n )\n if (item) {\n return item\n }\n }\n\n return null\n}\n","'use client'\n\nimport React, { type JSX } from 'react'\nimport { useUntrackedPathname } from './navigation-untracked'\nimport { isNextRouterError } from './is-next-router-error'\nimport { handleHardNavError } from './nav-failure-handler'\nimport { HandleISRError } from './handle-isr-error'\n\nexport type ErrorComponent = React.ComponentType<{\n error: Error\n // global-error, there's no `reset` function;\n // regular error boundary, there's a `reset` function.\n reset?: () => void\n}>\n\nexport interface ErrorBoundaryProps {\n children?: React.ReactNode\n errorComponent: ErrorComponent | undefined\n errorStyles?: React.ReactNode | undefined\n errorScripts?: React.ReactNode | undefined\n}\n\ninterface ErrorBoundaryHandlerProps extends ErrorBoundaryProps {\n pathname: string | null\n errorComponent: ErrorComponent\n}\n\ninterface ErrorBoundaryHandlerState {\n error: Error | null\n previousPathname: string | null\n}\n\nexport class ErrorBoundaryHandler extends React.Component<\n ErrorBoundaryHandlerProps,\n ErrorBoundaryHandlerState\n> {\n constructor(props: ErrorBoundaryHandlerProps) {\n super(props)\n this.state = { error: null, previousPathname: this.props.pathname }\n }\n\n static getDerivedStateFromError(error: Error) {\n if (isNextRouterError(error)) {\n // Re-throw if an expected internal Next.js router error occurs\n // this means it should be handled by a different boundary (such as a NotFound boundary in a parent segment)\n throw error\n }\n\n return { error }\n }\n\n static getDerivedStateFromProps(\n props: ErrorBoundaryHandlerProps,\n state: ErrorBoundaryHandlerState\n ): ErrorBoundaryHandlerState | null {\n const { error } = state\n\n // if we encounter an error while\n // a navigation is pending we shouldn't render\n // the error boundary and instead should fallback\n // to a hard navigation to attempt recovering\n if (process.env.__NEXT_APP_NAV_FAIL_HANDLING) {\n if (error && handleHardNavError(error)) {\n // clear error so we don't render anything\n return {\n error: null,\n previousPathname: props.pathname,\n }\n }\n }\n\n /**\n * Handles reset of the error boundary when a navigation happens.\n * Ensures the error boundary does not stay enabled when navigating to a new page.\n * Approach of setState in render is safe as it checks the previous pathname and then overrides\n * it as outlined in https://react.dev/reference/react/useState#storing-information-from-previous-renders\n */\n if (props.pathname !== state.previousPathname && state.error) {\n return {\n error: null,\n previousPathname: props.pathname,\n }\n }\n return {\n error: state.error,\n previousPathname: props.pathname,\n }\n }\n\n reset = () => {\n this.setState({ error: null })\n }\n\n // Explicit type is needed to avoid the generated `.d.ts` having a wide return type that could be specific to the `@types/react` version.\n render(): React.ReactNode {\n if (this.state.error) {\n return (\n <>\n <HandleISRError error={this.state.error} />\n {this.props.errorStyles}\n {this.props.errorScripts}\n <this.props.errorComponent\n error={this.state.error}\n reset={this.reset}\n />\n </>\n )\n }\n\n return this.props.children\n }\n}\n\n/**\n * Handles errors through `getDerivedStateFromError`.\n * Renders the provided error component and provides a way to `reset` the error boundary state.\n */\n\n/**\n * Renders error boundary with the provided \"errorComponent\" property as the fallback.\n * If no \"errorComponent\" property is provided it renders the children without an error boundary.\n */\nexport function ErrorBoundary({\n errorComponent,\n errorStyles,\n errorScripts,\n children,\n}: ErrorBoundaryProps & {\n children: React.ReactNode\n}): JSX.Element {\n // When we're rendering the missing params shell, this will return null. This\n // is because we won't be rendering any not found boundaries or error\n // boundaries for the missing params shell. When this runs on the client\n // (where these errors can occur), we will get the correct pathname.\n const pathname = useUntrackedPathname()\n if (errorComponent) {\n return (\n <ErrorBoundaryHandler\n pathname={pathname}\n errorComponent={errorComponent}\n errorStyles={errorStyles}\n errorScripts={errorScripts}\n >\n {children}\n </ErrorBoundaryHandler>\n )\n }\n\n return <>{children}</>\n}\n","function _class_private_field_loose_base(receiver, privateKey) {\n if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {\n throw new TypeError(\"attempted to use private field on non-instance\");\n }\n\n return receiver;\n}\nexport { _class_private_field_loose_base as _ };\n","/**\n * Before starting the Next.js runtime and requiring any module, we need to make\n * sure the following scripts are executed in the correct order:\n * - Polyfills\n * - next/script with `beforeInteractive` strategy\n */\n\nconst version = process.env.__NEXT_VERSION\n\nwindow.next = {\n version,\n appDir: true,\n}\n\nfunction loadScriptsInSequence(\n scripts: [src: string, props: { [prop: string]: any }][],\n hydrate: () => void\n) {\n if (!scripts || !scripts.length) {\n return hydrate()\n }\n\n return scripts\n .reduce((promise, [src, props]) => {\n return promise.then(() => {\n return new Promise<void>((resolve, reject) => {\n const el = document.createElement('script')\n\n if (props) {\n for (const key in props) {\n if (key !== 'children') {\n el.setAttribute(key, props[key])\n }\n }\n }\n\n if (src) {\n el.src = src\n el.onload = () => resolve()\n el.onerror = reject\n } else if (props) {\n el.innerHTML = props.children\n setTimeout(resolve)\n }\n\n document.head.appendChild(el)\n })\n })\n }, Promise.resolve())\n .catch((err: Error) => {\n console.error(err)\n // Still try to hydrate even if there's an error.\n })\n .then(() => {\n hydrate()\n })\n}\n\nexport function appBootstrap(hydrate: () => void) {\n loadScriptsInSequence((self as any).__next_s, () => {\n // If the static shell is being debugged, skip hydration if the\n // `__nextppronly` query is present. This is only enabled when the\n // environment variable `__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING` is\n // set to `1`. Otherwise the following is optimized out.\n if (process.env.__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING === '1') {\n const search = new URLSearchParams(window.location.search)\n if (\n search.get('__nextppronly') === 'fallback' ||\n search.get('__nextppronly') === '1'\n ) {\n console.warn(\n `Skipping hydration due to __nextppronly=${search.get('__nextppronly')}`\n )\n return\n }\n }\n\n hydrate()\n })\n}\n","\"use strict\";\nvar _global_process, _global_process1;\nmodule.exports = ((_global_process = global.process) == null ? void 0 : _global_process.env) && typeof ((_global_process1 = global.process) == null ? void 0 : _global_process1.env) === 'object' ? global.process : require('next/dist/compiled/process');\n\n//# sourceMappingURL=process.js.map","import { createHrefFromUrl } from '../create-href-from-url'\nimport { applyRouterStatePatchToTree } from '../apply-router-state-patch-to-tree'\nimport { isNavigatingToNewRootLayout } from '../is-navigating-to-new-root-layout'\nimport type {\n ServerPatchAction,\n ReducerState,\n ReadonlyReducerState,\n Mutable,\n} from '../router-reducer-types'\nimport { handleExternalUrl } from './navigate-reducer'\nimport { applyFlightData } from '../apply-flight-data'\nimport { handleMutable } from '../handle-mutable'\nimport type { CacheNode } from '../../../../shared/lib/app-router-context.shared-runtime'\nimport { createEmptyCacheNode } from '../../app-router'\n\nexport function serverPatchReducer(\n state: ReadonlyReducerState,\n action: ServerPatchAction\n): ReducerState {\n const {\n serverResponse: { flightData, canonicalUrl: canonicalUrlOverride },\n navigatedAt,\n } = action\n\n const mutable: Mutable = {}\n\n mutable.preserveCustomHistoryState = false\n\n // Handle case when navigating to page in `pages` from `app`\n if (typeof flightData === 'string') {\n return handleExternalUrl(\n state,\n mutable,\n flightData,\n state.pushRef.pendingPush\n )\n }\n\n let currentTree = state.tree\n let currentCache = state.cache\n\n for (const normalizedFlightData of flightData) {\n const { segmentPath: flightSegmentPath, tree: treePatch } =\n normalizedFlightData\n\n const newTree = applyRouterStatePatchToTree(\n // TODO-APP: remove ''\n ['', ...flightSegmentPath],\n currentTree,\n treePatch,\n state.canonicalUrl\n )\n\n // `applyRouterStatePatchToTree` returns `null` when it determined that the server response is not applicable to the current tree.\n // In other words, the server responded with a tree that doesn't match what the client is currently rendering.\n // This can happen if the server patch action took longer to resolve than a subsequent navigation which would have changed the tree.\n // Previously this case triggered an MPA navigation but it should be safe to simply discard the server response rather than forcing\n // the entire page to reload.\n if (newTree === null) {\n return state\n }\n\n if (isNavigatingToNewRootLayout(currentTree, newTree)) {\n return handleExternalUrl(\n state,\n mutable,\n state.canonicalUrl,\n state.pushRef.pendingPush\n )\n }\n\n const canonicalUrlOverrideHref = canonicalUrlOverride\n ? createHrefFromUrl(canonicalUrlOverride)\n : undefined\n\n if (canonicalUrlOverrideHref) {\n mutable.canonicalUrl = canonicalUrlOverrideHref\n }\n\n const cache: CacheNode = createEmptyCacheNode()\n applyFlightData(navigatedAt, currentCache, cache, normalizedFlightData)\n\n mutable.patchedTree = newTree\n mutable.cache = cache\n\n currentCache = cache\n currentTree = newTree\n }\n\n return handleMutable(state, mutable)\n}\n","'use client'\n\nimport {\n METADATA_BOUNDARY_NAME,\n VIEWPORT_BOUNDARY_NAME,\n OUTLET_BOUNDARY_NAME,\n} from '../../../lib/metadata/metadata-constants'\n\n// We use a namespace object to allow us to recover the name of the function\n// at runtime even when production bundling/minification is used.\nconst NameSpace = {\n [METADATA_BOUNDARY_NAME]: function ({\n children,\n }: {\n children: React.ReactNode\n }) {\n return children\n },\n [VIEWPORT_BOUNDARY_NAME]: function ({\n children,\n }: {\n children: React.ReactNode\n }) {\n return children\n },\n [OUTLET_BOUNDARY_NAME]: function ({\n children,\n }: {\n children: React.ReactNode\n }) {\n return children\n },\n}\n\nexport const MetadataBoundary =\n // We use slice(0) to trick the bundler into not inlining/minifying the function\n // so it retains the name inferred from the namespace object\n NameSpace[METADATA_BOUNDARY_NAME.slice(0) as typeof METADATA_BOUNDARY_NAME]\n\nexport const ViewportBoundary =\n // We use slice(0) to trick the bundler into not inlining/minifying the function\n // so it retains the name inferred from the namespace object\n NameSpace[VIEWPORT_BOUNDARY_NAME.slice(0) as typeof VIEWPORT_BOUNDARY_NAME]\n\nexport const OutletBoundary =\n // We use slice(0) to trick the bundler into not inlining/minifying the function\n // so it retains the name inferred from the namespace object\n NameSpace[OUTLET_BOUNDARY_NAME.slice(0) as typeof OUTLET_BOUNDARY_NAME]\n","import {\n HTTP_ERROR_FALLBACK_ERROR_CODE,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\n\n/**\n * This function allows you to render the [not-found.js file](https://nextjs.org/docs/app/api-reference/file-conventions/not-found)\n * within a route segment as well as inject a tag.\n *\n * `notFound()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * - In a Server Component, this will insert a `<meta name=\"robots\" content=\"noindex\" />` meta tag and set the status code to 404.\n * - In a Route Handler or Server Action, it will serve a 404 to the caller.\n *\n * Read more: [Next.js Docs: `notFound`](https://nextjs.org/docs/app/api-reference/functions/not-found)\n */\n\nconst DIGEST = `${HTTP_ERROR_FALLBACK_ERROR_CODE};404`\n\nexport function notFound(): never {\n // eslint-disable-next-line no-throw-literal\n const error = new Error(DIGEST) as HTTPAccessFallbackError\n ;(error as HTTPAccessFallbackError).digest = DIGEST\n\n throw error\n}\n","// This module can be shared between both pages router and app router\n\nimport type { HydrationOptions } from 'react-dom/client'\nimport { isBailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'\nimport isError from '../../lib/is-error'\nimport { reportGlobalError } from './report-global-error'\n\nconst recoverableErrors = new WeakSet<Error>()\n\nexport function isRecoverableError(error: Error): boolean {\n return recoverableErrors.has(error)\n}\n\nexport const onRecoverableError: HydrationOptions['onRecoverableError'] = (\n error,\n errorInfo\n) => {\n // x-ref: https://github.com/facebook/react/pull/28736\n let cause = isError(error) && 'cause' in error ? error.cause : error\n // Skip certain custom errors which are not expected to be reported on client\n if (isBailoutToCSRError(cause)) return\n\n if (process.env.NODE_ENV !== 'production') {\n const { decorateDevError } =\n require('../../next-devtools/userspace/app/errors/stitched-error') as typeof import('../../next-devtools/userspace/app/errors/stitched-error')\n const causeError = decorateDevError(cause, errorInfo)\n recoverableErrors.add(causeError)\n cause = causeError\n }\n\n reportGlobalError(cause)\n}\n","import { addBasePath } from './add-base-path'\n\n/**\n * Function to correctly assign location to URL\n *\n * The method will add basePath, and will also correctly add location (including if it is a relative path)\n * @param location Location that should be added to the url\n * @param url Base URL to which the location should be assigned\n */\nexport function assignLocation(location: string, url: URL): URL {\n if (location.startsWith('.')) {\n const urlBase = url.origin + url.pathname\n return new URL(\n // In order for a relative path to be added to the current url correctly, the current url must end with a slash\n // new URL('./relative', 'https://example.com/subdir').href -> 'https://example.com/relative'\n // new URL('./relative', 'https://example.com/subdir/').href -> 'https://example.com/subdir/relative'\n (urlBase.endsWith('/') ? urlBase : urlBase + '/') + location\n )\n }\n\n return new URL(addBasePath(location), url.href)\n}\n","// This regex contains the bots that we need to do a blocking render for and can't safely stream the response\n// due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent.\nexport const HTML_LIMITED_BOT_UA_RE =\n /Mediapartners-Google|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti/i\n","import { useContext } from 'react'\nimport { PathnameContext } from '../../shared/lib/hooks-client-context.shared-runtime'\n\n/**\n * This checks to see if the current render has any unknown route parameters.\n * It's used to trigger a different render path in the error boundary.\n *\n * @returns true if there are any unknown route parameters, false otherwise\n */\nfunction hasFallbackRouteParams() {\n if (typeof window === 'undefined') {\n // AsyncLocalStorage should not be included in the client bundle.\n const { workAsyncStorage } =\n require('../../server/app-render/work-async-storage.external') as typeof import('../../server/app-render/work-async-storage.external')\n\n const workStore = workAsyncStorage.getStore()\n if (!workStore) return false\n\n const { fallbackRouteParams } = workStore\n if (!fallbackRouteParams || fallbackRouteParams.size === 0) return false\n\n return true\n }\n\n return false\n}\n\n/**\n * This returns a `null` value if there are any unknown route parameters, and\n * otherwise returns the pathname from the context. This is an alternative to\n * `usePathname` that is used in the error boundary to avoid rendering the\n * error boundary when there are unknown route parameters. This doesn't throw\n * when accessed with unknown route parameters.\n *\n * @returns\n *\n * @internal\n */\nexport function useUntrackedPathname(): string | null {\n // If there are any unknown route parameters we would typically throw\n // an error, but this internal method allows us to return a null value instead\n // for components that do not propagate the pathname to the static shell (like\n // the error boundary).\n if (hasFallbackRouteParams()) {\n return null\n }\n\n // This shouldn't cause any issues related to conditional rendering because\n // the environment will be consistent for the render.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useContext(PathnameContext)\n}\n","'use client'\n\nimport React, { useContext } from 'react'\n\nexport type ServerInsertedHTMLHook = (callbacks: () => React.ReactNode) => void\n\n// Use `React.createContext` to avoid errors from the RSC checks because\n// it can't be imported directly in Server Components:\n//\n// import { createContext } from 'react'\n//\n// More info: https://github.com/vercel/next.js/pull/40686\nexport const ServerInsertedHTMLContext =\n React.createContext<ServerInsertedHTMLHook | null>(null as any)\n\nexport function useServerInsertedHTML(callback: () => React.ReactNode): void {\n const addInsertedServerHTMLCallback = useContext(ServerInsertedHTMLContext)\n // Should have no effects on client where there's no flush effects provider\n if (addInsertedServerHTMLCallback) {\n addInsertedServerHTMLCallback(callback)\n }\n}\n","export function createHrefFromUrl(\n url: Pick<URL, 'pathname' | 'search' | 'hash'>,\n includeHash: boolean = true\n): string {\n return url.pathname + url.search + (includeHash ? url.hash : '')\n}\n","/**\n * @license React\n * react-server-dom-webpack-client.browser.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\n\"use strict\";\nvar ReactDOM = require(\"react-dom\"),\n decoderOptions = { stream: !0 };\nfunction resolveClientReference(bundlerConfig, metadata) {\n if (bundlerConfig) {\n var moduleExports = bundlerConfig[metadata[0]];\n if ((bundlerConfig = moduleExports && moduleExports[metadata[2]]))\n moduleExports = bundlerConfig.name;\n else {\n bundlerConfig = moduleExports && moduleExports[\"*\"];\n if (!bundlerConfig)\n throw Error(\n 'Could not find the module \"' +\n metadata[0] +\n '\" in the React Server Consumer Manifest. This is probably a bug in the React Server Components bundler.'\n );\n moduleExports = metadata[2];\n }\n return 4 === metadata.length\n ? [bundlerConfig.id, bundlerConfig.chunks, moduleExports, 1]\n : [bundlerConfig.id, bundlerConfig.chunks, moduleExports];\n }\n return metadata;\n}\nfunction resolveServerReference(bundlerConfig, id) {\n var name = \"\",\n resolvedModuleData = bundlerConfig[id];\n if (resolvedModuleData) name = resolvedModuleData.name;\n else {\n var idx = id.lastIndexOf(\"#\");\n -1 !== idx &&\n ((name = id.slice(idx + 1)),\n (resolvedModuleData = bundlerConfig[id.slice(0, idx)]));\n if (!resolvedModuleData)\n throw Error(\n 'Could not find the module \"' +\n id +\n '\" in the React Server Manifest. This is probably a bug in the React Server Components bundler.'\n );\n }\n return resolvedModuleData.async\n ? [resolvedModuleData.id, resolvedModuleData.chunks, name, 1]\n : [resolvedModuleData.id, resolvedModuleData.chunks, name];\n}\nvar chunkCache = new Map();\nfunction requireAsyncModule(id) {\n var promise = __webpack_require__(id);\n if (\"function\" !== typeof promise.then || \"fulfilled\" === promise.status)\n return null;\n promise.then(\n function (value) {\n promise.status = \"fulfilled\";\n promise.value = value;\n },\n function (reason) {\n promise.status = \"rejected\";\n promise.reason = reason;\n }\n );\n return promise;\n}\nfunction ignoreReject() {}\nfunction preloadModule(metadata) {\n for (var chunks = metadata[1], promises = [], i = 0; i < chunks.length; ) {\n var chunkId = chunks[i++],\n chunkFilename = chunks[i++],\n entry = chunkCache.get(chunkId);\n void 0 === entry\n ? (chunkMap.set(chunkId, chunkFilename),\n (chunkFilename = __webpack_chunk_load__(chunkId)),\n promises.push(chunkFilename),\n (entry = chunkCache.set.bind(chunkCache, chunkId, null)),\n chunkFilename.then(entry, ignoreReject),\n chunkCache.set(chunkId, chunkFilename))\n : null !== entry && promises.push(entry);\n }\n return 4 === metadata.length\n ? 0 === promises.length\n ? requireAsyncModule(metadata[0])\n : Promise.all(promises).then(function () {\n return requireAsyncModule(metadata[0]);\n })\n : 0 < promises.length\n ? Promise.all(promises)\n : null;\n}\nfunction requireModule(metadata) {\n var moduleExports = __webpack_require__(metadata[0]);\n if (4 === metadata.length && \"function\" === typeof moduleExports.then)\n if (\"fulfilled\" === moduleExports.status)\n moduleExports = moduleExports.value;\n else throw moduleExports.reason;\n return \"*\" === metadata[2]\n ? moduleExports\n : \"\" === metadata[2]\n ? moduleExports.__esModule\n ? moduleExports.default\n : moduleExports\n : moduleExports[metadata[2]];\n}\nvar chunkMap = new Map(),\n webpackGetChunkFilename = __webpack_require__.u;\n__webpack_require__.u = function (chunkId) {\n var flightChunk = chunkMap.get(chunkId);\n return void 0 !== flightChunk\n ? flightChunk\n : webpackGetChunkFilename(chunkId);\n};\nvar ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ASYNC_ITERATOR = Symbol.asyncIterator,\n isArrayImpl = Array.isArray,\n getPrototypeOf = Object.getPrototypeOf,\n ObjectPrototype = Object.prototype,\n knownServerReferences = new WeakMap();\nfunction serializeNumber(number) {\n return Number.isFinite(number)\n ? 0 === number && -Infinity === 1 / number\n ? \"$-0\"\n : number\n : Infinity === number\n ? \"$Infinity\"\n : -Infinity === number\n ? \"$-Infinity\"\n : \"$NaN\";\n}\nfunction processReply(\n root,\n formFieldPrefix,\n temporaryReferences,\n resolve,\n reject\n) {\n function serializeTypedArray(tag, typedArray) {\n typedArray = new Blob([\n new Uint8Array(\n typedArray.buffer,\n typedArray.byteOffset,\n typedArray.byteLength\n )\n ]);\n var blobId = nextPartId++;\n null === formData && (formData = new FormData());\n formData.append(formFieldPrefix + blobId, typedArray);\n return \"$\" + tag + blobId.toString(16);\n }\n function serializeBinaryReader(reader) {\n function progress(entry) {\n entry.done\n ? ((entry = nextPartId++),\n data.append(formFieldPrefix + entry, new Blob(buffer)),\n data.append(\n formFieldPrefix + streamId,\n '\"$o' + entry.toString(16) + '\"'\n ),\n data.append(formFieldPrefix + streamId, \"C\"),\n pendingParts--,\n 0 === pendingParts && resolve(data))\n : (buffer.push(entry.value),\n reader.read(new Uint8Array(1024)).then(progress, reject));\n }\n null === formData && (formData = new FormData());\n var data = formData;\n pendingParts++;\n var streamId = nextPartId++,\n buffer = [];\n reader.read(new Uint8Array(1024)).then(progress, reject);\n return \"$r\" + streamId.toString(16);\n }\n function serializeReader(reader) {\n function progress(entry) {\n if (entry.done)\n data.append(formFieldPrefix + streamId, \"C\"),\n pendingParts--,\n 0 === pendingParts && resolve(data);\n else\n try {\n var partJSON = JSON.stringify(entry.value, resolveToJSON);\n data.append(formFieldPrefix + streamId, partJSON);\n reader.read().then(progress, reject);\n } catch (x) {\n reject(x);\n }\n }\n null === formData && (formData = new FormData());\n var data = formData;\n pendingParts++;\n var streamId = nextPartId++;\n reader.read().then(progress, reject);\n return \"$R\" + streamId.toString(16);\n }\n function serializeReadableStream(stream) {\n try {\n var binaryReader = stream.getReader({ mode: \"byob\" });\n } catch (x) {\n return serializeReader(stream.getReader());\n }\n return serializeBinaryReader(binaryReader);\n }\n function serializeAsyncIterable(iterable, iterator) {\n function progress(entry) {\n if (entry.done) {\n if (void 0 === entry.value)\n data.append(formFieldPrefix + streamId, \"C\");\n else\n try {\n var partJSON = JSON.stringify(entry.value, resolveToJSON);\n data.append(formFieldPrefix + streamId, \"C\" + partJSON);\n } catch (x) {\n reject(x);\n return;\n }\n pendingParts--;\n 0 === pendingParts && resolve(data);\n } else\n try {\n var partJSON$21 = JSON.stringify(entry.value, resolveToJSON);\n data.append(formFieldPrefix + streamId, partJSON$21);\n iterator.next().then(progress, reject);\n } catch (x$22) {\n reject(x$22);\n }\n }\n null === formData && (formData = new FormData());\n var data = formData;\n pendingParts++;\n var streamId = nextPartId++;\n iterable = iterable === iterator;\n iterator.next().then(progress, reject);\n return \"$\" + (iterable ? \"x\" : \"X\") + streamId.toString(16);\n }\n function resolveToJSON(key, value) {\n if (null === value) return null;\n if (\"object\" === typeof value) {\n switch (value.$$typeof) {\n case REACT_ELEMENT_TYPE:\n if (void 0 !== temporaryReferences && -1 === key.indexOf(\":\")) {\n var parentReference = writtenObjects.get(this);\n if (void 0 !== parentReference)\n return (\n temporaryReferences.set(parentReference + \":\" + key, value),\n \"$T\"\n );\n }\n throw Error(\n \"React Element cannot be passed to Server Functions from the Client without a temporary reference set. Pass a TemporaryReferenceSet to the options.\"\n );\n case REACT_LAZY_TYPE:\n parentReference = value._payload;\n var init = value._init;\n null === formData && (formData = new FormData());\n pendingParts++;\n try {\n var resolvedModel = init(parentReference),\n lazyId = nextPartId++,\n partJSON = serializeModel(resolvedModel, lazyId);\n formData.append(formFieldPrefix + lazyId, partJSON);\n return \"$\" + lazyId.toString(16);\n } catch (x) {\n if (\n \"object\" === typeof x &&\n null !== x &&\n \"function\" === typeof x.then\n ) {\n pendingParts++;\n var lazyId$23 = nextPartId++;\n parentReference = function () {\n try {\n var partJSON$24 = serializeModel(value, lazyId$23),\n data$25 = formData;\n data$25.append(formFieldPrefix + lazyId$23, partJSON$24);\n pendingParts--;\n 0 === pendingParts && resolve(data$25);\n } catch (reason) {\n reject(reason);\n }\n };\n x.then(parentReference, parentReference);\n return \"$\" + lazyId$23.toString(16);\n }\n reject(x);\n return null;\n } finally {\n pendingParts--;\n }\n }\n if (\"function\" === typeof value.then) {\n null === formData && (formData = new FormData());\n pendingParts++;\n var promiseId = nextPartId++;\n value.then(function (partValue) {\n try {\n var partJSON$27 = serializeModel(partValue, promiseId);\n partValue = formData;\n partValue.append(formFieldPrefix + promiseId, partJSON$27);\n pendingParts--;\n 0 === pendingParts && resolve(partValue);\n } catch (reason) {\n reject(reason);\n }\n }, reject);\n return \"$@\" + promiseId.toString(16);\n }\n parentReference = writtenObjects.get(value);\n if (void 0 !== parentReference)\n if (modelRoot === value) modelRoot = null;\n else return parentReference;\n else\n -1 === key.indexOf(\":\") &&\n ((parentReference = writtenObjects.get(this)),\n void 0 !== parentReference &&\n ((key = parentReference + \":\" + key),\n writtenObjects.set(value, key),\n void 0 !== temporaryReferences &&\n temporaryReferences.set(key, value)));\n if (isArrayImpl(value)) return value;\n if (value instanceof FormData) {\n null === formData && (formData = new FormData());\n var data$31 = formData;\n key = nextPartId++;\n var prefix = formFieldPrefix + key + \"_\";\n value.forEach(function (originalValue, originalKey) {\n data$31.append(prefix + originalKey, originalValue);\n });\n return \"$K\" + key.toString(16);\n }\n if (value instanceof Map)\n return (\n (key = nextPartId++),\n (parentReference = serializeModel(Array.from(value), key)),\n null === formData && (formData = new FormData()),\n formData.append(formFieldPrefix + key, parentReference),\n \"$Q\" + key.toString(16)\n );\n if (value instanceof Set)\n return (\n (key = nextPartId++),\n (parentReference = serializeModel(Array.from(value), key)),\n null === formData && (formData = new FormData()),\n formData.append(formFieldPrefix + key, parentReference),\n \"$W\" + key.toString(16)\n );\n if (value instanceof ArrayBuffer)\n return (\n (key = new Blob([value])),\n (parentReference = nextPartId++),\n null === formData && (formData = new FormData()),\n formData.append(formFieldPrefix + parentReference, key),\n \"$A\" + parentReference.toString(16)\n );\n if (value instanceof Int8Array) return serializeTypedArray(\"O\", value);\n if (value instanceof Uint8Array) return serializeTypedArray(\"o\", value);\n if (value instanceof Uint8ClampedArray)\n return serializeTypedArray(\"U\", value);\n if (value instanceof Int16Array) return serializeTypedArray(\"S\", value);\n if (value instanceof Uint16Array) return serializeTypedArray(\"s\", value);\n if (value instanceof Int32Array) return serializeTypedArray(\"L\", value);\n if (value instanceof Uint32Array) return serializeTypedArray(\"l\", value);\n if (value instanceof Float32Array) return serializeTypedArray(\"G\", value);\n if (value instanceof Float64Array) return serializeTypedArray(\"g\", value);\n if (value instanceof BigInt64Array)\n return serializeTypedArray(\"M\", value);\n if (value instanceof BigUint64Array)\n return serializeTypedArray(\"m\", value);\n if (value instanceof DataView) return serializeTypedArray(\"V\", value);\n if (\"function\" === typeof Blob && value instanceof Blob)\n return (\n null === formData && (formData = new FormData()),\n (key = nextPartId++),\n formData.append(formFieldPrefix + key, value),\n \"$B\" + key.toString(16)\n );\n if ((key = getIteratorFn(value)))\n return (\n (parentReference = key.call(value)),\n parentReference === value\n ? ((key = nextPartId++),\n (parentReference = serializeModel(\n Array.from(parentReference),\n key\n )),\n null === formData && (formData = new FormData()),\n formData.append(formFieldPrefix + key, parentReference),\n \"$i\" + key.toString(16))\n : Array.from(parentReference)\n );\n if (\n \"function\" === typeof ReadableStream &&\n value instanceof ReadableStream\n )\n return serializeReadableStream(value);\n key = value[ASYNC_ITERATOR];\n if (\"function\" === typeof key)\n return serializeAsyncIterable(value, key.call(value));\n key = getPrototypeOf(value);\n if (\n key !== ObjectPrototype &&\n (null === key || null !== getPrototypeOf(key))\n ) {\n if (void 0 === temporaryReferences)\n throw Error(\n \"Only plain objects, and a few built-ins, can be passed to Server Functions. Classes or null prototypes are not supported.\"\n );\n return \"$T\";\n }\n return value;\n }\n if (\"string\" === typeof value) {\n if (\"Z\" === value[value.length - 1] && this[key] instanceof Date)\n return \"$D\" + value;\n key = \"$\" === value[0] ? \"$\" + value : value;\n return key;\n }\n if (\"boolean\" === typeof value) return value;\n if (\"number\" === typeof value) return serializeNumber(value);\n if (\"undefined\" === typeof value) return \"$undefined\";\n if (\"function\" === typeof value) {\n parentReference = knownServerReferences.get(value);\n if (void 0 !== parentReference)\n return (\n (key = JSON.stringify(\n { id: parentReference.id, bound: parentReference.bound },\n resolveToJSON\n )),\n null === formData && (formData = new FormData()),\n (parentReference = nextPartId++),\n formData.set(formFieldPrefix + parentReference, key),\n \"$F\" + parentReference.toString(16)\n );\n if (\n void 0 !== temporaryReferences &&\n -1 === key.indexOf(\":\") &&\n ((parentReference = writtenObjects.get(this)),\n void 0 !== parentReference)\n )\n return (\n temporaryReferences.set(parentReference + \":\" + key, value), \"$T\"\n );\n throw Error(\n \"Client Functions cannot be passed directly to Server Functions. Only Functions passed from the Server can be passed back again.\"\n );\n }\n if (\"symbol\" === typeof value) {\n if (\n void 0 !== temporaryReferences &&\n -1 === key.indexOf(\":\") &&\n ((parentReference = writtenObjects.get(this)),\n void 0 !== parentReference)\n )\n return (\n temporaryReferences.set(parentReference + \":\" + key, value), \"$T\"\n );\n throw Error(\n \"Symbols cannot be passed to a Server Function without a temporary reference set. Pass a TemporaryReferenceSet to the options.\"\n );\n }\n if (\"bigint\" === typeof value) return \"$n\" + value.toString(10);\n throw Error(\n \"Type \" +\n typeof value +\n \" is not supported as an argument to a Server Function.\"\n );\n }\n function serializeModel(model, id) {\n \"object\" === typeof model &&\n null !== model &&\n ((id = \"$\" + id.toString(16)),\n writtenObjects.set(model, id),\n void 0 !== temporaryReferences && temporaryReferences.set(id, model));\n modelRoot = model;\n return JSON.stringify(model, resolveToJSON);\n }\n var nextPartId = 1,\n pendingParts = 0,\n formData = null,\n writtenObjects = new WeakMap(),\n modelRoot = root,\n json = serializeModel(root, 0);\n null === formData\n ? resolve(json)\n : (formData.set(formFieldPrefix + \"0\", json),\n 0 === pendingParts && resolve(formData));\n return function () {\n 0 < pendingParts &&\n ((pendingParts = 0),\n null === formData ? resolve(json) : resolve(formData));\n };\n}\nfunction registerBoundServerReference(reference, id, bound) {\n knownServerReferences.has(reference) ||\n knownServerReferences.set(reference, {\n id: id,\n originalBind: reference.bind,\n bound: bound\n });\n}\nfunction createBoundServerReference(metaData, callServer) {\n function action() {\n var args = Array.prototype.slice.call(arguments);\n return bound\n ? \"fulfilled\" === bound.status\n ? callServer(id, bound.value.concat(args))\n : Promise.resolve(bound).then(function (boundArgs) {\n return callServer(id, boundArgs.concat(args));\n })\n : callServer(id, args);\n }\n var id = metaData.id,\n bound = metaData.bound;\n registerBoundServerReference(action, id, bound);\n return action;\n}\nfunction ReactPromise(status, value, reason) {\n this.status = status;\n this.value = value;\n this.reason = reason;\n}\nReactPromise.prototype = Object.create(Promise.prototype);\nReactPromise.prototype.then = function (resolve, reject) {\n switch (this.status) {\n case \"resolved_model\":\n initializeModelChunk(this);\n break;\n case \"resolved_module\":\n initializeModuleChunk(this);\n }\n switch (this.status) {\n case \"fulfilled\":\n \"function\" === typeof resolve && resolve(this.value);\n break;\n case \"pending\":\n case \"blocked\":\n \"function\" === typeof resolve &&\n (null === this.value && (this.value = []), this.value.push(resolve));\n \"function\" === typeof reject &&\n (null === this.reason && (this.reason = []), this.reason.push(reject));\n break;\n case \"halted\":\n break;\n default:\n \"function\" === typeof reject && reject(this.reason);\n }\n};\nfunction readChunk(chunk) {\n switch (chunk.status) {\n case \"resolved_model\":\n initializeModelChunk(chunk);\n break;\n case \"resolved_module\":\n initializeModuleChunk(chunk);\n }\n switch (chunk.status) {\n case \"fulfilled\":\n return chunk.value;\n case \"pending\":\n case \"blocked\":\n case \"halted\":\n throw chunk;\n default:\n throw chunk.reason;\n }\n}\nfunction wakeChunk(listeners, value) {\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n \"function\" === typeof listener\n ? listener(value)\n : fulfillReference(listener, value);\n }\n}\nfunction rejectChunk(listeners, error) {\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n \"function\" === typeof listener\n ? listener(error)\n : rejectReference(listener, error);\n }\n}\nfunction resolveBlockedCycle(resolvedChunk, reference) {\n var referencedChunk = reference.handler.chunk;\n if (null === referencedChunk) return null;\n if (referencedChunk === resolvedChunk) return reference.handler;\n reference = referencedChunk.value;\n if (null !== reference)\n for (\n referencedChunk = 0;\n referencedChunk < reference.length;\n referencedChunk++\n ) {\n var listener = reference[referencedChunk];\n if (\n \"function\" !== typeof listener &&\n ((listener = resolveBlockedCycle(resolvedChunk, listener)),\n null !== listener)\n )\n return listener;\n }\n return null;\n}\nfunction wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) {\n switch (chunk.status) {\n case \"fulfilled\":\n wakeChunk(resolveListeners, chunk.value);\n break;\n case \"blocked\":\n for (var i = 0; i < resolveListeners.length; i++) {\n var listener = resolveListeners[i];\n if (\"function\" !== typeof listener) {\n var cyclicHandler = resolveBlockedCycle(chunk, listener);\n null !== cyclicHandler &&\n (fulfillReference(listener, cyclicHandler.value),\n resolveListeners.splice(i, 1),\n i--,\n null !== rejectListeners &&\n ((listener = rejectListeners.indexOf(listener)),\n -1 !== listener && rejectListeners.splice(listener, 1)));\n }\n }\n case \"pending\":\n if (chunk.value)\n for (i = 0; i < resolveListeners.length; i++)\n chunk.value.push(resolveListeners[i]);\n else chunk.value = resolveListeners;\n if (chunk.reason) {\n if (rejectListeners)\n for (\n resolveListeners = 0;\n resolveListeners < rejectListeners.length;\n resolveListeners++\n )\n chunk.reason.push(rejectListeners[resolveListeners]);\n } else chunk.reason = rejectListeners;\n break;\n case \"rejected\":\n rejectListeners && rejectChunk(rejectListeners, chunk.reason);\n }\n}\nfunction triggerErrorOnChunk(response, chunk, error) {\n \"pending\" !== chunk.status && \"blocked\" !== chunk.status\n ? chunk.reason.error(error)\n : ((response = chunk.reason),\n (chunk.status = \"rejected\"),\n (chunk.reason = error),\n null !== response && rejectChunk(response, error));\n}\nfunction createResolvedIteratorResultChunk(response, value, done) {\n return new ReactPromise(\n \"resolved_model\",\n (done ? '{\"done\":true,\"value\":' : '{\"done\":false,\"value\":') + value + \"}\",\n response\n );\n}\nfunction resolveIteratorResultChunk(response, chunk, value, done) {\n resolveModelChunk(\n response,\n chunk,\n (done ? '{\"done\":true,\"value\":' : '{\"done\":false,\"value\":') + value + \"}\"\n );\n}\nfunction resolveModelChunk(response, chunk, value) {\n if (\"pending\" !== chunk.status) chunk.reason.enqueueModel(value);\n else {\n var resolveListeners = chunk.value,\n rejectListeners = chunk.reason;\n chunk.status = \"resolved_model\";\n chunk.value = value;\n chunk.reason = response;\n null !== resolveListeners &&\n (initializeModelChunk(chunk),\n wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners));\n }\n}\nfunction resolveModuleChunk(response, chunk, value) {\n if (\"pending\" === chunk.status || \"blocked\" === chunk.status) {\n response = chunk.value;\n var rejectListeners = chunk.reason;\n chunk.status = \"resolved_module\";\n chunk.value = value;\n null !== response &&\n (initializeModuleChunk(chunk),\n wakeChunkIfInitialized(chunk, response, rejectListeners));\n }\n}\nvar initializingHandler = null;\nfunction initializeModelChunk(chunk) {\n var prevHandler = initializingHandler;\n initializingHandler = null;\n var resolvedModel = chunk.value,\n response = chunk.reason;\n chunk.status = \"blocked\";\n chunk.value = null;\n chunk.reason = null;\n try {\n var value = JSON.parse(resolvedModel, response._fromJSON),\n resolveListeners = chunk.value;\n null !== resolveListeners &&\n ((chunk.value = null),\n (chunk.reason = null),\n wakeChunk(resolveListeners, value));\n if (null !== initializingHandler) {\n if (initializingHandler.errored) throw initializingHandler.value;\n if (0 < initializingHandler.deps) {\n initializingHandler.value = value;\n initializingHandler.chunk = chunk;\n return;\n }\n }\n chunk.status = \"fulfilled\";\n chunk.value = value;\n } catch (error) {\n (chunk.status = \"rejected\"), (chunk.reason = error);\n } finally {\n initializingHandler = prevHandler;\n }\n}\nfunction initializeModuleChunk(chunk) {\n try {\n var value = requireModule(chunk.value);\n chunk.status = \"fulfilled\";\n chunk.value = value;\n } catch (error) {\n (chunk.status = \"rejected\"), (chunk.reason = error);\n }\n}\nfunction reportGlobalError(weakResponse, error) {\n weakResponse._closed = !0;\n weakResponse._closedReason = error;\n weakResponse._chunks.forEach(function (chunk) {\n \"pending\" === chunk.status &&\n triggerErrorOnChunk(weakResponse, chunk, error);\n });\n}\nfunction createLazyChunkWrapper(chunk) {\n return { $$typeof: REACT_LAZY_TYPE, _payload: chunk, _init: readChunk };\n}\nfunction getChunk(response, id) {\n var chunks = response._chunks,\n chunk = chunks.get(id);\n chunk ||\n ((chunk = response._closed\n ? new ReactPromise(\"rejected\", null, response._closedReason)\n : new ReactPromise(\"pending\", null, null)),\n chunks.set(id, chunk));\n return chunk;\n}\nfunction fulfillReference(reference, value) {\n for (\n var response = reference.response,\n handler = reference.handler,\n parentObject = reference.parentObject,\n key = reference.key,\n map = reference.map,\n path = reference.path,\n i = 1;\n i < path.length;\n i++\n ) {\n for (; value.$$typeof === REACT_LAZY_TYPE; )\n if (((value = value._payload), value === handler.chunk))\n value = handler.value;\n else {\n switch (value.status) {\n case \"resolved_model\":\n initializeModelChunk(value);\n break;\n case \"resolved_module\":\n initializeModuleChunk(value);\n }\n switch (value.status) {\n case \"fulfilled\":\n value = value.value;\n continue;\n case \"blocked\":\n var cyclicHandler = resolveBlockedCycle(value, reference);\n if (null !== cyclicHandler) {\n value = cyclicHandler.value;\n continue;\n }\n case \"pending\":\n path.splice(0, i - 1);\n null === value.value\n ? (value.value = [reference])\n : value.value.push(reference);\n null === value.reason\n ? (value.reason = [reference])\n : value.reason.push(reference);\n return;\n case \"halted\":\n return;\n default:\n rejectReference(reference, value.reason);\n return;\n }\n }\n value = value[path[i]];\n }\n reference = map(response, value, parentObject, key);\n parentObject[key] = reference;\n \"\" === key && null === handler.value && (handler.value = reference);\n if (\n parentObject[0] === REACT_ELEMENT_TYPE &&\n \"object\" === typeof handler.value &&\n null !== handler.value &&\n handler.value.$$typeof === REACT_ELEMENT_TYPE\n )\n switch (((parentObject = handler.value), key)) {\n case \"3\":\n parentObject.props = reference;\n }\n handler.deps--;\n 0 === handler.deps &&\n ((key = handler.chunk),\n null !== key &&\n \"blocked\" === key.status &&\n ((parentObject = key.value),\n (key.status = \"fulfilled\"),\n (key.value = handler.value),\n null !== parentObject && wakeChunk(parentObject, handler.value)));\n}\nfunction rejectReference(reference, error) {\n var handler = reference.handler;\n reference = reference.response;\n handler.errored ||\n ((handler.errored = !0),\n (handler.value = error),\n (handler = handler.chunk),\n null !== handler &&\n \"blocked\" === handler.status &&\n triggerErrorOnChunk(reference, handler, error));\n}\nfunction waitForReference(\n referencedChunk,\n parentObject,\n key,\n response,\n map,\n path\n) {\n if (initializingHandler) {\n var handler = initializingHandler;\n handler.deps++;\n } else\n handler = initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n deps: 1,\n errored: !1\n };\n parentObject = {\n response: response,\n handler: handler,\n parentObject: parentObject,\n key: key,\n map: map,\n path: path\n };\n null === referencedChunk.value\n ? (referencedChunk.value = [parentObject])\n : referencedChunk.value.push(parentObject);\n null === referencedChunk.reason\n ? (referencedChunk.reason = [parentObject])\n : referencedChunk.reason.push(parentObject);\n return null;\n}\nfunction loadServerReference(response, metaData, parentObject, key) {\n if (!response._serverReferenceConfig)\n return createBoundServerReference(metaData, response._callServer);\n var serverReference = resolveServerReference(\n response._serverReferenceConfig,\n metaData.id\n ),\n promise = preloadModule(serverReference);\n if (promise)\n metaData.bound && (promise = Promise.all([promise, metaData.bound]));\n else if (metaData.bound) promise = Promise.resolve(metaData.bound);\n else\n return (\n (promise = requireModule(serverReference)),\n registerBoundServerReference(promise, metaData.id, metaData.bound),\n promise\n );\n if (initializingHandler) {\n var handler = initializingHandler;\n handler.deps++;\n } else\n handler = initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n deps: 1,\n errored: !1\n };\n promise.then(\n function () {\n var resolvedValue = requireModule(serverReference);\n if (metaData.bound) {\n var boundArgs = metaData.bound.value.slice(0);\n boundArgs.unshift(null);\n resolvedValue = resolvedValue.bind.apply(resolvedValue, boundArgs);\n }\n registerBoundServerReference(resolvedValue, metaData.id, metaData.bound);\n parentObject[key] = resolvedValue;\n \"\" === key && null === handler.value && (handler.value = resolvedValue);\n if (\n parentObject[0] === REACT_ELEMENT_TYPE &&\n \"object\" === typeof handler.value &&\n null !== handler.value &&\n handler.value.$$typeof === REACT_ELEMENT_TYPE\n )\n switch (((boundArgs = handler.value), key)) {\n case \"3\":\n boundArgs.props = resolvedValue;\n }\n handler.deps--;\n 0 === handler.deps &&\n ((resolvedValue = handler.chunk),\n null !== resolvedValue &&\n \"blocked\" === resolvedValue.status &&\n ((boundArgs = resolvedValue.value),\n (resolvedValue.status = \"fulfilled\"),\n (resolvedValue.value = handler.value),\n null !== boundArgs && wakeChunk(boundArgs, handler.value)));\n },\n function (error) {\n if (!handler.errored) {\n handler.errored = !0;\n handler.value = error;\n var chunk = handler.chunk;\n null !== chunk &&\n \"blocked\" === chunk.status &&\n triggerErrorOnChunk(response, chunk, error);\n }\n }\n );\n return null;\n}\nfunction getOutlinedModel(response, reference, parentObject, key, map) {\n reference = reference.split(\":\");\n var id = parseInt(reference[0], 16);\n id = getChunk(response, id);\n switch (id.status) {\n case \"resolved_model\":\n initializeModelChunk(id);\n break;\n case \"resolved_module\":\n initializeModuleChunk(id);\n }\n switch (id.status) {\n case \"fulfilled\":\n var value = id.value;\n for (id = 1; id < reference.length; id++) {\n for (; value.$$typeof === REACT_LAZY_TYPE; ) {\n value = value._payload;\n switch (value.status) {\n case \"resolved_model\":\n initializeModelChunk(value);\n break;\n case \"resolved_module\":\n initializeModuleChunk(value);\n }\n switch (value.status) {\n case \"fulfilled\":\n value = value.value;\n break;\n case \"blocked\":\n case \"pending\":\n return waitForReference(\n value,\n parentObject,\n key,\n response,\n map,\n reference.slice(id - 1)\n );\n case \"halted\":\n return (\n initializingHandler\n ? ((response = initializingHandler), response.deps++)\n : (initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n deps: 1,\n errored: !1\n }),\n null\n );\n default:\n return (\n initializingHandler\n ? ((initializingHandler.errored = !0),\n (initializingHandler.value = value.reason))\n : (initializingHandler = {\n parent: null,\n chunk: null,\n value: value.reason,\n deps: 0,\n errored: !0\n }),\n null\n );\n }\n }\n value = value[reference[id]];\n }\n return map(response, value, parentObject, key);\n case \"pending\":\n case \"blocked\":\n return waitForReference(id, parentObject, key, response, map, reference);\n case \"halted\":\n return (\n initializingHandler\n ? ((response = initializingHandler), response.deps++)\n : (initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n deps: 1,\n errored: !1\n }),\n null\n );\n default:\n return (\n initializingHandler\n ? ((initializingHandler.errored = !0),\n (initializingHandler.value = id.reason))\n : (initializingHandler = {\n parent: null,\n chunk: null,\n value: id.reason,\n deps: 0,\n errored: !0\n }),\n null\n );\n }\n}\nfunction createMap(response, model) {\n return new Map(model);\n}\nfunction createSet(response, model) {\n return new Set(model);\n}\nfunction createBlob(response, model) {\n return new Blob(model.slice(1), { type: model[0] });\n}\nfunction createFormData(response, model) {\n response = new FormData();\n for (var i = 0; i < model.length; i++)\n response.append(model[i][0], model[i][1]);\n return response;\n}\nfunction extractIterator(response, model) {\n return model[Symbol.iterator]();\n}\nfunction createModel(response, model) {\n return model;\n}\nfunction parseModelString(response, parentObject, key, value) {\n if (\"$\" === value[0]) {\n if (\"$\" === value)\n return (\n null !== initializingHandler &&\n \"0\" === key &&\n (initializingHandler = {\n parent: initializingHandler,\n chunk: null,\n value: null,\n deps: 0,\n errored: !1\n }),\n REACT_ELEMENT_TYPE\n );\n switch (value[1]) {\n case \"$\":\n return value.slice(1);\n case \"L\":\n return (\n (parentObject = parseInt(value.slice(2), 16)),\n (response = getChunk(response, parentObject)),\n createLazyChunkWrapper(response)\n );\n case \"@\":\n return (\n (parentObject = parseInt(value.slice(2), 16)),\n getChunk(response, parentObject)\n );\n case \"S\":\n return Symbol.for(value.slice(2));\n case \"F\":\n return (\n (value = value.slice(2)),\n getOutlinedModel(\n response,\n value,\n parentObject,\n key,\n loadServerReference\n )\n );\n case \"T\":\n parentObject = \"$\" + value.slice(2);\n response = response._tempRefs;\n if (null == response)\n throw Error(\n \"Missing a temporary reference set but the RSC response returned a temporary reference. Pass a temporaryReference option with the set that was used with the reply.\"\n );\n return response.get(parentObject);\n case \"Q\":\n return (\n (value = value.slice(2)),\n getOutlinedModel(response, value, parentObject, key, createMap)\n );\n case \"W\":\n return (\n (value = value.slice(2)),\n getOutlinedModel(response, value, parentObject, key, createSet)\n );\n case \"B\":\n return (\n (value = value.slice(2)),\n getOutlinedModel(response, value, parentObject, key, createBlob)\n );\n case \"K\":\n return (\n (value = value.slice(2)),\n getOutlinedModel(response, value, parentObject, key, createFormData)\n );\n case \"Z\":\n return resolveErrorProd();\n case \"i\":\n return (\n (value = value.slice(2)),\n getOutlinedModel(response, value, parentObject, key, extractIterator)\n );\n case \"I\":\n return Infinity;\n case \"-\":\n return \"$-0\" === value ? -0 : -Infinity;\n case \"N\":\n return NaN;\n case \"u\":\n return;\n case \"D\":\n return new Date(Date.parse(value.slice(2)));\n case \"n\":\n return BigInt(value.slice(2));\n default:\n return (\n (value = value.slice(1)),\n getOutlinedModel(response, value, parentObject, key, createModel)\n );\n }\n }\n return value;\n}\nfunction missingCall() {\n throw Error(\n 'Trying to call a function from \"use server\" but the callServer option was not implemented in your router runtime.'\n );\n}\nfunction ResponseInstance(\n bundlerConfig,\n serverReferenceConfig,\n moduleLoading,\n callServer,\n encodeFormAction,\n nonce,\n temporaryReferences\n) {\n var chunks = new Map();\n this._bundlerConfig = bundlerConfig;\n this._serverReferenceConfig = serverReferenceConfig;\n this._moduleLoading = moduleLoading;\n this._callServer = void 0 !== callServer ? callServer : missingCall;\n this._encodeFormAction = encodeFormAction;\n this._nonce = nonce;\n this._chunks = chunks;\n this._stringDecoder = new TextDecoder();\n this._fromJSON = null;\n this._closed = !1;\n this._closedReason = null;\n this._tempRefs = temporaryReferences;\n this._fromJSON = createFromJSONCallback(this);\n}\nfunction resolveBuffer(response, id, buffer) {\n response = response._chunks;\n var chunk = response.get(id);\n chunk && \"pending\" !== chunk.status\n ? chunk.reason.enqueueValue(buffer)\n : response.set(id, new ReactPromise(\"fulfilled\", buffer, null));\n}\nfunction resolveModule(response, id, model) {\n var chunks = response._chunks,\n chunk = chunks.get(id);\n model = JSON.parse(model, response._fromJSON);\n var clientReference = resolveClientReference(response._bundlerConfig, model);\n if ((model = preloadModule(clientReference))) {\n if (chunk) {\n var blockedChunk = chunk;\n blockedChunk.status = \"blocked\";\n } else\n (blockedChunk = new ReactPromise(\"blocked\", null, null)),\n chunks.set(id, blockedChunk);\n model.then(\n function () {\n return resolveModuleChunk(response, blockedChunk, clientReference);\n },\n function (error) {\n return triggerErrorOnChunk(response, blockedChunk, error);\n }\n );\n } else\n chunk\n ? resolveModuleChunk(response, chunk, clientReference)\n : chunks.set(\n id,\n new ReactPromise(\"resolved_module\", clientReference, null)\n );\n}\nfunction resolveStream(response, id, stream, controller) {\n var chunks = response._chunks;\n response = chunks.get(id);\n response\n ? \"pending\" === response.status &&\n ((id = response.value),\n (response.status = \"fulfilled\"),\n (response.value = stream),\n (response.reason = controller),\n null !== id && wakeChunk(id, response.value))\n : chunks.set(id, new ReactPromise(\"fulfilled\", stream, controller));\n}\nfunction startReadableStream(response, id, type) {\n var controller = null;\n type = new ReadableStream({\n type: type,\n start: function (c) {\n controller = c;\n }\n });\n var previousBlockedChunk = null;\n resolveStream(response, id, type, {\n enqueueValue: function (value) {\n null === previousBlockedChunk\n ? controller.enqueue(value)\n : previousBlockedChunk.then(function () {\n controller.enqueue(value);\n });\n },\n enqueueModel: function (json) {\n if (null === previousBlockedChunk) {\n var chunk = new ReactPromise(\"resolved_model\", json, response);\n initializeModelChunk(chunk);\n \"fulfilled\" === chunk.status\n ? controller.enqueue(chunk.value)\n : (chunk.then(\n function (v) {\n return controller.enqueue(v);\n },\n function (e) {\n return controller.error(e);\n }\n ),\n (previousBlockedChunk = chunk));\n } else {\n chunk = previousBlockedChunk;\n var chunk$52 = new ReactPromise(\"pending\", null, null);\n chunk$52.then(\n function (v) {\n return controller.enqueue(v);\n },\n function (e) {\n return controller.error(e);\n }\n );\n previousBlockedChunk = chunk$52;\n chunk.then(function () {\n previousBlockedChunk === chunk$52 && (previousBlockedChunk = null);\n resolveModelChunk(response, chunk$52, json);\n });\n }\n },\n close: function () {\n if (null === previousBlockedChunk) controller.close();\n else {\n var blockedChunk = previousBlockedChunk;\n previousBlockedChunk = null;\n blockedChunk.then(function () {\n return controller.close();\n });\n }\n },\n error: function (error) {\n if (null === previousBlockedChunk) controller.error(error);\n else {\n var blockedChunk = previousBlockedChunk;\n previousBlockedChunk = null;\n blockedChunk.then(function () {\n return controller.error(error);\n });\n }\n }\n });\n}\nfunction asyncIterator() {\n return this;\n}\nfunction createIterator(next) {\n next = { next: next };\n next[ASYNC_ITERATOR] = asyncIterator;\n return next;\n}\nfunction startAsyncIterable(response, id, iterator) {\n var buffer = [],\n closed = !1,\n nextWriteIndex = 0,\n iterable = {};\n iterable[ASYNC_ITERATOR] = function () {\n var nextReadIndex = 0;\n return createIterator(function (arg) {\n if (void 0 !== arg)\n throw Error(\n \"Values cannot be passed to next() of AsyncIterables passed to Client Components.\"\n );\n if (nextReadIndex === buffer.length) {\n if (closed)\n return new ReactPromise(\n \"fulfilled\",\n { done: !0, value: void 0 },\n null\n );\n buffer[nextReadIndex] = new ReactPromise(\"pending\", null, null);\n }\n return buffer[nextReadIndex++];\n });\n };\n resolveStream(\n response,\n id,\n iterator ? iterable[ASYNC_ITERATOR]() : iterable,\n {\n enqueueValue: function (value) {\n if (nextWriteIndex === buffer.length)\n buffer[nextWriteIndex] = new ReactPromise(\n \"fulfilled\",\n { done: !1, value: value },\n null\n );\n else {\n var chunk = buffer[nextWriteIndex],\n resolveListeners = chunk.value,\n rejectListeners = chunk.reason;\n chunk.status = \"fulfilled\";\n chunk.value = { done: !1, value: value };\n null !== resolveListeners &&\n wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners);\n }\n nextWriteIndex++;\n },\n enqueueModel: function (value) {\n nextWriteIndex === buffer.length\n ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(\n response,\n value,\n !1\n ))\n : resolveIteratorResultChunk(\n response,\n buffer[nextWriteIndex],\n value,\n !1\n );\n nextWriteIndex++;\n },\n close: function (value) {\n closed = !0;\n nextWriteIndex === buffer.length\n ? (buffer[nextWriteIndex] = createResolvedIteratorResultChunk(\n response,\n value,\n !0\n ))\n : resolveIteratorResultChunk(\n response,\n buffer[nextWriteIndex],\n value,\n !0\n );\n for (nextWriteIndex++; nextWriteIndex < buffer.length; )\n resolveIteratorResultChunk(\n response,\n buffer[nextWriteIndex++],\n '\"$undefined\"',\n !0\n );\n },\n error: function (error) {\n closed = !0;\n for (\n nextWriteIndex === buffer.length &&\n (buffer[nextWriteIndex] = new ReactPromise(\"pending\", null, null));\n nextWriteIndex < buffer.length;\n\n )\n triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);\n }\n }\n );\n}\nfunction resolveErrorProd() {\n var error = Error(\n \"An error occurred in the Server Components render. The specific message is omitted in production builds to avoid leaking sensitive details. A digest property is included on this error instance which may provide additional details about the nature of the error.\"\n );\n error.stack = \"Error: \" + error.message;\n return error;\n}\nfunction mergeBuffer(buffer, lastChunk) {\n for (var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++)\n byteLength += buffer[i].byteLength;\n byteLength = new Uint8Array(byteLength);\n for (var i$53 = (i = 0); i$53 < l; i$53++) {\n var chunk = buffer[i$53];\n byteLength.set(chunk, i);\n i += chunk.byteLength;\n }\n byteLength.set(lastChunk, i);\n return byteLength;\n}\nfunction resolveTypedArray(\n response,\n id,\n buffer,\n lastChunk,\n constructor,\n bytesPerElement\n) {\n buffer =\n 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement\n ? lastChunk\n : mergeBuffer(buffer, lastChunk);\n constructor = new constructor(\n buffer.buffer,\n buffer.byteOffset,\n buffer.byteLength / bytesPerElement\n );\n resolveBuffer(response, id, constructor);\n}\nfunction processFullBinaryRow(response, id, tag, buffer, chunk) {\n switch (tag) {\n case 65:\n resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer);\n return;\n case 79:\n resolveTypedArray(response, id, buffer, chunk, Int8Array, 1);\n return;\n case 111:\n resolveBuffer(\n response,\n id,\n 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk)\n );\n return;\n case 85:\n resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1);\n return;\n case 83:\n resolveTypedArray(response, id, buffer, chunk, Int16Array, 2);\n return;\n case 115:\n resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2);\n return;\n case 76:\n resolveTypedArray(response, id, buffer, chunk, Int32Array, 4);\n return;\n case 108:\n resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4);\n return;\n case 71:\n resolveTypedArray(response, id, buffer, chunk, Float32Array, 4);\n return;\n case 103:\n resolveTypedArray(response, id, buffer, chunk, Float64Array, 8);\n return;\n case 77:\n resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8);\n return;\n case 109:\n resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8);\n return;\n case 86:\n resolveTypedArray(response, id, buffer, chunk, DataView, 1);\n return;\n }\n for (\n var stringDecoder = response._stringDecoder, row = \"\", i = 0;\n i < buffer.length;\n i++\n )\n row += stringDecoder.decode(buffer[i], decoderOptions);\n buffer = row += stringDecoder.decode(chunk);\n switch (tag) {\n case 73:\n resolveModule(response, id, buffer);\n break;\n case 72:\n id = buffer[0];\n buffer = buffer.slice(1);\n response = JSON.parse(buffer, response._fromJSON);\n buffer = ReactDOMSharedInternals.d;\n switch (id) {\n case \"D\":\n buffer.D(response);\n break;\n case \"C\":\n \"string\" === typeof response\n ? buffer.C(response)\n : buffer.C(response[0], response[1]);\n break;\n case \"L\":\n id = response[0];\n tag = response[1];\n 3 === response.length\n ? buffer.L(id, tag, response[2])\n : buffer.L(id, tag);\n break;\n case \"m\":\n \"string\" === typeof response\n ? buffer.m(response)\n : buffer.m(response[0], response[1]);\n break;\n case \"X\":\n \"string\" === typeof response\n ? buffer.X(response)\n : buffer.X(response[0], response[1]);\n break;\n case \"S\":\n \"string\" === typeof response\n ? buffer.S(response)\n : buffer.S(\n response[0],\n 0 === response[1] ? void 0 : response[1],\n 3 === response.length ? response[2] : void 0\n );\n break;\n case \"M\":\n \"string\" === typeof response\n ? buffer.M(response)\n : buffer.M(response[0], response[1]);\n }\n break;\n case 69:\n tag = JSON.parse(buffer);\n buffer = resolveErrorProd();\n buffer.digest = tag.digest;\n tag = response._chunks;\n (chunk = tag.get(id))\n ? triggerErrorOnChunk(response, chunk, buffer)\n : tag.set(id, new ReactPromise(\"rejected\", null, buffer));\n break;\n case 84:\n response = response._chunks;\n (tag = response.get(id)) && \"pending\" !== tag.status\n ? tag.reason.enqueueValue(buffer)\n : response.set(id, new ReactPromise(\"fulfilled\", buffer, null));\n break;\n case 78:\n case 68:\n case 74:\n case 87:\n throw Error(\n \"Failed to read a RSC payload created by a development version of React on the server while using a production version on the client. Always use matching versions on the server and the client.\"\n );\n case 82:\n startReadableStream(response, id, void 0);\n break;\n case 114:\n startReadableStream(response, id, \"bytes\");\n break;\n case 88:\n startAsyncIterable(response, id, !1);\n break;\n case 120:\n startAsyncIterable(response, id, !0);\n break;\n case 67:\n (response = response._chunks.get(id)) &&\n \"fulfilled\" === response.status &&\n response.reason.close(\"\" === buffer ? '\"$undefined\"' : buffer);\n break;\n default:\n (tag = response._chunks),\n (chunk = tag.get(id))\n ? resolveModelChunk(response, chunk, buffer)\n : tag.set(id, new ReactPromise(\"resolved_model\", buffer, response));\n }\n}\nfunction createFromJSONCallback(response) {\n return function (key, value) {\n if (\"string\" === typeof value)\n return parseModelString(response, this, key, value);\n if (\"object\" === typeof value && null !== value) {\n if (value[0] === REACT_ELEMENT_TYPE) {\n if (\n ((key = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: value[1],\n key: value[2],\n ref: null,\n props: value[3]\n }),\n null !== initializingHandler)\n )\n if (\n ((value = initializingHandler),\n (initializingHandler = value.parent),\n value.errored)\n )\n (key = new ReactPromise(\"rejected\", null, value.value)),\n (key = createLazyChunkWrapper(key));\n else if (0 < value.deps) {\n var blockedChunk = new ReactPromise(\"blocked\", null, null);\n value.value = key;\n value.chunk = blockedChunk;\n key = createLazyChunkWrapper(blockedChunk);\n }\n } else key = value;\n return key;\n }\n return value;\n };\n}\nfunction createResponseFromOptions(options) {\n return new ResponseInstance(\n null,\n null,\n null,\n options && options.callServer ? options.callServer : void 0,\n void 0,\n void 0,\n options && options.temporaryReferences\n ? options.temporaryReferences\n : void 0\n );\n}\nfunction startReadingFromStream(response, stream, isSecondaryStream) {\n function progress(_ref2) {\n var value = _ref2.value;\n if (_ref2.done)\n isSecondaryStream ||\n reportGlobalError(response, Error(\"Connection closed.\"));\n else {\n var i = 0,\n rowState = streamState._rowState;\n _ref2 = streamState._rowID;\n for (\n var rowTag = streamState._rowTag,\n rowLength = streamState._rowLength,\n buffer = streamState._buffer,\n chunkLength = value.length;\n i < chunkLength;\n\n ) {\n var lastIdx = -1;\n switch (rowState) {\n case 0:\n lastIdx = value[i++];\n 58 === lastIdx\n ? (rowState = 1)\n : (_ref2 =\n (_ref2 << 4) | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48));\n continue;\n case 1:\n rowState = value[i];\n 84 === rowState ||\n 65 === rowState ||\n 79 === rowState ||\n 111 === rowState ||\n 85 === rowState ||\n 83 === rowState ||\n 115 === rowState ||\n 76 === rowState ||\n 108 === rowState ||\n 71 === rowState ||\n 103 === rowState ||\n 77 === rowState ||\n 109 === rowState ||\n 86 === rowState\n ? ((rowTag = rowState), (rowState = 2), i++)\n : (64 < rowState && 91 > rowState) ||\n 35 === rowState ||\n 114 === rowState ||\n 120 === rowState\n ? ((rowTag = rowState), (rowState = 3), i++)\n : ((rowTag = 0), (rowState = 3));\n continue;\n case 2:\n lastIdx = value[i++];\n 44 === lastIdx\n ? (rowState = 4)\n : (rowLength =\n (rowLength << 4) |\n (96 < lastIdx ? lastIdx - 87 : lastIdx - 48));\n continue;\n case 3:\n lastIdx = value.indexOf(10, i);\n break;\n case 4:\n (lastIdx = i + rowLength), lastIdx > value.length && (lastIdx = -1);\n }\n var offset = value.byteOffset + i;\n if (-1 < lastIdx)\n (rowLength = new Uint8Array(value.buffer, offset, lastIdx - i)),\n processFullBinaryRow(response, _ref2, rowTag, buffer, rowLength),\n (i = lastIdx),\n 3 === rowState && i++,\n (rowLength = _ref2 = rowTag = rowState = 0),\n (buffer.length = 0);\n else {\n value = new Uint8Array(value.buffer, offset, value.byteLength - i);\n buffer.push(value);\n rowLength -= value.byteLength;\n break;\n }\n }\n streamState._rowState = rowState;\n streamState._rowID = _ref2;\n streamState._rowTag = rowTag;\n streamState._rowLength = rowLength;\n return reader.read().then(progress).catch(error);\n }\n }\n function error(e) {\n reportGlobalError(response, e);\n }\n var streamState = {\n _rowState: 0,\n _rowID: 0,\n _rowTag: 0,\n _rowLength: 0,\n _buffer: []\n },\n reader = stream.getReader();\n reader.read().then(progress).catch(error);\n}\nexports.createFromFetch = function (promiseForResponse, options) {\n var response = createResponseFromOptions(options);\n promiseForResponse.then(\n function (r) {\n startReadingFromStream(response, r.body, !1);\n },\n function (e) {\n reportGlobalError(response, e);\n }\n );\n return getChunk(response, 0);\n};\nexports.createFromReadableStream = function (stream, options) {\n options = createResponseFromOptions(options);\n startReadingFromStream(options, stream, !1);\n return getChunk(options, 0);\n};\nexports.createServerReference = function (id, callServer) {\n function action() {\n var args = Array.prototype.slice.call(arguments);\n return callServer(id, args);\n }\n registerBoundServerReference(action, id, null);\n return action;\n};\nexports.createTemporaryReferenceSet = function () {\n return new Map();\n};\nexports.encodeReply = function (value, options) {\n return new Promise(function (resolve, reject) {\n var abort = processReply(\n value,\n \"\",\n options && options.temporaryReferences\n ? options.temporaryReferences\n : void 0,\n resolve,\n reject\n );\n if (options && options.signal) {\n var signal = options.signal;\n if (signal.aborted) abort(signal.reason);\n else {\n var listener = function () {\n abort(signal.reason);\n signal.removeEventListener(\"abort\", listener);\n };\n signal.addEventListener(\"abort\", listener);\n }\n }\n });\n};\nexports.registerServerReference = function (reference, id) {\n registerBoundServerReference(reference, id, null);\n return reference;\n};\n","'use client'\n\n// TODO: Explicitly import from client.browser\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { createFromReadableStream as createFromReadableStreamBrowser } from 'react-server-dom-webpack/client'\n\nimport type {\n FlightRouterState,\n NavigationFlightResponse,\n} from '../../../server/app-render/types'\n\nimport type { NEXT_ROUTER_SEGMENT_PREFETCH_HEADER } from '../app-router-headers'\nimport {\n NEXT_ROUTER_PREFETCH_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_RSC_UNION_QUERY,\n NEXT_URL,\n RSC_HEADER,\n RSC_CONTENT_TYPE_HEADER,\n NEXT_HMR_REFRESH_HEADER,\n NEXT_DID_POSTPONE_HEADER,\n NEXT_ROUTER_STALE_TIME_HEADER,\n} from '../app-router-headers'\nimport { callServer } from '../../app-call-server'\nimport { findSourceMapURL } from '../../app-find-source-map-url'\nimport { PrefetchKind } from './router-reducer-types'\nimport {\n normalizeFlightData,\n prepareFlightRouterStateForRequest,\n type NormalizedFlightData,\n} from '../../flight-data-helpers'\nimport { getAppBuildId } from '../../app-build-id'\nimport { setCacheBustingSearchParam } from './set-cache-busting-search-param'\n\nconst createFromReadableStream =\n createFromReadableStreamBrowser as (typeof import('react-server-dom-webpack/client.browser'))['createFromReadableStream']\n\nexport interface FetchServerResponseOptions {\n readonly flightRouterState: FlightRouterState\n readonly nextUrl: string | null\n readonly prefetchKind?: PrefetchKind\n readonly isHmrRefresh?: boolean\n}\n\nexport type FetchServerResponseResult = {\n flightData: NormalizedFlightData[] | string\n canonicalUrl: URL | undefined\n couldBeIntercepted: boolean\n prerendered: boolean\n postponed: boolean\n staleTime: number\n}\n\nexport type RequestHeaders = {\n [RSC_HEADER]?: '1'\n [NEXT_ROUTER_STATE_TREE_HEADER]?: string\n [NEXT_URL]?: string\n [NEXT_ROUTER_PREFETCH_HEADER]?: '1'\n [NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]?: string\n 'x-deployment-id'?: string\n [NEXT_HMR_REFRESH_HEADER]?: '1'\n // A header that is only added in test mode to assert on fetch priority\n 'Next-Test-Fetch-Priority'?: RequestInit['priority']\n}\n\nexport function urlToUrlWithoutFlightMarker(url: string): URL {\n const urlWithoutFlightParameters = new URL(url, location.origin)\n urlWithoutFlightParameters.searchParams.delete(NEXT_RSC_UNION_QUERY)\n if (process.env.NODE_ENV === 'production') {\n if (\n process.env.__NEXT_CONFIG_OUTPUT === 'export' &&\n urlWithoutFlightParameters.pathname.endsWith('.txt')\n ) {\n const { pathname } = urlWithoutFlightParameters\n const length = pathname.endsWith('/index.txt') ? 10 : 4\n // Slice off `/index.txt` or `.txt` from the end of the pathname\n urlWithoutFlightParameters.pathname = pathname.slice(0, -length)\n }\n }\n return urlWithoutFlightParameters\n}\n\nfunction doMpaNavigation(url: string): FetchServerResponseResult {\n return {\n flightData: urlToUrlWithoutFlightMarker(url).toString(),\n canonicalUrl: undefined,\n couldBeIntercepted: false,\n prerendered: false,\n postponed: false,\n staleTime: -1,\n }\n}\n\nlet abortController = new AbortController()\n\nif (typeof window !== 'undefined') {\n // Abort any in-flight requests when the page is unloaded, e.g. due to\n // reloading the page or performing hard navigations. This allows us to ignore\n // what would otherwise be a thrown TypeError when the browser cancels the\n // requests.\n window.addEventListener('pagehide', () => {\n abortController.abort()\n })\n\n // Use a fresh AbortController instance on pageshow, e.g. when navigating back\n // and the JavaScript execution context is restored by the browser.\n window.addEventListener('pageshow', () => {\n abortController = new AbortController()\n })\n}\n\n/**\n * Fetch the flight data for the provided url. Takes in the current router state\n * to decide what to render server-side.\n */\nexport async function fetchServerResponse(\n url: URL,\n options: FetchServerResponseOptions\n): Promise<FetchServerResponseResult> {\n const { flightRouterState, nextUrl, prefetchKind } = options\n\n const headers: RequestHeaders = {\n // Enable flight response\n [RSC_HEADER]: '1',\n // Provide the current router state\n [NEXT_ROUTER_STATE_TREE_HEADER]: prepareFlightRouterStateForRequest(\n flightRouterState,\n options.isHmrRefresh\n ),\n }\n\n /**\n * Three cases:\n * - `prefetchKind` is `undefined`, it means it's a normal navigation, so we want to prefetch the page data fully\n * - `prefetchKind` is `full` - we want to prefetch the whole page so same as above\n * - `prefetchKind` is `auto` - if the page is dynamic, prefetch the page data partially, if static prefetch the page data fully\n */\n if (prefetchKind === PrefetchKind.AUTO) {\n headers[NEXT_ROUTER_PREFETCH_HEADER] = '1'\n }\n\n if (process.env.NODE_ENV === 'development' && options.isHmrRefresh) {\n headers[NEXT_HMR_REFRESH_HEADER] = '1'\n }\n\n if (nextUrl) {\n headers[NEXT_URL] = nextUrl\n }\n\n try {\n // When creating a \"temporary\" prefetch (the \"on-demand\" prefetch that gets created on navigation, if one doesn't exist)\n // we send the request with a \"high\" priority as it's in response to a user interaction that could be blocking a transition.\n // Otherwise, all other prefetches are sent with a \"low\" priority.\n // We use \"auto\" for in all other cases to match the existing default, as this function is shared outside of prefetching.\n const fetchPriority = prefetchKind\n ? prefetchKind === PrefetchKind.TEMPORARY\n ? 'high'\n : 'low'\n : 'auto'\n\n if (process.env.NODE_ENV === 'production') {\n if (process.env.__NEXT_CONFIG_OUTPUT === 'export') {\n // In \"output: export\" mode, we can't rely on headers to distinguish\n // between HTML and RSC requests. Instead, we append an extra prefix\n // to the request.\n url = new URL(url)\n if (url.pathname.endsWith('/')) {\n url.pathname += 'index.txt'\n } else {\n url.pathname += '.txt'\n }\n }\n }\n\n const res = await createFetch(\n url,\n headers,\n fetchPriority,\n abortController.signal\n )\n\n const responseUrl = urlToUrlWithoutFlightMarker(res.url)\n const canonicalUrl = res.redirected ? responseUrl : undefined\n\n const contentType = res.headers.get('content-type') || ''\n const interception = !!res.headers.get('vary')?.includes(NEXT_URL)\n const postponed = !!res.headers.get(NEXT_DID_POSTPONE_HEADER)\n const staleTimeHeaderSeconds = res.headers.get(\n NEXT_ROUTER_STALE_TIME_HEADER\n )\n const staleTime =\n staleTimeHeaderSeconds !== null\n ? parseInt(staleTimeHeaderSeconds, 10) * 1000\n : -1\n let isFlightResponse = contentType.startsWith(RSC_CONTENT_TYPE_HEADER)\n\n if (process.env.NODE_ENV === 'production') {\n if (process.env.__NEXT_CONFIG_OUTPUT === 'export') {\n if (!isFlightResponse) {\n isFlightResponse = contentType.startsWith('text/plain')\n }\n }\n }\n\n // If fetch returns something different than flight response handle it like a mpa navigation\n // If the fetch was not 200, we also handle it like a mpa navigation\n if (!isFlightResponse || !res.ok || !res.body) {\n // in case the original URL came with a hash, preserve it before redirecting to the new URL\n if (url.hash) {\n responseUrl.hash = url.hash\n }\n\n return doMpaNavigation(responseUrl.toString())\n }\n\n // We may navigate to a page that requires a different Webpack runtime.\n // In prod, every page will have the same Webpack runtime.\n // In dev, the Webpack runtime is minimal for each page.\n // We need to ensure the Webpack runtime is updated before executing client-side JS of the new page.\n if (process.env.NODE_ENV !== 'production' && !process.env.TURBOPACK) {\n await (\n require('../../dev/hot-reloader/app/hot-reloader-app') as typeof import('../../dev/hot-reloader/app/hot-reloader-app')\n ).waitForWebpackRuntimeHotUpdate()\n }\n\n // Handle the `fetch` readable stream that can be unwrapped by `React.use`.\n const flightStream = postponed\n ? createUnclosingPrefetchStream(res.body)\n : res.body\n const response = await (createFromNextReadableStream(\n flightStream\n ) as Promise<NavigationFlightResponse>)\n\n if (getAppBuildId() !== response.b) {\n return doMpaNavigation(res.url)\n }\n\n return {\n flightData: normalizeFlightData(response.f),\n canonicalUrl: canonicalUrl,\n couldBeIntercepted: interception,\n prerendered: response.S,\n postponed,\n staleTime,\n }\n } catch (err) {\n if (!abortController.signal.aborted) {\n console.error(\n `Failed to fetch RSC payload for ${url}. Falling back to browser navigation.`,\n err\n )\n }\n\n // If fetch fails handle it like a mpa navigation\n // TODO-APP: Add a test for the case where a CORS request fails, e.g. external url redirect coming from the response.\n // See https://github.com/vercel/next.js/issues/43605#issuecomment-1451617521 for a reproduction.\n return {\n flightData: url.toString(),\n canonicalUrl: undefined,\n couldBeIntercepted: false,\n prerendered: false,\n postponed: false,\n staleTime: -1,\n }\n }\n}\n\n// This is a subset of the standard Response type. We use a custom type for\n// this so we can limit which details about the response leak into the rest of\n// the codebase. For example, there's some custom logic for manually following\n// redirects, so \"redirected\" in this type could be a composite of multiple\n// browser fetch calls; however, this fact should not leak to the caller.\nexport type RSCResponse = {\n ok: boolean\n redirected: boolean\n headers: Headers\n body: ReadableStream<Uint8Array> | null\n status: number\n url: string\n}\n\nexport async function createFetch(\n url: URL,\n headers: RequestHeaders,\n fetchPriority: 'auto' | 'high' | 'low' | null,\n signal?: AbortSignal\n): Promise<RSCResponse> {\n // TODO: In output: \"export\" mode, the headers do nothing. Omit them (and the\n // cache busting search param) from the request so they're\n // maximally cacheable.\n\n if (process.env.__NEXT_TEST_MODE && fetchPriority !== null) {\n headers['Next-Test-Fetch-Priority'] = fetchPriority\n }\n\n if (process.env.NEXT_DEPLOYMENT_ID) {\n headers['x-deployment-id'] = process.env.NEXT_DEPLOYMENT_ID\n }\n\n const fetchOptions: RequestInit = {\n // Backwards compat for older browsers. `same-origin` is the default in modern browsers.\n credentials: 'same-origin',\n headers,\n priority: fetchPriority || undefined,\n signal,\n }\n // `fetchUrl` is slightly different from `url` because we add a cache-busting\n // search param to it. This should not leak outside of this function, so we\n // track them separately.\n let fetchUrl = new URL(url)\n setCacheBustingSearchParam(fetchUrl, headers)\n let browserResponse = await fetch(fetchUrl, fetchOptions)\n\n // If the server responds with a redirect (e.g. 307), and the redirected\n // location does not contain the cache busting search param set in the\n // original request, the response is likely invalid — when following the\n // redirect, the browser forwards the request headers, but since the cache\n // busting search param is missing, the server will reject the request due to\n // a mismatch.\n //\n // Ideally, we would be able to intercept the redirect response and perform it\n // manually, instead of letting the browser automatically follow it, but this\n // is not allowed by the fetch API.\n //\n // So instead, we must \"replay\" the redirect by fetching the new location\n // again, but this time we'll append the cache busting search param to prevent\n // a mismatch.\n //\n // TODO: We can optimize Next.js's built-in middleware APIs by returning a\n // custom status code, to prevent the browser from automatically following it.\n //\n // This does not affect Server Action-based redirects; those are encoded\n // differently, as part of the Flight body. It only affects redirects that\n // occur in a middleware or a third-party proxy.\n\n let redirected = browserResponse.redirected\n if (process.env.__NEXT_CLIENT_VALIDATE_RSC_REQUEST_HEADERS) {\n // This is to prevent a redirect loop. Same limit used by Chrome.\n const MAX_REDIRECTS = 20\n for (let n = 0; n < MAX_REDIRECTS; n++) {\n if (!browserResponse.redirected) {\n // The server did not perform a redirect.\n break\n }\n const responseUrl = new URL(browserResponse.url, fetchUrl)\n if (responseUrl.origin !== fetchUrl.origin) {\n // The server redirected to an external URL. The rest of the logic below\n // is not relevant, because it only applies to internal redirects.\n break\n }\n if (\n responseUrl.searchParams.get(NEXT_RSC_UNION_QUERY) ===\n fetchUrl.searchParams.get(NEXT_RSC_UNION_QUERY)\n ) {\n // The redirected URL already includes the cache busting search param.\n // This was probably intentional. Regardless, there's no reason to\n // issue another request to this URL because it already has the param\n // value that we would have added below.\n break\n }\n // The RSC request was redirected. Assume the response is invalid.\n //\n // Append the cache busting search param to the redirected URL and\n // fetch again.\n fetchUrl = new URL(responseUrl)\n setCacheBustingSearchParam(fetchUrl, headers)\n browserResponse = await fetch(fetchUrl, fetchOptions)\n // We just performed a manual redirect, so this is now true.\n redirected = true\n }\n }\n\n // Remove the cache busting search param from the response URL, to prevent it\n // from leaking outside of this function.\n const responseUrl = new URL(browserResponse.url, fetchUrl)\n responseUrl.searchParams.delete(NEXT_RSC_UNION_QUERY)\n\n const rscResponse: RSCResponse = {\n url: responseUrl.href,\n\n // This is true if any redirects occurred, either automatically by the\n // browser, or manually by us. So it's different from\n // `browserResponse.redirected`, which only tells us whether the browser\n // followed a redirect, and only for the last response in the chain.\n redirected,\n\n // These can be copied from the last browser response we received. We\n // intentionally only expose the subset of fields that are actually used\n // elsewhere in the codebase.\n ok: browserResponse.ok,\n headers: browserResponse.headers,\n body: browserResponse.body,\n status: browserResponse.status,\n }\n\n return rscResponse\n}\n\nexport function createFromNextReadableStream(\n flightStream: ReadableStream<Uint8Array>\n): Promise<unknown> {\n return createFromReadableStream(flightStream, {\n callServer,\n findSourceMapURL,\n })\n}\n\nfunction createUnclosingPrefetchStream(\n originalFlightStream: ReadableStream<Uint8Array>\n): ReadableStream<Uint8Array> {\n // When PPR is enabled, prefetch streams may contain references that never\n // resolve, because that's how we encode dynamic data access. In the decoded\n // object returned by the Flight client, these are reified into hanging\n // promises that suspend during render, which is effectively what we want.\n // The UI resolves when it switches to the dynamic data stream\n // (via useDeferredValue(dynamic, static)).\n //\n // However, the Flight implementation currently errors if the server closes\n // the response before all the references are resolved. As a cheat to work\n // around this, we wrap the original stream in a new stream that never closes,\n // and therefore doesn't error.\n const reader = originalFlightStream.getReader()\n return new ReadableStream({\n async pull(controller) {\n while (true) {\n const { done, value } = await reader.read()\n if (!done) {\n // Pass to the target stream and keep consuming the Flight response\n // from the server.\n controller.enqueue(value)\n continue\n }\n // The server stream has closed. Exit, but intentionally do not close\n // the target stream.\n return\n }\n },\n })\n}\n","import { startTransition } from 'react'\nimport { ACTION_SERVER_ACTION } from './components/router-reducer/router-reducer-types'\nimport { dispatchAppRouterAction } from './components/use-action-queue'\n\nexport async function callServer(actionId: string, actionArgs: any[]) {\n return new Promise((resolve, reject) => {\n startTransition(() => {\n dispatchAppRouterAction({\n type: ACTION_SERVER_ACTION,\n actionId,\n actionArgs,\n resolve,\n reject,\n })\n })\n })\n}\n","/**\n * This function should be used to rethrow internal Next.js errors so that they can be handled by the framework.\n * When wrapping an API that uses errors to interrupt control flow, you should use this function before you do any error handling.\n * This function will rethrow the error if it is a Next.js error so it can be handled, otherwise it will do nothing.\n *\n * Read more: [Next.js Docs: `unstable_rethrow`](https://nextjs.org/docs/app/api-reference/functions/unstable_rethrow)\n */\nexport const unstable_rethrow =\n typeof window === 'undefined'\n ? (\n require('./unstable-rethrow.server') as typeof import('./unstable-rethrow.server')\n ).unstable_rethrow\n : (\n require('./unstable-rethrow.browser') as typeof import('./unstable-rethrow.browser')\n ).unstable_rethrow\n","import { fetchServerResponse } from '../fetch-server-response'\nimport { createHrefFromUrl } from '../create-href-from-url'\nimport { applyRouterStatePatchToTree } from '../apply-router-state-patch-to-tree'\nimport { isNavigatingToNewRootLayout } from '../is-navigating-to-new-root-layout'\nimport type {\n ReadonlyReducerState,\n ReducerState,\n HmrRefreshAction,\n Mutable,\n} from '../router-reducer-types'\nimport { handleExternalUrl } from './navigate-reducer'\nimport { handleMutable } from '../handle-mutable'\nimport { applyFlightData } from '../apply-flight-data'\nimport type { CacheNode } from '../../../../shared/lib/app-router-context.shared-runtime'\nimport { createEmptyCacheNode } from '../../app-router'\nimport { handleSegmentMismatch } from '../handle-segment-mismatch'\nimport { hasInterceptionRouteInCurrentTree } from './has-interception-route-in-current-tree'\n\n// A version of refresh reducer that keeps the cache around instead of wiping all of it.\nfunction hmrRefreshReducerImpl(\n state: ReadonlyReducerState,\n action: HmrRefreshAction\n): ReducerState {\n const { origin } = action\n const mutable: Mutable = {}\n const href = state.canonicalUrl\n\n mutable.preserveCustomHistoryState = false\n\n const cache: CacheNode = createEmptyCacheNode()\n // If the current tree was intercepted, the nextUrl should be included in the request.\n // This is to ensure that the refresh request doesn't get intercepted, accidentally triggering the interception route.\n const includeNextUrl = hasInterceptionRouteInCurrentTree(state.tree)\n\n // TODO-APP: verify that `href` is not an external url.\n // Fetch data from the root of the tree.\n const navigatedAt = Date.now()\n cache.lazyData = fetchServerResponse(new URL(href, origin), {\n flightRouterState: [state.tree[0], state.tree[1], state.tree[2], 'refetch'],\n nextUrl: includeNextUrl ? state.nextUrl : null,\n isHmrRefresh: true,\n })\n\n return cache.lazyData.then(\n ({ flightData, canonicalUrl: canonicalUrlOverride }) => {\n // Handle case when navigating to page in `pages` from `app`\n if (typeof flightData === 'string') {\n return handleExternalUrl(\n state,\n mutable,\n flightData,\n state.pushRef.pendingPush\n )\n }\n\n // Remove cache.lazyData as it has been resolved at this point.\n cache.lazyData = null\n\n let currentTree = state.tree\n let currentCache = state.cache\n\n for (const normalizedFlightData of flightData) {\n const { tree: treePatch, isRootRender } = normalizedFlightData\n if (!isRootRender) {\n // TODO-APP: handle this case better\n console.log('REFRESH FAILED')\n return state\n }\n\n const newTree = applyRouterStatePatchToTree(\n // TODO-APP: remove ''\n [''],\n currentTree,\n treePatch,\n state.canonicalUrl\n )\n\n if (newTree === null) {\n return handleSegmentMismatch(state, action, treePatch)\n }\n\n if (isNavigatingToNewRootLayout(currentTree, newTree)) {\n return handleExternalUrl(\n state,\n mutable,\n href,\n state.pushRef.pendingPush\n )\n }\n\n const canonicalUrlOverrideHref = canonicalUrlOverride\n ? createHrefFromUrl(canonicalUrlOverride)\n : undefined\n\n if (canonicalUrlOverride) {\n mutable.canonicalUrl = canonicalUrlOverrideHref\n }\n const applied = applyFlightData(\n navigatedAt,\n currentCache,\n cache,\n normalizedFlightData\n )\n\n if (applied) {\n mutable.cache = cache\n currentCache = cache\n }\n\n mutable.patchedTree = newTree\n mutable.canonicalUrl = href\n\n currentTree = newTree\n }\n return handleMutable(state, mutable)\n },\n () => state\n )\n}\n\nfunction hmrRefreshReducerNoop(\n state: ReadonlyReducerState,\n _action: HmrRefreshAction\n): ReducerState {\n return state\n}\n\nexport const hmrRefreshReducer =\n process.env.NODE_ENV === 'production'\n ? hmrRefreshReducerNoop\n : hmrRefreshReducerImpl\n","import type {\n FlightRouterState,\n FlightDataPath,\n Segment,\n} from '../../../server/app-render/types'\nimport { getNextFlightSegmentPath } from '../../flight-data-helpers'\nimport { matchSegment } from '../match-segments'\n\n// TODO-APP: flightSegmentPath will be empty in case of static response, needs to be handled.\nexport function shouldHardNavigate(\n flightSegmentPath: FlightDataPath,\n flightRouterState: FlightRouterState\n): boolean {\n const [segment, parallelRoutes] = flightRouterState\n // TODO-APP: Check if `as` can be replaced.\n const [currentSegment, parallelRouteKey] = flightSegmentPath as [\n Segment,\n string,\n ]\n\n // Check if current segment matches the existing segment.\n if (!matchSegment(currentSegment, segment)) {\n // If dynamic parameter in tree doesn't match up with segment path a hard navigation is triggered.\n if (Array.isArray(currentSegment)) {\n return true\n }\n\n // If the existing segment did not match soft navigation is triggered.\n return false\n }\n const lastSegment = flightSegmentPath.length <= 2\n\n if (lastSegment) {\n return false\n }\n\n return shouldHardNavigate(\n getNextFlightSegmentPath(flightSegmentPath),\n parallelRoutes[parallelRouteKey]\n )\n}\n","/**\n * Removes the trailing slash for a given route or page path. Preserves the\n * root page. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n * - `/` -> `/`\n */\nexport function removeTrailingSlash(route: string) {\n return route.replace(/\\/$/, '') || '/'\n}\n","import {\n HTTP_ERROR_FALLBACK_ERROR_CODE,\n type HTTPAccessFallbackError,\n} from './http-access-fallback/http-access-fallback'\n\n// TODO: Add `forbidden` docs\n/**\n * @experimental\n * This function allows you to render the [forbidden.js file](https://nextjs.org/docs/app/api-reference/file-conventions/forbidden)\n * within a route segment as well as inject a tag.\n *\n * `forbidden()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * Read more: [Next.js Docs: `forbidden`](https://nextjs.org/docs/app/api-reference/functions/forbidden)\n */\n\nconst DIGEST = `${HTTP_ERROR_FALLBACK_ERROR_CODE};403`\n\nexport function forbidden(): never {\n if (!process.env.__NEXT_EXPERIMENTAL_AUTH_INTERRUPTS) {\n throw new Error(\n `\\`forbidden()\\` is experimental and only allowed to be enabled when \\`experimental.authInterrupts\\` is enabled.`\n )\n }\n\n // eslint-disable-next-line no-throw-literal\n const error = new Error(DIGEST) as HTTPAccessFallbackError\n ;(error as HTTPAccessFallbackError).digest = DIGEST\n throw error\n}\n","import { addPathPrefix } from '../shared/lib/router/utils/add-path-prefix'\nimport { normalizePathTrailingSlash } from './normalize-trailing-slash'\n\nconst basePath = (process.env.__NEXT_ROUTER_BASEPATH as string) || ''\n\nexport function addBasePath(path: string, required?: boolean): string {\n return normalizePathTrailingSlash(\n process.env.__NEXT_MANUAL_CLIENT_BASE_PATH && !required\n ? path\n : addPathPrefix(path, basePath)\n )\n}\n","import { useEffect } from 'react'\nimport { createHrefFromUrl } from './router-reducer/create-href-from-url'\n\nexport function handleHardNavError(error: unknown): boolean {\n if (\n error &&\n typeof window !== 'undefined' &&\n window.next.__pendingUrl &&\n createHrefFromUrl(new URL(window.location.href)) !==\n createHrefFromUrl(window.next.__pendingUrl)\n ) {\n console.error(\n `Error occurred during navigation, falling back to hard navigation`,\n error\n )\n window.location.href = window.next.__pendingUrl.toString()\n return true\n }\n return false\n}\n\nexport function useNavFailureHandler() {\n if (process.env.__NEXT_APP_NAV_FAIL_HANDLING) {\n // this if is only for DCE of the feature flag not conditional\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n const uncaughtExceptionHandler = (\n evt: ErrorEvent | PromiseRejectionEvent\n ) => {\n const error = 'reason' in evt ? evt.reason : evt.error\n // if we have an unhandled exception/rejection during\n // a navigation we fall back to a hard navigation to\n // attempt recovering to a good state\n handleHardNavError(error)\n }\n window.addEventListener('unhandledrejection', uncaughtExceptionHandler)\n window.addEventListener('error', uncaughtExceptionHandler)\n return () => {\n window.removeEventListener('error', uncaughtExceptionHandler)\n window.removeEventListener(\n 'unhandledrejection',\n uncaughtExceptionHandler\n )\n }\n }, [])\n }\n}\n","// This regex will have fast negatives meaning valid identifiers may not pass\n// this test. However this is only used during static generation to provide hints\n// about why a page bailed out of some or all prerendering and we can use bracket notation\n// for example while `ಠ_ಠ` is a valid identifier it's ok to print `searchParams['ಠ_ಠ']`\n// even if this would have been fine too `searchParams.ಠ_ಠ`\nconst isDefinitelyAValidIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/\n\nexport function describeStringPropertyAccess(target: string, prop: string) {\n if (isDefinitelyAValidIdentifier.test(prop)) {\n return `\\`${target}.${prop}\\``\n }\n return `\\`${target}[${JSON.stringify(prop)}]\\``\n}\n\nexport function describeHasCheckingStringProperty(\n target: string,\n prop: string\n) {\n const stringifiedProp = JSON.stringify(prop)\n return `\\`Reflect.has(${target}, ${stringifiedProp})\\`, \\`${stringifiedProp} in ${target}\\`, or similar`\n}\n\nexport const wellKnownProperties = new Set([\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toString',\n 'valueOf',\n 'toLocaleString',\n\n // Promise prototype\n // fallthrough\n 'then',\n 'catch',\n 'finally',\n\n // React Promise extension\n // fallthrough\n 'status',\n\n // React introspection\n 'displayName',\n '_debugInfo',\n\n // Common tested properties\n // fallthrough\n 'toJSON',\n '$$typeof',\n '__esModule',\n])\n","// This import must go first because it needs to patch webpack chunk loading\n// before React patches chunk loading.\nimport './app-webpack'\nimport { appBootstrap } from './app-bootstrap'\n\nconst instrumentationHooks =\n // eslint-disable-next-line @next/internal/typechecked-require -- not a module\n require('../lib/require-instrumentation-client')\n\nappBootstrap(() => {\n const { hydrate } = require('./app-index') as typeof import('./app-index')\n // Include app-router and layout-router in the main chunk\n // eslint-disable-next-line @next/internal/typechecked-require -- Why not relative imports?\n require('next/dist/client/components/app-router')\n // eslint-disable-next-line @next/internal/typechecked-require -- Why not relative imports?\n require('next/dist/client/components/layout-router')\n hydrate(instrumentationHooks)\n})\n","export const HTTPAccessErrorStatus = {\n NOT_FOUND: 404,\n FORBIDDEN: 403,\n UNAUTHORIZED: 401,\n}\n\nconst ALLOWED_CODES = new Set(Object.values(HTTPAccessErrorStatus))\n\nexport const HTTP_ERROR_FALLBACK_ERROR_CODE = 'NEXT_HTTP_ERROR_FALLBACK'\n\nexport type HTTPAccessFallbackError = Error & {\n digest: `${typeof HTTP_ERROR_FALLBACK_ERROR_CODE};${string}`\n}\n\n/**\n * Checks an error to determine if it's an error generated by\n * the HTTP navigation APIs `notFound()`, `forbidden()` or `unauthorized()`.\n *\n * @param error the error that may reference a HTTP access error\n * @returns true if the error is a HTTP access error\n */\nexport function isHTTPAccessFallbackError(\n error: unknown\n): error is HTTPAccessFallbackError {\n if (\n typeof error !== 'object' ||\n error === null ||\n !('digest' in error) ||\n typeof error.digest !== 'string'\n ) {\n return false\n }\n const [prefix, httpStatus] = error.digest.split(';')\n\n return (\n prefix === HTTP_ERROR_FALLBACK_ERROR_CODE &&\n ALLOWED_CODES.has(Number(httpStatus))\n )\n}\n\nexport function getAccessFallbackHTTPStatus(\n error: HTTPAccessFallbackError\n): number {\n const httpStatus = error.digest.split(';')[1]\n return Number(httpStatus)\n}\n\nexport function getAccessFallbackErrorTypeByStatus(\n status: number\n): 'not-found' | 'forbidden' | 'unauthorized' | undefined {\n switch (status) {\n case 401:\n return 'unauthorized'\n case 403:\n return 'forbidden'\n case 404:\n return 'not-found'\n default:\n return\n }\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-server-dom-webpack-client.browser.production.js');\n} else {\n module.exports = require('./cjs/react-server-dom-webpack-client.browser.development.js');\n}\n","import './app-globals'\nimport ReactDOMClient from 'react-dom/client'\nimport React, { use } from 'react'\n// TODO: Explicitly import from client.browser\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { createFromReadableStream as createFromReadableStreamBrowser } from 'react-server-dom-webpack/client'\nimport { HeadManagerContext } from '../shared/lib/head-manager-context.shared-runtime'\nimport { onRecoverableError } from './react-client-callbacks/on-recoverable-error'\nimport {\n onCaughtError,\n onUncaughtError,\n} from './react-client-callbacks/error-boundary-callbacks'\nimport { callServer } from './app-call-server'\nimport { findSourceMapURL } from './app-find-source-map-url'\nimport {\n type AppRouterActionQueue,\n createMutableActionQueue,\n} from './components/app-router-instance'\nimport AppRouter from './components/app-router'\nimport type { InitialRSCPayload } from '../server/app-render/types'\nimport { createInitialRouterState } from './components/router-reducer/create-initial-router-state'\nimport { MissingSlotContext } from '../shared/lib/app-router-context.shared-runtime'\nimport { setAppBuildId } from './app-build-id'\nimport { isBot } from '../shared/lib/router/utils/is-bot'\n\n/// <reference types=\"react-dom/experimental\" />\n\nconst createFromReadableStream =\n createFromReadableStreamBrowser as (typeof import('react-server-dom-webpack/client.browser'))['createFromReadableStream']\n\nconst appElement: HTMLElement | Document = document\n\nconst encoder = new TextEncoder()\n\nlet initialServerDataBuffer: (string | Uint8Array)[] | undefined = undefined\nlet initialServerDataWriter: ReadableStreamDefaultController | undefined =\n undefined\nlet initialServerDataLoaded = false\nlet initialServerDataFlushed = false\n\nlet initialFormStateData: null | any = null\n\ntype FlightSegment =\n | [isBootStrap: 0]\n | [isNotBootstrap: 1, responsePartial: string]\n | [isFormState: 2, formState: any]\n | [isBinary: 3, responseBase64Partial: string]\n\ntype NextFlight = Omit<Array<FlightSegment>, 'push'> & {\n push: (seg: FlightSegment) => void\n}\n\ndeclare global {\n // If you're working in a browser environment\n interface Window {\n __next_f: NextFlight\n }\n}\n\nfunction nextServerDataCallback(seg: FlightSegment): void {\n if (seg[0] === 0) {\n initialServerDataBuffer = []\n } else if (seg[0] === 1) {\n if (!initialServerDataBuffer)\n throw new Error('Unexpected server data: missing bootstrap script.')\n\n if (initialServerDataWriter) {\n initialServerDataWriter.enqueue(encoder.encode(seg[1]))\n } else {\n initialServerDataBuffer.push(seg[1])\n }\n } else if (seg[0] === 2) {\n initialFormStateData = seg[1]\n } else if (seg[0] === 3) {\n if (!initialServerDataBuffer)\n throw new Error('Unexpected server data: missing bootstrap script.')\n\n // Decode the base64 string back to binary data.\n const binaryString = atob(seg[1])\n const decodedChunk = new Uint8Array(binaryString.length)\n for (var i = 0; i < binaryString.length; i++) {\n decodedChunk[i] = binaryString.charCodeAt(i)\n }\n\n if (initialServerDataWriter) {\n initialServerDataWriter.enqueue(decodedChunk)\n } else {\n initialServerDataBuffer.push(decodedChunk)\n }\n }\n}\n\nfunction isStreamErrorOrUnfinished(ctr: ReadableStreamDefaultController) {\n // If `desiredSize` is null, it means the stream is closed or errored. If it is lower than 0, the stream is still unfinished.\n return ctr.desiredSize === null || ctr.desiredSize < 0\n}\n\n// There might be race conditions between `nextServerDataRegisterWriter` and\n// `DOMContentLoaded`. The former will be called when React starts to hydrate\n// the root, the latter will be called when the DOM is fully loaded.\n// For streaming, the former is called first due to partial hydration.\n// For non-streaming, the latter can be called first.\n// Hence, we use two variables `initialServerDataLoaded` and\n// `initialServerDataFlushed` to make sure the writer will be closed and\n// `initialServerDataBuffer` will be cleared in the right time.\nfunction nextServerDataRegisterWriter(ctr: ReadableStreamDefaultController) {\n if (initialServerDataBuffer) {\n initialServerDataBuffer.forEach((val) => {\n ctr.enqueue(typeof val === 'string' ? encoder.encode(val) : val)\n })\n if (initialServerDataLoaded && !initialServerDataFlushed) {\n if (isStreamErrorOrUnfinished(ctr)) {\n ctr.error(\n new Error(\n 'The connection to the page was unexpectedly closed, possibly due to the stop button being clicked, loss of Wi-Fi, or an unstable internet connection.'\n )\n )\n } else {\n ctr.close()\n }\n initialServerDataFlushed = true\n initialServerDataBuffer = undefined\n }\n }\n\n initialServerDataWriter = ctr\n}\n\n// When `DOMContentLoaded`, we can close all pending writers to finish hydration.\nconst DOMContentLoaded = function () {\n if (initialServerDataWriter && !initialServerDataFlushed) {\n initialServerDataWriter.close()\n initialServerDataFlushed = true\n initialServerDataBuffer = undefined\n }\n initialServerDataLoaded = true\n}\n\n// It's possible that the DOM is already loaded.\nif (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', DOMContentLoaded, false)\n} else {\n // Delayed in marco task to ensure it's executed later than hydration\n setTimeout(DOMContentLoaded)\n}\n\nconst nextServerDataLoadingGlobal = (self.__next_f = self.__next_f || [])\nnextServerDataLoadingGlobal.forEach(nextServerDataCallback)\nnextServerDataLoadingGlobal.push = nextServerDataCallback\n\nconst readable = new ReadableStream({\n start(controller) {\n nextServerDataRegisterWriter(controller)\n },\n})\n\nconst initialServerResponse = createFromReadableStream<InitialRSCPayload>(\n readable,\n { callServer, findSourceMapURL }\n)\n\nfunction ServerRoot({\n pendingActionQueue,\n}: {\n pendingActionQueue: Promise<AppRouterActionQueue>\n}): React.ReactNode {\n const initialRSCPayload = use(initialServerResponse)\n const actionQueue = use<AppRouterActionQueue>(pendingActionQueue)\n\n const router = (\n <AppRouter\n gracefullyDegrade={isBot(window.navigator.userAgent)}\n actionQueue={actionQueue}\n globalErrorState={initialRSCPayload.G}\n assetPrefix={initialRSCPayload.p}\n />\n )\n\n if (process.env.NODE_ENV === 'development' && initialRSCPayload.m) {\n // We provide missing slot information in a context provider only during development\n // as we log some additional information about the missing slots in the console.\n return (\n <MissingSlotContext value={initialRSCPayload.m}>\n {router}\n </MissingSlotContext>\n )\n }\n\n return router\n}\n\nconst StrictModeIfEnabled = process.env.__NEXT_STRICT_MODE_APP\n ? React.StrictMode\n : React.Fragment\n\nfunction Root({ children }: React.PropsWithChildren<{}>) {\n if (process.env.__NEXT_TEST_MODE) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n window.__NEXT_HYDRATED = true\n window.__NEXT_HYDRATED_AT = performance.now()\n window.__NEXT_HYDRATED_CB?.()\n }, [])\n }\n\n return children\n}\n\nfunction onDefaultTransitionIndicator() {\n // TODO: Compose default with user-configureable (e.g. nprogress)\n // TODO: Use React's default once we figure out hanging indicators: https://codesandbox.io/p/sandbox/charming-moon-hktkp6?file=%2Fsrc%2Findex.js%3A106%2C30\n return () => {}\n}\n\nconst reactRootOptions: ReactDOMClient.RootOptions = {\n onDefaultTransitionIndicator: onDefaultTransitionIndicator,\n onRecoverableError,\n onCaughtError,\n onUncaughtError,\n}\n\nexport type ClientInstrumentationHooks = {\n onRouterTransitionStart?: (\n url: string,\n navigationType: 'push' | 'replace' | 'traverse'\n ) => void\n}\n\nexport function hydrate(\n instrumentationHooks: ClientInstrumentationHooks | null\n) {\n // React overrides `.then` and doesn't return a new promise chain,\n // so we wrap the action queue in a promise to ensure that its value\n // is defined when the promise resolves.\n // https://github.com/facebook/react/blob/163365a07872337e04826c4f501565d43dbd2fd4/packages/react-client/src/ReactFlightClient.js#L189-L190\n const pendingActionQueue: Promise<AppRouterActionQueue> = new Promise(\n (resolve, reject) => {\n initialServerResponse.then(\n (initialRSCPayload) => {\n // setAppBuildId should be called only once, during JS initialization\n // and before any components have hydrated.\n setAppBuildId(initialRSCPayload.b)\n\n const initialTimestamp = Date.now()\n\n resolve(\n createMutableActionQueue(\n createInitialRouterState({\n navigatedAt: initialTimestamp,\n initialFlightData: initialRSCPayload.f,\n initialCanonicalUrlParts: initialRSCPayload.c,\n initialParallelRoutes: new Map(),\n location: window.location,\n couldBeIntercepted: initialRSCPayload.i,\n postponed: initialRSCPayload.s,\n prerendered: initialRSCPayload.S,\n }),\n instrumentationHooks\n )\n )\n },\n (err: Error) => reject(err)\n )\n }\n )\n\n const reactEl = (\n <StrictModeIfEnabled>\n <HeadManagerContext.Provider value={{ appDir: true }}>\n <Root>\n <ServerRoot pendingActionQueue={pendingActionQueue} />\n </Root>\n </HeadManagerContext.Provider>\n </StrictModeIfEnabled>\n )\n\n if (document.documentElement.id === '__next_error__') {\n let element = reactEl\n // Server rendering failed, fall back to client-side rendering\n if (process.env.NODE_ENV !== 'production') {\n const { createRootLevelDevOverlayElement } =\n require('../next-devtools/userspace/app/client-entry') as typeof import('../next-devtools/userspace/app/client-entry')\n\n // Note this won't cause hydration mismatch because we are doing CSR w/o hydration\n element = createRootLevelDevOverlayElement(element)\n }\n\n ReactDOMClient.createRoot(appElement, reactRootOptions).render(element)\n } else {\n React.startTransition(() => {\n ReactDOMClient.hydrateRoot(appElement, reactEl, {\n ...reactRootOptions,\n formState: initialFormStateData,\n })\n })\n }\n\n // TODO-APP: Remove this logic when Float has GC built-in in development.\n if (process.env.NODE_ENV !== 'production') {\n const { linkGc } =\n require('./app-link-gc') as typeof import('./app-link-gc')\n linkGc()\n }\n}\n","// This gets assigned as a side-effect during app initialization. Because it\n// represents the build used to create the JS bundle, it should never change\n// after being set, so we store it in a global variable.\n//\n// When performing RSC requests, if the incoming data has a different build ID,\n// we perform an MPA navigation/refresh to load the updated build and ensure\n// that the client and server in sync.\n\n// Starts as an empty string. In practice, because setAppBuildId is called\n// during initialization before hydration starts, this will always get\n// reassigned to the actual build ID before it's ever needed by a navigation.\n// If for some reasons it didn't, due to a bug or race condition, then on\n// navigation the build comparision would fail and trigger an MPA navigation.\nlet globalBuildId: string = ''\n\nexport function setAppBuildId(buildId: string) {\n globalBuildId = buildId\n}\n\nexport function getAppBuildId(): string {\n return globalBuildId\n}\n","/**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\n\"use strict\";\nvar React = require(\"next/dist/compiled/react\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction noop() {}\nvar Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(formatProdErrorMessage(522));\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\nfunction createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nvar ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nfunction getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n}\nexports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\nexports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(formatProdErrorMessage(299));\n return createPortal$1(children, container, null, key);\n};\nexports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f();\n }\n};\nexports.preconnect = function (href, options) {\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n};\nexports.prefetchDNS = function (href) {\n \"string\" === typeof href && Internals.d.D(href);\n};\nexports.preinit = function (href, options) {\n if (\"string\" === typeof href && options && \"string\" === typeof options.as) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence ? options.precedence : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n};\nexports.preinitModule = function (href, options) {\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as) {\n var crossOrigin = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n );\n Internals.d.M(href, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n } else null == options && Internals.d.M(href);\n};\nexports.preload = function (href, options) {\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n Internals.d.L(href, as, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes ? options.imageSizes : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n};\nexports.preloadModule = function (href, options) {\n if (\"string\" === typeof href)\n if (options) {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0\n });\n } else Internals.d.m(href);\n};\nexports.requestFormReset = function (form) {\n Internals.d.r(form);\n};\nexports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n};\nexports.useFormState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useFormState(action, initialState, permalink);\n};\nexports.useFormStatus = function () {\n return ReactSharedInternals.H.useHostTransitionStatus();\n};\nexports.version = \"19.2.0-canary-97cdd5d3-20250710\";\n","import { parsePath } from './parse-path'\n\n/**\n * Checks if a given path starts with a given prefix. It ensures it matches\n * exactly without containing extra chars. e.g. prefix /docs should replace\n * for /docs, /docs/, /docs/a but not /docsss\n * @param path The path to check.\n * @param prefix The prefix to check against.\n */\nexport function pathHasPrefix(path: string, prefix: string) {\n if (typeof path !== 'string') {\n return false\n }\n\n const { pathname } = parsePath(path)\n return pathname === prefix || pathname.startsWith(prefix + '/')\n}\n","import {\n type AppRouterState,\n type ReducerActions,\n type ReducerState,\n ACTION_REFRESH,\n ACTION_SERVER_ACTION,\n ACTION_NAVIGATE,\n ACTION_RESTORE,\n type NavigateAction,\n ACTION_HMR_REFRESH,\n PrefetchKind,\n ACTION_PREFETCH,\n} from './router-reducer/router-reducer-types'\nimport { reducer } from './router-reducer/router-reducer'\nimport { startTransition } from 'react'\nimport { isThenable } from '../../shared/lib/is-thenable'\nimport { prefetch as prefetchWithSegmentCache } from './segment-cache'\nimport { dispatchAppRouterAction } from './use-action-queue'\nimport { addBasePath } from '../add-base-path'\nimport { createPrefetchURL, isExternalURL } from './app-router'\nimport { prefetchReducer } from './router-reducer/reducers/prefetch-reducer'\nimport type {\n AppRouterInstance,\n NavigateOptions,\n PrefetchOptions,\n} from '../../shared/lib/app-router-context.shared-runtime'\nimport { setLinkForCurrentNavigation, type LinkInstance } from './links'\nimport type { FlightRouterState } from '../../server/app-render/types'\nimport type { ClientInstrumentationHooks } from '../app-index'\nimport type { GlobalErrorComponent } from './builtin/global-error'\n\nexport type DispatchStatePromise = React.Dispatch<ReducerState>\n\nexport type AppRouterActionQueue = {\n state: AppRouterState\n dispatch: (payload: ReducerActions, setState: DispatchStatePromise) => void\n action: (state: AppRouterState, action: ReducerActions) => ReducerState\n\n onRouterTransitionStart:\n | ((url: string, type: 'push' | 'replace' | 'traverse') => void)\n | null\n\n pending: ActionQueueNode | null\n needsRefresh?: boolean\n last: ActionQueueNode | null\n}\n\nexport type GlobalErrorState = [\n GlobalError: GlobalErrorComponent,\n styles: React.ReactNode,\n]\n\nexport type ActionQueueNode = {\n payload: ReducerActions\n next: ActionQueueNode | null\n resolve: (value: ReducerState) => void\n reject: (err: Error) => void\n discarded?: boolean\n}\n\nfunction runRemainingActions(\n actionQueue: AppRouterActionQueue,\n setState: DispatchStatePromise\n) {\n if (actionQueue.pending !== null) {\n actionQueue.pending = actionQueue.pending.next\n if (actionQueue.pending !== null) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n runAction({\n actionQueue,\n action: actionQueue.pending,\n setState,\n })\n } else {\n // No more actions are pending, check if a refresh is needed\n if (actionQueue.needsRefresh) {\n actionQueue.needsRefresh = false\n actionQueue.dispatch(\n {\n type: ACTION_REFRESH,\n origin: window.location.origin,\n },\n setState\n )\n }\n }\n }\n}\n\nasync function runAction({\n actionQueue,\n action,\n setState,\n}: {\n actionQueue: AppRouterActionQueue\n action: ActionQueueNode\n setState: DispatchStatePromise\n}) {\n const prevState = actionQueue.state\n\n actionQueue.pending = action\n\n const payload = action.payload\n const actionResult = actionQueue.action(prevState, payload)\n\n function handleResult(nextState: AppRouterState) {\n // if we discarded this action, the state should also be discarded\n if (action.discarded) {\n return\n }\n\n actionQueue.state = nextState\n\n runRemainingActions(actionQueue, setState)\n action.resolve(nextState)\n }\n\n // if the action is a promise, set up a callback to resolve it\n if (isThenable(actionResult)) {\n actionResult.then(handleResult, (err) => {\n runRemainingActions(actionQueue, setState)\n action.reject(err)\n })\n } else {\n handleResult(actionResult)\n }\n}\n\nfunction dispatchAction(\n actionQueue: AppRouterActionQueue,\n payload: ReducerActions,\n setState: DispatchStatePromise\n) {\n let resolvers: {\n resolve: (value: ReducerState) => void\n reject: (reason: any) => void\n } = { resolve: setState, reject: () => {} }\n\n // most of the action types are async with the exception of restore\n // it's important that restore is handled quickly since it's fired on the popstate event\n // and we don't want to add any delay on a back/forward nav\n // this only creates a promise for the async actions\n if (payload.type !== ACTION_RESTORE) {\n // Create the promise and assign the resolvers to the object.\n const deferredPromise = new Promise<AppRouterState>((resolve, reject) => {\n resolvers = { resolve, reject }\n })\n\n startTransition(() => {\n // we immediately notify React of the pending promise -- the resolver is attached to the action node\n // and will be called when the associated action promise resolves\n setState(deferredPromise)\n })\n }\n\n const newAction: ActionQueueNode = {\n payload,\n next: null,\n resolve: resolvers.resolve,\n reject: resolvers.reject,\n }\n\n // Check if the queue is empty\n if (actionQueue.pending === null) {\n // The queue is empty, so add the action and start it immediately\n // Mark this action as the last in the queue\n actionQueue.last = newAction\n\n runAction({\n actionQueue,\n action: newAction,\n setState,\n })\n } else if (\n payload.type === ACTION_NAVIGATE ||\n payload.type === ACTION_RESTORE\n ) {\n // Navigations (including back/forward) take priority over any pending actions.\n // Mark the pending action as discarded (so the state is never applied) and start the navigation action immediately.\n actionQueue.pending.discarded = true\n\n // The rest of the current queue should still execute after this navigation.\n // (Note that it can't contain any earlier navigations, because we always put those into `actionQueue.pending` by calling `runAction`)\n newAction.next = actionQueue.pending.next\n\n // if the pending action was a server action, mark the queue as needing a refresh once events are processed\n if (actionQueue.pending.payload.type === ACTION_SERVER_ACTION) {\n actionQueue.needsRefresh = true\n }\n\n runAction({\n actionQueue,\n action: newAction,\n setState,\n })\n } else {\n // The queue is not empty, so add the action to the end of the queue\n // It will be started by runRemainingActions after the previous action finishes\n if (actionQueue.last !== null) {\n actionQueue.last.next = newAction\n }\n actionQueue.last = newAction\n }\n}\n\nlet globalActionQueue: AppRouterActionQueue | null = null\n\nexport function createMutableActionQueue(\n initialState: AppRouterState,\n instrumentationHooks: ClientInstrumentationHooks | null\n): AppRouterActionQueue {\n const actionQueue: AppRouterActionQueue = {\n state: initialState,\n dispatch: (payload: ReducerActions, setState: DispatchStatePromise) =>\n dispatchAction(actionQueue, payload, setState),\n action: async (state: AppRouterState, action: ReducerActions) => {\n const result = reducer(state, action)\n return result\n },\n pending: null,\n last: null,\n onRouterTransitionStart:\n instrumentationHooks !== null &&\n typeof instrumentationHooks.onRouterTransitionStart === 'function'\n ? // This profiling hook will be called at the start of every navigation.\n instrumentationHooks.onRouterTransitionStart\n : null,\n }\n\n if (typeof window !== 'undefined') {\n // The action queue is lazily created on hydration, but after that point\n // it doesn't change. So we can store it in a global rather than pass\n // it around everywhere via props/context.\n if (globalActionQueue !== null) {\n throw new Error(\n 'Internal Next.js Error: createMutableActionQueue was called more ' +\n 'than once'\n )\n }\n globalActionQueue = actionQueue\n }\n\n return actionQueue\n}\n\nexport function getCurrentAppRouterState(): AppRouterState | null {\n return globalActionQueue !== null ? globalActionQueue.state : null\n}\n\nfunction getAppRouterActionQueue(): AppRouterActionQueue {\n if (globalActionQueue === null) {\n throw new Error(\n 'Internal Next.js error: Router action dispatched before initialization.'\n )\n }\n return globalActionQueue\n}\n\nfunction getProfilingHookForOnNavigationStart() {\n if (globalActionQueue !== null) {\n return globalActionQueue.onRouterTransitionStart\n }\n return null\n}\n\nexport function dispatchNavigateAction(\n href: string,\n navigateType: NavigateAction['navigateType'],\n shouldScroll: boolean,\n linkInstanceRef: LinkInstance | null\n): void {\n // TODO: This stuff could just go into the reducer. Leaving as-is for now\n // since we're about to rewrite all the router reducer stuff anyway.\n const url = new URL(addBasePath(href), location.href)\n if (process.env.__NEXT_APP_NAV_FAIL_HANDLING) {\n window.next.__pendingUrl = url\n }\n\n setLinkForCurrentNavigation(linkInstanceRef)\n\n const onRouterTransitionStart = getProfilingHookForOnNavigationStart()\n if (onRouterTransitionStart !== null) {\n onRouterTransitionStart(href, navigateType)\n }\n\n dispatchAppRouterAction({\n type: ACTION_NAVIGATE,\n url,\n isExternalUrl: isExternalURL(url),\n locationSearch: location.search,\n shouldScroll,\n navigateType,\n allowAliasing: true,\n })\n}\n\nexport function dispatchTraverseAction(\n href: string,\n tree: FlightRouterState | undefined\n) {\n const onRouterTransitionStart = getProfilingHookForOnNavigationStart()\n if (onRouterTransitionStart !== null) {\n onRouterTransitionStart(href, 'traverse')\n }\n dispatchAppRouterAction({\n type: ACTION_RESTORE,\n url: new URL(href),\n tree,\n })\n}\n\n/**\n * The app router that is exposed through `useRouter`. These are public API\n * methods. Internal Next.js code should call the lower level methods directly\n * (although there's lots of existing code that doesn't do that).\n */\nexport const publicAppRouterInstance: AppRouterInstance = {\n back: () => window.history.back(),\n forward: () => window.history.forward(),\n prefetch: process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? // Unlike the old implementation, the Segment Cache doesn't store its\n // data in the router reducer state; it writes into a global mutable\n // cache. So we don't need to dispatch an action.\n (href: string, options?: PrefetchOptions) => {\n const actionQueue = getAppRouterActionQueue()\n prefetchWithSegmentCache(\n href,\n actionQueue.state.nextUrl,\n actionQueue.state.tree,\n options?.kind === PrefetchKind.FULL,\n options?.onInvalidate ?? null\n )\n }\n : (href: string, options?: PrefetchOptions) => {\n // Use the old prefetch implementation.\n const actionQueue = getAppRouterActionQueue()\n const url = createPrefetchURL(href)\n if (url !== null) {\n // The prefetch reducer doesn't actually update any state or\n // trigger a rerender. It just writes to a mutable cache. So we\n // shouldn't bother calling setState/dispatch; we can just re-run\n // the reducer directly using the current state.\n // TODO: Refactor this away from a \"reducer\" so it's\n // less confusing.\n prefetchReducer(actionQueue.state, {\n type: ACTION_PREFETCH,\n url,\n kind: options?.kind ?? PrefetchKind.FULL,\n })\n }\n },\n replace: (href: string, options?: NavigateOptions) => {\n startTransition(() => {\n dispatchNavigateAction(href, 'replace', options?.scroll ?? true, null)\n })\n },\n push: (href: string, options?: NavigateOptions) => {\n startTransition(() => {\n dispatchNavigateAction(href, 'push', options?.scroll ?? true, null)\n })\n },\n refresh: () => {\n startTransition(() => {\n dispatchAppRouterAction({\n type: ACTION_REFRESH,\n origin: window.location.origin,\n })\n })\n },\n hmrRefresh: () => {\n if (process.env.NODE_ENV !== 'development') {\n throw new Error(\n 'hmrRefresh can only be used in development mode. Please use refresh instead.'\n )\n } else {\n startTransition(() => {\n dispatchAppRouterAction({\n type: ACTION_HMR_REFRESH,\n origin: window.location.origin,\n })\n })\n }\n },\n}\n\n// Exists for debugging purposes. Don't use in application code.\nif (typeof window !== 'undefined' && window.next) {\n window.next.router = publicAppRouterInstance\n}\n","import type { Segment } from '../../server/app-render/types'\n\nexport function isGroupSegment(segment: string) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')')\n}\n\nexport function isParallelRouteSegment(segment: string) {\n return segment.startsWith('@') && segment !== '@children'\n}\n\nexport function addSearchParamsIfPageSegment(\n segment: Segment,\n searchParams: Record<string, string | string[] | undefined>\n) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY)\n\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams)\n return stringifiedQuery !== '{}'\n ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery\n : PAGE_SEGMENT_KEY\n }\n\n return segment\n}\n\nexport const PAGE_SEGMENT_KEY = '__PAGE__'\nexport const DEFAULT_SEGMENT_KEY = '__DEFAULT__'\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use client'\n\nimport { HandleISRError } from '../handle-isr-error'\n\nconst styles = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily:\n 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n text: {\n fontSize: '14px',\n fontWeight: 400,\n lineHeight: '28px',\n margin: '0 8px',\n },\n} as const\n\nexport type GlobalErrorComponent = React.ComponentType<{\n error: any\n}>\nfunction DefaultGlobalError({ error }: { error: any }) {\n const digest: string | undefined = error?.digest\n return (\n <html id=\"__next_error__\">\n <head></head>\n <body>\n <HandleISRError error={error} />\n <div style={styles.error}>\n <div>\n <h2 style={styles.text}>\n Application error: a {digest ? 'server' : 'client'}-side exception\n has occurred while loading {window.location.hostname} (see the{' '}\n {digest ? 'server logs' : 'browser console'} for more\n information).\n </h2>\n {digest ? <p style={styles.text}>{`Digest: ${digest}`}</p> : null}\n </div>\n </div>\n </body>\n </html>\n )\n}\n\n// Exported so that the import signature in the loaders can be identical to user\n// supplied custom global error signatures.\nexport default DefaultGlobalError\n","export enum RedirectStatusCode {\n SeeOther = 303,\n TemporaryRedirect = 307,\n PermanentRedirect = 308,\n}\n","export interface ServerReferenceInfo {\n type: 'server-action' | 'use-cache'\n usedArgs: [boolean, boolean, boolean, boolean, boolean, boolean]\n hasRestArgs: boolean\n}\n\n/**\n * Extracts info about the server reference for the given server reference ID by\n * parsing the first byte of the hex-encoded ID.\n *\n * ```\n * Bit positions: [7] [6] [5] [4] [3] [2] [1] [0]\n * Bits: typeBit argMask restArgs\n * ```\n *\n * If the `typeBit` is `1` the server reference represents a `\"use cache\"`\n * function, otherwise a server action.\n *\n * The `argMask` encodes whether the function uses the argument at the\n * respective position.\n *\n * The `restArgs` bit indicates whether the function uses a rest parameter. It's\n * also set to 1 if the function has more than 6 args.\n *\n * @param id hex-encoded server reference ID\n */\nexport function extractInfoFromServerReferenceId(\n id: string\n): ServerReferenceInfo {\n const infoByte = parseInt(id.slice(0, 2), 16)\n const typeBit = (infoByte >> 7) & 0x1\n const argMask = (infoByte >> 1) & 0x3f\n const restArgs = infoByte & 0x1\n const usedArgs = Array(6)\n\n for (let index = 0; index < 6; index++) {\n const bitPosition = 5 - index\n const bit = (argMask >> bitPosition) & 0x1\n usedArgs[index] = bit === 1\n }\n\n return {\n type: typeBit === 1 ? 'use-cache' : 'server-action',\n usedArgs: usedArgs as [\n boolean,\n boolean,\n boolean,\n boolean,\n boolean,\n boolean,\n ],\n hasRestArgs: restArgs === 1,\n }\n}\n\n/**\n * Creates a sparse array containing only the used arguments based on the\n * provided action info.\n */\nexport function omitUnusedArgs(\n args: unknown[],\n info: ServerReferenceInfo\n): unknown[] {\n const filteredArgs = new Array(args.length)\n\n for (let index = 0; index < args.length; index++) {\n if (\n (index < 6 && info.usedArgs[index]) ||\n // This assumes that the server reference info byte has the restArgs bit\n // set to 1 if there are more than 6 args.\n (index >= 6 && info.hasRestArgs)\n ) {\n filteredArgs[index] = args[index]\n }\n }\n\n return filteredArgs\n}\n","export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","(function(){var e={229:function(e){var t=e.exports={};var r;var n;function defaultSetTimout(){throw new Error(\"setTimeout has not been defined\")}function defaultClearTimeout(){throw new Error(\"clearTimeout has not been defined\")}(function(){try{if(typeof setTimeout===\"function\"){r=setTimeout}else{r=defaultSetTimout}}catch(e){r=defaultSetTimout}try{if(typeof clearTimeout===\"function\"){n=clearTimeout}else{n=defaultClearTimeout}}catch(e){n=defaultClearTimeout}})();function runTimeout(e){if(r===setTimeout){return setTimeout(e,0)}if((r===defaultSetTimout||!r)&&setTimeout){r=setTimeout;return setTimeout(e,0)}try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}function runClearTimeout(e){if(n===clearTimeout){return clearTimeout(e)}if((n===defaultClearTimeout||!n)&&clearTimeout){n=clearTimeout;return clearTimeout(e)}try{return n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}var i=[];var o=false;var u;var a=-1;function cleanUpNextTick(){if(!o||!u){return}o=false;if(u.length){i=u.concat(i)}else{a=-1}if(i.length){drainQueue()}}function drainQueue(){if(o){return}var e=runTimeout(cleanUpNextTick);o=true;var t=i.length;while(t){u=i;i=[];while(++a<t){if(u){u[a].run()}}a=-1;t=i.length}u=null;o=false;runClearTimeout(e)}t.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1){for(var r=1;r<arguments.length;r++){t[r-1]=arguments[r]}}i.push(new Item(e,t));if(i.length===1&&!o){runTimeout(drainQueue)}};function Item(e,t){this.fun=e;this.array=t}Item.prototype.run=function(){this.fun.apply(null,this.array)};t.title=\"browser\";t.browser=true;t.env={};t.argv=[];t.version=\"\";t.versions={};function noop(){}t.on=noop;t.addListener=noop;t.once=noop;t.off=noop;t.removeListener=noop;t.removeAllListeners=noop;t.emit=noop;t.prependListener=noop;t.prependOnceListener=noop;t.listeners=function(e){return[]};t.binding=function(e){throw new Error(\"process.binding is not supported\")};t.cwd=function(){return\"/\"};t.chdir=function(e){throw new Error(\"process.chdir is not supported\")};t.umask=function(){return 0}}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var i=t[r]={exports:{}};var o=true;try{e[r](i,i.exports,__nccwpck_require__);o=false}finally{if(o)delete t[r]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var r=__nccwpck_require__(229);module.exports=r})();","import type {\n CacheNodeSeedData,\n FlightData,\n FlightDataPath,\n FlightRouterState,\n FlightSegmentPath,\n Segment,\n} from '../server/app-render/types'\nimport type { HeadData } from '../shared/lib/app-router-context.shared-runtime'\nimport { PAGE_SEGMENT_KEY } from '../shared/lib/segment'\n\nexport type NormalizedFlightData = {\n /**\n * The full `FlightSegmentPath` inclusive of the final `Segment`\n */\n segmentPath: FlightSegmentPath\n /**\n * The `FlightSegmentPath` exclusive of the final `Segment`\n */\n pathToSegment: FlightSegmentPath\n segment: Segment\n tree: FlightRouterState\n seedData: CacheNodeSeedData | null\n head: HeadData\n isHeadPartial: boolean\n isRootRender: boolean\n}\n\n// TODO: We should only have to export `normalizeFlightData`, however because the initial flight data\n// that gets passed to `createInitialRouterState` doesn't conform to the `FlightDataPath` type (it's missing the root segment)\n// we're currently exporting it so we can use it directly. This should be fixed as part of the unification of\n// the different ways we express `FlightSegmentPath`.\nexport function getFlightDataPartsFromPath(\n flightDataPath: FlightDataPath\n): NormalizedFlightData {\n // Pick the last 4 items from the `FlightDataPath` to get the [tree, seedData, viewport, isHeadPartial].\n const flightDataPathLength = 4\n // tree, seedData, and head are *always* the last three items in the `FlightDataPath`.\n const [tree, seedData, head, isHeadPartial] =\n flightDataPath.slice(-flightDataPathLength)\n // The `FlightSegmentPath` is everything except the last three items. For a root render, it won't be present.\n const segmentPath = flightDataPath.slice(0, -flightDataPathLength)\n\n return {\n // TODO: Unify these two segment path helpers. We are inconsistently pushing an empty segment (\"\")\n // to the start of the segment path in some places which makes it hard to use solely the segment path.\n // Look for \"// TODO-APP: remove ''\" in the codebase.\n pathToSegment: segmentPath.slice(0, -1),\n segmentPath,\n // if the `FlightDataPath` corresponds with the root, there'll be no segment path,\n // in which case we default to ''.\n segment: segmentPath[segmentPath.length - 1] ?? '',\n tree,\n seedData,\n head,\n isHeadPartial,\n isRootRender: flightDataPath.length === flightDataPathLength,\n }\n}\n\nexport function getNextFlightSegmentPath(\n flightSegmentPath: FlightSegmentPath\n): FlightSegmentPath {\n // Since `FlightSegmentPath` is a repeated tuple of `Segment` and `ParallelRouteKey`, we slice off two items\n // to get the next segment path.\n return flightSegmentPath.slice(2)\n}\n\nexport function normalizeFlightData(\n flightData: FlightData\n): NormalizedFlightData[] | string {\n // FlightData can be a string when the server didn't respond with a proper flight response,\n // or when a redirect happens, to signal to the client that it needs to perform an MPA navigation.\n if (typeof flightData === 'string') {\n return flightData\n }\n\n return flightData.map(getFlightDataPartsFromPath)\n}\n\n/**\n * This function is used to prepare the flight router state for the request.\n * It removes markers that are not needed by the server, and are purely used\n * for stashing state on the client.\n * @param flightRouterState - The flight router state to prepare.\n * @param isHmrRefresh - Whether this is an HMR refresh request.\n * @returns The prepared flight router state.\n */\nexport function prepareFlightRouterStateForRequest(\n flightRouterState: FlightRouterState,\n isHmrRefresh?: boolean\n): string {\n // HMR requests need the complete, unmodified state for proper functionality\n if (isHmrRefresh) {\n return encodeURIComponent(JSON.stringify(flightRouterState))\n }\n\n return encodeURIComponent(\n JSON.stringify(stripClientOnlyDataFromFlightRouterState(flightRouterState))\n )\n}\n\n/**\n * Recursively strips client-only data from FlightRouterState while preserving\n * server-needed information for proper rendering decisions.\n */\nfunction stripClientOnlyDataFromFlightRouterState(\n flightRouterState: FlightRouterState\n): FlightRouterState {\n const [\n segment,\n parallelRoutes,\n _url, // Intentionally unused - URLs are client-only\n refreshMarker,\n isRootLayout,\n hasLoadingBoundary,\n ] = flightRouterState\n\n // __PAGE__ segments are always fetched from the server, so there's\n // no need to send them up\n const cleanedSegment = stripSearchParamsFromPageSegment(segment)\n\n // Recursively process parallel routes\n const cleanedParallelRoutes: { [key: string]: FlightRouterState } = {}\n for (const [key, childState] of Object.entries(parallelRoutes)) {\n cleanedParallelRoutes[key] =\n stripClientOnlyDataFromFlightRouterState(childState)\n }\n\n const result: FlightRouterState = [\n cleanedSegment,\n cleanedParallelRoutes,\n null, // URLs omitted - server reconstructs paths from segments\n shouldPreserveRefreshMarker(refreshMarker) ? refreshMarker : null,\n ]\n\n // Append optional fields if present\n if (isRootLayout !== undefined) {\n result[4] = isRootLayout\n }\n if (hasLoadingBoundary !== undefined) {\n result[5] = hasLoadingBoundary\n }\n\n return result\n}\n\n/**\n * Strips search parameters from __PAGE__ segments to prevent sensitive\n * client-side data from being sent to the server.\n */\nfunction stripSearchParamsFromPageSegment(segment: Segment): Segment {\n if (\n typeof segment === 'string' &&\n segment.startsWith(PAGE_SEGMENT_KEY + '?')\n ) {\n return PAGE_SEGMENT_KEY\n }\n return segment\n}\n\n/**\n * Determines whether the refresh marker should be sent to the server\n * Client-only markers like 'refresh' are stripped, while server-needed markers\n * like 'refetch' and 'inside-shared-layout' are preserved.\n */\nfunction shouldPreserveRefreshMarker(\n refreshMarker: FlightRouterState[3]\n): boolean {\n return Boolean(refreshMarker && refreshMarker !== 'refresh')\n}\n","import type {\n ActionFlightResponse,\n ActionResult,\n} from '../../../../server/app-render/types'\nimport { callServer } from '../../../app-call-server'\nimport { findSourceMapURL } from '../../../app-find-source-map-url'\nimport {\n ACTION_HEADER,\n NEXT_ACTION_NOT_FOUND_HEADER,\n NEXT_IS_PRERENDER_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_URL,\n RSC_CONTENT_TYPE_HEADER,\n} from '../../app-router-headers'\n\n// TODO: Explicitly import from client.browser\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport {\n createFromFetch as createFromFetchBrowser,\n createTemporaryReferenceSet,\n encodeReply,\n} from 'react-server-dom-webpack/client'\n\nimport {\n PrefetchKind,\n type ReadonlyReducerState,\n type ReducerState,\n type ServerActionAction,\n type ServerActionMutable,\n} from '../router-reducer-types'\nimport { assignLocation } from '../../../assign-location'\nimport { createHrefFromUrl } from '../create-href-from-url'\nimport { handleExternalUrl } from './navigate-reducer'\nimport { applyRouterStatePatchToTree } from '../apply-router-state-patch-to-tree'\nimport { isNavigatingToNewRootLayout } from '../is-navigating-to-new-root-layout'\nimport type { CacheNode } from '../../../../shared/lib/app-router-context.shared-runtime'\nimport { handleMutable } from '../handle-mutable'\nimport { fillLazyItemsTillLeafWithHead } from '../fill-lazy-items-till-leaf-with-head'\nimport { createEmptyCacheNode } from '../../app-router'\nimport { hasInterceptionRouteInCurrentTree } from './has-interception-route-in-current-tree'\nimport { handleSegmentMismatch } from '../handle-segment-mismatch'\nimport { refreshInactiveParallelSegments } from '../refetch-inactive-parallel-segments'\nimport {\n normalizeFlightData,\n prepareFlightRouterStateForRequest,\n type NormalizedFlightData,\n} from '../../../flight-data-helpers'\nimport { getRedirectError } from '../../redirect'\nimport { RedirectType } from '../../redirect-error'\nimport { createSeededPrefetchCacheEntry } from '../prefetch-cache-utils'\nimport { removeBasePath } from '../../../remove-base-path'\nimport { hasBasePath } from '../../../has-base-path'\nimport {\n extractInfoFromServerReferenceId,\n omitUnusedArgs,\n} from '../../../../shared/lib/server-reference-info'\nimport { revalidateEntireCache } from '../../segment-cache'\n\nconst createFromFetch =\n createFromFetchBrowser as (typeof import('react-server-dom-webpack/client.browser'))['createFromFetch']\n\ntype FetchServerActionResult = {\n redirectLocation: URL | undefined\n redirectType: RedirectType | undefined\n actionResult: ActionResult | undefined\n actionFlightData: NormalizedFlightData[] | string | undefined\n isPrerender: boolean\n revalidatedParts: {\n tag: boolean\n cookie: boolean\n paths: string[]\n }\n}\n\nasync function fetchServerAction(\n state: ReadonlyReducerState,\n nextUrl: ReadonlyReducerState['nextUrl'],\n { actionId, actionArgs }: ServerActionAction\n): Promise<FetchServerActionResult> {\n const temporaryReferences = createTemporaryReferenceSet()\n const info = extractInfoFromServerReferenceId(actionId)\n\n // TODO: Currently, we're only omitting unused args for the experimental \"use\n // cache\" functions. Once the server reference info byte feature is stable, we\n // should apply this to server actions as well.\n const usedArgs =\n info.type === 'use-cache' ? omitUnusedArgs(actionArgs, info) : actionArgs\n\n const body = await encodeReply(usedArgs, { temporaryReferences })\n\n const res = await fetch(state.canonicalUrl, {\n method: 'POST',\n headers: {\n Accept: RSC_CONTENT_TYPE_HEADER,\n [ACTION_HEADER]: actionId,\n [NEXT_ROUTER_STATE_TREE_HEADER]: prepareFlightRouterStateForRequest(\n state.tree\n ),\n ...(process.env.NEXT_DEPLOYMENT_ID\n ? {\n 'x-deployment-id': process.env.NEXT_DEPLOYMENT_ID,\n }\n : {}),\n ...(nextUrl\n ? {\n [NEXT_URL]: nextUrl,\n }\n : {}),\n },\n body,\n })\n\n // Handle server actions that the server didn't recognize.\n const unrecognizedActionHeader = res.headers.get(NEXT_ACTION_NOT_FOUND_HEADER)\n if (unrecognizedActionHeader === '1') {\n throw new Error(\n `Server Action \"${actionId}\" was not found on the server. \\nRead more: https://nextjs.org/docs/messages/failed-to-find-server-action`\n )\n }\n\n const redirectHeader = res.headers.get('x-action-redirect')\n const [location, _redirectType] = redirectHeader?.split(';') || []\n let redirectType: RedirectType | undefined\n switch (_redirectType) {\n case 'push':\n redirectType = RedirectType.push\n break\n case 'replace':\n redirectType = RedirectType.replace\n break\n default:\n redirectType = undefined\n }\n\n const isPrerender = !!res.headers.get(NEXT_IS_PRERENDER_HEADER)\n let revalidatedParts: FetchServerActionResult['revalidatedParts']\n try {\n const revalidatedHeader = JSON.parse(\n res.headers.get('x-action-revalidated') || '[[],0,0]'\n )\n revalidatedParts = {\n paths: revalidatedHeader[0] || [],\n tag: !!revalidatedHeader[1],\n cookie: revalidatedHeader[2],\n }\n } catch (e) {\n revalidatedParts = NO_REVALIDATED_PARTS\n }\n\n const redirectLocation = location\n ? assignLocation(\n location,\n new URL(state.canonicalUrl, window.location.href)\n )\n : undefined\n\n const contentType = res.headers.get('content-type')\n const isRscResponse = !!(\n contentType && contentType.startsWith(RSC_CONTENT_TYPE_HEADER)\n )\n\n // Handle invalid server action responses.\n // A valid response must have `content-type: text/x-component`, unless it's an external redirect.\n // (external redirects have an 'x-action-redirect' header, but the body is an empty 'text/plain')\n if (!isRscResponse && !redirectLocation) {\n // The server can respond with a text/plain error message, but we'll fallback to something generic\n // if there isn't one.\n const message =\n res.status >= 400 && contentType === 'text/plain'\n ? await res.text()\n : 'An unexpected response was received from the server.'\n\n throw new Error(message)\n }\n\n let actionResult: FetchServerActionResult['actionResult']\n let actionFlightData: FetchServerActionResult['actionFlightData']\n if (isRscResponse) {\n const response: ActionFlightResponse = await createFromFetch(\n Promise.resolve(res),\n { callServer, findSourceMapURL, temporaryReferences }\n )\n // An internal redirect can send an RSC response, but does not have a useful `actionResult`.\n actionResult = redirectLocation ? undefined : response.a\n actionFlightData = normalizeFlightData(response.f)\n } else {\n // An external redirect doesn't contain RSC data.\n actionResult = undefined\n actionFlightData = undefined\n }\n\n return {\n actionResult,\n actionFlightData,\n redirectLocation,\n redirectType,\n revalidatedParts,\n isPrerender,\n }\n}\n\nconst NO_REVALIDATED_PARTS = {\n paths: [],\n tag: false,\n cookie: false,\n}\n\n/*\n * This reducer is responsible for calling the server action and processing any side-effects from the server action.\n * It does not mutate the state by itself but rather delegates to other reducers to do the actual mutation.\n */\nexport function serverActionReducer(\n state: ReadonlyReducerState,\n action: ServerActionAction\n): ReducerState {\n const { resolve, reject } = action\n const mutable: ServerActionMutable = {}\n\n let currentTree = state.tree\n\n mutable.preserveCustomHistoryState = false\n\n // only pass along the `nextUrl` param (used for interception routes) if the current route was intercepted.\n // If the route has been intercepted, the action should be as well.\n // Otherwise the server action might be intercepted with the wrong action id\n // (ie, one that corresponds with the intercepted route)\n const nextUrl =\n state.nextUrl && hasInterceptionRouteInCurrentTree(state.tree)\n ? state.nextUrl\n : null\n\n const navigatedAt = Date.now()\n\n return fetchServerAction(state, nextUrl, action).then(\n async ({\n actionResult,\n actionFlightData: flightData,\n redirectLocation,\n redirectType,\n isPrerender,\n revalidatedParts,\n }) => {\n let redirectHref: string | undefined\n\n // honor the redirect type instead of defaulting to push in case of server actions.\n if (redirectLocation) {\n if (redirectType === RedirectType.replace) {\n state.pushRef.pendingPush = false\n mutable.pendingPush = false\n } else {\n state.pushRef.pendingPush = true\n mutable.pendingPush = true\n }\n\n redirectHref = createHrefFromUrl(redirectLocation, false)\n mutable.canonicalUrl = redirectHref\n }\n\n if (!flightData) {\n resolve(actionResult)\n\n // If there is a redirect but no flight data we need to do a mpaNavigation.\n if (redirectLocation) {\n return handleExternalUrl(\n state,\n mutable,\n redirectLocation.href,\n state.pushRef.pendingPush\n )\n }\n return state\n }\n\n if (typeof flightData === 'string') {\n // Handle case when navigating to page in `pages` from `app`\n resolve(actionResult)\n\n return handleExternalUrl(\n state,\n mutable,\n flightData,\n state.pushRef.pendingPush\n )\n }\n\n const actionRevalidated =\n revalidatedParts.paths.length > 0 ||\n revalidatedParts.tag ||\n revalidatedParts.cookie\n\n for (const normalizedFlightData of flightData) {\n const {\n tree: treePatch,\n seedData: cacheNodeSeedData,\n head,\n isRootRender,\n } = normalizedFlightData\n\n if (!isRootRender) {\n // TODO-APP: handle this case better\n console.log('SERVER ACTION APPLY FAILED')\n resolve(actionResult)\n\n return state\n }\n\n // Given the path can only have two items the items are only the router state and rsc for the root.\n const newTree = applyRouterStatePatchToTree(\n // TODO-APP: remove ''\n [''],\n currentTree,\n treePatch,\n redirectHref ? redirectHref : state.canonicalUrl\n )\n\n if (newTree === null) {\n resolve(actionResult)\n\n return handleSegmentMismatch(state, action, treePatch)\n }\n\n if (isNavigatingToNewRootLayout(currentTree, newTree)) {\n resolve(actionResult)\n\n return handleExternalUrl(\n state,\n mutable,\n redirectHref || state.canonicalUrl,\n state.pushRef.pendingPush\n )\n }\n\n // The server sent back RSC data for the server action, so we need to apply it to the cache.\n if (cacheNodeSeedData !== null) {\n const rsc = cacheNodeSeedData[1]\n const cache: CacheNode = createEmptyCacheNode()\n cache.rsc = rsc\n cache.prefetchRsc = null\n cache.loading = cacheNodeSeedData[3]\n fillLazyItemsTillLeafWithHead(\n navigatedAt,\n cache,\n // Existing cache is not passed in as server actions have to invalidate the entire cache.\n undefined,\n treePatch,\n cacheNodeSeedData,\n head,\n undefined\n )\n\n mutable.cache = cache\n if (process.env.__NEXT_CLIENT_SEGMENT_CACHE) {\n revalidateEntireCache(state.nextUrl, newTree)\n } else {\n mutable.prefetchCache = new Map()\n }\n if (actionRevalidated) {\n await refreshInactiveParallelSegments({\n navigatedAt,\n state,\n updatedTree: newTree,\n updatedCache: cache,\n includeNextUrl: Boolean(nextUrl),\n canonicalUrl: mutable.canonicalUrl || state.canonicalUrl,\n })\n }\n }\n\n mutable.patchedTree = newTree\n currentTree = newTree\n }\n\n if (redirectLocation && redirectHref) {\n if (!process.env.__NEXT_CLIENT_SEGMENT_CACHE && !actionRevalidated) {\n // Because the RedirectBoundary will trigger a navigation, we need to seed the prefetch cache\n // with the FlightData that we got from the server action for the target page, so that it's\n // available when the page is navigated to and doesn't need to be re-fetched.\n // We only do this if the server action didn't revalidate any data, as in that case the\n // client cache will be cleared and the data will be re-fetched anyway.\n // NOTE: We don't do this in the Segment Cache implementation.\n // Dynamic data should never be placed into the cache, unless it's\n // \"converted\" to static data using <Link prefetch={true}>. What we\n // do instead is re-prefetch links and forms whenever the cache is\n // invalidated.\n createSeededPrefetchCacheEntry({\n url: redirectLocation,\n data: {\n flightData,\n canonicalUrl: undefined,\n couldBeIntercepted: false,\n prerendered: false,\n postponed: false,\n // TODO: We should be able to set this if the server action\n // returned a fully static response.\n staleTime: -1,\n },\n tree: state.tree,\n prefetchCache: state.prefetchCache,\n nextUrl: state.nextUrl,\n kind: isPrerender ? PrefetchKind.FULL : PrefetchKind.AUTO,\n })\n mutable.prefetchCache = state.prefetchCache\n }\n\n // If the action triggered a redirect, the action promise will be rejected with\n // a redirect so that it's handled by RedirectBoundary as we won't have a valid\n // action result to resolve the promise with. This will effectively reset the state of\n // the component that called the action as the error boundary will remount the tree.\n // The status code doesn't matter here as the action handler will have already sent\n // a response with the correct status code.\n reject(\n getRedirectError(\n hasBasePath(redirectHref)\n ? removeBasePath(redirectHref)\n : redirectHref,\n redirectType || RedirectType.push\n )\n )\n } else {\n resolve(actionResult)\n }\n\n return handleMutable(state, mutable)\n },\n (e: any) => {\n // When the server action is rejected we don't update the state and instead call the reject handler of the promise.\n reject(e)\n\n return state\n }\n )\n}\n","'use client'\n\nimport React, { useContext, type JSX } from 'react'\nimport { TemplateContext } from '../../shared/lib/app-router-context.shared-runtime'\n\nexport default function RenderFromTemplateContext(): JSX.Element {\n const children = useContext(TemplateContext)\n return <>{children}</>\n}\n","'use client'\n\nimport React, {\n useEffect,\n useMemo,\n startTransition,\n useInsertionEffect,\n useDeferredValue,\n} from 'react'\nimport {\n AppRouterContext,\n LayoutRouterContext,\n GlobalLayoutRouterContext,\n} from '../../shared/lib/app-router-context.shared-runtime'\nimport type { CacheNode } from '../../shared/lib/app-router-context.shared-runtime'\nimport { ACTION_RESTORE } from './router-reducer/router-reducer-types'\nimport type { AppRouterState } from './router-reducer/router-reducer-types'\nimport { createHrefFromUrl } from './router-reducer/create-href-from-url'\nimport {\n SearchParamsContext,\n PathnameContext,\n PathParamsContext,\n} from '../../shared/lib/hooks-client-context.shared-runtime'\nimport { dispatchAppRouterAction, useActionQueue } from './use-action-queue'\nimport { ErrorBoundary } from './error-boundary'\nimport DefaultGlobalError from './builtin/global-error'\nimport { isBot } from '../../shared/lib/router/utils/is-bot'\nimport { addBasePath } from '../add-base-path'\nimport { AppRouterAnnouncer } from './app-router-announcer'\nimport { RedirectBoundary } from './redirect-boundary'\nimport { findHeadInCache } from './router-reducer/reducers/find-head-in-cache'\nimport { unresolvedThenable } from './unresolved-thenable'\nimport { removeBasePath } from '../remove-base-path'\nimport { hasBasePath } from '../has-base-path'\nimport { getSelectedParams } from './router-reducer/compute-changed-path'\nimport type { FlightRouterState } from '../../server/app-render/types'\nimport { useNavFailureHandler } from './nav-failure-handler'\nimport {\n dispatchTraverseAction,\n publicAppRouterInstance,\n type AppRouterActionQueue,\n type GlobalErrorState,\n} from './app-router-instance'\nimport { getRedirectTypeFromError, getURLFromRedirectError } from './redirect'\nimport { isRedirectError, RedirectType } from './redirect-error'\nimport { pingVisibleLinks } from './links'\nimport GracefulDegradeBoundary from './errors/graceful-degrade-boundary'\n\nconst globalMutable: {\n pendingMpaPath?: string\n} = {}\n\nexport function isExternalURL(url: URL) {\n return url.origin !== window.location.origin\n}\n\n/**\n * Given a link href, constructs the URL that should be prefetched. Returns null\n * in cases where prefetching should be disabled, like external URLs, or\n * during development.\n * @param href The href passed to <Link>, router.prefetch(), or similar\n * @returns A URL object to prefetch, or null if prefetching should be disabled\n */\nexport function createPrefetchURL(href: string): URL | null {\n // Don't prefetch for bots as they don't navigate.\n if (isBot(window.navigator.userAgent)) {\n return null\n }\n\n let url: URL\n try {\n url = new URL(addBasePath(href), window.location.href)\n } catch (_) {\n // TODO: Does this need to throw or can we just console.error instead? Does\n // anyone rely on this throwing? (Seems unlikely.)\n throw new Error(\n `Cannot prefetch '${href}' because it cannot be converted to a URL.`\n )\n }\n\n // Don't prefetch during development (improves compilation performance)\n if (process.env.NODE_ENV === 'development') {\n return null\n }\n\n // External urls can't be prefetched in the same way.\n if (isExternalURL(url)) {\n return null\n }\n\n return url\n}\n\nfunction HistoryUpdater({\n appRouterState,\n}: {\n appRouterState: AppRouterState\n}) {\n useInsertionEffect(() => {\n if (process.env.__NEXT_APP_NAV_FAIL_HANDLING) {\n // clear pending URL as navigation is no longer\n // in flight\n window.next.__pendingUrl = undefined\n }\n\n const { tree, pushRef, canonicalUrl } = appRouterState\n const historyState = {\n ...(pushRef.preserveCustomHistoryState ? window.history.state : {}),\n // Identifier is shortened intentionally.\n // __NA is used to identify if the history entry can be handled by the app-router.\n // __N is used to identify if the history entry can be handled by the old router.\n __NA: true,\n __PRIVATE_NEXTJS_INTERNALS_TREE: tree,\n }\n if (\n pushRef.pendingPush &&\n // Skip pushing an additional history entry if the canonicalUrl is the same as the current url.\n // This mirrors the browser behavior for normal navigation.\n createHrefFromUrl(new URL(window.location.href)) !== canonicalUrl\n ) {\n // This intentionally mutates React state, pushRef is overwritten to ensure additional push/replace calls do not trigger an additional history entry.\n pushRef.pendingPush = false\n window.history.pushState(historyState, '', canonicalUrl)\n } else {\n window.history.replaceState(historyState, '', canonicalUrl)\n }\n }, [appRouterState])\n\n useEffect(() => {\n // The Next-Url and the base tree may affect the result of a prefetch\n // task. Re-prefetch all visible links with the updated values. In most\n // cases, this will not result in any new network requests, only if\n // the prefetch result actually varies on one of these inputs.\n if (process.env.__NEXT_CLIENT_SEGMENT_CACHE) {\n pingVisibleLinks(appRouterState.nextUrl, appRouterState.tree)\n }\n }, [appRouterState.nextUrl, appRouterState.tree])\n\n return null\n}\n\nexport function createEmptyCacheNode(): CacheNode {\n return {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1,\n }\n}\n\nfunction copyNextJsInternalHistoryState(data: any) {\n if (data == null) data = {}\n const currentState = window.history.state\n const __NA = currentState?.__NA\n if (__NA) {\n data.__NA = __NA\n }\n const __PRIVATE_NEXTJS_INTERNALS_TREE =\n currentState?.__PRIVATE_NEXTJS_INTERNALS_TREE\n if (__PRIVATE_NEXTJS_INTERNALS_TREE) {\n data.__PRIVATE_NEXTJS_INTERNALS_TREE = __PRIVATE_NEXTJS_INTERNALS_TREE\n }\n\n return data\n}\n\nfunction Head({\n headCacheNode,\n}: {\n headCacheNode: CacheNode | null\n}): React.ReactNode {\n // If this segment has a `prefetchHead`, it's the statically prefetched data.\n // We should use that on initial render instead of `head`. Then we'll switch\n // to `head` when the dynamic response streams in.\n const head = headCacheNode !== null ? headCacheNode.head : null\n const prefetchHead =\n headCacheNode !== null ? headCacheNode.prefetchHead : null\n\n // If no prefetch data is available, then we go straight to rendering `head`.\n const resolvedPrefetchRsc = prefetchHead !== null ? prefetchHead : head\n\n // We use `useDeferredValue` to handle switching between the prefetched and\n // final values. The second argument is returned on initial render, then it\n // re-renders with the first argument.\n return useDeferredValue(head, resolvedPrefetchRsc)\n}\n\n/**\n * The global router that wraps the application components.\n */\nfunction Router({\n actionQueue,\n assetPrefix,\n globalError,\n gracefullyDegrade,\n}: {\n actionQueue: AppRouterActionQueue\n assetPrefix: string\n globalError: GlobalErrorState\n gracefullyDegrade: boolean\n}) {\n const state = useActionQueue(actionQueue)\n const { canonicalUrl } = state\n // Add memoized pathname/query for useSearchParams and usePathname.\n const { searchParams, pathname } = useMemo(() => {\n const url = new URL(\n canonicalUrl,\n typeof window === 'undefined' ? 'http://n' : window.location.href\n )\n\n return {\n // This is turned into a readonly class in `useSearchParams`\n searchParams: url.searchParams,\n pathname: hasBasePath(url.pathname)\n ? removeBasePath(url.pathname)\n : url.pathname,\n }\n }, [canonicalUrl])\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { cache, prefetchCache, tree } = state\n\n // This hook is in a conditional but that is ok because `process.env.NODE_ENV` never changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n // Add `window.nd` for debugging purposes.\n // This is not meant for use in applications as concurrent rendering will affect the cache/tree/router.\n // @ts-ignore this is for debugging\n window.nd = {\n router: publicAppRouterInstance,\n cache,\n prefetchCache,\n tree,\n }\n }, [cache, prefetchCache, tree])\n }\n\n useEffect(() => {\n // If the app is restored from bfcache, it's possible that\n // pushRef.mpaNavigation is true, which would mean that any re-render of this component\n // would trigger the mpa navigation logic again from the lines below.\n // This will restore the router to the initial state in the event that the app is restored from bfcache.\n function handlePageShow(event: PageTransitionEvent) {\n if (\n !event.persisted ||\n !window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE\n ) {\n return\n }\n\n // Clear the pendingMpaPath value so that a subsequent MPA navigation to the same URL can be triggered.\n // This is necessary because if the browser restored from bfcache, the pendingMpaPath would still be set to the value\n // of the last MPA navigation.\n globalMutable.pendingMpaPath = undefined\n\n dispatchAppRouterAction({\n type: ACTION_RESTORE,\n url: new URL(window.location.href),\n tree: window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE,\n })\n }\n\n window.addEventListener('pageshow', handlePageShow)\n\n return () => {\n window.removeEventListener('pageshow', handlePageShow)\n }\n }, [])\n\n useEffect(() => {\n // Ensure that any redirect errors that bubble up outside of the RedirectBoundary\n // are caught and handled by the router.\n function handleUnhandledRedirect(\n event: ErrorEvent | PromiseRejectionEvent\n ) {\n const error = 'reason' in event ? event.reason : event.error\n if (isRedirectError(error)) {\n event.preventDefault()\n const url = getURLFromRedirectError(error)\n const redirectType = getRedirectTypeFromError(error)\n // TODO: This should access the router methods directly, rather than\n // go through the public interface.\n if (redirectType === RedirectType.push) {\n publicAppRouterInstance.push(url, {})\n } else {\n publicAppRouterInstance.replace(url, {})\n }\n }\n }\n window.addEventListener('error', handleUnhandledRedirect)\n window.addEventListener('unhandledrejection', handleUnhandledRedirect)\n\n return () => {\n window.removeEventListener('error', handleUnhandledRedirect)\n window.removeEventListener('unhandledrejection', handleUnhandledRedirect)\n }\n }, [])\n\n // When mpaNavigation flag is set do a hard navigation to the new url.\n // Infinitely suspend because we don't actually want to rerender any child\n // components with the new URL and any entangled state updates shouldn't\n // commit either (eg: useTransition isPending should stay true until the page\n // unloads).\n //\n // This is a side effect in render. Don't try this at home, kids. It's\n // probably safe because we know this is a singleton component and it's never\n // in <Offscreen>. At least I hope so. (It will run twice in dev strict mode,\n // but that's... fine?)\n const { pushRef } = state\n if (pushRef.mpaNavigation) {\n // if there's a re-render, we don't want to trigger another redirect if one is already in flight to the same URL\n if (globalMutable.pendingMpaPath !== canonicalUrl) {\n const location = window.location\n if (pushRef.pendingPush) {\n location.assign(canonicalUrl)\n } else {\n location.replace(canonicalUrl)\n }\n\n globalMutable.pendingMpaPath = canonicalUrl\n }\n // TODO-APP: Should we listen to navigateerror here to catch failed\n // navigations somehow? And should we call window.stop() if a SPA navigation\n // should interrupt an MPA one?\n // NOTE: This is intentionally using `throw` instead of `use` because we're\n // inside an externally mutable condition (pushRef.mpaNavigation), which\n // violates the rules of hooks.\n throw unresolvedThenable\n }\n\n useEffect(() => {\n const originalPushState = window.history.pushState.bind(window.history)\n const originalReplaceState = window.history.replaceState.bind(\n window.history\n )\n\n // Ensure the canonical URL in the Next.js Router is updated when the URL is changed so that `usePathname` and `useSearchParams` hold the pushed values.\n const applyUrlFromHistoryPushReplace = (\n url: string | URL | null | undefined\n ) => {\n const href = window.location.href\n const tree: FlightRouterState | undefined =\n window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE\n\n startTransition(() => {\n dispatchAppRouterAction({\n type: ACTION_RESTORE,\n url: new URL(url ?? href, href),\n tree,\n })\n })\n }\n\n /**\n * Patch pushState to ensure external changes to the history are reflected in the Next.js Router.\n * Ensures Next.js internal history state is copied to the new history entry.\n * Ensures usePathname and useSearchParams hold the newly provided url.\n */\n window.history.pushState = function pushState(\n data: any,\n _unused: string,\n url?: string | URL | null\n ): void {\n // Avoid a loop when Next.js internals trigger pushState/replaceState\n if (data?.__NA || data?._N) {\n return originalPushState(data, _unused, url)\n }\n\n data = copyNextJsInternalHistoryState(data)\n\n if (url) {\n applyUrlFromHistoryPushReplace(url)\n }\n\n return originalPushState(data, _unused, url)\n }\n\n /**\n * Patch replaceState to ensure external changes to the history are reflected in the Next.js Router.\n * Ensures Next.js internal history state is copied to the new history entry.\n * Ensures usePathname and useSearchParams hold the newly provided url.\n */\n window.history.replaceState = function replaceState(\n data: any,\n _unused: string,\n url?: string | URL | null\n ): void {\n // Avoid a loop when Next.js internals trigger pushState/replaceState\n if (data?.__NA || data?._N) {\n return originalReplaceState(data, _unused, url)\n }\n data = copyNextJsInternalHistoryState(data)\n\n if (url) {\n applyUrlFromHistoryPushReplace(url)\n }\n return originalReplaceState(data, _unused, url)\n }\n\n /**\n * Handle popstate event, this is used to handle back/forward in the browser.\n * By default dispatches ACTION_RESTORE, however if the history entry was not pushed/replaced by app-router it will reload the page.\n * That case can happen when the old router injected the history entry.\n */\n const onPopState = (event: PopStateEvent) => {\n if (!event.state) {\n // TODO-APP: this case only happens when pushState/replaceState was called outside of Next.js. It should probably reload the page in this case.\n return\n }\n\n // This case happens when the history entry was pushed by the `pages` router.\n if (!event.state.__NA) {\n window.location.reload()\n return\n }\n\n // TODO-APP: Ideally the back button should not use startTransition as it should apply the updates synchronously\n // Without startTransition works if the cache is there for this path\n startTransition(() => {\n dispatchTraverseAction(\n window.location.href,\n event.state.__PRIVATE_NEXTJS_INTERNALS_TREE\n )\n })\n }\n\n // Register popstate event to call onPopstate.\n window.addEventListener('popstate', onPopState)\n return () => {\n window.history.pushState = originalPushState\n window.history.replaceState = originalReplaceState\n window.removeEventListener('popstate', onPopState)\n }\n }, [])\n\n const { cache, tree, nextUrl, focusAndScrollRef } = state\n\n const matchingHead = useMemo(() => {\n return findHeadInCache(cache, tree[1])\n }, [cache, tree])\n\n // Add memoized pathParams for useParams.\n const pathParams = useMemo(() => {\n return getSelectedParams(tree)\n }, [tree])\n\n const layoutRouterContext = useMemo(() => {\n return {\n parentTree: tree,\n parentCacheNode: cache,\n parentSegmentPath: null,\n // Root node always has `url`\n // Provided in AppTreeContext to ensure it can be overwritten in layout-router\n url: canonicalUrl,\n }\n }, [tree, cache, canonicalUrl])\n\n const globalLayoutRouterContext = useMemo(() => {\n return {\n tree,\n focusAndScrollRef,\n nextUrl,\n }\n }, [tree, focusAndScrollRef, nextUrl])\n\n let head\n if (matchingHead !== null) {\n // The head is wrapped in an extra component so we can use\n // `useDeferredValue` to swap between the prefetched and final versions of\n // the head. (This is what LayoutRouter does for segment data, too.)\n //\n // The `key` is used to remount the component whenever the head moves to\n // a different segment.\n const [headCacheNode, headKey] = matchingHead\n head = <Head key={headKey} headCacheNode={headCacheNode} />\n } else {\n head = null\n }\n\n let content = (\n <RedirectBoundary>\n {head}\n {cache.rsc}\n <AppRouterAnnouncer tree={tree} />\n </RedirectBoundary>\n )\n\n if (process.env.NODE_ENV !== 'production') {\n // In development, we apply few error boundaries and hot-reloader:\n // - DevRootHTTPAccessFallbackBoundary: avoid using navigation API like notFound() in root layout\n // - HotReloader:\n // - hot-reload the app when the code changes\n // - render dev overlay\n // - catch runtime errors and display global-error when necessary\n if (typeof window !== 'undefined') {\n const { DevRootHTTPAccessFallbackBoundary } =\n require('./dev-root-http-access-fallback-boundary') as typeof import('./dev-root-http-access-fallback-boundary')\n content = (\n <DevRootHTTPAccessFallbackBoundary>\n {content}\n </DevRootHTTPAccessFallbackBoundary>\n )\n }\n const HotReloader: typeof import('../dev/hot-reloader/app/hot-reloader-app').default =\n (\n require('../dev/hot-reloader/app/hot-reloader-app') as typeof import('../dev/hot-reloader/app/hot-reloader-app')\n ).default\n\n content = (\n <HotReloader assetPrefix={assetPrefix} globalError={globalError}>\n {content}\n </HotReloader>\n )\n } else {\n // If gracefully degrading is applied in production,\n // leave the app as it is rather than caught by GlobalError boundary.\n if (gracefullyDegrade) {\n content = <GracefulDegradeBoundary>{content}</GracefulDegradeBoundary>\n } else {\n content = (\n <ErrorBoundary\n errorComponent={globalError[0]}\n errorStyles={globalError[1]}\n >\n {content}\n </ErrorBoundary>\n )\n }\n }\n\n return (\n <>\n <HistoryUpdater appRouterState={state} />\n <RuntimeStyles />\n <PathParamsContext.Provider value={pathParams}>\n <PathnameContext.Provider value={pathname}>\n <SearchParamsContext.Provider value={searchParams}>\n <GlobalLayoutRouterContext.Provider\n value={globalLayoutRouterContext}\n >\n {/* TODO: We should be able to remove this context. useRouter\n should import from app-router-instance instead. It's only\n necessary because useRouter is shared between Pages and\n App Router. We should fork that module, then remove this\n context provider. */}\n <AppRouterContext.Provider value={publicAppRouterInstance}>\n <LayoutRouterContext.Provider value={layoutRouterContext}>\n {content}\n </LayoutRouterContext.Provider>\n </AppRouterContext.Provider>\n </GlobalLayoutRouterContext.Provider>\n </SearchParamsContext.Provider>\n </PathnameContext.Provider>\n </PathParamsContext.Provider>\n </>\n )\n}\n\nexport default function AppRouter({\n actionQueue,\n globalErrorState,\n assetPrefix,\n gracefullyDegrade,\n}: {\n actionQueue: AppRouterActionQueue\n globalErrorState: GlobalErrorState\n assetPrefix: string\n gracefullyDegrade: boolean\n}) {\n useNavFailureHandler()\n\n const router = (\n <Router\n actionQueue={actionQueue}\n assetPrefix={assetPrefix}\n globalError={globalErrorState}\n gracefullyDegrade={gracefullyDegrade}\n />\n )\n\n if (gracefullyDegrade) {\n return router\n } else {\n return (\n <ErrorBoundary\n // At the very top level, use the default GlobalError component as the final fallback.\n // When the app router itself fails, which means the framework itself fails, we show the default error.\n errorComponent={DefaultGlobalError}\n >\n {router}\n </ErrorBoundary>\n )\n }\n}\n\nconst runtimeStyles = new Set<string>()\nlet runtimeStyleChanged = new Set<() => void>()\n\nglobalThis._N_E_STYLE_LOAD = function (href: string) {\n let len = runtimeStyles.size\n runtimeStyles.add(href)\n if (runtimeStyles.size !== len) {\n runtimeStyleChanged.forEach((cb) => cb())\n }\n // TODO figure out how to get a promise here\n // But maybe it's not necessary as react would block rendering until it's loaded\n return Promise.resolve()\n}\n\nfunction RuntimeStyles() {\n const [, forceUpdate] = React.useState(0)\n const renderedStylesSize = runtimeStyles.size\n useEffect(() => {\n const changed = () => forceUpdate((c) => c + 1)\n runtimeStyleChanged.add(changed)\n if (renderedStylesSize !== runtimeStyles.size) {\n changed()\n }\n return () => {\n runtimeStyleChanged.delete(changed)\n }\n }, [renderedStylesSize, forceUpdate])\n\n const dplId = process.env.NEXT_DEPLOYMENT_ID\n ? `?dpl=${process.env.NEXT_DEPLOYMENT_ID}`\n : ''\n return [...runtimeStyles].map((href, i) => (\n <link\n key={i}\n rel=\"stylesheet\"\n href={`${href}${dplId}`}\n // @ts-ignore\n precedence=\"next\"\n // TODO figure out crossOrigin and nonce\n // crossOrigin={TODO}\n // nonce={TODO}\n />\n ))\n}\n","'use client'\n\nimport type { FetchServerResponseResult } from '../../client/components/router-reducer/fetch-server-response'\nimport type {\n FocusAndScrollRef,\n PrefetchKind,\n} from '../../client/components/router-reducer/router-reducer-types'\nimport type {\n FlightRouterState,\n FlightSegmentPath,\n} from '../../server/app-render/types'\nimport React from 'react'\n\nexport type ChildSegmentMap = Map<string, CacheNode>\n\n/**\n * Cache node used in app-router / layout-router.\n */\nexport type CacheNode = ReadyCacheNode | LazyCacheNode\n\nexport type LoadingModuleData =\n | [React.JSX.Element, React.ReactNode, React.ReactNode]\n | null\n\n/** viewport metadata node */\nexport type HeadData = React.ReactNode\n\nexport type LazyCacheNode = {\n /**\n * When rsc is null, this is a lazily-initialized cache node.\n *\n * If the app attempts to render it, it triggers a lazy data fetch,\n * postpones the render, and schedules an update to a new tree.\n *\n * TODO: This mechanism should not be used when PPR is enabled, though it\n * currently is in some cases until we've implemented partial\n * segment fetching.\n */\n rsc: null\n\n /**\n * A prefetched version of the segment data. See explanation in corresponding\n * field of ReadyCacheNode (below).\n *\n * Since LazyCacheNode mostly only exists in the non-PPR implementation, this\n * will usually be null, but it could have been cloned from a previous\n * CacheNode that was created by the PPR implementation. Eventually we want\n * to migrate everything away from LazyCacheNode entirely.\n */\n prefetchRsc: React.ReactNode\n\n /**\n * A pending response for the lazy data fetch. If this is not present\n * during render, it is lazily created.\n */\n lazyData: Promise<FetchServerResponseResult> | null\n\n prefetchHead: HeadData | null\n\n head: HeadData\n\n loading: LoadingModuleData | Promise<LoadingModuleData>\n\n /**\n * Child parallel routes.\n */\n parallelRoutes: Map<string, ChildSegmentMap>\n\n /**\n * The timestamp of the navigation that last updated the CacheNode's data. If\n * a CacheNode is reused from a previous navigation, this value is not\n * updated. Used to track the staleness of the data.\n */\n navigatedAt: number\n}\n\nexport type ReadyCacheNode = {\n /**\n * When rsc is not null, it represents the RSC data for the\n * corresponding segment.\n *\n * `null` is a valid React Node but because segment data is always a\n * <LayoutRouter> component, we can use `null` to represent empty.\n *\n * TODO: For additional type safety, update this type to\n * Exclude<React.ReactNode, null>. Need to update createEmptyCacheNode to\n * accept rsc as an argument, or just inline the callers.\n */\n rsc: React.ReactNode\n\n /**\n * Represents a static version of the segment that can be shown immediately,\n * and may or may not contain dynamic holes. It's prefetched before a\n * navigation occurs.\n *\n * During rendering, we will choose whether to render `rsc` or `prefetchRsc`\n * with `useDeferredValue`. As with the `rsc` field, a value of `null` means\n * no value was provided. In this case, the LayoutRouter will go straight to\n * rendering the `rsc` value; if that one is also missing, it will suspend and\n * trigger a lazy fetch.\n */\n prefetchRsc: React.ReactNode\n\n /**\n * There should never be a lazy data request in this case.\n */\n lazyData: null\n prefetchHead: HeadData | null\n\n head: HeadData\n\n loading: LoadingModuleData | Promise<LoadingModuleData>\n\n parallelRoutes: Map<string, ChildSegmentMap>\n\n navigatedAt: number\n}\n\nexport interface NavigateOptions {\n scroll?: boolean\n}\n\nexport interface PrefetchOptions {\n kind: PrefetchKind\n onInvalidate?: () => void\n}\n\nexport interface AppRouterInstance {\n /**\n * Navigate to the previous history entry.\n */\n back(): void\n /**\n * Navigate to the next history entry.\n */\n forward(): void\n /**\n * Refresh the current page.\n */\n refresh(): void\n /**\n * Refresh the current page. Use in development only.\n * @internal\n */\n hmrRefresh(): void\n /**\n * Navigate to the provided href.\n * Pushes a new history entry.\n */\n push(href: string, options?: NavigateOptions): void\n /**\n * Navigate to the provided href.\n * Replaces the current history entry.\n */\n replace(href: string, options?: NavigateOptions): void\n /**\n * Prefetch the provided href.\n */\n prefetch(href: string, options?: PrefetchOptions): void\n}\n\nexport const AppRouterContext = React.createContext<AppRouterInstance | null>(\n null\n)\nexport const LayoutRouterContext = React.createContext<{\n parentTree: FlightRouterState\n parentCacheNode: CacheNode\n parentSegmentPath: FlightSegmentPath | null\n url: string\n} | null>(null)\n\nexport const GlobalLayoutRouterContext = React.createContext<{\n tree: FlightRouterState\n focusAndScrollRef: FocusAndScrollRef\n nextUrl: string | null\n}>(null as any)\n\nexport const TemplateContext = React.createContext<React.ReactNode>(null as any)\n\nif (process.env.NODE_ENV !== 'production') {\n AppRouterContext.displayName = 'AppRouterContext'\n LayoutRouterContext.displayName = 'LayoutRouterContext'\n GlobalLayoutRouterContext.displayName = 'GlobalLayoutRouterContext'\n TemplateContext.displayName = 'TemplateContext'\n}\n\nexport const MissingSlotContext = React.createContext<Set<string>>(new Set())\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","// This file is only used in app router due to the specific error state handling.\n\nimport type { ErrorInfo } from 'react'\nimport { isNextRouterError } from '../components/is-next-router-error'\nimport { isBailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'\nimport { reportGlobalError } from './report-global-error'\nimport { ErrorBoundaryHandler } from '../components/error-boundary'\nimport DefaultErrorBoundary from '../components/builtin/global-error'\n\nconst devToolErrorMod: typeof import('../../next-devtools/userspace/app/errors') =\n process.env.NODE_ENV !== 'production'\n ? (require('../../next-devtools/userspace/app/errors') as typeof import('../../next-devtools/userspace/app/errors'))\n : {\n decorateDevError: (error: unknown) => error as Error,\n handleClientError: () => {},\n originConsoleError: console.error.bind(console),\n }\n\nexport function onCaughtError(\n thrownValue: unknown,\n errorInfo: ErrorInfo & { errorBoundary?: React.Component }\n) {\n const errorBoundaryComponent = errorInfo.errorBoundary?.constructor\n\n let isImplicitErrorBoundary\n\n if (process.env.NODE_ENV !== 'production') {\n const { AppDevOverlayErrorBoundary } =\n require('../../next-devtools/userspace/app/app-dev-overlay-error-boundary') as typeof import('../../next-devtools/userspace/app/app-dev-overlay-error-boundary')\n\n isImplicitErrorBoundary =\n errorBoundaryComponent === AppDevOverlayErrorBoundary\n }\n\n isImplicitErrorBoundary =\n isImplicitErrorBoundary ||\n (errorBoundaryComponent === ErrorBoundaryHandler &&\n (errorInfo.errorBoundary! as InstanceType<typeof ErrorBoundaryHandler>)\n .props.errorComponent === DefaultErrorBoundary)\n\n // Skip the segment explorer triggered error\n if (process.env.NODE_ENV !== 'production') {\n const { SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE } =\n require('../../next-devtools/userspace/app/segment-explorer-node') as typeof import('../../next-devtools/userspace/app/segment-explorer-node')\n if (\n thrownValue instanceof Error &&\n thrownValue.message === SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE\n ) {\n return\n }\n }\n\n if (isImplicitErrorBoundary) {\n // We don't consider errors caught unless they're caught by an explicit error\n // boundary. The built-in ones are considered implicit.\n // This mimics how the same app would behave without Next.js.\n return onUncaughtError(thrownValue, errorInfo)\n }\n\n // Skip certain custom errors which are not expected to be reported on client\n if (isBailoutToCSRError(thrownValue) || isNextRouterError(thrownValue)) return\n\n if (process.env.NODE_ENV !== 'production') {\n const errorBoundaryName =\n // read react component displayName\n (errorBoundaryComponent as any)?.displayName ||\n errorBoundaryComponent?.name ||\n 'Unknown'\n\n const componentThatErroredFrame = errorInfo?.componentStack?.split('\\n')[1]\n\n // Match chrome or safari stack trace\n const matches =\n // regex to match the function name in the stack trace\n // example 1: at Page (http://localhost:3000/_next/static/chunks/pages/index.js?ts=1631600000000:2:1)\n // example 2: Page@http://localhost:3000/_next/static/chunks/pages/index.js?ts=1631600000000:2:1\n componentThatErroredFrame?.match(/\\s+at (\\w+)\\s+|(\\w+)@/) ?? []\n const componentThatErroredName = matches[1] || matches[2] || 'Unknown'\n\n // Create error location with errored component and error boundary, to match the behavior of default React onCaughtError handler.\n const errorBoundaryMessage = `It was handled by the <${errorBoundaryName}> error boundary.`\n const componentErrorMessage = componentThatErroredName\n ? `The above error occurred in the <${componentThatErroredName}> component.`\n : `The above error occurred in one of your components.`\n\n const errorLocation = `${componentErrorMessage} ${errorBoundaryMessage}`\n const error = devToolErrorMod.decorateDevError(thrownValue, errorInfo)\n\n // Log and report the error with location but without modifying the error stack\n devToolErrorMod.originConsoleError('%o\\n\\n%s', thrownValue, errorLocation)\n\n devToolErrorMod.handleClientError(error)\n } else {\n devToolErrorMod.originConsoleError(thrownValue)\n }\n}\n\nexport function onUncaughtError(\n thrownValue: unknown,\n errorInfo: React.ErrorInfo\n) {\n // Skip certain custom errors which are not expected to be reported on client\n if (isBailoutToCSRError(thrownValue) || isNextRouterError(thrownValue)) return\n\n if (process.env.NODE_ENV !== 'production') {\n const error = devToolErrorMod.decorateDevError(thrownValue, errorInfo)\n\n // TODO: Add an adendum to the overlay telling people about custom error boundaries.\n reportGlobalError(error)\n } else {\n reportGlobalError(thrownValue)\n }\n}\n","/**\n * Given a path this function will find the pathname, query and hash and return\n * them. This is useful to parse full paths on the client side.\n * @param path A path to parse e.g. /foo/bar?id=1#hash\n */\nexport function parsePath(path: string) {\n const hashIndex = path.indexOf('#')\n const queryIndex = path.indexOf('?')\n const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex)\n\n if (hasQuery || hashIndex > -1) {\n return {\n pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),\n query: hasQuery\n ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined)\n : '',\n hash: hashIndex > -1 ? path.slice(hashIndex) : '',\n }\n }\n\n return { pathname: path, query: '', hash: '' }\n}\n","/**\n * Create a \"Thenable\" that does not resolve. This is used to suspend indefinitely when data is not available yet.\n */\nexport const unresolvedThenable = {\n then: () => {},\n} as PromiseLike<void>\n","// Override chunk URL mapping in the webpack runtime\n// https://github.com/webpack/webpack/blob/2738eebc7880835d88c727d364ad37f3ec557593/lib/RuntimeGlobals.js#L204\n\nimport { getDeploymentIdQueryOrEmptyString } from '../build/deployment-id'\nimport { encodeURIPath } from '../shared/lib/encode-uri-path'\n\ndeclare const __webpack_require__: any\n\n// If we have a deployment ID, we need to append it to the webpack chunk names\n// I am keeping the process check explicit so this can be statically optimized\nif (process.env.NEXT_DEPLOYMENT_ID) {\n const suffix = getDeploymentIdQueryOrEmptyString()\n // eslint-disable-next-line no-undef\n const getChunkScriptFilename = __webpack_require__.u\n // eslint-disable-next-line no-undef\n __webpack_require__.u = (...args: any[]) =>\n // We encode the chunk filename because our static server matches against and encoded\n // filename path.\n encodeURIPath(getChunkScriptFilename(...args)) + suffix\n\n // eslint-disable-next-line no-undef\n const getChunkCssFilename = __webpack_require__.k\n // eslint-disable-next-line no-undef\n __webpack_require__.k = (...args: any[]) =>\n getChunkCssFilename(...args) + suffix\n\n // eslint-disable-next-line no-undef\n const getMiniCssFilename = __webpack_require__.miniCssF\n // eslint-disable-next-line no-undef\n __webpack_require__.miniCssF = (...args: any[]) =>\n getMiniCssFilename(...args) + suffix\n} else {\n // eslint-disable-next-line no-undef\n const getChunkScriptFilename = __webpack_require__.u\n // eslint-disable-next-line no-undef\n __webpack_require__.u = (...args: any[]) =>\n // We encode the chunk filename because our static server matches against and encoded\n // filename path.\n encodeURIPath(getChunkScriptFilename(...args))\n\n // We don't need to override __webpack_require__.k because we don't modify\n // the css chunk name when not using deployment id suffixes\n\n // WE don't need to override __webpack_require__.miniCssF because we don't modify\n // the mini css chunk name when not using deployment id suffixes\n}\n\nexport {}\n","/**\n * Entry point to the Segment Cache implementation.\n *\n * All code related to the Segment Cache lives `segment-cache-impl` directory.\n * Callers access it through this indirection.\n *\n * This is to ensure the code is dead code eliminated from the bundle if the\n * flag is disabled.\n *\n * TODO: This is super tedious. Since experimental flags are an essential part\n * of our workflow, we should establish a better pattern for dead code\n * elimination. Ideally it would be done at the bundler level, like how React's\n * build process works. In the React repo, you don't even need to add any extra\n * configuration per experiment — if the code is not reachable, it gets stripped\n * from the build automatically by Rollup. Or, shorter term, we could stub out\n * experimental modules at build time by updating the build config, i.e. a more\n * automated version of what I'm doing manually in this file.\n */\n\nexport type { NavigationResult } from './segment-cache-impl/navigation'\nexport type { PrefetchTask } from './segment-cache-impl/scheduler'\n\nconst notEnabled: any = () => {\n throw new Error(\n 'Segment Cache experiment is not enabled. This is a bug in Next.js.'\n )\n}\n\nexport const prefetch: typeof import('./segment-cache-impl/prefetch').prefetch =\n process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? function (...args) {\n return (\n require('./segment-cache-impl/prefetch') as typeof import('./segment-cache-impl/prefetch')\n ).prefetch(...args)\n }\n : notEnabled\n\nexport const navigate: typeof import('./segment-cache-impl/navigation').navigate =\n process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? function (...args) {\n return (\n require('./segment-cache-impl/navigation') as typeof import('./segment-cache-impl/navigation')\n ).navigate(...args)\n }\n : notEnabled\n\nexport const revalidateEntireCache: typeof import('./segment-cache-impl/cache').revalidateEntireCache =\n process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? function (...args) {\n return (\n require('./segment-cache-impl/cache') as typeof import('./segment-cache-impl/cache')\n ).revalidateEntireCache(...args)\n }\n : notEnabled\n\nexport const getCurrentCacheVersion: typeof import('./segment-cache-impl/cache').getCurrentCacheVersion =\n process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? function (...args) {\n return (\n require('./segment-cache-impl/cache') as typeof import('./segment-cache-impl/cache')\n ).getCurrentCacheVersion(...args)\n }\n : notEnabled\n\nexport const schedulePrefetchTask: typeof import('./segment-cache-impl/scheduler').schedulePrefetchTask =\n process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? function (...args) {\n return (\n require('./segment-cache-impl/scheduler') as typeof import('./segment-cache-impl/scheduler')\n ).schedulePrefetchTask(...args)\n }\n : notEnabled\n\nexport const cancelPrefetchTask: typeof import('./segment-cache-impl/scheduler').cancelPrefetchTask =\n process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? function (...args) {\n return (\n require('./segment-cache-impl/scheduler') as typeof import('./segment-cache-impl/scheduler')\n ).cancelPrefetchTask(...args)\n }\n : notEnabled\n\nexport const reschedulePrefetchTask: typeof import('./segment-cache-impl/scheduler').reschedulePrefetchTask =\n process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? function (...args) {\n return (\n require('./segment-cache-impl/scheduler') as typeof import('./segment-cache-impl/scheduler')\n ).reschedulePrefetchTask(...args)\n }\n : notEnabled\n\nexport const isPrefetchTaskDirty: typeof import('./segment-cache-impl/scheduler').isPrefetchTaskDirty =\n process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? function (...args) {\n return (\n require('./segment-cache-impl/scheduler') as typeof import('./segment-cache-impl/scheduler')\n ).isPrefetchTaskDirty(...args)\n }\n : notEnabled\n\nexport const createCacheKey: typeof import('./segment-cache-impl/cache-key').createCacheKey =\n process.env.__NEXT_CLIENT_SEGMENT_CACHE\n ? function (...args) {\n return (\n require('./segment-cache-impl/cache-key') as typeof import('./segment-cache-impl/cache-key')\n ).createCacheKey(...args)\n }\n : notEnabled\n\n/**\n * Below are public constants. They're small enough that we don't need to\n * DCE them.\n */\n\nexport const enum NavigationResultTag {\n MPA,\n Success,\n NoOp,\n Async,\n}\n\n/**\n * The priority of the prefetch task. Higher numbers are higher priority.\n */\nexport const enum PrefetchPriority {\n /**\n * Assigned to the most recently hovered/touched link. Special network\n * bandwidth is reserved for this task only. There's only ever one Intent-\n * priority task at a time; when a new Intent task is scheduled, the previous\n * one is bumped down to Default.\n */\n Intent = 2,\n /**\n * The default priority for prefetch tasks.\n */\n Default = 1,\n /**\n * Assigned to tasks when they spawn non-blocking background work, like\n * revalidating a partially cached entry to see if more data is available.\n */\n Background = 0,\n}\n","import type { FlightRouterState } from '../../../server/app-render/types'\nimport { handleExternalUrl } from './reducers/navigate-reducer'\nimport type {\n ReadonlyReducerState,\n ReducerActions,\n} from './router-reducer-types'\n\n/**\n * Handles the case where the client router attempted to patch the tree but, due to a mismatch, the patch failed.\n * This will perform an MPA navigation to return the router to a valid state.\n */\nexport function handleSegmentMismatch(\n state: ReadonlyReducerState,\n action: ReducerActions,\n treePatch: FlightRouterState\n) {\n if (process.env.NODE_ENV === 'development') {\n console.warn(\n 'Performing hard navigation because your application experienced an unrecoverable error. If this keeps occurring, please file a Next.js issue.\\n\\n' +\n 'Reason: Segment mismatch\\n' +\n `Last Action: ${action.type}\\n\\n` +\n `Current Tree: ${JSON.stringify(state.tree)}\\n\\n` +\n `Tree Patch Payload: ${JSON.stringify(treePatch)}`\n )\n }\n\n return handleExternalUrl(state, {}, state.canonicalUrl, true)\n}\n","/** @internal */\nclass ReadonlyURLSearchParamsError extends Error {\n constructor() {\n super(\n 'Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams'\n )\n }\n}\n\nclass ReadonlyURLSearchParams extends URLSearchParams {\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n append() {\n throw new ReadonlyURLSearchParamsError()\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n delete() {\n throw new ReadonlyURLSearchParamsError()\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n set() {\n throw new ReadonlyURLSearchParamsError()\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */\n sort() {\n throw new ReadonlyURLSearchParamsError()\n }\n}\n\nexport { redirect, permanentRedirect } from './redirect'\nexport { RedirectType } from './redirect-error'\nexport { notFound } from './not-found'\nexport { forbidden } from './forbidden'\nexport { unauthorized } from './unauthorized'\nexport { unstable_rethrow } from './unstable-rethrow'\nexport { ReadonlyURLSearchParams }\n","import type { CacheNode } from '../../../shared/lib/app-router-context.shared-runtime'\nimport type {\n FlightRouterState,\n CacheNodeSeedData,\n} from '../../../server/app-render/types'\nimport { createRouterCacheKey } from './create-router-cache-key'\nimport {\n PrefetchCacheEntryStatus,\n type PrefetchCacheEntry,\n} from './router-reducer-types'\n\nexport function fillLazyItemsTillLeafWithHead(\n navigatedAt: number,\n newCache: CacheNode,\n existingCache: CacheNode | undefined,\n routerState: FlightRouterState,\n cacheNodeSeedData: CacheNodeSeedData | null,\n head: React.ReactNode,\n prefetchEntry: PrefetchCacheEntry | undefined\n): void {\n const isLastSegment = Object.keys(routerState[1]).length === 0\n if (isLastSegment) {\n newCache.head = head\n return\n }\n // Remove segment that we got data for so that it is filled in during rendering of rsc.\n for (const key in routerState[1]) {\n const parallelRouteState = routerState[1][key]\n const segmentForParallelRoute = parallelRouteState[0]\n const cacheKey = createRouterCacheKey(segmentForParallelRoute)\n\n // TODO: We should traverse the cacheNodeSeedData tree instead of the router\n // state tree. Ideally, they would always be the same shape, but because of\n // the loading.js pattern, cacheNodeSeedData sometimes only represents a\n // partial tree. That's why this node is sometimes null. Once PPR lands,\n // loading.js will no longer have special behavior and we can traverse the\n // data tree instead.\n //\n // We should also consider merging the router state tree and the data tree\n // in the response format, so that we don't have to send the keys twice.\n // Then the client can convert them into separate representations.\n const parallelSeedData =\n cacheNodeSeedData !== null && cacheNodeSeedData[2][key] !== undefined\n ? cacheNodeSeedData[2][key]\n : null\n if (existingCache) {\n const existingParallelRoutesCacheNode =\n existingCache.parallelRoutes.get(key)\n if (existingParallelRoutesCacheNode) {\n const hasReusablePrefetch =\n prefetchEntry?.kind === 'auto' &&\n prefetchEntry.status === PrefetchCacheEntryStatus.reusable\n\n let parallelRouteCacheNode = new Map(existingParallelRoutesCacheNode)\n const existingCacheNode = parallelRouteCacheNode.get(cacheKey)\n let newCacheNode: CacheNode\n if (parallelSeedData !== null) {\n // New data was sent from the server.\n const seedNode = parallelSeedData[1]\n const loading = parallelSeedData[3]\n newCacheNode = {\n lazyData: null,\n rsc: seedNode,\n // This is a PPR-only field. When PPR is enabled, we shouldn't hit\n // this path during a navigation, but until PPR is fully implemented\n // yet it's possible the existing node does have a non-null\n // `prefetchRsc`. As an incremental step, we'll just de-opt to the\n // old behavior — no PPR value.\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n loading,\n parallelRoutes: new Map(existingCacheNode?.parallelRoutes),\n navigatedAt,\n }\n } else if (hasReusablePrefetch && existingCacheNode) {\n // No new data was sent from the server, but the existing cache node\n // was prefetched, so we should reuse that.\n newCacheNode = {\n lazyData: existingCacheNode.lazyData,\n rsc: existingCacheNode.rsc,\n // This is a PPR-only field. Unlike the previous branch, since we're\n // just cloning the existing cache node, we might as well keep the\n // PPR value, if it exists.\n prefetchRsc: existingCacheNode.prefetchRsc,\n head: existingCacheNode.head,\n prefetchHead: existingCacheNode.prefetchHead,\n parallelRoutes: new Map(existingCacheNode.parallelRoutes),\n loading: existingCacheNode.loading,\n } as CacheNode\n } else {\n // No data available for this node. This will trigger a lazy fetch\n // during render.\n newCacheNode = {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(existingCacheNode?.parallelRoutes),\n loading: null,\n navigatedAt,\n }\n }\n\n // Overrides the cache key with the new cache node.\n parallelRouteCacheNode.set(cacheKey, newCacheNode)\n // Traverse deeper to apply the head / fill lazy items till the head.\n fillLazyItemsTillLeafWithHead(\n navigatedAt,\n newCacheNode,\n existingCacheNode,\n parallelRouteState,\n parallelSeedData ? parallelSeedData : null,\n head,\n prefetchEntry\n )\n\n newCache.parallelRoutes.set(key, parallelRouteCacheNode)\n continue\n }\n }\n\n let newCacheNode: CacheNode\n if (parallelSeedData !== null) {\n // New data was sent from the server.\n const seedNode = parallelSeedData[1]\n const loading = parallelSeedData[3]\n newCacheNode = {\n lazyData: null,\n rsc: seedNode,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading,\n navigatedAt,\n }\n } else {\n // No data available for this node. This will trigger a lazy fetch\n // during render.\n newCacheNode = {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt,\n }\n }\n\n const existingParallelRoutes = newCache.parallelRoutes.get(key)\n if (existingParallelRoutes) {\n existingParallelRoutes.set(cacheKey, newCacheNode)\n } else {\n newCache.parallelRoutes.set(key, new Map([[cacheKey, newCacheNode]]))\n }\n\n fillLazyItemsTillLeafWithHead(\n navigatedAt,\n newCacheNode,\n undefined,\n parallelRouteState,\n parallelSeedData,\n head,\n prefetchEntry\n )\n }\n}\n","import { RedirectStatusCode } from './redirect-status-code'\n\nexport const REDIRECT_ERROR_CODE = 'NEXT_REDIRECT'\n\nexport enum RedirectType {\n push = 'push',\n replace = 'replace',\n}\n\nexport type RedirectError = Error & {\n digest: `${typeof REDIRECT_ERROR_CODE};${RedirectType};${string};${RedirectStatusCode};`\n}\n\n/**\n * Checks an error to determine if it's an error generated by the\n * `redirect(url)` helper.\n *\n * @param error the error that may reference a redirect error\n * @returns true if the error is a redirect error\n */\nexport function isRedirectError(error: unknown): error is RedirectError {\n if (\n typeof error !== 'object' ||\n error === null ||\n !('digest' in error) ||\n typeof error.digest !== 'string'\n ) {\n return false\n }\n\n const digest = error.digest.split(';')\n const [errorCode, type] = digest\n const destination = digest.slice(2, -2).join(';')\n const status = digest.at(-2)\n\n const statusCode = Number(status)\n\n return (\n errorCode === REDIRECT_ERROR_CODE &&\n (type === 'replace' || type === 'push') &&\n typeof destination === 'string' &&\n !isNaN(statusCode) &&\n statusCode in RedirectStatusCode\n )\n}\n","/*\n This is a simple promise queue that allows you to limit the number of concurrent promises\n that are running at any given time. It's used to limit the number of concurrent\n prefetch requests that are being made to the server but could be used for other\n things as well.\n*/\nexport class PromiseQueue {\n #maxConcurrency: number\n #runningCount: number\n #queue: Array<{\n promiseFn: Promise<any>\n task: () => void\n }>\n\n constructor(maxConcurrency = 5) {\n this.#maxConcurrency = maxConcurrency\n this.#runningCount = 0\n this.#queue = []\n }\n\n enqueue<T>(promiseFn: () => Promise<T>): Promise<T> {\n let taskResolve: (value: T | PromiseLike<T>) => void\n let taskReject: (reason?: any) => void\n\n const taskPromise = new Promise((resolve, reject) => {\n taskResolve = resolve\n taskReject = reject\n }) as Promise<T>\n\n const task = async () => {\n try {\n this.#runningCount++\n const result = await promiseFn()\n taskResolve(result)\n } catch (error) {\n taskReject(error)\n } finally {\n this.#runningCount--\n this.#processNext()\n }\n }\n\n const enqueueResult = { promiseFn: taskPromise, task }\n // wonder if we should take a LIFO approach here\n this.#queue.push(enqueueResult)\n this.#processNext()\n\n return taskPromise\n }\n\n bump(promiseFn: Promise<any>) {\n const index = this.#queue.findIndex((item) => item.promiseFn === promiseFn)\n\n if (index > -1) {\n const bumpedItem = this.#queue.splice(index, 1)[0]\n this.#queue.unshift(bumpedItem)\n this.#processNext(true)\n }\n }\n\n #processNext(forced = false) {\n if (\n (this.#runningCount < this.#maxConcurrency || forced) &&\n this.#queue.length > 0\n ) {\n this.#queue.shift()?.task()\n }\n }\n}\n","import { createHrefFromUrl } from '../create-href-from-url'\nimport type {\n ReadonlyReducerState,\n ReducerState,\n RestoreAction,\n} from '../router-reducer-types'\nimport { extractPathFromFlightRouterState } from '../compute-changed-path'\nimport { updateCacheNodeOnPopstateRestoration } from '../ppr-navigations'\n\nexport function restoreReducer(\n state: ReadonlyReducerState,\n action: RestoreAction\n): ReducerState {\n const { url, tree } = action\n const href = createHrefFromUrl(url)\n // This action is used to restore the router state from the history state.\n // However, it's possible that the history state no longer contains the `FlightRouterState`.\n // We will copy over the internal state on pushState/replaceState events, but if a history entry\n // occurred before hydration, or if the user navigated to a hash using a regular anchor link,\n // the history state will not contain the `FlightRouterState`.\n // In this case, we'll continue to use the existing tree so the router doesn't get into an invalid state.\n const treeToRestore = tree || state.tree\n\n const oldCache = state.cache\n const newCache = process.env.__NEXT_PPR\n ? // When PPR is enabled, we update the cache to drop the prefetch\n // data for any segment whose dynamic data was already received. This\n // prevents an unnecessary flash back to PPR state during a\n // back/forward navigation.\n updateCacheNodeOnPopstateRestoration(oldCache, treeToRestore)\n : oldCache\n\n return {\n // Set canonical url\n canonicalUrl: href,\n pushRef: {\n pendingPush: false,\n mpaNavigation: false,\n // Ensures that the custom history state that was set is preserved when applying this update.\n preserveCustomHistoryState: true,\n },\n focusAndScrollRef: state.focusAndScrollRef,\n cache: newCache,\n prefetchCache: state.prefetchCache,\n // Restore provided tree\n tree: treeToRestore,\n nextUrl: extractPathFromFlightRouterState(treeToRestore) ?? url.pathname,\n }\n}\n","'use client'\n\nimport type { ParsedUrlQuery } from 'querystring'\nimport { InvariantError } from '../../shared/lib/invariant-error'\n\nimport type { Params } from '../../server/request/params'\n\n/**\n * When the Page is a client component we send the params and searchParams to this client wrapper\n * where they are turned into dynamically tracked values before being passed to the actual Page component.\n *\n * additionally we may send promises representing the params and searchParams. We don't ever use these passed\n * values but it can be necessary for the sender to send a Promise that doesn't resolve in certain situations.\n * It is up to the caller to decide if the promises are needed.\n */\nexport function ClientPageRoot({\n Component,\n searchParams,\n params,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n promises,\n}: {\n Component: React.ComponentType<any>\n searchParams: ParsedUrlQuery\n params: Params\n promises?: Array<Promise<any>>\n}) {\n if (typeof window === 'undefined') {\n const { workAsyncStorage } =\n require('../../server/app-render/work-async-storage.external') as typeof import('../../server/app-render/work-async-storage.external')\n\n let clientSearchParams: Promise<ParsedUrlQuery>\n let clientParams: Promise<Params>\n // We are going to instrument the searchParams prop with tracking for the\n // appropriate context. We wrap differently in prerendering vs rendering\n const store = workAsyncStorage.getStore()\n if (!store) {\n throw new InvariantError(\n 'Expected workStore to exist when handling searchParams in a client Page.'\n )\n }\n\n const { createSearchParamsFromClient } =\n require('../../server/request/search-params') as typeof import('../../server/request/search-params')\n clientSearchParams = createSearchParamsFromClient(searchParams, store)\n\n const { createParamsFromClient } =\n require('../../server/request/params') as typeof import('../../server/request/params')\n clientParams = createParamsFromClient(params, store)\n\n return <Component params={clientParams} searchParams={clientSearchParams} />\n } else {\n const { createRenderSearchParamsFromClient } =\n require('../request/search-params.browser') as typeof import('../request/search-params.browser')\n const clientSearchParams = createRenderSearchParamsFromClient(searchParams)\n const { createRenderParamsFromClient } =\n require('../request/params.browser') as typeof import('../request/params.browser')\n const clientParams = createRenderParamsFromClient(params)\n\n return <Component params={clientParams} searchParams={clientSearchParams} />\n }\n}\n","export const createRenderSearchParamsFromClient =\n process.env.NODE_ENV === 'development'\n ? (\n require('./search-params.browser.dev') as typeof import('./search-params.browser.dev')\n ).createRenderSearchParamsFromClient\n : (\n require('./search-params.browser.prod') as typeof import('./search-params.browser.prod')\n ).createRenderSearchParamsFromClient\n","import type { CacheNode } from '../../../shared/lib/app-router-context.shared-runtime'\nimport type {\n FlightRouterState,\n FlightSegmentPath,\n} from '../../../server/app-render/types'\nimport type { FetchServerResponseResult } from './fetch-server-response'\n\nexport const ACTION_REFRESH = 'refresh'\nexport const ACTION_NAVIGATE = 'navigate'\nexport const ACTION_RESTORE = 'restore'\nexport const ACTION_SERVER_PATCH = 'server-patch'\nexport const ACTION_PREFETCH = 'prefetch'\nexport const ACTION_HMR_REFRESH = 'hmr-refresh'\nexport const ACTION_SERVER_ACTION = 'server-action'\n\nexport type RouterChangeByServerResponse = ({\n navigatedAt,\n previousTree,\n serverResponse,\n}: {\n navigatedAt: number\n previousTree: FlightRouterState\n serverResponse: FetchServerResponseResult\n}) => void\n\nexport interface Mutable {\n mpaNavigation?: boolean\n patchedTree?: FlightRouterState\n canonicalUrl?: string\n scrollableSegments?: FlightSegmentPath[]\n pendingPush?: boolean\n cache?: CacheNode\n prefetchCache?: AppRouterState['prefetchCache']\n hashFragment?: string\n shouldScroll?: boolean\n preserveCustomHistoryState?: boolean\n onlyHashChange?: boolean\n}\n\nexport interface ServerActionMutable extends Mutable {\n inFlightServerAction?: Promise<any> | null\n}\n\n/**\n * Refresh triggers a refresh of the full page data.\n * - fetches the Flight data and fills rsc at the root of the cache.\n * - The router state is updated at the root.\n */\nexport interface RefreshAction {\n type: typeof ACTION_REFRESH\n origin: Location['origin']\n}\n\nexport interface HmrRefreshAction {\n type: typeof ACTION_HMR_REFRESH\n origin: Location['origin']\n}\n\nexport type ServerActionDispatcher = (\n args: Omit<\n ServerActionAction,\n 'type' | 'mutable' | 'navigate' | 'changeByServerResponse' | 'cache'\n >\n) => void\n\nexport interface ServerActionAction {\n type: typeof ACTION_SERVER_ACTION\n actionId: string\n actionArgs: any[]\n resolve: (value: any) => void\n reject: (reason?: any) => void\n}\n\n/**\n * Navigate triggers a navigation to the provided url. It supports two types: `push` and `replace`.\n *\n * `navigateType`:\n * - `push` - pushes a new history entry in the browser history\n * - `replace` - replaces the current history entry in the browser history\n *\n * Navigate has multiple cache heuristics:\n * - page was prefetched\n * - Apply router state tree from prefetch\n * - Apply Flight data from prefetch to the cache\n * - If Flight data is a string, it's a redirect and the state is updated to trigger a redirect\n * - Check if hard navigation is needed\n * - Hard navigation happens when a dynamic parameter below the common layout changed\n * - When hard navigation is needed the cache is invalidated below the flightSegmentPath\n * - The missing cache nodes of the page will be fetched in layout-router and trigger the SERVER_PATCH action\n * - If hard navigation is not needed\n * - The cache is reused\n * - If any cache nodes are missing they'll be fetched in layout-router and trigger the SERVER_PATCH action\n * - page was not prefetched\n * - The navigate was called from `next/router` (`router.push()` / `router.replace()`) / `next/link` without prefetched data available (e.g. the prefetch didn't come back from the server before clicking the link)\n * - Flight data is fetched in the reducer (suspends the reducer)\n * - Router state tree is created based on Flight data\n * - Cache is filled based on the Flight data\n *\n * Above steps explain 3 cases:\n * - `soft` - Reuses the existing cache and fetches missing nodes in layout-router.\n * - `hard` - Creates a new cache where cache nodes are removed below the common layout and fetches missing nodes in layout-router.\n * - `optimistic` (explicit no prefetch) - Creates a new cache and kicks off the data fetch in the reducer. The data fetch is awaited in the layout-router.\n */\nexport interface NavigateAction {\n type: typeof ACTION_NAVIGATE\n url: URL\n isExternalUrl: boolean\n locationSearch: Location['search']\n navigateType: 'push' | 'replace'\n shouldScroll: boolean\n allowAliasing: boolean\n}\n\n/**\n * Restore applies the provided router state.\n * - Used for `popstate` (back/forward navigation) where a known router state has to be applied.\n * - Also used when syncing the router state with `pushState`/`replaceState` calls.\n * - Router state is applied as-is from the history state, if available.\n * - If the history state does not contain the router state, the existing router state is used.\n * - If any cache node is missing it will be fetched in layout-router during rendering and the server-patch case.\n * - If existing cache nodes match these are used.\n */\nexport interface RestoreAction {\n type: typeof ACTION_RESTORE\n url: URL\n tree: FlightRouterState | undefined\n}\n\n/**\n * Server-patch applies the provided Flight data to the cache and router tree.\n * - Only triggered in layout-router.\n * - Creates a new cache and router state with the Flight data applied.\n */\nexport interface ServerPatchAction {\n type: typeof ACTION_SERVER_PATCH\n navigatedAt: number\n serverResponse: FetchServerResponseResult\n previousTree: FlightRouterState\n}\n\n/**\n * PrefetchKind defines the type of prefetching that should be done.\n * - `auto` - if the page is dynamic, prefetch the page data partially, if static prefetch the page data fully.\n * - `full` - prefetch the page data fully.\n * - `temporary` - a temporary prefetch entry is added to the cache, this is used when prefetch={false} is used in next/link or when you push a route programmatically.\n */\n\nexport enum PrefetchKind {\n AUTO = 'auto',\n FULL = 'full',\n TEMPORARY = 'temporary',\n}\n\n/**\n * Prefetch adds the provided FlightData to the prefetch cache\n * - Creates the router state tree based on the patch in FlightData\n * - Adds the FlightData to the prefetch cache\n * - In ACTION_NAVIGATE the prefetch cache is checked and the router state tree and FlightData are applied.\n */\nexport interface PrefetchAction {\n type: typeof ACTION_PREFETCH\n url: URL\n kind: PrefetchKind\n}\n\nexport interface PushRef {\n /**\n * If the app-router should push a new history entry in app-router's useEffect()\n */\n pendingPush: boolean\n /**\n * Multi-page navigation through location.href.\n */\n mpaNavigation: boolean\n /**\n * Skip applying the router state to the browser history state.\n */\n preserveCustomHistoryState: boolean\n}\n\nexport type FocusAndScrollRef = {\n /**\n * If focus and scroll should be set in the layout-router's useEffect()\n */\n apply: boolean\n /**\n * The hash fragment that should be scrolled to.\n */\n hashFragment: string | null\n /**\n * The paths of the segments that should be focused.\n */\n segmentPaths: FlightSegmentPath[]\n /**\n * If only the URLs hash fragment changed\n */\n onlyHashChange: boolean\n}\n\nexport type PrefetchCacheEntry = {\n treeAtTimeOfPrefetch: FlightRouterState\n data: Promise<FetchServerResponseResult>\n kind: PrefetchKind\n prefetchTime: number\n staleTime: number\n lastUsedTime: number | null\n key: string\n status: PrefetchCacheEntryStatus\n url: URL\n}\n\nexport enum PrefetchCacheEntryStatus {\n fresh = 'fresh',\n reusable = 'reusable',\n expired = 'expired',\n stale = 'stale',\n}\n\n/**\n * Handles keeping the state of app-router.\n */\nexport type AppRouterState = {\n /**\n * The router state, this is written into the history state in app-router using replaceState/pushState.\n * - Has to be serializable as it is written into the history state.\n * - Holds which segments and parallel routes are shown on the screen.\n */\n tree: FlightRouterState\n /**\n * The cache holds React nodes for every segment that is shown on screen as well as previously shown segments.\n * It also holds in-progress data requests.\n * Prefetched data is stored separately in `prefetchCache`, that is applied during ACTION_NAVIGATE.\n */\n cache: CacheNode\n /**\n * Cache that holds prefetched Flight responses keyed by url.\n */\n prefetchCache: Map<string, PrefetchCacheEntry>\n /**\n * Decides if the update should create a new history entry and if the navigation has to trigger a browser navigation.\n */\n pushRef: PushRef\n /**\n * Decides if the update should apply scroll and focus management.\n */\n focusAndScrollRef: FocusAndScrollRef\n /**\n * The canonical url that is pushed/replaced.\n * - This is the url you see in the browser.\n */\n canonicalUrl: string\n /**\n * The underlying \"url\" representing the UI state, which is used for intercepting routes.\n */\n nextUrl: string | null\n}\n\nexport type ReadonlyReducerState = Readonly<AppRouterState>\nexport type ReducerState = Promise<AppRouterState> | AppRouterState\nexport type ReducerActions = Readonly<\n | RefreshAction\n | NavigateAction\n | RestoreAction\n | ServerPatchAction\n | PrefetchAction\n | HmrRefreshAction\n | ServerActionAction\n>\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"getDeploymentIdQueryOrEmptyString\", {\n enumerable: true,\n get: function() {\n return getDeploymentIdQueryOrEmptyString;\n }\n});\nfunction getDeploymentIdQueryOrEmptyString() {\n if (process.env.NEXT_DEPLOYMENT_ID) {\n return `?dpl=${process.env.NEXT_DEPLOYMENT_ID}`;\n }\n return '';\n}\n\n//# sourceMappingURL=deployment-id.js.map","import type { CacheNode } from '../../../shared/lib/app-router-context.shared-runtime'\nimport type { FlightSegmentPath } from '../../../server/app-render/types'\nimport { createRouterCacheKey } from './create-router-cache-key'\nimport { getNextFlightSegmentPath } from '../../flight-data-helpers'\n\n/**\n * Fill cache up to the end of the flightSegmentPath, invalidating anything below it.\n */\nexport function invalidateCacheBelowFlightSegmentPath(\n newCache: CacheNode,\n existingCache: CacheNode,\n flightSegmentPath: FlightSegmentPath\n): void {\n const isLastEntry = flightSegmentPath.length <= 2\n const [parallelRouteKey, segment] = flightSegmentPath\n\n const cacheKey = createRouterCacheKey(segment)\n\n const existingChildSegmentMap =\n existingCache.parallelRoutes.get(parallelRouteKey)\n\n if (!existingChildSegmentMap) {\n // Bailout because the existing cache does not have the path to the leaf node\n // Will trigger lazy fetch in layout-router because of missing segment\n return\n }\n\n let childSegmentMap = newCache.parallelRoutes.get(parallelRouteKey)\n if (!childSegmentMap || childSegmentMap === existingChildSegmentMap) {\n childSegmentMap = new Map(existingChildSegmentMap)\n newCache.parallelRoutes.set(parallelRouteKey, childSegmentMap)\n }\n\n // In case of last entry don't copy further down.\n if (isLastEntry) {\n childSegmentMap.delete(cacheKey)\n return\n }\n\n const existingChildCacheNode = existingChildSegmentMap.get(cacheKey)\n let childCacheNode = childSegmentMap.get(cacheKey)\n\n if (!childCacheNode || !existingChildCacheNode) {\n // Bailout because the existing cache does not have the path to the leaf node\n // Will trigger lazy fetch in layout-router because of missing segment\n return\n }\n\n if (childCacheNode === existingChildCacheNode) {\n childCacheNode = {\n lazyData: childCacheNode.lazyData,\n rsc: childCacheNode.rsc,\n prefetchRsc: childCacheNode.prefetchRsc,\n head: childCacheNode.head,\n prefetchHead: childCacheNode.prefetchHead,\n parallelRoutes: new Map(childCacheNode.parallelRoutes),\n } as CacheNode\n childSegmentMap.set(cacheKey, childCacheNode)\n }\n\n invalidateCacheBelowFlightSegmentPath(\n childCacheNode,\n existingChildCacheNode,\n getNextFlightSegmentPath(flightSegmentPath)\n )\n}\n","import type { CacheNode } from '../../../../shared/lib/app-router-context.shared-runtime'\nimport type {\n FlightRouterState,\n FlightSegmentPath,\n} from '../../../../server/app-render/types'\nimport { fetchServerResponse } from '../fetch-server-response'\nimport { createHrefFromUrl } from '../create-href-from-url'\nimport { invalidateCacheBelowFlightSegmentPath } from '../invalidate-cache-below-flight-segmentpath'\nimport { applyRouterStatePatchToTree } from '../apply-router-state-patch-to-tree'\nimport { shouldHardNavigate } from '../should-hard-navigate'\nimport { isNavigatingToNewRootLayout } from '../is-navigating-to-new-root-layout'\nimport {\n PrefetchCacheEntryStatus,\n type Mutable,\n type NavigateAction,\n type ReadonlyReducerState,\n type ReducerState,\n} from '../router-reducer-types'\nimport { handleMutable } from '../handle-mutable'\nimport { applyFlightData } from '../apply-flight-data'\nimport { prefetchQueue } from './prefetch-reducer'\nimport { createEmptyCacheNode } from '../../app-router'\nimport { DEFAULT_SEGMENT_KEY } from '../../../../shared/lib/segment'\nimport { listenForDynamicRequest, startPPRNavigation } from '../ppr-navigations'\nimport {\n getOrCreatePrefetchCacheEntry,\n prunePrefetchCache,\n} from '../prefetch-cache-utils'\nimport { clearCacheNodeDataForSegmentPath } from '../clear-cache-node-data-for-segment-path'\nimport { handleAliasedPrefetchEntry } from '../aliased-prefetch-navigations'\nimport {\n navigate as navigateUsingSegmentCache,\n NavigationResultTag,\n type NavigationResult,\n} from '../../segment-cache'\n\nexport function handleExternalUrl(\n state: ReadonlyReducerState,\n mutable: Mutable,\n url: string,\n pendingPush: boolean\n) {\n mutable.mpaNavigation = true\n mutable.canonicalUrl = url\n mutable.pendingPush = pendingPush\n mutable.scrollableSegments = undefined\n\n return handleMutable(state, mutable)\n}\n\nfunction generateSegmentsFromPatch(\n flightRouterPatch: FlightRouterState\n): FlightSegmentPath[] {\n const segments: FlightSegmentPath[] = []\n const [segment, parallelRoutes] = flightRouterPatch\n\n if (Object.keys(parallelRoutes).length === 0) {\n return [[segment]]\n }\n\n for (const [parallelRouteKey, parallelRoute] of Object.entries(\n parallelRoutes\n )) {\n for (const childSegment of generateSegmentsFromPatch(parallelRoute)) {\n // If the segment is empty, it means we are at the root of the tree\n if (segment === '') {\n segments.push([parallelRouteKey, ...childSegment])\n } else {\n segments.push([segment, parallelRouteKey, ...childSegment])\n }\n }\n }\n\n return segments\n}\n\nfunction triggerLazyFetchForLeafSegments(\n newCache: CacheNode,\n currentCache: CacheNode,\n flightSegmentPath: FlightSegmentPath,\n treePatch: FlightRouterState\n) {\n let appliedPatch = false\n\n newCache.rsc = currentCache.rsc\n newCache.prefetchRsc = currentCache.prefetchRsc\n newCache.loading = currentCache.loading\n newCache.parallelRoutes = new Map(currentCache.parallelRoutes)\n\n const segmentPathsToFill = generateSegmentsFromPatch(treePatch).map(\n (segment) => [...flightSegmentPath, ...segment]\n )\n\n for (const segmentPaths of segmentPathsToFill) {\n clearCacheNodeDataForSegmentPath(newCache, currentCache, segmentPaths)\n\n appliedPatch = true\n }\n\n return appliedPatch\n}\n\nfunction handleNavigationResult(\n url: URL,\n state: ReadonlyReducerState,\n mutable: Mutable,\n pendingPush: boolean,\n result: NavigationResult\n): ReducerState {\n switch (result.tag) {\n case NavigationResultTag.MPA: {\n // Perform an MPA navigation.\n const newUrl = result.data\n return handleExternalUrl(state, mutable, newUrl, pendingPush)\n }\n case NavigationResultTag.NoOp: {\n // The server responded with no change to the current page. However, if\n // the URL changed, we still need to update that.\n const newCanonicalUrl = result.data.canonicalUrl\n mutable.canonicalUrl = newCanonicalUrl\n\n // Check if the only thing that changed was the hash fragment.\n const oldUrl = new URL(state.canonicalUrl, url)\n const onlyHashChange =\n // We don't need to compare the origins, because client-driven\n // navigations are always same-origin.\n url.pathname === oldUrl.pathname &&\n url.search === oldUrl.search &&\n url.hash !== oldUrl.hash\n if (onlyHashChange) {\n // The only updated part of the URL is the hash.\n mutable.onlyHashChange = true\n mutable.shouldScroll = result.data.shouldScroll\n mutable.hashFragment = url.hash\n // Setting this to an empty array triggers a scroll for all new and\n // updated segments. See `ScrollAndFocusHandler` for more details.\n mutable.scrollableSegments = []\n }\n\n return handleMutable(state, mutable)\n }\n case NavigationResultTag.Success: {\n // Received a new result.\n mutable.cache = result.data.cacheNode\n mutable.patchedTree = result.data.flightRouterState\n mutable.canonicalUrl = result.data.canonicalUrl\n mutable.scrollableSegments = result.data.scrollableSegments\n mutable.shouldScroll = result.data.shouldScroll\n mutable.hashFragment = result.data.hash\n return handleMutable(state, mutable)\n }\n case NavigationResultTag.Async: {\n return result.data.then(\n (asyncResult) =>\n handleNavigationResult(url, state, mutable, pendingPush, asyncResult),\n // If the navigation failed, return the current state.\n // TODO: This matches the current behavior but we need to do something\n // better here if the network fails.\n () => {\n return state\n }\n )\n }\n default: {\n result satisfies never\n return state\n }\n }\n}\n\nexport function navigateReducer(\n state: ReadonlyReducerState,\n action: NavigateAction\n): ReducerState {\n const { url, isExternalUrl, navigateType, shouldScroll, allowAliasing } =\n action\n const mutable: Mutable = {}\n const { hash } = url\n const href = createHrefFromUrl(url)\n const pendingPush = navigateType === 'push'\n // we want to prune the prefetch cache on every navigation to avoid it growing too large\n prunePrefetchCache(state.prefetchCache)\n\n mutable.preserveCustomHistoryState = false\n mutable.pendingPush = pendingPush\n\n if (isExternalUrl) {\n return handleExternalUrl(state, mutable, url.toString(), pendingPush)\n }\n\n // Handles case where `<meta http-equiv=\"refresh\">` tag is present,\n // which will trigger an MPA navigation.\n if (document.getElementById('__next-page-redirect')) {\n return handleExternalUrl(state, mutable, href, pendingPush)\n }\n\n if (process.env.__NEXT_CLIENT_SEGMENT_CACHE) {\n // (Very Early Experimental Feature) Segment Cache\n //\n // Bypass the normal prefetch cache and use the new per-segment cache\n // implementation instead. This is only supported if PPR is enabled, too.\n //\n // Temporary glue code between the router reducer and the new navigation\n // implementation. Eventually we'll rewrite the router reducer to a\n // state machine.\n const result = navigateUsingSegmentCache(\n url,\n state.cache,\n state.tree,\n state.nextUrl,\n shouldScroll\n )\n return handleNavigationResult(url, state, mutable, pendingPush, result)\n }\n\n const prefetchValues = getOrCreatePrefetchCacheEntry({\n url,\n nextUrl: state.nextUrl,\n tree: state.tree,\n prefetchCache: state.prefetchCache,\n allowAliasing,\n })\n const { treeAtTimeOfPrefetch, data } = prefetchValues\n\n prefetchQueue.bump(data)\n\n return data.then(\n ({ flightData, canonicalUrl: canonicalUrlOverride, postponed }) => {\n const navigatedAt = Date.now()\n\n let isFirstRead = false\n // we only want to mark this once\n if (!prefetchValues.lastUsedTime) {\n // important: we should only mark the cache node as dirty after we unsuspend from the call above\n prefetchValues.lastUsedTime = navigatedAt\n isFirstRead = true\n }\n\n if (prefetchValues.aliased) {\n // When alias is enabled, search param may not be included in the canonicalUrl.\n // But we want to set url to canonicalUrl so that we use redirected path for fetching dynamic data.\n const urlWithCanonicalPathname = new URL(url.href)\n if (canonicalUrlOverride) {\n urlWithCanonicalPathname.pathname = canonicalUrlOverride.pathname\n }\n\n const result = handleAliasedPrefetchEntry(\n navigatedAt,\n state,\n flightData,\n urlWithCanonicalPathname,\n mutable\n )\n\n // We didn't return new router state because we didn't apply the aliased entry for some reason.\n // We'll re-invoke the navigation handler but ensure that we don't attempt to use the aliased entry. This\n // will create an on-demand prefetch entry.\n if (result === false) {\n return navigateReducer(state, { ...action, allowAliasing: false })\n }\n\n return result\n }\n\n // Handle case when navigating to page in `pages` from `app`\n if (typeof flightData === 'string') {\n return handleExternalUrl(state, mutable, flightData, pendingPush)\n }\n\n const updatedCanonicalUrl = canonicalUrlOverride\n ? createHrefFromUrl(canonicalUrlOverride)\n : href\n\n const onlyHashChange =\n !!hash &&\n state.canonicalUrl.split('#', 1)[0] ===\n updatedCanonicalUrl.split('#', 1)[0]\n\n // If only the hash has changed, the server hasn't sent us any new data. We can just update\n // the mutable properties responsible for URL and scroll handling and return early.\n if (onlyHashChange) {\n mutable.onlyHashChange = true\n mutable.canonicalUrl = updatedCanonicalUrl\n mutable.shouldScroll = shouldScroll\n mutable.hashFragment = hash\n mutable.scrollableSegments = []\n return handleMutable(state, mutable)\n }\n\n let currentTree = state.tree\n let currentCache = state.cache\n let scrollableSegments: FlightSegmentPath[] = []\n for (const normalizedFlightData of flightData) {\n const {\n pathToSegment: flightSegmentPath,\n seedData,\n head,\n isHeadPartial,\n isRootRender,\n } = normalizedFlightData\n let treePatch = normalizedFlightData.tree\n\n // TODO-APP: remove ''\n const flightSegmentPathWithLeadingEmpty = ['', ...flightSegmentPath]\n\n // Create new tree based on the flightSegmentPath and router state patch\n let newTree = applyRouterStatePatchToTree(\n // TODO-APP: remove ''\n flightSegmentPathWithLeadingEmpty,\n currentTree,\n treePatch,\n href\n )\n\n // If the tree patch can't be applied to the current tree then we use the tree at time of prefetch\n // TODO-APP: This should instead fill in the missing pieces in `currentTree` with the data from `treeAtTimeOfPrefetch`, then apply the patch.\n if (newTree === null) {\n newTree = applyRouterStatePatchToTree(\n // TODO-APP: remove ''\n flightSegmentPathWithLeadingEmpty,\n treeAtTimeOfPrefetch,\n treePatch,\n href\n )\n }\n\n if (newTree !== null) {\n if (\n // This is just a paranoid check. When a route is PPRed, the server\n // will send back a static response that's rendered from\n // the root. If for some reason it doesn't, we fall back to the\n // non-PPR implementation.\n // TODO: We should get rid of the else branch and do all navigations\n // via startPPRNavigation. The current structure is just\n // an incremental step.\n seedData &&\n isRootRender &&\n postponed\n ) {\n const task = startPPRNavigation(\n navigatedAt,\n currentCache,\n currentTree,\n treePatch,\n seedData,\n head,\n isHeadPartial,\n false,\n scrollableSegments\n )\n\n if (task !== null) {\n if (task.route === null) {\n // Detected a change to the root layout. Perform an full-\n // page navigation.\n return handleExternalUrl(state, mutable, href, pendingPush)\n }\n // Use the tree computed by startPPRNavigation instead\n // of the one computed by applyRouterStatePatchToTree.\n // TODO: We should remove applyRouterStatePatchToTree\n // from the PPR path entirely.\n const patchedRouterState: FlightRouterState = task.route\n newTree = patchedRouterState\n\n const newCache = task.node\n if (newCache !== null) {\n // We've created a new Cache Node tree that contains a prefetched\n // version of the next page. This can be rendered instantly.\n mutable.cache = newCache\n }\n const dynamicRequestTree = task.dynamicRequestTree\n if (dynamicRequestTree !== null) {\n // The prefetched tree has dynamic holes in it. We initiate a\n // dynamic request to fill them in.\n //\n // Do not block on the result. We'll immediately render the Cache\n // Node tree and suspend on the dynamic parts. When the request\n // comes in, we'll fill in missing data and ping React to\n // re-render. Unlike the lazy fetching model in the non-PPR\n // implementation, this is modeled as a single React update +\n // streaming, rather than multiple top-level updates. (However,\n // even in the new model, we'll still need to sometimes update the\n // root multiple times per navigation, like if the server sends us\n // a different response than we expected. For now, we revert back\n // to the lazy fetching mechanism in that case.)\n const dynamicRequest = fetchServerResponse(\n new URL(updatedCanonicalUrl, url.origin),\n {\n flightRouterState: dynamicRequestTree,\n nextUrl: state.nextUrl,\n }\n )\n\n listenForDynamicRequest(task, dynamicRequest)\n // We store the dynamic request on the `lazyData` property of the CacheNode\n // because we're not going to await the dynamic request here. Since we're not blocking\n // on the dynamic request, `layout-router` will\n // task.node.lazyData = dynamicRequest\n } else {\n // The prefetched tree does not contain dynamic holes — it's\n // fully static. We can skip the dynamic request.\n }\n } else {\n // Nothing changed, so reuse the old cache.\n // TODO: What if the head changed but not any of the segment data?\n // Is that possible? If so, we should clone the whole tree and\n // update the head.\n newTree = treePatch\n }\n } else {\n // The static response does not include any dynamic holes, so\n // there's no need to do a second request.\n // TODO: As an incremental step this just reverts back to the\n // non-PPR implementation. We can simplify this branch further,\n // given that PPR prefetches are always static and return the whole\n // tree. Or in the meantime we could factor it out into a\n // separate function.\n\n if (isNavigatingToNewRootLayout(currentTree, newTree)) {\n return handleExternalUrl(state, mutable, href, pendingPush)\n }\n\n const cache: CacheNode = createEmptyCacheNode()\n let applied = false\n\n if (\n prefetchValues.status === PrefetchCacheEntryStatus.stale &&\n !isFirstRead\n ) {\n // When we have a stale prefetch entry, we only want to re-use the loading state of the route we're navigating to, to support instant loading navigations\n // this will trigger a lazy fetch for the actual page data by nulling the `rsc` and `prefetchRsc` values for page data,\n // while copying over the `loading` for the segment that contains the page data.\n // We only do this on subsequent reads, as otherwise there'd be no loading data to re-use.\n\n // We skip this branch if only the hash fragment has changed, as we don't want to trigger a lazy fetch in that case\n applied = triggerLazyFetchForLeafSegments(\n cache,\n currentCache,\n flightSegmentPath,\n treePatch\n )\n // since we re-used the stale cache's loading state & refreshed the data,\n // update the `lastUsedTime` so that it can continue to be re-used for the next 30s\n prefetchValues.lastUsedTime = navigatedAt\n } else {\n applied = applyFlightData(\n navigatedAt,\n currentCache,\n cache,\n normalizedFlightData,\n prefetchValues\n )\n }\n\n const hardNavigate = shouldHardNavigate(\n // TODO-APP: remove ''\n flightSegmentPathWithLeadingEmpty,\n currentTree\n )\n\n if (hardNavigate) {\n // Copy rsc for the root node of the cache.\n cache.rsc = currentCache.rsc\n cache.prefetchRsc = currentCache.prefetchRsc\n\n invalidateCacheBelowFlightSegmentPath(\n cache,\n currentCache,\n flightSegmentPath\n )\n // Ensure the existing cache value is used when the cache was not invalidated.\n mutable.cache = cache\n } else if (applied) {\n mutable.cache = cache\n // If we applied the cache, we update the \"current cache\" value so any other\n // segments in the FlightDataPath will be able to reference the updated cache.\n currentCache = cache\n }\n\n for (const subSegment of generateSegmentsFromPatch(treePatch)) {\n const scrollableSegmentPath = [\n ...flightSegmentPath,\n ...subSegment,\n ]\n // Filter out the __DEFAULT__ paths as they shouldn't be scrolled to in this case.\n if (\n scrollableSegmentPath[scrollableSegmentPath.length - 1] !==\n DEFAULT_SEGMENT_KEY\n ) {\n scrollableSegments.push(scrollableSegmentPath)\n }\n }\n }\n\n currentTree = newTree\n }\n }\n\n mutable.patchedTree = currentTree\n mutable.canonicalUrl = updatedCanonicalUrl\n mutable.scrollableSegments = scrollableSegments\n mutable.hashFragment = hash\n mutable.shouldScroll = shouldScroll\n\n return handleMutable(state, mutable)\n },\n () => state\n )\n}\n","import type { FlightRouterState } from '../../../../server/app-render/types'\nimport { isInterceptionRouteAppPath } from '../../../../shared/lib/router/utils/interception-routes'\n\nexport function hasInterceptionRouteInCurrentTree([\n segment,\n parallelRoutes,\n]: FlightRouterState): boolean {\n // If we have a dynamic segment, it's marked as an interception route by the presence of the `i` suffix.\n if (Array.isArray(segment) && (segment[2] === 'di' || segment[2] === 'ci')) {\n return true\n }\n\n // If segment is not an array, apply the existing string-based check\n if (typeof segment === 'string' && isInterceptionRouteAppPath(segment)) {\n return true\n }\n\n // Iterate through parallelRoutes if they exist\n if (parallelRoutes) {\n for (const key in parallelRoutes) {\n if (hasInterceptionRouteInCurrentTree(parallelRoutes[key])) {\n return true\n }\n }\n }\n\n return false\n}\n","/**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\n\"use strict\";\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);\n else break a;\n }\n}\nfunction peek(heap) {\n return 0 === heap.length ? null : heap[0];\n}\nfunction pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);\n else break a;\n }\n }\n return first;\n}\nfunction compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n}\nexports.unstable_now = void 0;\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\nvar taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout = \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate = \"undefined\" !== typeof setImmediate ? setImmediate : null;\nfunction advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n}\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n}\nvar isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\nfunction shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n}\nfunction performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime && shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n}\nvar schedulePerformWorkUntilDeadline;\nif (\"function\" === typeof localSetImmediate)\n schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\nelse if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n} else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\nfunction requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n}\nexports.unstable_IdlePriority = 5;\nexports.unstable_ImmediatePriority = 1;\nexports.unstable_LowPriority = 4;\nexports.unstable_NormalPriority = 3;\nexports.unstable_Profiling = null;\nexports.unstable_UserBlockingPriority = 2;\nexports.unstable_cancelCallback = function (task) {\n task.callback = null;\n};\nexports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n};\nexports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n};\nexports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_requestPaint = function () {\n needsPaint = !0;\n};\nexports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n};\nexports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n};\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n};\n","import type {\n FlightRouterState,\n FlightSegmentPath,\n} from '../../../server/app-render/types'\nimport { DEFAULT_SEGMENT_KEY } from '../../../shared/lib/segment'\nimport { getNextFlightSegmentPath } from '../../flight-data-helpers'\nimport { matchSegment } from '../match-segments'\nimport { addRefreshMarkerToActiveParallelSegments } from './refetch-inactive-parallel-segments'\n\n/**\n * Deep merge of the two router states. Parallel route keys are preserved if the patch doesn't have them.\n */\nfunction applyPatch(\n initialTree: FlightRouterState,\n patchTree: FlightRouterState\n): FlightRouterState {\n const [initialSegment, initialParallelRoutes] = initialTree\n const [patchSegment, patchParallelRoutes] = patchTree\n\n // if the applied patch segment is __DEFAULT__ then it can be ignored in favor of the initial tree\n // this is because the __DEFAULT__ segment is used as a placeholder on navigation\n if (\n patchSegment === DEFAULT_SEGMENT_KEY &&\n initialSegment !== DEFAULT_SEGMENT_KEY\n ) {\n return initialTree\n }\n\n if (matchSegment(initialSegment, patchSegment)) {\n const newParallelRoutes: FlightRouterState[1] = {}\n for (const key in initialParallelRoutes) {\n const isInPatchTreeParallelRoutes =\n typeof patchParallelRoutes[key] !== 'undefined'\n if (isInPatchTreeParallelRoutes) {\n newParallelRoutes[key] = applyPatch(\n initialParallelRoutes[key],\n patchParallelRoutes[key]\n )\n } else {\n newParallelRoutes[key] = initialParallelRoutes[key]\n }\n }\n\n for (const key in patchParallelRoutes) {\n if (newParallelRoutes[key]) {\n continue\n }\n\n newParallelRoutes[key] = patchParallelRoutes[key]\n }\n\n const tree: FlightRouterState = [initialSegment, newParallelRoutes]\n\n // Copy over the existing tree\n if (initialTree[2]) {\n tree[2] = initialTree[2]\n }\n\n if (initialTree[3]) {\n tree[3] = initialTree[3]\n }\n\n if (initialTree[4]) {\n tree[4] = initialTree[4]\n }\n\n return tree\n }\n\n return patchTree\n}\n\n/**\n * Apply the router state from the Flight response, but skip patching default segments.\n * Useful for patching the router cache when navigating, where we persist the existing default segment if there isn't a new one.\n * Creates a new router state tree.\n */\nexport function applyRouterStatePatchToTree(\n flightSegmentPath: FlightSegmentPath,\n flightRouterState: FlightRouterState,\n treePatch: FlightRouterState,\n path: string\n): FlightRouterState | null {\n const [segment, parallelRoutes, url, refetch, isRootLayout] =\n flightRouterState\n\n // Root refresh\n if (flightSegmentPath.length === 1) {\n const tree: FlightRouterState = applyPatch(flightRouterState, treePatch)\n\n addRefreshMarkerToActiveParallelSegments(tree, path)\n\n return tree\n }\n\n const [currentSegment, parallelRouteKey] = flightSegmentPath\n\n // Tree path returned from the server should always match up with the current tree in the browser\n if (!matchSegment(currentSegment, segment)) {\n return null\n }\n\n const lastSegment = flightSegmentPath.length === 2\n\n let parallelRoutePatch\n if (lastSegment) {\n parallelRoutePatch = applyPatch(parallelRoutes[parallelRouteKey], treePatch)\n } else {\n parallelRoutePatch = applyRouterStatePatchToTree(\n getNextFlightSegmentPath(flightSegmentPath),\n parallelRoutes[parallelRouteKey],\n treePatch,\n path\n )\n\n if (parallelRoutePatch === null) {\n return null\n }\n }\n\n const tree: FlightRouterState = [\n flightSegmentPath[0],\n {\n ...parallelRoutes,\n [parallelRouteKey]: parallelRoutePatch,\n },\n url,\n refetch,\n ]\n\n // Current segment is the root layout\n if (isRootLayout) {\n tree[4] = true\n }\n\n addRefreshMarkerToActiveParallelSegments(tree, path)\n\n return tree\n}\n","import React from 'react'\n\nexport const HeadManagerContext: React.Context<{\n updateHead?: (state: any) => void\n mountedInstances?: any\n updateScripts?: (state: any) => void\n scripts?: any\n getIsSsr?: () => boolean\n\n // Used in app directory, to render script tags as server components.\n appDir?: boolean\n nonce?: string\n}> = React.createContext({})\n\nif (process.env.NODE_ENV !== 'production') {\n HeadManagerContext.displayName = 'HeadManagerContext'\n}\n","/**\n * This module imports the client instrumentation hook from the project root.\n *\n * The `private-next-instrumentation-client` module is automatically aliased to\n * the `instrumentation-client.ts` file in the project root by webpack or turbopack.\n */ \"use strict\";\nif (process.env.NODE_ENV === 'development') {\n const measureName = 'Client Instrumentation Hook';\n const startTime = performance.now();\n // eslint-disable-next-line @next/internal/typechecked-require -- Not a module.\n module.exports = require('private-next-instrumentation-client');\n const endTime = performance.now();\n const duration = endTime - startTime;\n // Using 16ms threshold as it represents one frame (1000ms/60fps)\n // This helps identify if the instrumentation hook initialization\n // could potentially cause frame drops during development.\n const THRESHOLD = 16;\n if (duration > THRESHOLD) {\n console.log(`[${measureName}] Slow execution detected: ${duration.toFixed(0)}ms (Note: Code download overhead is not included in this measurement)`);\n }\n} else {\n // eslint-disable-next-line @next/internal/typechecked-require -- Not a module.\n module.exports = require('private-next-instrumentation-client');\n}\n\n//# sourceMappingURL=require-instrumentation-client.js.map"],"names":["createInitialRouterState","initialSeedData","extractPathFromFlightRouterState","navigatedAt","initialFlightData","initialCanonicalUrlParts","initialParallelRoutes","location","couldBeIntercepted","postponed","prerendered","initialCanonicalUrl","join","normalizedFlightData","getFlightDataPartsFromPath","tree","initialTree","seedData","head","initialHead","cache","lazyData","rsc","prefetchRsc","prefetchHead","parallelRoutes","loading","canonicalUrl","createHrefFromUrl","addRefreshMarkerToActiveParallelSegments","prefetchCache","Map","size","fillLazyItemsTillLeafWithHead","undefined","initialState","pushRef","pendingPush","mpaNavigation","preserveCustomHistoryState","focusAndScrollRef","apply","onlyHashChange","hashFragment","segmentPaths","nextUrl","pathname","process","url","URL","search","origin","createSeededPrefetchCacheEntry","data","flightData","staleTime","STATIC_STALETIME_MS","kind","PrefetchKind","FULL","AUTO","applyFlightData","existingCache","prefetchEntry","treePatch","isRootRender","fillCacheWithNewSubTreeData","ensureLeadingSlash","path","startsWith","reportGlobalError","reportError","globalThis","console","error","fillCacheWithNewSubTreeDataButOnlyLoading","fillCacheHelper","newCache","fillLazyItems","segmentPath","cacheNodeSeedData","newCacheNode","existingCacheNode","i","length","parallelRouteKey","segment","isLastEntry","cacheKey","createRouterCacheKey","existingChildSegmentMap","get","childSegmentMap","set","existingChildCacheNode","childCacheNode","incomingSegment","PAGE_SEGMENT_KEY","invalidateCacheByRouterState","unstable_rethrow","isNextRouterError","isBailoutToCSRError","Error","GracefulDegradeBoundary","Component","getDerivedStateFromError","_","hasError","componentDidMount","htmlNode","htmlRef","current","state","Object","htmlAttributes","forEach","key","value","setAttribute","render","rootHtml","document","documentElement","innerHTML","getDomNodeAttributes","node","result","attributes","attr","name","html","ref","suppressHydrationWarning","dangerouslySetInnerHTML","__html","props","children","constructor","createRef","hasBasePath","pathHasPrefix","basePath","matchSegment","existingSegment","setCacheBustingSearchParam","setCacheBustingSearchParamWithHash","headers","computeCacheBustingSearchParam","NEXT_ROUTER_PREFETCH_HEADER","NEXT_ROUTER_SEGMENT_PREFETCH_HEADER","NEXT_ROUTER_STATE_TREE_HEADER","NEXT_URL","hash","existingSearch","pairs","rawQuery","slice","split","filter","pair","NEXT_RSC_UNION_QUERY","push","getObjectClassLabel","prototype","toString","call","isPlainObject","getPrototypeOf","hasOwnProperty","isRedirectError","isHTTPAccessFallbackError","withoutSearchParameters","Array","isArray","AppRouterAnnouncer","ANNOUNCER_TYPE","portalNode","setPortalNode","useState","useEffect","getAnnouncerNode","announcer","existingAnnouncer","getElementsByName","shadowRoot","childNodes","container","createElement","style","cssText","ariaLive","id","ANNOUNCER_ID","role","attachShadow","mode","appendChild","body","getElementsByTagName","isConnected","removeChild","routeAnnouncement","setRouteAnnouncement","previousTitle","useRef","currentTitle","title","pageHeader","querySelector","innerText","textContent","createPortal","createRenderSearchParamsFromClient","CachedSearchParams","WeakMap","underlyingSearchParams","cachedSearchParams","promise","Promise","resolve","keys","wellKnownProperties","has","prop","prefetchHeader","segmentPrefetchHeader","stateTreeHeader","nextUrlHeader","hexHash","IDLE_LINK_STATUS","PENDING_LINK_STATUS","mountFormInstance","mountLinkInstance","onLinkVisibilityChanged","onNavigationIntent","pingVisibleLinks","setLinkForCurrentNavigation","unmountLinkForCurrentNavigation","unmountPrefetchableInstance","linkForMostRecentNavigation","pending","link","startTransition","setOptimisticLinkStatus","prefetchable","prefetchableAndVisible","Set","observer","IntersectionObserver","handleIntersect","entry","entries","isVisible","intersectionRatio","target","rootMargin","observeVisibility","element","instance","existingInstance","observe","coercePrefetchableUrl","href","createPrefetchURL","reportErrorFn","router","prefetchEnabled","prefetchURL","prefetchTask","prefetchHref","delete","cancelPrefetchTask","unobserve","add","rescheduleLinkPrefetch","PrefetchPriority","Default","unstable_upgradeToDynamicPrefetch","Intent","priority","existingPrefetchTask","doPrefetch","prefetch","catch","task","isPrefetchTaskDirty","createCacheKey","scheduleSegmentPrefetchTask","useRouterBFCache","activeTree","activeStateKey","prevActiveEntry","setPrevActiveEntry","stateKey","next","newActiveEntry","n","oldEntry","clonedEntry","MAX_BF_CACHE_ENTRIES","warnOnce","createRenderParamsFromClient","CachedParams","clientParams","cachedParams","underlyingParams","DYNAMIC_STALETIME_MS","getOrCreatePrefetchCacheEntry","prunePrefetchCache","createPrefetchCacheKeyImpl","includeSearchParams","prefix","pathnameFromUrl","INTERCEPTION_CACHE_KEY_MARKER","createPrefetchCacheKey","allowAliasing","existingCacheEntry","getExistingCacheEntry","maybeNextUrl","TEMPORARY","cacheKeyWithParams","cacheKeyWithoutParams","cacheKeyToUse","existingEntry","isAliased","aliased","entryWithoutParams","includes","cacheEntry","values","status","getPrefetchEntryCacheStatus","then","isFullPrefetch","prefetchResponse","some","createLazyPrefetchEntry","prefetchCacheKey","treeAtTimeOfPrefetch","prefetchTime","Date","now","lastUsedTime","PrefetchCacheEntryStatus","fresh","prefetchQueue","enqueue","fetchServerResponse","flightRouterState","prefetchKind","newCacheKey","prefixExistingPrefetchCacheEntry","existingCacheKey","prefetchCacheEntry","expired","Number","stale","reusable","disableSmoothScrollDuringRouteTransition","fn","options","htmlElement","dataset","scrollBehavior","existing","dontForceLayout","getClientRects","isNavigatingToNewRootLayout","currentTree","nextTree","currentTreeSegment","nextTreeSegment","currentTreeChild","nextTreeChild","INTERCEPTION_ROUTE_MARKERS","extractInterceptionRouteInformation","isInterceptionRouteAppPath","find","m","interceptingRoute","marker","interceptedRoute","normalizeAppPath","concat","splitInterceptingRoute","OuterLayoutRouter","__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","ReactDOM","rectProperties","topOfElementInViewport","viewportHeight","rect","getBoundingClientRect","top","InnerScrollAndFocusHandler","React","handlePotentialScroll","componentDidUpdate","every","index","scrollRefSegmentPath","domNode","getHashFragmentDomNode","getElementById","internal_reactDOMfindDOMNode","findDOMNode","Element","HTMLElement","getComputedStyle","position","item","nextElementSibling","scrollIntoView","clientHeight","scrollTop","focus","ScrollAndFocusHandler","context","useContext","GlobalLayoutRouterContext","InnerLayoutRouter","cacheNode","fullTree","resolvedPrefetchRsc","useDeferredValue","resolvedRsc","use","refetchTree","walkAddRefetch","segmentPathToWalk","treeToRecreate","isLast","subTree","includeNextUrl","hasInterceptionRouteInCurrentTree","dispatchAppRouterAction","type","ACTION_SERVER_PATCH","previousTree","serverResponse","unresolvedThenable","subtree","LayoutRouterContext","Provider","parentTree","parentCacheNode","parentSegmentPath","LoadingBoundary","loadingModuleData","promiseForLoading","loadingRsc","loadingStyles","loadingScripts","Suspense","fallback","RenderChildren","parallelRouterKey","errorStyles","errorScripts","templateStyles","templateScripts","template","notFound","forbidden","unauthorized","gracefullyDegrade","segmentViewBoundaries","parentParallelRoutes","segmentMap","parentTreeSegment","activeSegment","bfcacheEntry","newLazyCacheNode","ErrorBoundaryComponent","ErrorBoundary","child","TemplateContext","errorComponent","HTTPAccessFallbackBoundary","RedirectBoundary","getSegmentValue","ACTION_HEADER","FLIGHT_HEADERS","NEXT_ACTION_NOT_FOUND_HEADER","NEXT_DID_POSTPONE_HEADER","NEXT_HMR_REFRESH_HASH_COOKIE","NEXT_HMR_REFRESH_HEADER","NEXT_IS_PRERENDER_HEADER","NEXT_REWRITTEN_PATH_HEADER","NEXT_REWRITTEN_QUERY_HEADER","NEXT_ROUTER_STALE_TIME_HEADER","RSC_CONTENT_TYPE_HEADER","RSC_HEADER","HTTPAccessFallbackErrorBoundary","componentDidCatch","triggeredStatus","getAccessFallbackHTTPStatus","getDerivedStateFromProps","previousPathname","errorComponents","HTTPAccessErrorStatus","NOT_FOUND","FORBIDDEN","UNAUTHORIZED","isNotFound","isForbidden","isUnauthorized","meta","content","useUntrackedPathname","missingSlots","MissingSlotContext","hasErrorFallback","abortTask","listenForDynamicRequest","startPPRNavigation","updateCacheNodeOnPopstateRestoration","oldCacheNode","routerState","routerStateChildren","oldParallelRoutes","newParallelRoutes","routerStateChild","segmentChild","segmentKeyChild","oldSegmentMapChild","oldCacheNodeChild","newCacheNodeChild","newSegmentMapChild","shouldUsePrefetch","isDeferredRsc","MPA_NAVIGATION_TASK","route","dynamicRequestTree","oldRouterState","newRouterState","prefetchData","isPrefetchHeadPartial","isSamePageNavigation","scrollableSegmentsResult","updateCacheNodeOnNavigation","didFindRootLayout","oldRouterStateChildren","newRouterStateChildren","prefetchDataChildren","isRootLayout","prefetchParallelRoutes","patchedRouterStateChildren","taskChildren","needsDynamicRequest","dynamicRequestTreeChildren","taskChild","newRouterStateChild","oldRouterStateChild","prefetchDataChild","newSegmentChild","newSegmentPathChild","newSegmentKeyChild","oldSegmentChild","DEFAULT_SEGMENT_KEY","spawnReusedTask","reusedRouterState","beginRenderingNewRouteTree","taskChildRoute","dynamicRequestTreeChild","patchRouterStateWithNewChildren","possiblyPartialPrefetchHead","createCacheNodeOnNavigation","cacheNodeNavigatedAt","isLeafSegment","spawnPendingTask","existingCacheNodeChildren","cacheNodeChildren","existingSegmentMapChild","segmentPathChild","baseRouterState","newChildren","clone","createPendingCacheNode","maybePrefetchRsc","maybePrefetchLoading","createDeferredRsc","responsePromise","serverRouterState","dynamicData","dynamicHead","writeDynamicDataIntoPendingTask","rootTask","taskSegment","finishTaskUsingDynamicDataPayload","taskNode","finishPendingCacheNode","taskState","serverState","taskStateChildren","serverStateChildren","dataChildren","taskStateChild","serverStateChild","dataChild","segmentMapChild","taskSegmentChild","taskSegmentKeyChild","cacheNodeChild","abortPendingCacheNode","dynamicSegmentData","serverChildren","dynamicDataChildren","serverRouterStateChild","dynamicDataChild","reject","DEFERRED","Symbol","tag","pendingRsc","res","rej","fulfilledRsc","rejectedRsc","reason","addSearchParamsToPageSegments","handleAliasedPrefetchEntry","mutable","applied","currentCache","hasLoadingComponentInSeedData","fromEntries","searchParams","pathToSegment","flightSegmentPathWithLeadingEmpty","newTree","applyRouterStatePatchToTree","createEmptyCacheNode","fillNewTreeWithOnlyLoadingSegments","isLastSegment","parallelRouteState","segmentForParallelRoute","parallelSeedData","existingParallelRoutes","patchedTree","handleMutable","rest","addSearchParamsIfPageSegment","updatedParallelRoutes","parallelRoute","normalizeRscURL","reduce","segments","isGroupSegment","replace","AsyncMetadataOutlet","MetadataOutlet","digest","refreshReducer","action","canonicalUrlOverride","handleExternalUrl","handleSegmentMismatch","canonicalUrlOverrideHref","refreshInactiveParallelSegments","updatedTree","updatedCache","existingParallelRoutesCacheNode","parallelRouteCacheNode","refetchMarker","fetchedSegments","refreshInactiveParallelSegmentsImpl","rootTree","refetchPath","fetchPromises","fetchPromise","flightDataPath","parallelFetchPromise","all","getRedirectError","getRedirectStatusCodeFromError","getRedirectTypeFromError","getURLFromRedirectError","permanentRedirect","redirect","actionAsyncStorage","statusCode","require","RedirectStatusCode","TemporaryRedirect","REDIRECT_ERROR_CODE","getStore","isAction","RedirectType","PermanentRedirect","at","isNotUndefined","shouldScroll","changedPath","computeChangedPath","scrollableSegments","decodeURIComponent","RedirectErrorBoundary","HandleRedirect","reset","redirectType","useRouter","setState","normalizePathTrailingSlash","query","parsePath","test","removeTrailingSlash","endsWith","HTTP_ERROR_FALLBACK_ERROR_CODE","encodeURIPath","file","map","encodeURIComponent","p","getSelectedParams","params","isDynamicParameter","segmentValue","segmentToPathname","normalizeSegments","acc","removeLeadingSlash","childrenPath","childPath","treeA","treeB","computeChangedPathImpl","segmentA","parallelRoutesA","segmentB","parallelRoutesB","normalizedSegmentA","normalizedSegmentB","prefetchReducer","PromiseQueue","prefetchReducerImpl","identityReducerWhenSegmentCacheIsEnabled","addPathPrefix","removeBasePath","findSourceMapURL","useActionQueue","dispatch","actionQueue","isThenable","clearCacheNodeDataForSegmentPath","flightSegmentPath","getNextFlightSegmentPath","djb2Hash","str","charCodeAt","char","HTML_LIMITED_BOT_UA_RE","HTML_LIMITED_BOT_UA_RE_STRING","getBotType","isBot","HEADLESS_BROWSER_BOT_UA_RE","source","isHtmlLimitedBotUA","userAgent","isDomBotUA","BailoutToCSRError","BAILOUT_TO_CSR","err","ClientSegmentRoot","slots","ReadonlyURLSearchParams","ServerInsertedHTMLContext","useParams","usePathname","useSearchParams","useSelectedLayoutSegment","useSelectedLayoutSegments","useServerInsertedHTML","useDynamicRouteParams","SearchParamsContext","useMemo","readonlySearchParams","PathnameContext","AppRouterContext","PathParamsContext","getSelectedLayoutSegmentPath","first","selectedLayoutSegments","selectedLayoutSegment","IconMark","HandleISRError","workAsyncStorage","store","isRevalidate","isStaticGeneration","createContext","reducer","clientReducer","serverReducer","ACTION_NAVIGATE","navigateReducer","serverPatchReducer","ACTION_RESTORE","restoreReducer","ACTION_REFRESH","ACTION_HMR_REFRESH","hmrRefreshReducer","ACTION_PREFETCH","ACTION_SERVER_ACTION","serverActionReducer","findHeadInCache","findHeadInCacheImpl","keyPrefix","isLastItem","parallelRoutesKeys","unshift","childParallelRoutes","ErrorBoundaryHandler","this","appBootstrap","hydrate","scripts","self","src","el","onload","onerror","setTimeout","window","version","env","appDir","MetadataBoundary","OutletBoundary","ViewportBoundary","NameSpace","METADATA_BOUNDARY_NAME","VIEWPORT_BOUNDARY_NAME","OUTLET_BOUNDARY_NAME","DIGEST","isRecoverableError","onRecoverableError","recoverableErrors","WeakSet","errorInfo","cause","isError","assignLocation","urlBase","addBasePath","callback","addInsertedServerHTMLCallback","includeHash","createFetch","createFromNextReadableStream","urlToUrlWithoutFlightMarker","createFromReadableStream","createFromReadableStreamBrowser","urlWithoutFlightParameters","doMpaNavigation","abortController","AbortController","prepareFlightRouterStateForRequest","isHmrRefresh","fetchPriority","signal","responseUrl","redirected","contentType","interception","staleTimeHeaderSeconds","parseInt","isFlightResponse","flightStream","createUnclosingPrefetchStream","reader","originalFlightStream","getReader","ReadableStream","pull","controller","done","read","response","getAppBuildId","b","normalizeFlightData","f","S","aborted","fetchUrl","browserResponse","fetch","credentials","fetchOptions","rscResponse","ok","callServer","addEventListener","abort","actionId","actionArgs","hmrRefreshReducerNoop","_action","hmrRefreshReducerImpl","shouldHardNavigate","currentSegment","required","handleHardNavError","useNavFailureHandler","__pendingUrl","describeHasCheckingStringProperty","describeStringPropertyAccess","isDefinitelyAValidIdentifier","JSON","stringify","stringifiedProp","instrumentationHooks","getAccessFallbackErrorTypeByStatus","ALLOWED_CODES","httpStatus","initialServerDataBuffer","initialServerDataWriter","appElement","encoder","TextEncoder","initialServerDataLoaded","initialServerDataFlushed","initialFormStateData","nextServerDataCallback","seg","encode","binaryString","atob","decodedChunk","Uint8Array","DOMContentLoaded","close","readyState","nextServerDataLoadingGlobal","__next_f","initialServerResponse","start","readable","ctr","val","desiredSize","ServerRoot","pendingActionQueue","initialRSCPayload","AppRouter","navigator","globalErrorState","G","assetPrefix","StrictModeIfEnabled","StrictMode","Root","reactRootOptions","onDefaultTransitionIndicator","onCaughtError","onUncaughtError","setAppBuildId","initialTimestamp","createMutableActionQueue","c","s","reactEl","HeadManagerContext","ReactDOMClient","createRoot","hydrateRoot","formState","globalBuildId","buildId","dispatchNavigateAction","dispatchTraverseAction","getCurrentAppRouterState","publicAppRouterInstance","runRemainingActions","runAction","needsRefresh","prevState","payload","actionResult","handleResult","nextState","discarded","globalActionQueue","dispatchAction","resolvers","deferredPromise","newAction","last","onRouterTransitionStart","getProfilingHookForOnNavigationStart","navigateType","linkInstanceRef","isExternalUrl","isExternalURL","locationSearch","back","history","forward","getAppRouterActionQueue","scroll","refresh","hmrRefresh","isParallelRouteSegment","isPageSegment","stringifiedQuery","styles","fontFamily","height","textAlign","display","flexDirection","alignItems","justifyContent","text","fontSize","fontWeight","lineHeight","margin","div","h2","hostname","extractInfoFromServerReferenceId","infoByte","argMask","usedArgs","bit","bitPosition","typeBit","hasRestArgs","restArgs","omitUnusedArgs","args","info","filteredArgs","InvariantError","message","isHeadPartial","flightDataPathLength","stripClientOnlyDataFromFlightRouterState","_url","refreshMarker","hasLoadingBoundary","cleanedSegment","stripSearchParamsFromPageSegment","cleanedParallelRoutes","childState","shouldPreserveRefreshMarker","createFromFetch","createFromFetchBrowser","fetchServerAction","revalidatedParts","actionFlightData","temporaryReferences","createTemporaryReferenceSet","encodeReply","method","Accept","unrecognizedActionHeader","redirectHeader","_redirectType","isPrerender","revalidatedHeader","parse","paths","cookie","e","NO_REVALIDATED_PARTS","redirectLocation","isRscResponse","a","redirectHref","actionRevalidated","Boolean","RenderFromTemplateContext","globalMutable","HistoryUpdater","appRouterState","useInsertionEffect","historyState","__NA","__PRIVATE_NEXTJS_INTERNALS_TREE","pushState","replaceState","copyNextJsInternalHistoryState","currentState","Head","headCacheNode","Router","globalError","handlePageShow","event","persisted","pendingMpaPath","removeEventListener","handleUnhandledRedirect","preventDefault","assign","originalPushState","bind","originalReplaceState","applyUrlFromHistoryPushReplace","_unused","_N","onPopState","reload","matchingHead","pathParams","layoutRouterContext","globalLayoutRouterContext","headKey","RuntimeStyles","DefaultGlobalError","runtimeStyles","runtimeStyleChanged","forceUpdate","renderedStylesSize","changed","rel","precedence","dplId","_N_E_STYLE_LOAD","len","cb","devToolErrorMod","decorateDevError","handleClientError","originConsoleError","thrownValue","isImplicitErrorBoundary","errorBoundaryComponent","errorBoundary","DefaultErrorBoundary","hashIndex","indexOf","queryIndex","hasQuery","substring","getChunkScriptFilename","__webpack_require__","u","NavigationResultTag","getCurrentCacheVersion","navigate","reschedulePrefetchTask","revalidateEntireCache","schedulePrefetchTask","notEnabled","ReadonlyURLSearchParamsError","URLSearchParams","append","sort","hasReusablePrefetch","seedNode","errorCode","destination","isNaN","promiseFn","taskResolve","taskReject","taskPromise","enqueueResult","bump","findIndex","bumpedItem","splice","maxConcurrency","forced","shift","treeToRestore","oldCache","ClientPageRoot","clientSearchParams","invalidateCacheBelowFlightSegmentPath","prefetchValues","isFirstRead","urlWithCanonicalPathname","updatedCanonicalUrl","patchedRouterState","dynamicRequest","subSegment","triggerLazyFetchForLeafSegments","appliedPatch","segmentPathsToFill","generateSegmentsFromPatch","scrollableSegmentPath","flightRouterPatch","childSegment","parallelRoutePatch","refetch","applyPatch","lastSegment","patchTree","initialSegment","patchSegment","patchParallelRoutes"],"sourceRoot":"","ignoreList":[5,6,18,23,27,41,42,43,48,53,63,73,75,85,98,101,105,110,116,131,135,138]} \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/653-5c1e9d9b1fcbf9ec.js b/opencut-ui/_next/static/chunks/653-5c1e9d9b1fcbf9ec.js new file mode 100644 index 0000000..8460e1a --- /dev/null +++ b/opencut-ui/_next/static/chunks/653-5c1e9d9b1fcbf9ec.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[653],{14219:(e,t,r)=>{r.r(t),r.d(t,{Arrow:()=>Z,CheckboxItem:()=>V,Content:()=>U,ContextMenu:()=>v,ContextMenuArrow:()=>T,ContextMenuCheckboxItem:()=>j,ContextMenuContent:()=>y,ContextMenuGroup:()=>R,ContextMenuItem:()=>S,ContextMenuItemIndicator:()=>I,ContextMenuLabel:()=>M,ContextMenuPortal:()=>b,ContextMenuRadioGroup:()=>P,ContextMenuRadioItem:()=>D,ContextMenuSeparator:()=>N,ContextMenuSub:()=>A,ContextMenuSubContent:()=>G,ContextMenuSubTrigger:()=>k,ContextMenuTrigger:()=>w,Group:()=>K,Item:()=>H,ItemIndicator:()=>X,Label:()=>F,Portal:()=>O,RadioGroup:()=>q,RadioItem:()=>B,Root:()=>L,Separator:()=>Y,Sub:()=>J,SubContent:()=>Q,SubTrigger:()=>W,Trigger:()=>z,createContextMenuScope:()=>p});var n=r(74188),o=r(48841),a=r(68533),i=r(98765),l=r(41490),d=r(36432),u=r(14392),s=r(28064),c="ContextMenu",[f,p]=(0,a.A)(c,[l.UE]),m=(0,l.UE)(),[x,h]=f(c),v=e=>{let{__scopeContextMenu:t,children:r,onOpenChange:o,dir:a,modal:i=!0}=e,[u,c]=n.useState(!1),f=m(t),p=(0,d.c)(o),h=n.useCallback(e=>{c(e),p(e)},[p]);return(0,s.jsx)(x,{scope:t,open:u,onOpenChange:h,modal:i,children:(0,s.jsx)(l.bL,{...f,dir:a,open:u,onOpenChange:h,modal:i,children:r})})};v.displayName=c;var g="ContextMenuTrigger",w=n.forwardRef((e,t)=>{let{__scopeContextMenu:r,disabled:a=!1,...d}=e,u=h(g,r),c=m(r),f=n.useRef({x:0,y:0}),p=n.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...f.current})}),x=n.useRef(0),v=n.useCallback(()=>window.clearTimeout(x.current),[]),w=e=>{f.current={x:e.clientX,y:e.clientY},u.onOpenChange(!0)};return n.useEffect(()=>v,[v]),n.useEffect(()=>void(a&&v()),[a,v]),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(l.Mz,{...c,virtualRef:p}),(0,s.jsx)(i.sG.span,{"data-state":u.open?"open":"closed","data-disabled":a?"":void 0,...d,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:a?e.onContextMenu:(0,o.m)(e.onContextMenu,e=>{v(),w(e),e.preventDefault()}),onPointerDown:a?e.onPointerDown:(0,o.m)(e.onPointerDown,_(e=>{v(),x.current=window.setTimeout(()=>w(e),700)})),onPointerMove:a?e.onPointerMove:(0,o.m)(e.onPointerMove,_(v)),onPointerCancel:a?e.onPointerCancel:(0,o.m)(e.onPointerCancel,_(v)),onPointerUp:a?e.onPointerUp:(0,o.m)(e.onPointerUp,_(v))})]})});w.displayName=g;var b=e=>{let{__scopeContextMenu:t,...r}=e,n=m(t);return(0,s.jsx)(l.ZL,{...n,...r})};b.displayName="ContextMenuPortal";var C="ContextMenuContent",y=n.forwardRef((e,t)=>{let{__scopeContextMenu:r,...o}=e,a=h(C,r),i=m(r),d=n.useRef(!1);return(0,s.jsx)(l.UC,{...i,...o,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:t=>{var r;null==(r=e.onCloseAutoFocus)||r.call(e,t),!t.defaultPrevented&&d.current&&t.preventDefault(),d.current=!1},onInteractOutside:t=>{var r;null==(r=e.onInteractOutside)||r.call(e,t),t.defaultPrevented||a.modal||(d.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});y.displayName=C;var R=n.forwardRef((e,t)=>{let{__scopeContextMenu:r,...n}=e,o=m(r);return(0,s.jsx)(l.YJ,{...o,...n,ref:t})});R.displayName="ContextMenuGroup";var M=n.forwardRef((e,t)=>{let{__scopeContextMenu:r,...n}=e,o=m(r);return(0,s.jsx)(l.JU,{...o,...n,ref:t})});M.displayName="ContextMenuLabel";var S=n.forwardRef((e,t)=>{let{__scopeContextMenu:r,...n}=e,o=m(r);return(0,s.jsx)(l.q7,{...o,...n,ref:t})});S.displayName="ContextMenuItem";var j=n.forwardRef((e,t)=>{let{__scopeContextMenu:r,...n}=e,o=m(r);return(0,s.jsx)(l.H_,{...o,...n,ref:t})});j.displayName="ContextMenuCheckboxItem";var P=n.forwardRef((e,t)=>{let{__scopeContextMenu:r,...n}=e,o=m(r);return(0,s.jsx)(l.z6,{...o,...n,ref:t})});P.displayName="ContextMenuRadioGroup";var D=n.forwardRef((e,t)=>{let{__scopeContextMenu:r,...n}=e,o=m(r);return(0,s.jsx)(l.hN,{...o,...n,ref:t})});D.displayName="ContextMenuRadioItem";var I=n.forwardRef((e,t)=>{let{__scopeContextMenu:r,...n}=e,o=m(r);return(0,s.jsx)(l.VF,{...o,...n,ref:t})});I.displayName="ContextMenuItemIndicator";var N=n.forwardRef((e,t)=>{let{__scopeContextMenu:r,...n}=e,o=m(r);return(0,s.jsx)(l.wv,{...o,...n,ref:t})});N.displayName="ContextMenuSeparator";var T=n.forwardRef((e,t)=>{let{__scopeContextMenu:r,...n}=e,o=m(r);return(0,s.jsx)(l.i3,{...o,...n,ref:t})});T.displayName="ContextMenuArrow";var E="ContextMenuSub",A=e=>{let{__scopeContextMenu:t,children:r,onOpenChange:n,open:o,defaultOpen:a}=e,i=m(t),[d,c]=(0,u.i)({prop:o,defaultProp:null!=a&&a,onChange:n,caller:E});return(0,s.jsx)(l.Pb,{...i,open:d,onOpenChange:c,children:r})};A.displayName=E;var k=n.forwardRef((e,t)=>{let{__scopeContextMenu:r,...n}=e,o=m(r);return(0,s.jsx)(l.ZP,{...o,...n,ref:t})});k.displayName="ContextMenuSubTrigger";var G=n.forwardRef((e,t)=>{let{__scopeContextMenu:r,...n}=e,o=m(r);return(0,s.jsx)(l.G5,{...o,...n,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});function _(e){return t=>"mouse"!==t.pointerType?e(t):void 0}G.displayName="ContextMenuSubContent";var L=v,z=w,O=b,U=y,K=R,F=M,H=S,V=j,q=P,B=D,X=I,Y=N,Z=T,J=A,W=k,Q=G},15700:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(88077).A)("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]])},22276:(e,t,r)=>{r.d(t,{b:()=>u});var n=r(74188),o=r(98765),a=r(28064),i="horizontal",l=["horizontal","vertical"],d=n.forwardRef((e,t)=>{var r;let{decorative:n,orientation:d=i,...u}=e,s=(r=d,l.includes(r))?d:i;return(0,a.jsx)(o.sG.div,{"data-orientation":s,...n?{role:"none"}:{"aria-orientation":"vertical"===s?s:void 0,role:"separator"},...u,ref:t})});d.displayName="Separator";var u=d},39124:(e,t,r)=>{r.r(t),r.d(t,{Range:()=>V,Root:()=>F,Slider:()=>j,SliderRange:()=>G,SliderThumb:()=>L,SliderTrack:()=>A,Thumb:()=>q,Track:()=>H,createSliderScope:()=>R});var n=r(74188),o=r(43850),a=r(48841),i=r(89607),l=r(68533),d=r(14392),u=r(5672),s=r(59044),c=r(48396),f=r(98765),p=r(96007),m=r(28064),x=["PageUp","PageDown"],h=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],v={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},g="Slider",[w,b,C]=(0,p.N)(g),[y,R]=(0,l.A)(g,[C]),[M,S]=y(g),j=n.forwardRef((e,t)=>{let{name:r,min:i=0,max:l=100,step:u=1,orientation:s="horizontal",disabled:c=!1,minStepsBetweenThumbs:f=0,defaultValue:p=[i],value:v,onValueChange:g=()=>{},onValueCommit:b=()=>{},inverted:C=!1,form:y,...R}=e,S=n.useRef(new Set),j=n.useRef(0),P="horizontal"===s,[D=[],T]=(0,d.i)({prop:v,defaultProp:p,onChange:e=>{var t;null==(t=[...S.current][j.current])||t.focus(),g(e)}}),E=n.useRef(D);function A(e,t){let{commit:r}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{commit:!1},n=(String(u).split(".")[1]||"").length,a=function(e,t){let r=Math.pow(10,t);return Math.round(e*r)/r}(Math.round((e-i)/u)*u+i,n),d=(0,o.q)(a,[i,l]);T(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,n=[...e];return n[r]=t,n.sort((e,t)=>e-t)}(e,d,t);if(!function(e,t){if(t>0)return Math.min(...e.slice(0,-1).map((t,r)=>e[r+1]-t))>=t;return!0}(n,f*u))return e;{j.current=n.indexOf(d);let t=String(n)!==String(e);return t&&r&&b(n),t?n:e}})}return(0,m.jsx)(M,{scope:e.__scopeSlider,name:r,disabled:c,min:i,max:l,valueIndexToChangeRef:j,thumbs:S.current,values:D,orientation:s,form:y,children:(0,m.jsx)(w.Provider,{scope:e.__scopeSlider,children:(0,m.jsx)(w.Slot,{scope:e.__scopeSlider,children:(0,m.jsx)(P?I:N,{"aria-disabled":c,"data-disabled":c?"":void 0,...R,ref:t,onPointerDown:(0,a.m)(R.onPointerDown,()=>{c||(E.current=D)}),min:i,max:l,inverted:C,onSlideStart:c?void 0:function(e){let t=function(e,t){if(1===e.length)return 0;let r=e.map(e=>Math.abs(e-t)),n=Math.min(...r);return r.indexOf(n)}(D,e);A(e,t)},onSlideMove:c?void 0:function(e){A(e,j.current)},onSlideEnd:c?void 0:function(){let e=E.current[j.current];D[j.current]!==e&&b(D)},onHomeKeyDown:()=>!c&&A(i,0,{commit:!0}),onEndKeyDown:()=>!c&&A(l,D.length-1,{commit:!0}),onStepKeyDown:e=>{let{event:t,direction:r}=e;if(!c){let e=x.includes(t.key)||t.shiftKey&&h.includes(t.key),n=j.current;A(D[n]+u*(e?10:1)*r,n,{commit:!0})}}})})})})});j.displayName=g;var[P,D]=y(g,{startEdge:"left",endEdge:"right",size:"width",direction:1}),I=n.forwardRef((e,t)=>{let{min:r,max:o,dir:a,inverted:l,onSlideStart:d,onSlideMove:s,onSlideEnd:c,onStepKeyDown:f,...p}=e,[x,h]=n.useState(null),g=(0,i.s)(t,e=>h(e)),w=n.useRef(void 0),b=(0,u.jH)(a),C="ltr"===b,y=C&&!l||!C&&l;function R(e){let t=w.current||x.getBoundingClientRect(),n=K([0,t.width],y?[r,o]:[o,r]);return w.current=t,n(e-t.left)}return(0,m.jsx)(P,{scope:e.__scopeSlider,startEdge:y?"left":"right",endEdge:y?"right":"left",direction:y?1:-1,size:"width",children:(0,m.jsx)(T,{dir:b,"data-orientation":"horizontal",...p,ref:g,style:{...p.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:e=>{let t=R(e.clientX);null==d||d(t)},onSlideMove:e=>{let t=R(e.clientX);null==s||s(t)},onSlideEnd:()=>{w.current=void 0,null==c||c()},onStepKeyDown:e=>{let t=v[y?"from-left":"from-right"].includes(e.key);null==f||f({event:e,direction:t?-1:1})}})})}),N=n.forwardRef((e,t)=>{let{min:r,max:o,inverted:a,onSlideStart:l,onSlideMove:d,onSlideEnd:u,onStepKeyDown:s,...c}=e,f=n.useRef(null),p=(0,i.s)(t,f),x=n.useRef(void 0),h=!a;function g(e){let t=x.current||f.current.getBoundingClientRect(),n=K([0,t.height],h?[o,r]:[r,o]);return x.current=t,n(e-t.top)}return(0,m.jsx)(P,{scope:e.__scopeSlider,startEdge:h?"bottom":"top",endEdge:h?"top":"bottom",size:"height",direction:h?1:-1,children:(0,m.jsx)(T,{"data-orientation":"vertical",...c,ref:p,style:{...c.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:e=>{let t=g(e.clientY);null==l||l(t)},onSlideMove:e=>{let t=g(e.clientY);null==d||d(t)},onSlideEnd:()=>{x.current=void 0,null==u||u()},onStepKeyDown:e=>{let t=v[h?"from-bottom":"from-top"].includes(e.key);null==s||s({event:e,direction:t?-1:1})}})})}),T=n.forwardRef((e,t)=>{let{__scopeSlider:r,onSlideStart:n,onSlideMove:o,onSlideEnd:i,onHomeKeyDown:l,onEndKeyDown:d,onStepKeyDown:u,...s}=e,c=S(g,r);return(0,m.jsx)(f.sG.span,{...s,ref:t,onKeyDown:(0,a.m)(e.onKeyDown,e=>{"Home"===e.key?(l(e),e.preventDefault()):"End"===e.key?(d(e),e.preventDefault()):x.concat(h).includes(e.key)&&(u(e),e.preventDefault())}),onPointerDown:(0,a.m)(e.onPointerDown,e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),c.thumbs.has(t)?t.focus():n(e)}),onPointerMove:(0,a.m)(e.onPointerMove,e=>{e.target.hasPointerCapture(e.pointerId)&&o(e)}),onPointerUp:(0,a.m)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),i(e))})})}),E="SliderTrack",A=n.forwardRef((e,t)=>{let{__scopeSlider:r,...n}=e,o=S(E,r);return(0,m.jsx)(f.sG.span,{"data-disabled":o.disabled?"":void 0,"data-orientation":o.orientation,...n,ref:t})});A.displayName=E;var k="SliderRange",G=n.forwardRef((e,t)=>{let{__scopeSlider:r,...o}=e,a=S(k,r),l=D(k,r),d=n.useRef(null),u=(0,i.s)(t,d),s=a.values.length,c=a.values.map(e=>U(e,a.min,a.max)),p=s>1?Math.min(...c):0,x=100-Math.max(...c);return(0,m.jsx)(f.sG.span,{"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,...o,ref:u,style:{...e.style,[l.startEdge]:p+"%",[l.endEdge]:x+"%"}})});G.displayName=k;var _="SliderThumb",L=n.forwardRef((e,t)=>{let r=b(e.__scopeSlider),[o,a]=n.useState(null),l=(0,i.s)(t,e=>a(e)),d=n.useMemo(()=>o?r().findIndex(e=>e.ref.current===o):-1,[r,o]);return(0,m.jsx)(z,{...e,ref:l,index:d})}),z=n.forwardRef((e,t)=>{let{__scopeSlider:r,index:o,name:l,...d}=e,u=S(_,r),s=D(_,r),[p,x]=n.useState(null),h=(0,i.s)(t,e=>x(e)),v=!p||u.form||!!p.closest("form"),g=(0,c.X)(p),b=u.values[o],C=void 0===b?0:U(b,u.min,u.max),y=function(e,t){return t>2?"Value ".concat(e+1," of ").concat(t):2===t?["Minimum","Maximum"][e]:void 0}(o,u.values.length),R=null==g?void 0:g[s.size],M=R?function(e,t,r){let n=e/2,o=K([0,50],[0,n]);return(n-o(t)*r)*r}(R,C,s.direction):0;return n.useEffect(()=>{if(p)return u.thumbs.add(p),()=>{u.thumbs.delete(p)}},[p,u.thumbs]),(0,m.jsxs)("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[s.startEdge]:"calc(".concat(C,"% + ").concat(M,"px)")},children:[(0,m.jsx)(w.ItemSlot,{scope:e.__scopeSlider,children:(0,m.jsx)(f.sG.span,{role:"slider","aria-label":e["aria-label"]||y,"aria-valuemin":u.min,"aria-valuenow":b,"aria-valuemax":u.max,"aria-orientation":u.orientation,"data-orientation":u.orientation,"data-disabled":u.disabled?"":void 0,tabIndex:u.disabled?void 0:0,...d,ref:h,style:void 0===b?{display:"none"}:e.style,onFocus:(0,a.m)(e.onFocus,()=>{u.valueIndexToChangeRef.current=o})})}),v&&(0,m.jsx)(O,{name:null!=l?l:u.name?u.name+(u.values.length>1?"[]":""):void 0,form:u.form,value:b},o)]})});L.displayName=_;var O=n.forwardRef((e,t)=>{let{__scopeSlider:r,value:o,...a}=e,l=n.useRef(null),d=(0,i.s)(l,t),u=(0,s.Z)(o);return n.useEffect(()=>{let e=l.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set;if(u!==o&&t){let r=new Event("input",{bubbles:!0});t.call(e,o),e.dispatchEvent(r)}},[u,o]),(0,m.jsx)(f.sG.input,{style:{display:"none"},...a,ref:d,defaultValue:o})});function U(e,t,r){return(0,o.q)(100/(r-t)*(e-t),[0,100])}function K(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let n=(t[1]-t[0])/(e[1]-e[0]);return t[0]+n*(r-e[0])}}O.displayName="RadioBubbleInput";var F=j,H=A,V=G,q=L},91048:(e,t,r)=>{r.r(t),r.d(t,{Content:()=>T,List:()=>I,Root:()=>D,Tabs:()=>w,TabsContent:()=>S,TabsList:()=>C,TabsTrigger:()=>R,Trigger:()=>N,createTabsScope:()=>x});var n=r(74188),o=r(48841),a=r(68533),i=r(69834),l=r(24847),d=r(98765),u=r(5672),s=r(14392),c=r(39636),f=r(28064),p="Tabs",[m,x]=(0,a.A)(p,[i.RG]),h=(0,i.RG)(),[v,g]=m(p),w=n.forwardRef((e,t)=>{let{__scopeTabs:r,value:n,onValueChange:o,defaultValue:a,orientation:i="horizontal",dir:l,activationMode:m="automatic",...x}=e,h=(0,u.jH)(l),[g,w]=(0,s.i)({prop:n,onChange:o,defaultProp:null!=a?a:"",caller:p});return(0,f.jsx)(v,{scope:r,baseId:(0,c.B)(),value:g,onValueChange:w,orientation:i,dir:h,activationMode:m,children:(0,f.jsx)(d.sG.div,{dir:h,"data-orientation":i,...x,ref:t})})});w.displayName=p;var b="TabsList",C=n.forwardRef((e,t)=>{let{__scopeTabs:r,loop:n=!0,...o}=e,a=g(b,r),l=h(r);return(0,f.jsx)(i.bL,{asChild:!0,...l,orientation:a.orientation,dir:a.dir,loop:n,children:(0,f.jsx)(d.sG.div,{role:"tablist","aria-orientation":a.orientation,...o,ref:t})})});C.displayName=b;var y="TabsTrigger",R=n.forwardRef((e,t)=>{let{__scopeTabs:r,value:n,disabled:a=!1,...l}=e,u=g(y,r),s=h(r),c=j(u.baseId,n),p=P(u.baseId,n),m=n===u.value;return(0,f.jsx)(i.q7,{asChild:!0,...s,focusable:!a,active:m,children:(0,f.jsx)(d.sG.button,{type:"button",role:"tab","aria-selected":m,"aria-controls":p,"data-state":m?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:c,...l,ref:t,onMouseDown:(0,o.m)(e.onMouseDown,e=>{a||0!==e.button||!1!==e.ctrlKey?e.preventDefault():u.onValueChange(n)}),onKeyDown:(0,o.m)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&u.onValueChange(n)}),onFocus:(0,o.m)(e.onFocus,()=>{let e="manual"!==u.activationMode;m||a||!e||u.onValueChange(n)})})})});R.displayName=y;var M="TabsContent",S=n.forwardRef((e,t)=>{let{__scopeTabs:r,value:o,forceMount:a,children:i,...u}=e,s=g(M,r),c=j(s.baseId,o),p=P(s.baseId,o),m=o===s.value,x=n.useRef(m);return n.useEffect(()=>{let e=requestAnimationFrame(()=>x.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,f.jsx)(l.C,{present:a||m,children:r=>{let{present:n}=r;return(0,f.jsx)(d.sG.div,{"data-state":m?"active":"inactive","data-orientation":s.orientation,role:"tabpanel","aria-labelledby":c,hidden:!n,id:p,tabIndex:0,...u,ref:t,style:{...e.style,animationDuration:x.current?"0s":void 0},children:n&&i})}})});function j(e,t){return"".concat(e,"-trigger-").concat(t)}function P(e,t){return"".concat(e,"-content-").concat(t)}S.displayName=M;var D=w,I=C,N=R,T=S}}]); +//# sourceMappingURL=653-5c1e9d9b1fcbf9ec.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/653-5c1e9d9b1fcbf9ec.js.map b/opencut-ui/_next/static/chunks/653-5c1e9d9b1fcbf9ec.js.map new file mode 100644 index 0000000..2a88648 --- /dev/null +++ b/opencut-ui/_next/static/chunks/653-5c1e9d9b1fcbf9ec.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/653-5c1e9d9b1fcbf9ec.js","mappings":"+1BAkBM,EAAoB,cAGpB,CAAC,EAA0B,EAAsB,CAAI,OAAkB,CAAC,EAAmB,CAC/F,IAAe,CAChB,EACK,CAHiD,CAGlC,QAAe,CAAC,EAQ/B,CAAC,EAAqB,EAAqB,CAC/C,EAAkD,GAS9C,EAA0C,IAC9C,GAAM,IAXyC,CACoB,eAU3D,WAAoB,eAAU,MAAc,QAAK,GAAQ,EAAK,CAAI,EACpE,CAAC,EAAM,EAAO,CAAU,IAAV,MAAU,EAAS,GACjC,EADsC,EACb,GACzB,EAAuB,OAAc,CAAC,GAEtC,EAH2C,EAGlB,KAFyB,MAEzB,CAC7B,IACE,EAAQA,GACR,EADY,EAEd,EACA,CAF2B,EAEN,EAGvB,MACE,UAAC,GACC,MAAO,OACP,EACA,aAAc,QACd,EAEA,mBAAe,KAAd,CACE,GAAG,MACJ,OACA,EACA,aAAc,QACd,WAEC,GACH,EAGN,EAEA,EAAY,YAAc,EAM1B,IAAM,EAAe,qBAQf,EAA2B,aAC/B,CAAC,EAA6C,KAC5C,GAAM,oBAAE,WAAoB,GAAW,EAAO,GAAG,EAAa,CAAI,EAC5D,EAAU,EAAsB,EAAc,EADU,CAExD,EAAY,EAAa,GACzB,EAAiB,MAF+C,EAE/C,CAAc,CAAE,EAAG,CADO,CACJ,EAAG,CAAE,CAAC,EAC7C,EAAmB,SAAO,CAC9B,sBAAuB,IAAM,QAAQ,SAAS,CAAE,MAAO,EAAG,OAAQ,EAAG,GAAG,EAAS,QAAS,CAC5F,CAAC,EACK,EAA0B,SAAO,CAAC,EAClC,EAAuB,cAC3B,IAAM,OAAO,aAAa,EAAkB,OAAO,EACnD,CAAC,GAEG,EAAa,IACjB,EAAS,QAAU,CAAE,EAAG,EAAM,QAAS,EAAG,EAAM,SAChD,EAAQ,cAAa,EACvB,EAKA,OAHM,YAAU,IAAM,EAAgB,CAAC,EAAe,EAChD,UAD+C,CAC/C,CAAU,IAAM,KAAM,GAAY,IAAe,CAAI,CAAC,EAAU,EAAe,EAGnF,UAHkF,CAGlF,YACE,oBAAe,KAAd,CAAsB,GAAG,aAAW,EAAwB,EAC7D,UAAC,IAAS,CAAC,KAAV,CACC,aAAY,EAAQ,KAAO,OAAS,SACpC,gBAAe,EAAW,GAAK,OAC9B,GAAG,EACJ,IAAK,EAEL,MAAO,CAAE,mBAAoB,OAAQ,GAAG,EAAM,OAE9C,cACE,EACI,EAAM,cACN,OAAoB,CAAC,EAAM,cAAe,IAGxC,IACA,EAAW,GACX,EADgB,IADD,UAET,CAAe,CACvB,CAAC,EAEP,cACE,EACI,EAAM,cACN,OAAoB,CAClB,EAAM,cACN,EAAe,IAEb,IACA,EAAkB,QAAU,CADb,MACoB,WAAW,IAAM,EAAW,GAAQ,EAAH,CAAM,CAC5E,CAAC,GAGT,cACE,EACI,EAAM,cACN,OAAoB,CAAC,EAAM,cAAe,EAAe,IAE/D,UAF6E,CAAC,KAG5E,EACI,EAAM,gBACN,OAAoB,CAAC,EAAM,gBAAiB,EAAe,IAEjE,UAF+E,CAAC,CAG9E,EACI,EAAM,YACN,OAAoB,CAAC,EAAM,YAAa,EAAe,GAAe,GAE9E,CACF,CAEJ,GAGF,EAAmB,CARkE,CAAC,SAQnE,CAAc,EAWjC,IAAM,EAAsD,IAG1D,GAAM,CAAE,qBAAoB,GAAG,EAAY,CAAI,EACzC,EAAY,EAAa,GADY,MAEpC,SAD0C,CAC3B,KAAd,CAAsB,GAAG,EAAY,GAAG,EAAa,CAC/D,EAEA,EAAkB,YAbE,EAaY,kBAMhC,IAAM,EAAe,qBAOf,EAA2B,aAC/B,CAAC,EAA6C,KAC5C,GAAM,oBAAE,EAAoB,GAAG,EAAa,CAAI,EAC1C,EAAU,EAAsB,EAAc,EADR,CAEtC,EAAY,EAAa,GACzB,EAAgC,MAFgC,EAEhC,EAAO,GADI,EACC,IAGhD,UAAe,KAAd,CACE,GAAG,EACH,GAAG,EACJ,IAAK,EACL,KAAK,QACL,WAAY,EACZ,MAAM,QACN,iBAAkB,QAChB,aAAM,mBAAN,SAAyB,EAAzB,CAEI,CAAC,CAFyB,CAEnB,kBAAoB,EAAwB,SAAS,EACxD,eAAe,EAGvB,EAAwB,SAAU,CACpC,EACA,kBAAmB,QACjB,aAAM,oBAAN,SAA0B,EAA1B,CAEI,EAF2B,gBAEpB,EAAqB,EAAD,KAAS,CAAO,IAAwB,SAAU,EACnF,EACA,MAAO,CACL,GAAG,EAAM,MAGP,gDAAiD,uCACjD,+CAAgD,sCAChD,gDAAiD,uCACjD,qCAAsC,mCACtC,sCAAuC,mCAE3C,GAGN,GAGF,EAAmB,YAAc,EAYjC,IAAM,EAAyB,aAC7B,CAAC,EAA2C,KAC1C,GAAM,oBAAE,EAAoB,GAAG,EAAW,CAAI,EACxC,EAAY,EAAa,EADW,CAE1C,MAAO,SAD0C,CAC3B,KAAd,CAAqB,GAAG,EAAY,GAAG,EAAY,IAAK,EAAc,CAChF,EAGF,GAAiB,YAdE,EAcY,iBAY/B,IAAM,EAAyB,aAC7B,CAAC,EAA2C,KAC1C,GAAM,CAAE,qBAAoB,GAAG,EAAW,CAAI,EACxC,EAAY,EAAa,EADW,CAE1C,MAAO,SAD0C,CAC3B,KAAd,CAAqB,GAAG,EAAY,GAAG,EAAY,IAAK,EAAc,CAChF,GAGF,EAAiB,YAdE,EAcY,iBAY/B,IAAM,EAAwB,aAC5B,CAAC,EAA0C,KACzC,GAAM,oBAAE,EAAoB,GAAG,EAAU,CAAI,EACvC,EAAY,EAAa,CADU,EAEzC,MAAO,SAD0C,CAC3B,KAAd,CAAoB,GAAG,EAAY,GAAG,EAAW,IAAK,EAAc,CAC9E,GAGF,EAAgB,YAdE,EAcY,gBAY9B,IAAM,EAAgC,aAGpC,CAAC,EAAkD,KACnD,GAAM,oBAAE,EAAoB,GAAG,EAAkB,CAAI,EAC/C,EAAY,EAAa,GAC/B,MAFiD,CAE1C,QAD0C,CAC3B,KAAd,CAA4B,GAAG,EAAY,GAAG,EAAmB,IAAK,EAAc,CAC9F,CAAC,CAED,GAAwB,YAfG,EAeW,wBAYtC,IAAM,EAA8B,aAGlC,CAAC,EAAgD,KACjD,GAAM,oBAAE,EAAoB,GAAG,EAAgB,CAAI,EAC7C,EAAY,EAAa,GAC/B,IAF+C,EAExC,SAD0C,CAC3B,KAAd,CAA0B,GAAG,EAAY,GAAG,EAAiB,IAAK,EAAc,CAC1F,CAAC,EAED,EAAsB,YAfG,EAeW,sBAYpC,IAAM,EAA6B,aAGjC,CAAC,EAA+C,KAChD,GAAM,oBAAE,EAAoB,GAAG,EAAe,CAAI,EAC5C,EAAY,EAAa,GAC/B,GAF8C,GAEvC,SAD0C,CAC3B,KAAd,CAAyB,GAAG,EAAY,GAAG,EAAgB,IAAK,EAAc,CACxF,CAAC,EAED,EAAqB,YAfG,EAeW,qBAYnC,IAAM,EAAiC,aAGrC,CAAC,EAAmD,KACpD,GAAM,CAAE,qBAAoB,GAAG,EAAmB,CAAI,EAChD,EAAY,EAAa,GAC/B,MAAO,CAF2C,EAE3C,MAD0C,CAC3B,KAAd,CAA6B,GAAG,EAAY,GAAG,EAAoB,IAAK,EAAc,CAChG,CAAC,CAED,GAAyB,YAfF,EAegB,yBAYvC,IAAM,EAA6B,aAGjC,CAAC,EAA+C,KAChD,GAAM,oBAAE,EAAoB,GAAG,EAAe,CAAI,EAC5C,EAAY,EAAa,GAC/B,GAF8C,GAEvC,SAD0C,CAC3B,KAAd,CAAyB,GAAG,EAAY,GAAG,EAAgB,IAAK,EAAc,CACxF,CAAC,EAED,EAAqB,YAfE,EAeY,qBAYnC,IAAM,EAAyB,aAC7B,CAAC,EAA2C,KAC1C,GAAM,oBAAE,EAAoB,GAAG,EAAW,CAAI,EACxC,EAAY,EAAa,EADW,CAE1C,MAAO,SAD0C,CAC3B,KAAd,CAAqB,GAAG,EAAY,GAAG,EAAY,IAAK,EAAc,CAChF,GAGF,EAAiB,YAdE,EAcY,iBAM/B,IAAM,EAAW,iBASX,EAAgD,IACpD,GAAM,CAAE,8BAAoB,eAAU,EAAc,KAAM,cAAU,EAAY,CAAI,EAC9E,EAAY,EAAa,GACzB,CAAC,EAAM,EAAO,CAAI,IAAJ,CAAI,EAAoB,CAAC,CAC3C,KAAM,EACN,qBAAa,EACb,SAAU,EACV,CAF4B,MAEpB,CACV,CAAC,EAED,MACE,UAAe,KAAd,CAAmB,GAAG,OAAW,EAAY,aAAc,WACzD,EACH,CAEJ,EAEA,EAAe,YAAc,EAY7B,IAAM,EAA8B,aAGlC,CAAC,EAAgD,KACjD,GAAM,oBAAE,EAAoB,GAAG,EAAiB,CAAI,EAC9C,EAAY,EAAa,GAC/B,KAFgD,CAEzC,SAD0C,CAC3B,KAAd,CAA0B,GAAG,EAAY,GAAG,EAAkB,IAAK,EAAc,CAC3F,CAAC,EAED,EAAsB,YAfG,EAeW,sBAYpC,IAAM,EAA8B,aAGlC,CAAC,EAAgD,KACjD,GAAM,oBAAE,EAAoB,GAAG,EAAgB,CAAI,EAC7C,EAAY,EAAa,GAE/B,IAH+C,EAI7C,SAH+C,CAGhC,KAAd,CACE,GAAG,EACH,GAAG,EACJ,IAAK,EACL,MAAO,CACL,GAAG,EAAM,MAGP,gDAAiD,uCACjD,+CAAgD,sCAChD,gDAAiD,uCACjD,qCAAsC,mCACtC,sCAAuC,mCAE3C,GAGN,CAAC,EAMD,SAAS,EAAkB,GAAqE,OACvF,GAAkC,UAAtB,EAAM,YAA0B,EAAQ,GAAS,EAAJ,GAAI,CACtE,CANA,EAAsB,YAjCG,EAiCW,sBAQpC,IAAMC,EAAO,EACP,EAAU,EACVC,EAAS,EACTC,EAAU,EACVC,EAAQ,EACRC,EAAQ,EACRC,EAAO,EACPC,EAAe,EACfC,EAAa,EACbC,EAAY,EACZC,EAAgB,EAChBC,EAAY,EACZC,EAAQ,EACRC,EAAM,EACNC,EAAa,EACbC,EAAa,oCCnhBb,MAAa,cAAgB,CAAC,YAAc,EAChD,CAAC,MAAQ,EAAE,EAAG,CAAY,cAAK,SAAU,EACzC,CAAC,MAAQ,EAAE,EAAG,CAAiB,mBAAK,SAAU,EAC/C,yECXD,eACA,4BACA,EAAgB,YAAgB,aAgBhC,EAfA,eAAU,wBAA8E,EACxF,GAcA,EAdA,EAeA,eAfA,IAGA,MAAyB,SAAG,CACxB,IAAS,KACb,CACA,qBAJ0D,GAA1D,GAAuC,aAAe,CAAI,mBAD1D,wBAC0D,iBAK1D,CACA,KACA,KACA,EAEA,CAAC,EACD,cAlBA,YAsBA,0TCVM,EAAY,CAAC,SAAU,UAAU,EACjC,EAAa,CAAC,UAAW,YAAa,YAAa,YAAY,EAG/D,EAA8C,CAClD,YAAa,CAAC,OAAQ,WAAY,YAAa,WAAW,EAC1D,aAAc,CAAC,OAAQ,WAAY,YAAa,YAAY,EAC5D,cAAe,CAAC,OAAQ,WAAY,YAAa,WAAW,EAC5D,WAAY,CAAC,OAAQ,WAAY,UAAW,WAAW,CACzD,EAMM,EAAc,SAEd,CAAC,EAAY,EAAe,EAAqB,CACrD,OAAgB,CAAqB,GAGjC,CAAC,EAAqB,EAAiB,CAAI,EAHC,CAGD,IAAkB,CAAC,EAAa,CAC/E,EACD,CAF4C,CAgBvC,CAAC,EAAgB,EAAgB,CAAI,EAAwC,GAwB7E,EAAe,MAxBkB,MAwBlB,CACnB,CAAC,EAAiC,KAChC,GAAM,CACJ,OACA,MAAM,MACN,EAAM,SACN,EAAO,cACP,EAAc,sBACd,GAAW,wBACX,EAAwB,eACxB,EAAe,CAAC,EAAG,QACnB,eACA,EAAgB,KAAO,gBACvB,EAAgB,KAAO,CAAD,UACtB,GAAW,OACX,EACA,GAAG,EACL,CAAI,EACE,EAAkB,SAAqC,IAAI,IAAI,CAAC,EAClC,SAAe,CAAC,EAC9C,EAA+B,eAAhB,EAGf,CAAC,EAAS,CAAC,EAAG,EAAS,CAAI,OAAoB,CAAC,CACpD,KAAM,EACN,YAAa,EACb,SAAU,QAER,YADgB,GAAG,EAAU,OAAO,EAC7B,EAAsB,OAAO,IAApC,EAAuC,MAAM,EAC7C,CADA,CACcC,EAChB,CACF,CAAC,EAFsB,EAGiB,SAAO,GAkB/C,GAlBqD,MAkB5C,EAAaA,CAAAA,CAAe,cAAmB,EAAO,CAAT,uDAAa,CAAE,QAAQ,CAAM,EAC3E,EA+oBV,OAAe,CA/oB0B,GA+oBnB,CA/oBuB,CAApB,GA+oBH,CAAM,GAAG,EAAE,CAAC,GAAK,IAAI,OA9oBjC,EAAa,SAipBL,EAAe,GAAsB,IACjD,EAAU,KAAK,IAAI,GAAI,GAC7B,OAAO,EADkC,GAC7B,MAAM,EAAQ,GAAW,CACvC,EAppBoC,CAmpBD,IAnpBM,SAAe,GAAO,GAAQ,CAAJ,CAAW,EAAK,GACvE,EAAY,OADuE,CACjE,EAAY,CAAC,EAAK,EAAI,CAAD,CAE7C,EAAU,eAAC,yDAAa,CAAC,EACjB,EAAa,SA4iBlB,QAAoB,uDAAuB,CAAC,EAAG,yCAAmB,EAAiB,uCACpF,EAAa,CAAC,GAAG,EAAU,CAEjC,OAFiC,CACjC,CAAW,EAAO,CAAI,EACf,EADW,IACA,CAAK,CAAC,EAAG,IAAM,EAAI,CAAC,CACxC,EAhjB+C,EAAY,EAAW,GAC9D,IAAI,SAsnBH,CAAyB,CAAkB,GAA+B,GAC7E,EAAwB,EAG1B,CAH6B,MAEO,KAAK,IAAI,GAAG,EAlBpC,MAAM,EAAG,EAAE,EAAE,IAAI,CAAC,EAAO,IAAU,EAAO,EAAQ,CAAC,CAiBR,CAjBa,KAAK,EAqB3E,OAAO,CACT,EA7nBqC,EAAY,EAAwB,GAM/D,CANmE,MAM5D,CAN+D,EACtE,EAAsB,QAAU,EAAW,QAAQ,GACnD,IAAM,EADsD,OAClC,KAAgB,KAAN,EAAa,GAEjD,OAF2D,GACzC,GAAQ,EAAc,EAAd,CACnB,EAAa,EAAa,CACnC,CAGF,CALsD,CAMxD,CAEA,GANW,GAOT,UAAC,GACC,MAAO,EAAM,mBACb,WACA,MACA,MACA,wBACA,EACA,OAAQ,EAAU,eAClB,cACA,OACA,EAEA,mBAAC,EAAW,SAAX,CAAoB,MAAO,EAAM,cAChC,mBAAC,EAAW,KAAX,CAAgB,MAAO,EAAM,cAC5B,mBA9DkB,EAAe,EAAmB,EA8DnD,CACC,gBAAe,EACf,gBAAe,EAAW,GAAK,OAC9B,GAAG,EACJ,IAAK,EACL,cAAe,OAAoB,CAAC,EAAY,cAAe,KACzD,GAAW,GAA0B,GAA1B,IAA0B,CAAU,EACrD,CAAC,MACD,MACA,WACA,EACA,aAAc,EAAW,OA5DnC,EA4D+C,OA5DtC,CAAiBA,EAAe,IACjC,EAAe,SAmmBlB,CAAqB,CAAkB,GAAmB,GAC3C,EAAG,EAArB,EAAO,OAAc,OAAO,EAChC,IAAM,EAAY,EAAO,IAAI,GAAW,KAAK,IAAI,EAAQ,IACnD,EAAkB,GAD0C,CAAC,CACtC,IAAI,GAAG,GACpC,MAD6C,CACtC,EAAU,QAAQ,EAC3B,EAxmBgD,EAAQA,GAClD,EAAaA,CAD0C,CACnC,EAsmBgB,EA3iB5B,QA3DwB,IA2DX,EAAW,OAxDlC,EAwD8C,OAxDrC,CAAgBA,EAAe,EACzBA,EAAO,EAAsB,OAAO,CACnD,EAuDU,WAAY,EAAW,OArDjC,EAqD6C,OArDpC,EACP,IAAM,EAAY,EAA0B,OADpB,CAC4B,EAAsB,OAAO,EAC/D,EAAO,EAAsB,MAE/B,CAFsC,IACrB,GACjB,EAAc,EAChC,EAiDU,EAlD4B,YAkDb,IAAM,CAAC,GAAY,EAAa,EAAK,EAAG,CAAE,QAAQ,CAAK,CAAC,EACvE,aAAc,IACZ,CAAC,GAAY,EAAa,EAAK,EAAO,OAAS,EAAG,CAAE,QAAQ,CAAK,CAAC,EAEpE,cAAe,OAAC,OAAE,EAAO,UAAW,EAAc,GAAM,GAClD,CAAC,EAAU,CAEb,IAAM,EADY,EAAU,SAAS,EAAM,GAAG,GACd,EAAM,UAAY,EAAW,SAAS,EAAM,GAAG,EAEzE,EAAU,EAAsB,QAGtC,EAAaA,CAFC,CAAO,EAAO,CACJ,GAHL,CAIE,CAJU,EAGA,CAHK,GAGQ,EACN,EAAS,CAAE,QAAQ,CAAK,CAAC,CACjE,CACF,GACF,CACF,EACF,GAGN,GAGF,EAAO,YAAc,EAQrB,GAAM,CAAC,EAA2B,EAA2B,CAAI,EAK9D,EAAa,CACd,UAAW,OACX,EAP2D,MAOlD,QACT,KAAM,QACN,UAAW,CACb,CAAC,EAsBK,EAAyB,aAC7B,CAAC,EAA2C,KAC1C,GAAM,KACJ,MACA,MACA,WACA,eACA,cACA,aACA,gBACA,EACA,GAAG,EACL,CAAI,EACE,CAAC,EAAQ,EAAS,CAAU,MAAV,IAAU,CAAmC,IAAI,EACnE,EAAe,OAAe,CAAC,EAAc,GAAU,EAAU,IAAI,CAAC,CACtD,SAAgB,MAAS,EACzC,EAAY,QAAY,CAAC,GAAG,EACG,QAAd,EACjB,EAAqB,GAAkB,CAAC,GAAc,CAAC,GAAkB,EAE/E,SAAS,EAAoB,GAAyB,IAC9C,EAAO,EAAQ,SAAW,EAAQ,sBAAsB,EAGxD,EAAQ,EAFkB,CAAC,EAAG,EAAK,KAAK,EACb,EAAoB,CAAC,EACrB,EAD6B,CAAI,CAAC,EAAK,EAAG,EAI3E,OADA,EAAQ,QAAU,EACX,EAAM,EAAkB,EAAK,IAAI,CAC1C,CAEA,MACE,UAAC,GACC,MAAO,EAAM,cACb,UAAW,EAAoB,OAAS,QACxC,QAAS,EAAoB,QAAU,OACvC,UAAW,EAAoB,EAAI,GACnC,KAAK,QAEL,mBAAC,GACC,IAAK,EACL,mBAAiB,aAChB,GAAG,EACJ,IAAK,EACL,MAAO,CACL,GAAG,EAAY,MACd,gCAAuC,CAAG,kBAC7C,EACA,aAAe,IACb,IAAM,EAAQ,EAAoB,EAAM,OAAO,QAC/C,KAAe,EACjB,EACA,CAFsB,WAET,IACX,IAAM,EAAQ,EAAoB,EAAM,OAAO,QAC/C,KAAc,EAChB,EACA,CAFqB,UAET,KACV,EAAQ,QAAU,aAClB,MACF,EACA,QAFe,MAEA,IAEb,IAAM,EAAY,EAAU,EADe,YACD,cAAE,SAAS,EAAM,GAAG,QAC9D,KAAgB,OAAE,EAAO,UAAW,EAAY,GAAK,CAAE,CAAC,CAC1D,GACF,EAGN,GAUI,EAAuB,aAC3B,CAAC,EAAyC,KACxC,GAAM,KACJ,MACA,EACA,WACA,2BACA,aACA,gBACA,EACA,GAAG,EACL,CAAI,EACE,EAAkB,SAA0B,IAAI,EAChD,EAAM,OAAe,CAAC,EAAc,GACpC,EAAgB,IAD6B,IAC7B,CAAgB,MAAS,EACzC,EAAsB,CAAC,EAE7B,SAAS,EAAoB,GAAyB,IAC9C,EAAO,EAAQ,SAAW,EAAU,QAAS,sBAAsB,EAGnE,EAAQ,EAFkB,CAAC,EAAG,EAAK,KAEf,CAFqB,EACd,EAAsB,CAAC,CACvB,CAD4B,EAAG,EAAK,CAC9B,CADmC,EAAG,EAI7E,OADA,EAAQ,QAAU,EACX,EAAM,EAAkB,EAAK,GAAG,CACzC,CAEA,MACE,UAAC,GACC,MAAO,EAAM,cACb,UAAW,EAAsB,SAAW,MAC5C,QAAS,EAAsB,MAAQ,SACvC,KAAK,SACL,UAAW,EAAsB,EAAI,GAErC,mBAAC,GACC,mBAAiB,WAChB,GAAG,MACJ,EACA,MAAO,CACL,GAAG,EAAY,MACd,gCAAuC,CAAG,iBAC7C,EACA,aAAc,IACZ,IAAM,EAAQ,EAAoB,EAAM,OAAO,QAC/C,KAAe,EACjB,EACA,CAFsB,WAET,IACX,IAAM,EAAQ,EAAoB,EAAM,OAAO,QAC/C,KAAc,EAChB,EACA,CAFqB,UAET,KACV,EAAQ,QAAU,aAClB,MACF,EACA,QAFe,MAEA,IAEb,IAAM,EAAY,EADK,EAAsB,YACH,EADmB,WACnB,CAAE,SAAS,EAAM,GAAG,QAC9D,KAAgB,OAAE,EAAO,UAAW,EAAY,GAAK,CAAE,CAAC,CAC1D,GACF,EAGN,GAmBI,EAAmB,aACvB,CAAC,EAAqC,KACpC,GAAM,eACJ,EACA,eACA,yBACA,gBACA,eACA,gBACA,EACA,GAAG,EACL,CAAI,EACE,EAAU,EAAiB,EAAa,GAE9C,MACE,IAHyD,CAGzD,KAAC,IAAS,CAAC,KAAV,CACE,GAAG,EACJ,IAAK,EACL,UAAW,OAAoB,CAAC,EAAM,UAAW,IAC7B,QAAQ,CAAtB,EAAM,KACR,EAAc,GAEd,EAAM,eAAe,GACE,OAAO,CAArB,EAAM,KACf,EAAa,GAEb,EAFkB,cAEZ,CAAe,GACZ,EAAU,OAAO,GAAY,OAAF,CAAE,CAAS,EAAM,GAAG,GAAG,CAC3D,EAAc,GAEd,EAFmB,cAEb,CAAe,EAEzB,CAAC,EACD,cAAe,OAAoB,CAAC,EAAM,cAAe,IACvD,IAAM,EAAS,EAAM,OACrB,EAAO,kBAAkB,EAAM,SAAS,EAExC,EAAM,eAAe,EAGjB,EAAQ,OAAO,IAAI,GACrB,EAAO,CADoB,GAAG,CACvB,CAAM,EAEb,EAAa,EAEjB,CAAC,EAFqB,cAGP,OAAoB,CAAC,EAAM,cAAe,IACxC,EAAM,OACV,kBAAkB,EAAM,SAAS,EAAG,GAAY,EAC7D,CAAC,EADiE,YAErD,OAAoB,CAAC,EAAM,YAAa,IACnD,IAAM,EAAS,EAAM,OACjB,EAAO,kBAAkB,EAAM,SAAS,GAAG,CAC7C,EAAO,sBAAsB,EAAM,SAAS,EAC5C,EAAW,GAEf,CAAC,CAFmB,EAK1B,GAOI,EAAa,cAMb,EAAoB,aACxB,CAAC,EAAsC,KACrC,GAAM,eAAE,EAAe,GAAG,EAAW,CAAI,EACnC,EAAU,EAAiB,EADI,GAErC,MACE,IAFwD,CAExD,KAAC,IAAS,CAAC,KAAV,CACC,gBAAe,EAAQ,SAAW,GAAK,OACvC,mBAAkB,EAAQ,YACzB,GAAG,EACJ,IAAK,GAGX,GAGF,EAAY,YAAc,EAM1B,IAAM,EAAa,cAKb,EAAoB,aACxB,CAAC,EAAsC,KACrC,GAAM,eAAE,EAAe,GAAG,EAAW,CAAI,EACnC,EAAU,EAAiB,EADI,GAE/B,EAAc,EAA4B,EAAY,GACtD,CAFoD,CAExC,QADuD,CAC/B,IAAI,EACxC,EAAe,OAAe,CAAC,EAAc,GAAG,EAClC,EAAQ,OAAO,OAC7B,EAAc,EAAQ,OAAO,IAAI,GACrC,EAAyB,EAAO,EAAQ,IAAK,EAAQ,GAAG,GAEpD,EAAc,EAAc,EAAI,KAAK,IAAI,GAAG,GAAe,EAC3D,EAAY,IAD2C,KAChC,IAAI,GAAG,GAEpC,MACE,EAH6C,CAG7C,OAAC,IAAS,CAAC,KAAV,CACC,mBAAkB,EAAQ,YAC1B,gBAAe,EAAQ,SAAW,GAAK,OACtC,GAAG,EACJ,IAAK,EACL,MAAO,CACL,GAAG,EAAM,MACT,CAAC,EAAY,SAAS,EAAG,EAAc,IACvC,CAAC,EAAY,OAAO,EAAG,EAAY,GACrC,GAGN,GAGF,EAAY,YAAc,EAM1B,IAAM,EAAa,cAKb,EAAoB,aACxB,CAAC,EAAsC,KACrC,IAAM,EAAW,EAAc,EAAM,aAAa,EAC5C,CAAC,EAAO,EAAQ,CAAU,KAAV,KAAU,CAAwC,IAAI,EACtE,EAAe,OAAe,CAAC,EAAc,GAAU,EAAS,IAAI,CAAC,CACvD,UAClB,IAAO,EAAQ,IAAW,KAAF,IAAE,CAAU,GAAU,EAAK,IAAI,UAAY,GAAS,EAAJ,CACxE,CAAC,EAAU,EAAK,EAElB,CAFkB,KAEX,UAAC,GAAiB,GAAG,EAAO,IAAK,QAAc,EAAc,CACtE,GASI,EAAwB,aAC5B,CAAC,EAA0C,KACzC,GAAM,eAAE,QAAe,OAAO,EAAM,GAAG,EAAW,CAAI,EAChD,EAAU,EAAiB,EAAY,GACvC,EAAc,EAA4B,EAAY,GACtD,CAFoD,EAE5C,EAAQ,CAAU,IADyC,CACnD,KAAU,CAAiC,IAAI,EAC/D,EAAe,OAAe,CAAC,EAAc,GAAU,EAAS,IAAI,CAAC,EAErD,GAAQ,EAAQ,MAAQ,CAAC,CAAC,EAAM,QAAQ,MAAM,EAC9D,EADkE,CAC3D,MAAO,CAAC,GAEf,EAFoB,EAEJ,OAAO,EAAK,CAC5B,EACM,SAAV,EAAsB,EAAI,EAAyB,EAAO,EAAQ,IAAK,EAAQ,GAAG,EAC9E,EAAQ,SAyIT,CAAS,CAAe,GAAqB,OACpD,EAAkB,EACT,CADY,QACZ,OAAS,EAAQ,CAAC,SAAkB,OAAX,GACvB,GAAmB,GACrB,CAAC,CAFmC,SAExB,SAAS,EAAE,EAAK,MAEnC,CAEJ,EAjJ2B,EAAO,EAAQ,OAAO,MAAM,EAC7C,iBAAkB,EAAO,EAAY,IAAI,EACzC,EAAsB,EACxB,SAmKC,CAAuB,CAAe,EAAc,GAAmB,IACxE,EAAY,EAAQ,EAEpB,EAAS,EAAY,CAAC,EADR,GACsB,CAAG,CAAC,EAAG,EAAU,EAC3D,KAD0D,CAC1D,CAAQ,EAAY,EAAO,GAAQ,CAAJ,EAAiB,CAClD,EAxK+B,EAAiB,EAAS,EAAY,SAAS,EACtE,EAWJ,OACE,EAVI,UAAU,KACd,GAAI,EAEF,KAFS,EACT,EAAQ,OAAO,IAAI,GACZ,EADiB,GAEtB,EAAQ,OAAO,OAAO,EACxB,CAEJ,EAHiC,CAG7B,EAAO,EAAQ,MAAM,CAAC,EAGxB,WAAC,QACC,MAAO,CACL,UAAW,sCACX,SAAU,WACV,CAAC,EAAY,SAAS,EAAG,eAAQ,EAAO,QAA0B,OAAnB,EAAmB,MACpE,EAEA,oBAAC,EAAW,SAAX,CAAoB,MAAO,EAAM,cAChC,mBAAC,IAAS,CAAC,KAAV,CACC,KAAK,SACL,aAAY,EAAM,YAAY,GAAK,EACnC,gBAAe,EAAQ,IACvB,gBAAe,EACf,gBAAe,EAAQ,IACvB,mBAAkB,EAAQ,YAC1B,mBAAkB,EAAQ,YAC1B,gBAAe,EAAQ,SAAW,GAAK,OACvC,SAAU,EAAQ,SAAW,OAAY,EACxC,GAAG,EACJ,IAAK,EAOL,MAAiB,SAAV,EAAsB,CAAE,QAAS,MAAO,EAAI,EAAM,MACzD,QAAS,OAAoB,CAAC,EAAM,QAAS,KAC3C,EAAQ,sBAAsB,QAAU,CAC1C,CAAC,GACH,CACF,EAEC,GACC,UAAC,GAEC,CAFF,IAEE,QACE,EACC,EAAQ,KAAO,EAAQ,MAAQ,EAAQ,OAAO,OAAS,EAAI,KAAO,IAAM,OAE3E,KAAM,EAAQ,WACd,GANK,GAOP,EAIR,GAGF,EAAY,YAAc,EAW1B,IAAM,EAA0B,aAC9B,GAA0E,QAAzE,CAAE,sBAAe,EAAO,GAAG,EAAM,GAC1B,CAD0B,CACd,SAAyB,IAAI,EACzC,EAAe,OAAe,CAAC,EAAK,GACpC,EAAY,OADoC,CACxB,GA0B9B,EA1BmC,KA2BjC,EAxBI,UAAU,KACd,IAAM,EAAQ,EAAI,QAClB,GAAI,CAAC,EAAO,OAIZ,IAAM,EAAW,OADS,yBADP,OAAO,iBAAiB,UACoB,OAAO,EAC1C,IAC5B,GAAI,IAAc,GAAS,EAAU,CACnC,IAAM,EAAQ,IAAI,MAAM,QAAS,CAAE,SAAS,CAAK,CAAC,EAClD,EAAS,KAAK,EAAO,GACrB,EAD0B,aACpB,CAAc,EACtB,CACF,EAF6B,CAEzB,EAAW,EAAM,EAYnB,UAAC,IAAS,CAAC,MAAV,CACC,MAAO,CAAE,QAAS,MAAO,EACxB,GAAG,EACJ,IAAK,EACL,aAAc,GAGpB,GAaF,SAAS,EAAyB,EAAe,EAAa,GAAa,MAIlE,OAAK,CAFW,KADN,CACY,CADN,IAEc,EAAQ,GACpB,CAAC,EAAG,GAAG,CAAC,CACnC,CA0EA,SAAS,EAAY,EAAkC,GAAmC,OACjF,IACL,GAAI,EAAM,CAAC,IAAM,EAAM,CAAC,GAAK,EAAO,CAAC,IAAM,EAAO,CAAC,EAAG,OAAO,EAAO,CAAC,EACrE,IAAM,GAAS,EAAO,CAAC,EAAI,EAAO,KAAO,EAAM,CAAC,EAAI,EAAM,IAC1D,OAAO,EAAO,CAAC,EAAI,GAAS,EAAQ,EAAM,GAC5C,CACF,CA/FA,EAAkB,YA9CQ,EA8CM,iBA0GhC,IAAM,EAAO,EACP,EAAQ,EACR,EAAQ,EACR,EAAQ,0RCzwBR,EAAY,OAGZ,CAAC,EAAmB,EAAe,CAAI,OAAkB,CAAC,EAAW,CACzE,CADuC,CACvC,EAA2B,CAC5B,EACK,EAA2B,QAA2B,CAAC,EAWvD,CAAC,EAAc,EAAc,CAAI,EAAoC,GA6BrE,EAAa,IA7BgB,QA6BhB,CACjB,CAAC,EAA+B,KAC9B,GAAM,aACJ,EACA,MAAO,gBACP,eACA,cACA,EAAc,iBACd,iBACA,EAAiB,YACjB,GAAG,EACL,CAAI,EACE,EAAY,QAAY,CAAC,GAAG,CAC3B,EAAO,EAAQ,CAAI,KAAJ,CAAI,CAAoB,CAAC,CAC7C,KAAM,EACN,SAAU,EACV,oBAAa,EAAgB,GAC7B,OAAQ,CACV,CAAC,EAED,MACE,UAAC,GACC,MAAO,EACP,OAAQ,OAAK,CAAC,QACd,EACA,cAAe,cACf,EACA,IAAK,iBACL,EAEA,mBAAC,IAAS,CAAC,IAAV,CACC,IAAK,EACL,mBAAkB,EACjB,GAAG,EACJ,IAAK,GACP,EAGN,GAGF,EAAK,YAAc,EAMnB,IAAM,EAAgB,WAOhB,EAAiB,aACrB,CAAC,EAAmC,KAClC,GAAM,aAAE,OAAa,GAAO,EAAM,GAAG,EAAU,CAAI,EAC7C,EAAU,EAAe,CADgB,CACD,GACxC,EAAwB,EAAyB,GACvD,CAFyD,KAGvD,EAFgE,CAEhE,OAAkB,KAAjB,CACC,SAAO,EACN,GAAG,EACJ,YAAa,EAAQ,YACrB,IAAK,EAAQ,SACb,EAEA,mBAAC,IAAS,CAAC,IAAV,CACC,KAAK,UACL,mBAAkB,EAAQ,YACzB,GAAG,EACJ,IAAK,GACP,EAGN,GAGF,EAAS,YAAc,EAMvB,IAAM,EAAe,cAQf,EAAoB,aACxB,CAAC,EAAsC,KACrC,GAAM,aAAE,QAAa,WAAO,GAAW,EAAO,GAAG,EAAa,CAAI,EAC5D,EAAU,EAAe,EAAc,EADiB,CAExD,EAAwB,EAAyB,GACjD,CAFkD,CAEtC,EAAc,EAAQ,EAD0B,IAC1B,CAAQ,GAC1C,EAD+C,EACrB,EAAQ,OAAQ,GAC1C,EAAa,IAAU,EAAQ,MACrC,MACE,UAAkB,KAAjB,CACC,SAAO,EACN,GAAG,EACJ,UAAW,CAAC,EACZ,OAAQ,EAER,mBAAC,IAAS,CAAC,OAAV,CACC,KAAK,SACL,KAAK,MACL,gBAAe,EACf,gBAAe,EACf,aAAY,EAAa,SAAW,WACpC,gBAAe,EAAW,GAAK,gBAC/B,EACA,GAAI,EACH,GAAG,EACJ,IAAK,EACL,YAAa,OAAoB,CAAC,EAAM,YAAa,IAG/C,GAAa,MAAM,SAAkC,IAAlB,EAAM,CAAmB,MAAnB,CAI3C,EAAM,eAAe,EAHrB,EAAQ,cAAc,EAK1B,CAAC,EACD,UAAW,OAAoB,CAAC,EAAM,UAAW,IAC3C,CAAC,IAAK,OAAO,EAAE,SAAS,EAAM,GAAG,EAAG,GAAQ,cAAc,EAChE,CAAC,EADoE,QAE5D,OAAoB,CAAC,EAAM,QAAS,KAG3C,IAAM,EAAmD,WAA3B,EAAQ,eACjC,GAAe,IAAY,GAC9B,EAAQ,EADS,WACT,CAAc,EAE1B,CAAC,EAF8B,CAGjC,EAGN,GAGF,EAAY,YAAc,EAM1B,IAAM,EAAe,cAaf,EAAoB,aACxB,CAAC,EAAsC,KACrC,GAAM,aAAE,EAAa,mBAAO,WAAY,EAAU,GAAG,EAAa,CAAI,EAChE,EAAU,EAAe,EAAc,EADqB,CAE5D,EAAY,EAAc,EAAQ,EADgB,IAChB,CAAQ,GAC1C,EAD+C,EACrB,EAAQ,OAAQ,GAC1C,EAD+C,IACxB,EAAQ,MAC/B,EAAqC,SAAO,GAOlD,OAP4D,EAEtD,UAAU,KACd,IAAM,EAAM,sBAAsB,IAAO,EAA6B,SAAU,GAChF,EADsF,IAC/E,IAAM,qBAAqB,EACpC,CADuC,CACpC,CAAC,CAAC,EAGH,UAAC,GAAQ,CAAR,CAAS,QAAS,GAAc,EAC9B,gBAAC,SAAE,EAAQ,SACV,UAAC,IAAS,CAAC,IAAV,CACC,aAAY,EAAa,SAAW,WACpC,mBAAkB,EAAQ,YAC1B,KAAK,WACL,kBAAiB,EACjB,OAAQ,CAAC,EACT,GAAI,EACJ,SAAU,EACT,GAAG,EACJ,IAAK,EACL,MAAO,CACL,GAAG,EAAM,MACT,kBAAmB,EAA6B,QAAU,KAAO,MACnE,EAEC,YAAW,IACd,CAEJ,CAEJ,GAOF,SAAS,EAAc,EAAgB,GAAe,MAC7C,UAAG,EAAM,aAAiB,OAAL,EAC9B,CAEA,EAHmC,OAG1B,EAAc,EAAgB,GAAe,MAC7C,UAAG,EAAM,aAAiB,OAAL,EAC9B,CAVA,EAAY,YAAc,EAY1B,IAAMf,EAAO,EACP,EAAO,EACP,EAAU,EACV,EAAU","sources":["webpack://_N_E/../src/context-menu.tsx","webpack://_N_E/../../../src/icons/arrow-right.ts","webpack://_N_E/../../node_modules/.bun/@radix-ui+react-separator@1.1.7+b41f8805ee63d2ff/node_modules/@radix-ui/react-separator/dist/index.mjs","webpack://_N_E/../src/slider.tsx","webpack://_N_E/../src/tabs.tsx"],"sourcesContent":["import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as MenuPrimitive from '@radix-ui/react-menu';\nimport { createMenuScope } from '@radix-ui/react-menu';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\n\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\ntype Point = { x: number; y: number };\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenu\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTEXT_MENU_NAME = 'ContextMenu';\n\ntype ScopedProps<P> = P & { __scopeContextMenu?: Scope };\nconst [createContextMenuContext, createContextMenuScope] = createContextScope(CONTEXT_MENU_NAME, [\n createMenuScope,\n]);\nconst useMenuScope = createMenuScope();\n\ntype ContextMenuContextValue = {\n open: boolean;\n onOpenChange(open: boolean): void;\n modal: boolean;\n};\n\nconst [ContextMenuProvider, useContextMenuContext] =\n createContextMenuContext<ContextMenuContextValue>(CONTEXT_MENU_NAME);\n\ninterface ContextMenuProps {\n children?: React.ReactNode;\n onOpenChange?(open: boolean): void;\n dir?: Direction;\n modal?: boolean;\n}\n\nconst ContextMenu: React.FC<ContextMenuProps> = (props: ScopedProps<ContextMenuProps>) => {\n const { __scopeContextMenu, children, onOpenChange, dir, modal = true } = props;\n const [open, setOpen] = React.useState(false);\n const menuScope = useMenuScope(__scopeContextMenu);\n const handleOpenChangeProp = useCallbackRef(onOpenChange);\n\n const handleOpenChange = React.useCallback(\n (open: boolean) => {\n setOpen(open);\n handleOpenChangeProp(open);\n },\n [handleOpenChangeProp]\n );\n\n return (\n <ContextMenuProvider\n scope={__scopeContextMenu}\n open={open}\n onOpenChange={handleOpenChange}\n modal={modal}\n >\n <MenuPrimitive.Root\n {...menuScope}\n dir={dir}\n open={open}\n onOpenChange={handleOpenChange}\n modal={modal}\n >\n {children}\n </MenuPrimitive.Root>\n </ContextMenuProvider>\n );\n};\n\nContextMenu.displayName = CONTEXT_MENU_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'ContextMenuTrigger';\n\ntype ContextMenuTriggerElement = React.ComponentRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface ContextMenuTriggerProps extends PrimitiveSpanProps {\n disabled?: boolean;\n}\n\nconst ContextMenuTrigger = React.forwardRef<ContextMenuTriggerElement, ContextMenuTriggerProps>(\n (props: ScopedProps<ContextMenuTriggerProps>, forwardedRef) => {\n const { __scopeContextMenu, disabled = false, ...triggerProps } = props;\n const context = useContextMenuContext(TRIGGER_NAME, __scopeContextMenu);\n const menuScope = useMenuScope(__scopeContextMenu);\n const pointRef = React.useRef<Point>({ x: 0, y: 0 });\n const virtualRef = React.useRef({\n getBoundingClientRect: () => DOMRect.fromRect({ width: 0, height: 0, ...pointRef.current }),\n });\n const longPressTimerRef = React.useRef(0);\n const clearLongPress = React.useCallback(\n () => window.clearTimeout(longPressTimerRef.current),\n []\n );\n const handleOpen = (event: React.MouseEvent | React.PointerEvent) => {\n pointRef.current = { x: event.clientX, y: event.clientY };\n context.onOpenChange(true);\n };\n\n React.useEffect(() => clearLongPress, [clearLongPress]);\n React.useEffect(() => void (disabled && clearLongPress()), [disabled, clearLongPress]);\n\n return (\n <>\n <MenuPrimitive.Anchor {...menuScope} virtualRef={virtualRef} />\n <Primitive.span\n data-state={context.open ? 'open' : 'closed'}\n data-disabled={disabled ? '' : undefined}\n {...triggerProps}\n ref={forwardedRef}\n // prevent iOS context menu from appearing\n style={{ WebkitTouchCallout: 'none', ...props.style }}\n // if trigger is disabled, enable the native Context Menu\n onContextMenu={\n disabled\n ? props.onContextMenu\n : composeEventHandlers(props.onContextMenu, (event) => {\n // clearing the long press here because some platforms already support\n // long press to trigger a `contextmenu` event\n clearLongPress();\n handleOpen(event);\n event.preventDefault();\n })\n }\n onPointerDown={\n disabled\n ? props.onPointerDown\n : composeEventHandlers(\n props.onPointerDown,\n whenTouchOrPen((event) => {\n // clear the long press here in case there's multiple touch points\n clearLongPress();\n longPressTimerRef.current = window.setTimeout(() => handleOpen(event), 700);\n })\n )\n }\n onPointerMove={\n disabled\n ? props.onPointerMove\n : composeEventHandlers(props.onPointerMove, whenTouchOrPen(clearLongPress))\n }\n onPointerCancel={\n disabled\n ? props.onPointerCancel\n : composeEventHandlers(props.onPointerCancel, whenTouchOrPen(clearLongPress))\n }\n onPointerUp={\n disabled\n ? props.onPointerUp\n : composeEventHandlers(props.onPointerUp, whenTouchOrPen(clearLongPress))\n }\n />\n </>\n );\n }\n);\n\nContextMenuTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'ContextMenuPortal';\n\ntype MenuPortalProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Portal>;\ninterface ContextMenuPortalProps extends MenuPortalProps {}\n\nconst ContextMenuPortal: React.FC<ContextMenuPortalProps> = (\n props: ScopedProps<ContextMenuPortalProps>\n) => {\n const { __scopeContextMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Portal {...menuScope} {...portalProps} />;\n};\n\nContextMenuPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'ContextMenuContent';\n\ntype ContextMenuContentElement = React.ComponentRef<typeof MenuPrimitive.Content>;\ntype MenuContentProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Content>;\ninterface ContextMenuContentProps\n extends Omit<MenuContentProps, 'onEntryFocus' | 'side' | 'sideOffset' | 'align'> {}\n\nconst ContextMenuContent = React.forwardRef<ContextMenuContentElement, ContextMenuContentProps>(\n (props: ScopedProps<ContextMenuContentProps>, forwardedRef) => {\n const { __scopeContextMenu, ...contentProps } = props;\n const context = useContextMenuContext(CONTENT_NAME, __scopeContextMenu);\n const menuScope = useMenuScope(__scopeContextMenu);\n const hasInteractedOutsideRef = React.useRef(false);\n\n return (\n <MenuPrimitive.Content\n {...menuScope}\n {...contentProps}\n ref={forwardedRef}\n side=\"right\"\n sideOffset={2}\n align=\"start\"\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented && hasInteractedOutsideRef.current) {\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented && !context.modal) hasInteractedOutsideRef.current = true;\n }}\n style={{\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n '--radix-context-menu-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-context-menu-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-context-menu-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-context-menu-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-context-menu-trigger-height': 'var(--radix-popper-anchor-height)',\n },\n }}\n />\n );\n }\n);\n\nContextMenuContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst GROUP_NAME = 'ContextMenuGroup';\n\ntype ContextMenuGroupElement = React.ComponentRef<typeof MenuPrimitive.Group>;\ntype MenuGroupProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Group>;\ninterface ContextMenuGroupProps extends MenuGroupProps {}\n\nconst ContextMenuGroup = React.forwardRef<ContextMenuGroupElement, ContextMenuGroupProps>(\n (props: ScopedProps<ContextMenuGroupProps>, forwardedRef) => {\n const { __scopeContextMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Group {...menuScope} {...groupProps} ref={forwardedRef} />;\n }\n);\n\nContextMenuGroup.displayName = GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuLabel\n * -----------------------------------------------------------------------------------------------*/\n\nconst LABEL_NAME = 'ContextMenuLabel';\n\ntype ContextMenuLabelElement = React.ComponentRef<typeof MenuPrimitive.Label>;\ntype MenuLabelProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Label>;\ninterface ContextMenuLabelProps extends MenuLabelProps {}\n\nconst ContextMenuLabel = React.forwardRef<ContextMenuLabelElement, ContextMenuLabelProps>(\n (props: ScopedProps<ContextMenuLabelProps>, forwardedRef) => {\n const { __scopeContextMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Label {...menuScope} {...labelProps} ref={forwardedRef} />;\n }\n);\n\nContextMenuLabel.displayName = LABEL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'ContextMenuItem';\n\ntype ContextMenuItemElement = React.ComponentRef<typeof MenuPrimitive.Item>;\ntype MenuItemProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Item>;\ninterface ContextMenuItemProps extends MenuItemProps {}\n\nconst ContextMenuItem = React.forwardRef<ContextMenuItemElement, ContextMenuItemProps>(\n (props: ScopedProps<ContextMenuItemProps>, forwardedRef) => {\n const { __scopeContextMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Item {...menuScope} {...itemProps} ref={forwardedRef} />;\n }\n);\n\nContextMenuItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuCheckboxItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst CHECKBOX_ITEM_NAME = 'ContextMenuCheckboxItem';\n\ntype ContextMenuCheckboxItemElement = React.ComponentRef<typeof MenuPrimitive.CheckboxItem>;\ntype MenuCheckboxItemProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.CheckboxItem>;\ninterface ContextMenuCheckboxItemProps extends MenuCheckboxItemProps {}\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n ContextMenuCheckboxItemElement,\n ContextMenuCheckboxItemProps\n>((props: ScopedProps<ContextMenuCheckboxItemProps>, forwardedRef) => {\n const { __scopeContextMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.CheckboxItem {...menuScope} {...checkboxItemProps} ref={forwardedRef} />;\n});\n\nContextMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuRadioGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_GROUP_NAME = 'ContextMenuRadioGroup';\n\ntype ContextMenuRadioGroupElement = React.ComponentRef<typeof MenuPrimitive.RadioGroup>;\ntype MenuRadioGroupProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.RadioGroup>;\ninterface ContextMenuRadioGroupProps extends MenuRadioGroupProps {}\n\nconst ContextMenuRadioGroup = React.forwardRef<\n ContextMenuRadioGroupElement,\n ContextMenuRadioGroupProps\n>((props: ScopedProps<ContextMenuRadioGroupProps>, forwardedRef) => {\n const { __scopeContextMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.RadioGroup {...menuScope} {...radioGroupProps} ref={forwardedRef} />;\n});\n\nContextMenuRadioGroup.displayName = RADIO_GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuRadioItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_ITEM_NAME = 'ContextMenuRadioItem';\n\ntype ContextMenuRadioItemElement = React.ComponentRef<typeof MenuPrimitive.RadioItem>;\ntype MenuRadioItemProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.RadioItem>;\ninterface ContextMenuRadioItemProps extends MenuRadioItemProps {}\n\nconst ContextMenuRadioItem = React.forwardRef<\n ContextMenuRadioItemElement,\n ContextMenuRadioItemProps\n>((props: ScopedProps<ContextMenuRadioItemProps>, forwardedRef) => {\n const { __scopeContextMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.RadioItem {...menuScope} {...radioItemProps} ref={forwardedRef} />;\n});\n\nContextMenuRadioItem.displayName = RADIO_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuItemIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'ContextMenuItemIndicator';\n\ntype ContextMenuItemIndicatorElement = React.ComponentRef<typeof MenuPrimitive.ItemIndicator>;\ntype MenuItemIndicatorProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.ItemIndicator>;\ninterface ContextMenuItemIndicatorProps extends MenuItemIndicatorProps {}\n\nconst ContextMenuItemIndicator = React.forwardRef<\n ContextMenuItemIndicatorElement,\n ContextMenuItemIndicatorProps\n>((props: ScopedProps<ContextMenuItemIndicatorProps>, forwardedRef) => {\n const { __scopeContextMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.ItemIndicator {...menuScope} {...itemIndicatorProps} ref={forwardedRef} />;\n});\n\nContextMenuItemIndicator.displayName = INDICATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSeparator\n * -----------------------------------------------------------------------------------------------*/\n\nconst SEPARATOR_NAME = 'ContextMenuSeparator';\n\ntype ContextMenuSeparatorElement = React.ComponentRef<typeof MenuPrimitive.Separator>;\ntype MenuSeparatorProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Separator>;\ninterface ContextMenuSeparatorProps extends MenuSeparatorProps {}\n\nconst ContextMenuSeparator = React.forwardRef<\n ContextMenuSeparatorElement,\n ContextMenuSeparatorProps\n>((props: ScopedProps<ContextMenuSeparatorProps>, forwardedRef) => {\n const { __scopeContextMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Separator {...menuScope} {...separatorProps} ref={forwardedRef} />;\n});\n\nContextMenuSeparator.displayName = SEPARATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'ContextMenuArrow';\n\ntype ContextMenuArrowElement = React.ComponentRef<typeof MenuPrimitive.Arrow>;\ntype MenuArrowProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.Arrow>;\ninterface ContextMenuArrowProps extends MenuArrowProps {}\n\nconst ContextMenuArrow = React.forwardRef<ContextMenuArrowElement, ContextMenuArrowProps>(\n (props: ScopedProps<ContextMenuArrowProps>, forwardedRef) => {\n const { __scopeContextMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.Arrow {...menuScope} {...arrowProps} ref={forwardedRef} />;\n }\n);\n\nContextMenuArrow.displayName = ARROW_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSub\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_NAME = 'ContextMenuSub';\n\ninterface ContextMenuSubProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n}\n\nconst ContextMenuSub: React.FC<ContextMenuSubProps> = (props: ScopedProps<ContextMenuSubProps>) => {\n const { __scopeContextMenu, children, onOpenChange, open: openProp, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: SUB_NAME,\n });\n\n return (\n <MenuPrimitive.Sub {...menuScope} open={open} onOpenChange={setOpen}>\n {children}\n </MenuPrimitive.Sub>\n );\n};\n\nContextMenuSub.displayName = SUB_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSubTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_TRIGGER_NAME = 'ContextMenuSubTrigger';\n\ntype ContextMenuSubTriggerElement = React.ComponentRef<typeof MenuPrimitive.SubTrigger>;\ntype MenuSubTriggerProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.SubTrigger>;\ninterface ContextMenuSubTriggerProps extends MenuSubTriggerProps {}\n\nconst ContextMenuSubTrigger = React.forwardRef<\n ContextMenuSubTriggerElement,\n ContextMenuSubTriggerProps\n>((props: ScopedProps<ContextMenuSubTriggerProps>, forwardedRef) => {\n const { __scopeContextMenu, ...triggerItemProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n return <MenuPrimitive.SubTrigger {...menuScope} {...triggerItemProps} ref={forwardedRef} />;\n});\n\nContextMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * ContextMenuSubContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_CONTENT_NAME = 'ContextMenuSubContent';\n\ntype ContextMenuSubContentElement = React.ComponentRef<typeof MenuPrimitive.Content>;\ntype MenuSubContentProps = React.ComponentPropsWithoutRef<typeof MenuPrimitive.SubContent>;\ninterface ContextMenuSubContentProps extends MenuSubContentProps {}\n\nconst ContextMenuSubContent = React.forwardRef<\n ContextMenuSubContentElement,\n ContextMenuSubContentProps\n>((props: ScopedProps<ContextMenuSubContentProps>, forwardedRef) => {\n const { __scopeContextMenu, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeContextMenu);\n\n return (\n <MenuPrimitive.SubContent\n {...menuScope}\n {...subContentProps}\n ref={forwardedRef}\n style={{\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n '--radix-context-menu-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-context-menu-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-context-menu-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-context-menu-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-context-menu-trigger-height': 'var(--radix-popper-anchor-height)',\n },\n }}\n />\n );\n});\n\nContextMenuSubContent.displayName = SUB_CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction whenTouchOrPen<E>(handler: React.PointerEventHandler<E>): React.PointerEventHandler<E> {\n return (event) => (event.pointerType !== 'mouse' ? handler(event) : undefined);\n}\n\nconst Root = ContextMenu;\nconst Trigger = ContextMenuTrigger;\nconst Portal = ContextMenuPortal;\nconst Content = ContextMenuContent;\nconst Group = ContextMenuGroup;\nconst Label = ContextMenuLabel;\nconst Item = ContextMenuItem;\nconst CheckboxItem = ContextMenuCheckboxItem;\nconst RadioGroup = ContextMenuRadioGroup;\nconst RadioItem = ContextMenuRadioItem;\nconst ItemIndicator = ContextMenuItemIndicator;\nconst Separator = ContextMenuSeparator;\nconst Arrow = ContextMenuArrow;\nconst Sub = ContextMenuSub;\nconst SubTrigger = ContextMenuSubTrigger;\nconst SubContent = ContextMenuSubContent;\n\nexport {\n createContextMenuScope,\n //\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuPortal,\n ContextMenuContent,\n ContextMenuGroup,\n ContextMenuLabel,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuItemIndicator,\n ContextMenuSeparator,\n ContextMenuArrow,\n ContextMenuSub,\n ContextMenuSubTrigger,\n ContextMenuSubContent,\n //\n Root,\n Trigger,\n Portal,\n Content,\n Group,\n Label,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n ItemIndicator,\n Separator,\n Arrow,\n Sub,\n SubTrigger,\n SubContent,\n};\nexport type {\n ContextMenuProps,\n ContextMenuTriggerProps,\n ContextMenuPortalProps,\n ContextMenuContentProps,\n ContextMenuGroupProps,\n ContextMenuLabelProps,\n ContextMenuItemProps,\n ContextMenuCheckboxItemProps,\n ContextMenuRadioGroupProps,\n ContextMenuRadioItemProps,\n ContextMenuItemIndicatorProps,\n ContextMenuSeparatorProps,\n ContextMenuArrowProps,\n ContextMenuSubProps,\n ContextMenuSubTriggerProps,\n ContextMenuSubContentProps,\n};\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJtMTIgNSA3IDctNyA3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowRight = createLucideIcon('ArrowRight', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'm12 5 7 7-7 7', key: 'xquz4c' }],\n]);\n\nexport default ArrowRight;\n","// src/separator.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Separator\";\nvar DEFAULT_ORIENTATION = \"horizontal\";\nvar ORIENTATIONS = [\"horizontal\", \"vertical\"];\nvar Separator = React.forwardRef((props, forwardedRef) => {\n const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;\n const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;\n const ariaOrientation = orientation === \"vertical\" ? orientation : void 0;\n const semanticProps = decorative ? { role: \"none\" } : { \"aria-orientation\": ariaOrientation, role: \"separator\" };\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-orientation\": orientation,\n ...semanticProps,\n ...domProps,\n ref: forwardedRef\n }\n );\n});\nSeparator.displayName = NAME;\nfunction isValidOrientation(orientation) {\n return ORIENTATIONS.includes(orientation);\n}\nvar Root = Separator;\nexport {\n Root,\n Separator\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react';\nimport { clamp } from '@radix-ui/number';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { createCollection } from '@radix-ui/react-collection';\n\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst PAGE_KEYS = ['PageUp', 'PageDown'];\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\ntype SlideDirection = 'from-left' | 'from-right' | 'from-bottom' | 'from-top';\nconst BACK_KEYS: Record<SlideDirection, string[]> = {\n 'from-left': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-right': ['Home', 'PageDown', 'ArrowDown', 'ArrowRight'],\n 'from-bottom': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-top': ['Home', 'PageDown', 'ArrowUp', 'ArrowLeft'],\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Slider\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLIDER_NAME = 'Slider';\n\nconst [Collection, useCollection, createCollectionScope] =\n createCollection<SliderThumbElement>(SLIDER_NAME);\n\ntype ScopedProps<P> = P & { __scopeSlider?: Scope };\nconst [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope,\n]);\n\ntype SliderContextValue = {\n name: string | undefined;\n disabled: boolean | undefined;\n min: number;\n max: number;\n values: number[];\n valueIndexToChangeRef: React.MutableRefObject<number>;\n thumbs: Set<SliderThumbElement>;\n orientation: SliderProps['orientation'];\n form: string | undefined;\n};\n\nconst [SliderProvider, useSliderContext] = createSliderContext<SliderContextValue>(SLIDER_NAME);\n\ntype SliderElement = SliderHorizontalElement | SliderVerticalElement;\ninterface SliderProps\n extends Omit<\n SliderHorizontalProps | SliderVerticalProps,\n keyof SliderOrientationPrivateProps | 'defaultValue'\n > {\n name?: string;\n disabled?: boolean;\n orientation?: React.AriaAttributes['aria-orientation'];\n dir?: Direction;\n min?: number;\n max?: number;\n step?: number;\n minStepsBetweenThumbs?: number;\n value?: number[];\n defaultValue?: number[];\n onValueChange?(value: number[]): void;\n onValueCommit?(value: number[]): void;\n inverted?: boolean;\n form?: string;\n}\n\nconst Slider = React.forwardRef<SliderElement, SliderProps>(\n (props: ScopedProps<SliderProps>, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = 'horizontal',\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {},\n onValueCommit = () => {},\n inverted = false,\n form,\n ...sliderProps\n } = props;\n const thumbRefs = React.useRef<SliderContextValue['thumbs']>(new Set());\n const valueIndexToChangeRef = React.useRef<number>(0);\n const isHorizontal = orientation === 'horizontal';\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value);\n },\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n\n function handleSlideStart(value: number) {\n const closestIndex = getClosestValueIndex(values, value);\n updateValues(value, closestIndex);\n }\n\n function handleSlideMove(value: number) {\n updateValues(value, valueIndexToChangeRef.current);\n }\n\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n\n function updateValues(value: number, atIndex: number, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else {\n return prevValues;\n }\n });\n }\n\n return (\n <SliderProvider\n scope={props.__scopeSlider}\n name={name}\n disabled={disabled}\n min={min}\n max={max}\n valueIndexToChangeRef={valueIndexToChangeRef}\n thumbs={thumbRefs.current}\n values={values}\n orientation={orientation}\n form={form}\n >\n <Collection.Provider scope={props.__scopeSlider}>\n <Collection.Slot scope={props.__scopeSlider}>\n <SliderOrientation\n aria-disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n {...sliderProps}\n ref={forwardedRef}\n onPointerDown={composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n })}\n min={min}\n max={max}\n inverted={inverted}\n onSlideStart={disabled ? undefined : handleSlideStart}\n onSlideMove={disabled ? undefined : handleSlideMove}\n onSlideEnd={disabled ? undefined : handleSlideEnd}\n onHomeKeyDown={() => !disabled && updateValues(min, 0, { commit: true })}\n onEndKeyDown={() =>\n !disabled && updateValues(max, values.length - 1, { commit: true })\n }\n onStepKeyDown={({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || (event.shiftKey && ARROW_KEYS.includes(event.key));\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value = values[atIndex]!;\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value + stepInDirection, atIndex, { commit: true });\n }\n }}\n />\n </Collection.Slot>\n </Collection.Provider>\n </SliderProvider>\n );\n }\n);\n\nSlider.displayName = SLIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderHorizontal\n * -----------------------------------------------------------------------------------------------*/\n\ntype Side = 'top' | 'right' | 'bottom' | 'left';\n\nconst [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext<{\n startEdge: Side;\n endEdge: Side;\n size: keyof NonNullable<ReturnType<typeof useSize>>;\n direction: number;\n}>(SLIDER_NAME, {\n startEdge: 'left',\n endEdge: 'right',\n size: 'width',\n direction: 1,\n});\n\ntype SliderOrientationPrivateProps = {\n min: number;\n max: number;\n inverted: boolean;\n onSlideStart?(value: number): void;\n onSlideMove?(value: number): void;\n onSlideEnd?(): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(step: { event: React.KeyboardEvent; direction: number }): void;\n};\ninterface SliderOrientationProps\n extends Omit<SliderImplProps, keyof SliderImplPrivateProps>,\n SliderOrientationPrivateProps {}\n\ntype SliderHorizontalElement = SliderImplElement;\ninterface SliderHorizontalProps extends SliderOrientationProps {\n dir?: Direction;\n}\n\nconst SliderHorizontal = React.forwardRef<SliderHorizontalElement, SliderHorizontalProps>(\n (props: ScopedProps<SliderHorizontalProps>, forwardedRef) => {\n const {\n min,\n max,\n dir,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState<SliderImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef<DOMRect>(undefined);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === 'ltr';\n const isSlidingFromLeft = (isDirectionLTR && !inverted) || (!isDirectionLTR && inverted);\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || slider!.getBoundingClientRect();\n const input: [number, number] = [0, rect.width];\n const output: [number, number] = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromLeft ? 'left' : 'right'}\n endEdge={isSlidingFromLeft ? 'right' : 'left'}\n direction={isSlidingFromLeft ? 1 : -1}\n size=\"width\"\n >\n <SliderImpl\n dir={direction}\n data-orientation=\"horizontal\"\n {...sliderProps}\n ref={composedRefs}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateX(-50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => {\n rectRef.current = undefined;\n onSlideEnd?.();\n }}\n onStepKeyDown={(event) => {\n const slideDirection = isSlidingFromLeft ? 'from-left' : 'from-right';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderVertical\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderVerticalElement = SliderImplElement;\ninterface SliderVerticalProps extends SliderOrientationProps {}\n\nconst SliderVertical = React.forwardRef<SliderVerticalElement, SliderVerticalProps>(\n (props: ScopedProps<SliderVerticalProps>, forwardedRef) => {\n const {\n min,\n max,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const sliderRef = React.useRef<SliderImplElement>(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef<DOMRect>(undefined);\n const isSlidingFromBottom = !inverted;\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || sliderRef.current!.getBoundingClientRect();\n const input: [number, number] = [0, rect.height];\n const output: [number, number] = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromBottom ? 'bottom' : 'top'}\n endEdge={isSlidingFromBottom ? 'top' : 'bottom'}\n size=\"height\"\n direction={isSlidingFromBottom ? 1 : -1}\n >\n <SliderImpl\n data-orientation=\"vertical\"\n {...sliderProps}\n ref={ref}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateY(50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => {\n rectRef.current = undefined;\n onSlideEnd?.();\n }}\n onStepKeyDown={(event) => {\n const slideDirection = isSlidingFromBottom ? 'from-bottom' : 'from-top';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderImpl\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderImplElement = React.ComponentRef<typeof Primitive.span>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ntype SliderImplPrivateProps = {\n onSlideStart(event: React.PointerEvent): void;\n onSlideMove(event: React.PointerEvent): void;\n onSlideEnd(event: React.PointerEvent): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(event: React.KeyboardEvent): void;\n};\ninterface SliderImplProps extends PrimitiveDivProps, SliderImplPrivateProps {}\n\nconst SliderImpl = React.forwardRef<SliderImplElement, SliderImplProps>(\n (props: ScopedProps<SliderImplProps>, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n\n return (\n <Primitive.span\n {...sliderProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === 'Home') {\n onHomeKeyDown(event);\n // Prevent scrolling to page start\n event.preventDefault();\n } else if (event.key === 'End') {\n onEndKeyDown(event);\n // Prevent scrolling to page end\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n // Prevent scrolling for directional key presses\n event.preventDefault();\n }\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target as HTMLElement;\n target.setPointerCapture(event.pointerId);\n // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault();\n // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n })}\n onPointerMove={composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })}\n />\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderTrack\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRACK_NAME = 'SliderTrack';\n\ntype SliderTrackElement = React.ComponentRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface SliderTrackProps extends PrimitiveSpanProps {}\n\nconst SliderTrack = React.forwardRef<SliderTrackElement, SliderTrackProps>(\n (props: ScopedProps<SliderTrackProps>, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return (\n <Primitive.span\n data-disabled={context.disabled ? '' : undefined}\n data-orientation={context.orientation}\n {...trackProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nSliderTrack.displayName = TRACK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderRange\n * -----------------------------------------------------------------------------------------------*/\n\nconst RANGE_NAME = 'SliderRange';\n\ntype SliderRangeElement = React.ComponentRef<typeof Primitive.span>;\ninterface SliderRangeProps extends PrimitiveSpanProps {}\n\nconst SliderRange = React.forwardRef<SliderRangeElement, SliderRangeProps>(\n (props: ScopedProps<SliderRangeProps>, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef<HTMLSpanElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map((value) =>\n convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n\n return (\n <Primitive.span\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n {...rangeProps}\n ref={composedRefs}\n style={{\n ...props.style,\n [orientation.startEdge]: offsetStart + '%',\n [orientation.endEdge]: offsetEnd + '%',\n }}\n />\n );\n }\n);\n\nSliderRange.displayName = RANGE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'SliderThumb';\n\ntype SliderThumbElement = SliderThumbImplElement;\ninterface SliderThumbProps extends Omit<SliderThumbImplProps, 'index'> {}\n\nconst SliderThumb = React.forwardRef<SliderThumbElement, SliderThumbProps>(\n (props: ScopedProps<SliderThumbProps>, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState<SliderThumbImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => (thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1),\n [getItems, thumb]\n );\n return <SliderThumbImpl {...props} ref={composedRefs} index={index} />;\n }\n);\n\ntype SliderThumbImplElement = React.ComponentRef<typeof Primitive.span>;\ninterface SliderThumbImplProps extends PrimitiveSpanProps {\n index: number;\n name?: string;\n}\n\nconst SliderThumbImpl = React.forwardRef<SliderThumbImplElement, SliderThumbImplProps>(\n (props: ScopedProps<SliderThumbImplProps>, forwardedRef) => {\n const { __scopeSlider, index, name, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = thumb ? context.form || !!thumb.closest('form') : true;\n const size = useSize(thumb);\n // We cast because index could be `-1` which would return undefined\n const value = context.values[index] as number | undefined;\n const percent =\n value === undefined ? 0 : convertValueToPercentage(value, context.min, context.max);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize\n ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction)\n : 0;\n\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n\n return (\n <span\n style={{\n transform: 'var(--radix-slider-thumb-transform)',\n position: 'absolute',\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`,\n }}\n >\n <Collection.ItemSlot scope={props.__scopeSlider}>\n <Primitive.span\n role=\"slider\"\n aria-label={props['aria-label'] || label}\n aria-valuemin={context.min}\n aria-valuenow={value}\n aria-valuemax={context.max}\n aria-orientation={context.orientation}\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n tabIndex={context.disabled ? undefined : 0}\n {...thumbProps}\n ref={composedRefs}\n /**\n * There will be no value on initial render while we work out the index so we hide thumbs\n * without a value, otherwise SSR will render them in the wrong position before they\n * snap into the correct position during hydration which would be visually jarring for\n * slower connections.\n */\n style={value === undefined ? { display: 'none' } : props.style}\n onFocus={composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })}\n />\n </Collection.ItemSlot>\n\n {isFormControl && (\n <SliderBubbleInput\n key={index}\n name={\n name ??\n (context.name ? context.name + (context.values.length > 1 ? '[]' : '') : undefined)\n }\n form={context.form}\n value={value}\n />\n )}\n </span>\n );\n }\n);\n\nSliderThumb.displayName = THUMB_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderBubbleInput\n * -----------------------------------------------------------------------------------------------*/\n\nconst BUBBLE_INPUT_NAME = 'RadioBubbleInput';\n\ntype InputProps = React.ComponentPropsWithoutRef<typeof Primitive.input>;\ninterface SliderBubbleInputProps extends InputProps {}\n\nconst SliderBubbleInput = React.forwardRef<HTMLInputElement, SliderBubbleInputProps>(\n ({ __scopeSlider, value, ...props }: ScopedProps<SliderBubbleInputProps>, forwardedRef) => {\n const ref = React.useRef<HTMLInputElement>(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevValue = usePrevious(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor;\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event('input', { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programmatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programmatic\n * dispatch a duplicate and it will get swallowed.\n */\n return (\n <Primitive.input\n style={{ display: 'none' }}\n {...props}\n ref={composedRefs}\n defaultValue={value}\n />\n );\n }\n);\n\nSliderBubbleInput.displayName = BUBBLE_INPUT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getNextSortedValues(prevValues: number[] = [], nextValue: number, atIndex: number) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\n\nfunction convertValueToPercentage(value: number, min: number, max: number) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\n\n/**\n * Returns a label for each thumb when there are two or more thumbs\n */\nfunction getLabel(index: number, totalValues: number) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return ['Minimum', 'Maximum'][index];\n } else {\n return undefined;\n }\n}\n\n/**\n * Given a `values` array and a `nextValue`, determine which value in\n * the array is closest to `nextValue` and return its index.\n *\n * @example\n * // returns 1\n * getClosestValueIndex([10, 30], 25);\n */\nfunction getClosestValueIndex(values: number[], nextValue: number) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\n\n/**\n * Offsets the thumb centre point while sliding to ensure it remains\n * within the bounds of the slider when reaching the edges\n */\nfunction getThumbInBoundsOffset(width: number, left: number, direction: number) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\n\n/**\n * Gets an array of steps between each value.\n *\n * @example\n * // returns [1, 9]\n * getStepsBetweenValues([10, 11, 20]);\n */\nfunction getStepsBetweenValues(values: number[]) {\n return values.slice(0, -1).map((value, index) => values[index + 1]! - value);\n}\n\n/**\n * Verifies the minimum steps between all values is greater than or equal\n * to the expected minimum steps.\n *\n * @example\n * // returns false\n * hasMinStepsBetweenValues([1,2,3], 2);\n *\n * @example\n * // returns true\n * hasMinStepsBetweenValues([1,2,3], 1);\n */\nfunction hasMinStepsBetweenValues(values: number[], minStepsBetweenValues: number) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n\nfunction getDecimalCount(value: number) {\n return (String(value).split('.')[1] || '').length;\n}\n\nfunction roundValue(value: number, decimalCount: number) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\n\nconst Root = Slider;\nconst Track = SliderTrack;\nconst Range = SliderRange;\nconst Thumb = SliderThumb;\n\nexport {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n};\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { createRovingFocusGroupScope } from '@radix-ui/react-roving-focus';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as RovingFocusGroup from '@radix-ui/react-roving-focus';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useId } from '@radix-ui/react-id';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Tabs\n * -----------------------------------------------------------------------------------------------*/\n\nconst TABS_NAME = 'Tabs';\n\ntype ScopedProps<P> = P & { __scopeTabs?: Scope };\nconst [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope,\n]);\nconst useRovingFocusGroupScope = createRovingFocusGroupScope();\n\ntype TabsContextValue = {\n baseId: string;\n value: string;\n onValueChange: (value: string) => void;\n orientation?: TabsProps['orientation'];\n dir?: TabsProps['dir'];\n activationMode?: TabsProps['activationMode'];\n};\n\nconst [TabsProvider, useTabsContext] = createTabsContext<TabsContextValue>(TABS_NAME);\n\ntype TabsElement = React.ComponentRef<typeof Primitive.div>;\ntype RovingFocusGroupProps = React.ComponentPropsWithoutRef<typeof RovingFocusGroup.Root>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface TabsProps extends PrimitiveDivProps {\n /** The value for the selected tab, if controlled */\n value?: string;\n /** The value of the tab to select by default, if uncontrolled */\n defaultValue?: string;\n /** A function called when a new tab is selected */\n onValueChange?: (value: string) => void;\n /**\n * The orientation the tabs are layed out.\n * Mainly so arrow navigation is done accordingly (left & right vs. up & down)\n * @defaultValue horizontal\n */\n orientation?: RovingFocusGroupProps['orientation'];\n /**\n * The direction of navigation between toolbar items.\n */\n dir?: RovingFocusGroupProps['dir'];\n /**\n * Whether a tab is activated automatically or manually.\n * @defaultValue automatic\n * */\n activationMode?: 'automatic' | 'manual';\n}\n\nconst Tabs = React.forwardRef<TabsElement, TabsProps>(\n (props: ScopedProps<TabsProps>, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = 'horizontal',\n dir,\n activationMode = 'automatic',\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? '',\n caller: TABS_NAME,\n });\n\n return (\n <TabsProvider\n scope={__scopeTabs}\n baseId={useId()}\n value={value}\n onValueChange={setValue}\n orientation={orientation}\n dir={direction}\n activationMode={activationMode}\n >\n <Primitive.div\n dir={direction}\n data-orientation={orientation}\n {...tabsProps}\n ref={forwardedRef}\n />\n </TabsProvider>\n );\n }\n);\n\nTabs.displayName = TABS_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TabsList\n * -----------------------------------------------------------------------------------------------*/\n\nconst TAB_LIST_NAME = 'TabsList';\n\ntype TabsListElement = React.ComponentRef<typeof Primitive.div>;\ninterface TabsListProps extends PrimitiveDivProps {\n loop?: RovingFocusGroupProps['loop'];\n}\n\nconst TabsList = React.forwardRef<TabsListElement, TabsListProps>(\n (props: ScopedProps<TabsListProps>, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return (\n <RovingFocusGroup.Root\n asChild\n {...rovingFocusGroupScope}\n orientation={context.orientation}\n dir={context.dir}\n loop={loop}\n >\n <Primitive.div\n role=\"tablist\"\n aria-orientation={context.orientation}\n {...listProps}\n ref={forwardedRef}\n />\n </RovingFocusGroup.Root>\n );\n }\n);\n\nTabsList.displayName = TAB_LIST_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TabsTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'TabsTrigger';\n\ntype TabsTriggerElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface TabsTriggerProps extends PrimitiveButtonProps {\n value: string;\n}\n\nconst TabsTrigger = React.forwardRef<TabsTriggerElement, TabsTriggerProps>(\n (props: ScopedProps<TabsTriggerProps>, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return (\n <RovingFocusGroup.Item\n asChild\n {...rovingFocusGroupScope}\n focusable={!disabled}\n active={isSelected}\n >\n <Primitive.button\n type=\"button\"\n role=\"tab\"\n aria-selected={isSelected}\n aria-controls={contentId}\n data-state={isSelected ? 'active' : 'inactive'}\n data-disabled={disabled ? '' : undefined}\n disabled={disabled}\n id={triggerId}\n {...triggerProps}\n ref={forwardedRef}\n onMouseDown={composeEventHandlers(props.onMouseDown, (event) => {\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n // prevent focus to avoid accidental activation\n event.preventDefault();\n }\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if ([' ', 'Enter'].includes(event.key)) context.onValueChange(value);\n })}\n onFocus={composeEventHandlers(props.onFocus, () => {\n // handle \"automatic\" activation if necessary\n // ie. activate tab following focus\n const isAutomaticActivation = context.activationMode !== 'manual';\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })}\n />\n </RovingFocusGroup.Item>\n );\n }\n);\n\nTabsTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TabsContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'TabsContent';\n\ntype TabsContentElement = React.ComponentRef<typeof Primitive.div>;\ninterface TabsContentProps extends PrimitiveDivProps {\n value: string;\n\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst TabsContent = React.forwardRef<TabsContentElement, TabsContentProps>(\n (props: ScopedProps<TabsContentProps>, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => (isMountAnimationPreventedRef.current = false));\n return () => cancelAnimationFrame(rAF);\n }, []);\n\n return (\n <Presence present={forceMount || isSelected}>\n {({ present }) => (\n <Primitive.div\n data-state={isSelected ? 'active' : 'inactive'}\n data-orientation={context.orientation}\n role=\"tabpanel\"\n aria-labelledby={triggerId}\n hidden={!present}\n id={contentId}\n tabIndex={0}\n {...contentProps}\n ref={forwardedRef}\n style={{\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? '0s' : undefined,\n }}\n >\n {present && children}\n </Primitive.div>\n )}\n </Presence>\n );\n }\n);\n\nTabsContent.displayName = CONTENT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nfunction makeTriggerId(baseId: string, value: string) {\n return `${baseId}-trigger-${value}`;\n}\n\nfunction makeContentId(baseId: string, value: string) {\n return `${baseId}-content-${value}`;\n}\n\nconst Root = Tabs;\nconst List = TabsList;\nconst Trigger = TabsTrigger;\nconst Content = TabsContent;\n\nexport {\n createTabsScope,\n //\n Tabs,\n TabsList,\n TabsTrigger,\n TabsContent,\n //\n Root,\n List,\n Trigger,\n Content,\n};\nexport type { TabsProps, TabsListProps, TabsTriggerProps, TabsContentProps };\n"],"names":["open","Root","Portal","Content","Group","Label","Item","CheckboxItem","RadioGroup","RadioItem","ItemIndicator","Separator","Arrow","Sub","SubTrigger","SubContent","value"],"sourceRoot":"","ignoreList":[2]} \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/7-d68c13c7afd0ec4d.js b/opencut-ui/_next/static/chunks/7-d68c13c7afd0ec4d.js new file mode 100644 index 0000000..adc6dae --- /dev/null +++ b/opencut-ui/_next/static/chunks/7-d68c13c7afd0ec4d.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7],{59467:(t,e,a)=>{a.d(e,{v:()=>s});var o=a(74188);let r=t=>{let e,a=new Set,o=(t,o)=>{let r="function"==typeof t?t(e):t;if(!Object.is(r,e)){let t=e;e=(null!=o?o:"object"!=typeof r||null===r)?r:Object.assign({},e,r),a.forEach(a=>a(e,t))}},r=()=>e,n={setState:o,getState:r,getInitialState:()=>s,subscribe:t=>(a.add(t),()=>a.delete(t))},s=e=t(o,r,n);return n},n=t=>{let e=(t=>t?r(t):r)(t),a=t=>(function(t,e=t=>t){let a=o.useSyncExternalStore(t.subscribe,()=>e(t.getState()),()=>e(t.getInitialState()));return o.useDebugValue(a),a})(e,t);return Object.assign(a,e),a},s=t=>t?n(t):n},61557:(t,e,a)=>{a.d(e,{l$:()=>w,oR:()=>p});var o=a(74188),r=a(82749),n=Array(12).fill(0),s=t=>{let{visible:e,className:a}=t;return o.createElement("div",{className:["sonner-loading-wrapper",a].filter(Boolean).join(" "),"data-visible":e},o.createElement("div",{className:"sonner-spinner"},n.map((t,e)=>o.createElement("div",{className:"sonner-loading-bar",key:"spinner-bar-".concat(e)}))))},i=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},o.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),l=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},o.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),d=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},o.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),c=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},o.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),u=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},o.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),o.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),m=1,h=new class{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{let e=this.subscribers.indexOf(t);this.subscribers.splice(e,1)}),this.publish=t=>{this.subscribers.forEach(e=>e(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var e;let{message:a,...o}=t,r="number"==typeof(null==t?void 0:t.id)||(null==(e=t.id)?void 0:e.length)>0?t.id:m++,n=this.toasts.find(t=>t.id===r),s=void 0===t.dismissible||t.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),n?this.toasts=this.toasts.map(e=>e.id===r?(this.publish({...e,...t,id:r,title:a}),{...e,...t,id:r,dismissible:s,title:a}):e):this.addToast({title:a,...o,dismissible:s,id:r}),r},this.dismiss=t=>(this.dismissedToasts.add(t),t||this.toasts.forEach(t=>{this.subscribers.forEach(e=>e({id:t.id,dismiss:!0}))}),this.subscribers.forEach(e=>e({id:t,dismiss:!0})),t),this.message=(t,e)=>this.create({...e,message:t}),this.error=(t,e)=>this.create({...e,message:t,type:"error"}),this.success=(t,e)=>this.create({...e,type:"success",message:t}),this.info=(t,e)=>this.create({...e,type:"info",message:t}),this.warning=(t,e)=>this.create({...e,type:"warning",message:t}),this.loading=(t,e)=>this.create({...e,type:"loading",message:t}),this.promise=(t,e)=>{let a;if(!e)return;void 0!==e.loading&&(a=this.create({...e,promise:t,type:"loading",message:e.loading,description:"function"!=typeof e.description?e.description:void 0}));let r=t instanceof Promise?t:t(),n=void 0!==a,s,i=r.then(async t=>{if(s=["resolve",t],o.isValidElement(t))n=!1,this.create({id:a,type:"default",message:t});else if(f(t)&&!t.ok){n=!1;let o="function"==typeof e.error?await e.error("HTTP error! status: ".concat(t.status)):e.error,r="function"==typeof e.description?await e.description("HTTP error! status: ".concat(t.status)):e.description;this.create({id:a,type:"error",message:o,description:r})}else if(void 0!==e.success){n=!1;let o="function"==typeof e.success?await e.success(t):e.success,r="function"==typeof e.description?await e.description(t):e.description;this.create({id:a,type:"success",message:o,description:r})}}).catch(async t=>{if(s=["reject",t],void 0!==e.error){n=!1;let o="function"==typeof e.error?await e.error(t):e.error,r="function"==typeof e.description?await e.description(t):e.description;this.create({id:a,type:"error",message:o,description:r})}}).finally(()=>{var t;n&&(this.dismiss(a),a=void 0),null==(t=e.finally)||t.call(e)}),l=()=>new Promise((t,e)=>i.then(()=>"reject"===s[0]?e(s[1]):t(s[1])).catch(e));return"string"!=typeof a&&"number"!=typeof a?{unwrap:l}:Object.assign(a,{unwrap:l})},this.custom=(t,e)=>{let a=(null==e?void 0:e.id)||m++;return this.create({jsx:t(a),id:a,...e}),a},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},f=t=>t&&"object"==typeof t&&"ok"in t&&"boolean"==typeof t.ok&&"status"in t&&"number"==typeof t.status,p=Object.assign((t,e)=>{let a=(null==e?void 0:e.id)||m++;return h.addToast({title:t,...e,id:a}),a},{success:h.success,info:h.info,warning:h.warning,error:h.error,custom:h.custom,message:h.message,promise:h.promise,dismiss:h.dismiss,loading:h.loading},{getHistory:()=>h.toasts,getToasts:()=>h.getActiveToasts()});function g(t){return void 0!==t.label}function v(){for(var t=arguments.length,e=Array(t),a=0;a<t;a++)e[a]=arguments[a];return e.filter(Boolean).join(" ")}!function(t){let{insertAt:e}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!t||"undefined"==typeof document)return;let a=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===e&&a.firstChild?a.insertBefore(o,a.firstChild):a.appendChild(o),o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t))}(':where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}\n');var b=t=>{var e,a,r,n,m,h,f,p,b,y,w;let{invert:x,toast:E,unstyled:k,interacting:N,setHeights:S,visibleToasts:T,heights:B,index:C,toasts:M,expanded:z,removeToast:j,defaultRichColors:R,closeButton:I,style:Y,cancelButtonStyle:D,actionButtonStyle:P,className:A="",descriptionClassName:H="",duration:L,position:O,gap:V,loadingIcon:U,expandByDefault:W,classNames:_,icons:F,closeButtonAriaLabel:K="Close toast",pauseWhenPageIsHidden:X}=t,[$,q]=o.useState(null),[G,J]=o.useState(null),[Q,Z]=o.useState(!1),[tt,te]=o.useState(!1),[ta,to]=o.useState(!1),[tr,tn]=o.useState(!1),[ts,ti]=o.useState(!1),[tl,td]=o.useState(0),[tc,tu]=o.useState(0),tm=o.useRef(E.duration||L||4e3),th=o.useRef(null),tf=o.useRef(null),tp=0===C,tg=C+1<=T,tv=E.type,tb=!1!==E.dismissible,ty=E.className||"",tw=E.descriptionClassName||"",tx=o.useMemo(()=>B.findIndex(t=>t.toastId===E.id)||0,[B,E.id]),tE=o.useMemo(()=>{var t;return null!=(t=E.closeButton)?t:I},[E.closeButton,I]),tk=o.useMemo(()=>E.duration||L||4e3,[E.duration,L]),tN=o.useRef(0),tS=o.useRef(0),tT=o.useRef(0),tB=o.useRef(null),[tC,tM]=O.split("-"),tz=o.useMemo(()=>B.reduce((t,e,a)=>a>=tx?t:t+e.height,0),[B,tx]),tj=(()=>{let[t,e]=o.useState(document.hidden);return o.useEffect(()=>{let t=()=>{e(document.hidden)};return document.addEventListener("visibilitychange",t),()=>window.removeEventListener("visibilitychange",t)},[]),t})(),tR=E.invert||x,tI="loading"===tv;tS.current=o.useMemo(()=>tx*V+tz,[tx,tz]),o.useEffect(()=>{tm.current=tk},[tk]),o.useEffect(()=>{Z(!0)},[]),o.useEffect(()=>{let t=tf.current;if(t){let e=t.getBoundingClientRect().height;return tu(e),S(t=>[{toastId:E.id,height:e,position:E.position},...t]),()=>S(t=>t.filter(t=>t.toastId!==E.id))}},[S,E.id]),o.useLayoutEffect(()=>{if(!Q)return;let t=tf.current,e=t.style.height;t.style.height="auto";let a=t.getBoundingClientRect().height;t.style.height=e,tu(a),S(t=>t.find(t=>t.toastId===E.id)?t.map(t=>t.toastId===E.id?{...t,height:a}:t):[{toastId:E.id,height:a,position:E.position},...t])},[Q,E.title,E.description,S,E.id]);let tY=o.useCallback(()=>{te(!0),td(tS.current),S(t=>t.filter(t=>t.toastId!==E.id)),setTimeout(()=>{j(E)},200)},[E,j,S,tS]);return o.useEffect(()=>{let t;if((!E.promise||"loading"!==tv)&&E.duration!==1/0&&"loading"!==E.type)return z||N||X&&tj?(()=>{if(tT.current<tN.current){let t=new Date().getTime()-tN.current;tm.current=tm.current-t}tT.current=new Date().getTime()})():tm.current!==1/0&&(tN.current=new Date().getTime(),t=setTimeout(()=>{var t;null==(t=E.onAutoClose)||t.call(E,E),tY()},tm.current)),()=>clearTimeout(t)},[z,N,E,tv,X,tj,tY]),o.useEffect(()=>{E.delete&&tY()},[tY,E.delete]),o.createElement("li",{tabIndex:0,ref:tf,className:v(A,ty,null==_?void 0:_.toast,null==(e=null==E?void 0:E.classNames)?void 0:e.toast,null==_?void 0:_.default,null==_?void 0:_[tv],null==(a=null==E?void 0:E.classNames)?void 0:a[tv]),"data-sonner-toast":"","data-rich-colors":null!=(r=E.richColors)?r:R,"data-styled":!(E.jsx||E.unstyled||k),"data-mounted":Q,"data-promise":!!E.promise,"data-swiped":ts,"data-removed":tt,"data-visible":tg,"data-y-position":tC,"data-x-position":tM,"data-index":C,"data-front":tp,"data-swiping":ta,"data-dismissible":tb,"data-type":tv,"data-invert":tR,"data-swipe-out":tr,"data-swipe-direction":G,"data-expanded":!!(z||W&&Q),style:{"--index":C,"--toasts-before":C,"--z-index":M.length-C,"--offset":"".concat(tt?tl:tS.current,"px"),"--initial-height":W?"auto":"".concat(tc,"px"),...Y,...E.style},onDragEnd:()=>{to(!1),q(null),tB.current=null},onPointerDown:t=>{tI||!tb||(th.current=new Date,td(tS.current),t.target.setPointerCapture(t.pointerId),"BUTTON"!==t.target.tagName&&(to(!0),tB.current={x:t.clientX,y:t.clientY}))},onPointerUp:()=>{var t,e,a,o;if(tr||!tb)return;tB.current=null;let r=Number((null==(t=tf.current)?void 0:t.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),n=Number((null==(e=tf.current)?void 0:e.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),s=new Date().getTime()-(null==(a=th.current)?void 0:a.getTime()),i="x"===$?r:n,l=Math.abs(i)/s;if(Math.abs(i)>=20||l>.11){td(tS.current),null==(o=E.onDismiss)||o.call(E,E),J("x"===$?r>0?"right":"left":n>0?"down":"up"),tY(),tn(!0),ti(!1);return}to(!1),q(null)},onPointerMove:e=>{var a,o,r,n;if(!tB.current||!tb||(null==(a=window.getSelection())?void 0:a.toString().length)>0)return;let s=e.clientY-tB.current.y,i=e.clientX-tB.current.x,l=null!=(o=t.swipeDirections)?o:function(t){let[e,a]=t.split("-"),o=[];return e&&o.push(e),a&&o.push(a),o}(O);!$&&(Math.abs(i)>1||Math.abs(s)>1)&&q(Math.abs(i)>Math.abs(s)?"x":"y");let d={x:0,y:0};"y"===$?(l.includes("top")||l.includes("bottom"))&&(l.includes("top")&&s<0||l.includes("bottom")&&s>0)&&(d.y=s):"x"===$&&(l.includes("left")||l.includes("right"))&&(l.includes("left")&&i<0||l.includes("right")&&i>0)&&(d.x=i),(Math.abs(d.x)>0||Math.abs(d.y)>0)&&ti(!0),null==(r=tf.current)||r.style.setProperty("--swipe-amount-x","".concat(d.x,"px")),null==(n=tf.current)||n.style.setProperty("--swipe-amount-y","".concat(d.y,"px"))}},tE&&!E.jsx?o.createElement("button",{"aria-label":K,"data-disabled":tI,"data-close-button":!0,onClick:tI||!tb?()=>{}:()=>{var t;tY(),null==(t=E.onDismiss)||t.call(E,E)},className:v(null==_?void 0:_.closeButton,null==(n=null==E?void 0:E.classNames)?void 0:n.closeButton)},null!=(m=null==F?void 0:F.close)?m:u):null,E.jsx||(0,o.isValidElement)(E.title)?E.jsx?E.jsx:"function"==typeof E.title?E.title():E.title:o.createElement(o.Fragment,null,tv||E.icon||E.promise?o.createElement("div",{"data-icon":"",className:v(null==_?void 0:_.icon,null==(h=null==E?void 0:E.classNames)?void 0:h.icon)},E.promise||"loading"===E.type&&!E.icon?E.icon||function(){var t,e,a;return null!=F&&F.loading?o.createElement("div",{className:v(null==_?void 0:_.loader,null==(t=null==E?void 0:E.classNames)?void 0:t.loader,"sonner-loader"),"data-visible":"loading"===tv},F.loading):U?o.createElement("div",{className:v(null==_?void 0:_.loader,null==(e=null==E?void 0:E.classNames)?void 0:e.loader,"sonner-loader"),"data-visible":"loading"===tv},U):o.createElement(s,{className:v(null==_?void 0:_.loader,null==(a=null==E?void 0:E.classNames)?void 0:a.loader),visible:"loading"===tv})}():null,"loading"!==E.type?E.icon||(null==F?void 0:F[tv])||(t=>{switch(t){case"success":return i;case"info":return d;case"warning":return l;case"error":return c;default:return null}})(tv):null):null,o.createElement("div",{"data-content":"",className:v(null==_?void 0:_.content,null==(f=null==E?void 0:E.classNames)?void 0:f.content)},o.createElement("div",{"data-title":"",className:v(null==_?void 0:_.title,null==(p=null==E?void 0:E.classNames)?void 0:p.title)},"function"==typeof E.title?E.title():E.title),E.description?o.createElement("div",{"data-description":"",className:v(H,tw,null==_?void 0:_.description,null==(b=null==E?void 0:E.classNames)?void 0:b.description)},"function"==typeof E.description?E.description():E.description):null),(0,o.isValidElement)(E.cancel)?E.cancel:E.cancel&&g(E.cancel)?o.createElement("button",{"data-button":!0,"data-cancel":!0,style:E.cancelButtonStyle||D,onClick:t=>{var e,a;g(E.cancel)&&tb&&(null==(a=(e=E.cancel).onClick)||a.call(e,t),tY())},className:v(null==_?void 0:_.cancelButton,null==(y=null==E?void 0:E.classNames)?void 0:y.cancelButton)},E.cancel.label):null,(0,o.isValidElement)(E.action)?E.action:E.action&&g(E.action)?o.createElement("button",{"data-button":!0,"data-action":!0,style:E.actionButtonStyle||P,onClick:t=>{var e,a;g(E.action)&&(null==(a=(e=E.action).onClick)||a.call(e,t),t.defaultPrevented||tY())},className:v(null==_?void 0:_.actionButton,null==(w=null==E?void 0:E.classNames)?void 0:w.actionButton)},E.action.label):null))};function y(){if("undefined"==typeof window||"undefined"==typeof document)return"ltr";let t=document.documentElement.getAttribute("dir");return"auto"!==t&&t?t:window.getComputedStyle(document.documentElement).direction}var w=(0,o.forwardRef)(function(t,e){let{invert:a,position:n="bottom-right",hotkey:s=["altKey","KeyT"],expand:i,closeButton:l,className:d,offset:c,mobileOffset:u,theme:m="light",richColors:f,duration:p,style:g,visibleToasts:v=3,toastOptions:w,dir:x=y(),gap:E=14,loadingIcon:k,icons:N,containerAriaLabel:S="Notifications",pauseWhenPageIsHidden:T}=t,[B,C]=o.useState([]),M=o.useMemo(()=>Array.from(new Set([n].concat(B.filter(t=>t.position).map(t=>t.position)))),[B,n]),[z,j]=o.useState([]),[R,I]=o.useState(!1),[Y,D]=o.useState(!1),[P,A]=o.useState("system"!==m?m:"undefined"!=typeof window&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),H=o.useRef(null),L=s.join("+").replace(/Key/g,"").replace(/Digit/g,""),O=o.useRef(null),V=o.useRef(!1),U=o.useCallback(t=>{C(e=>{var a;return null!=(a=e.find(e=>e.id===t.id))&&a.delete||h.dismiss(t.id),e.filter(e=>{let{id:a}=e;return a!==t.id})})},[]);return o.useEffect(()=>h.subscribe(t=>{if(t.dismiss)return void C(e=>e.map(e=>e.id===t.id?{...e,delete:!0}:e));setTimeout(()=>{r.flushSync(()=>{C(e=>{let a=e.findIndex(e=>e.id===t.id);return -1!==a?[...e.slice(0,a),{...e[a],...t},...e.slice(a+1)]:[t,...e]})})})}),[]),o.useEffect(()=>{if("system"!==m)return void A(m);if("system"===m&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?A("dark"):A("light")),"undefined"==typeof window)return;let t=window.matchMedia("(prefers-color-scheme: dark)");try{t.addEventListener("change",t=>{let{matches:e}=t;A(e?"dark":"light")})}catch(e){t.addListener(t=>{let{matches:e}=t;try{A(e?"dark":"light")}catch(t){}})}},[m]),o.useEffect(()=>{B.length<=1&&I(!1)},[B]),o.useEffect(()=>{let t=t=>{var e,a;s.every(e=>t[e]||t.code===e)&&(I(!0),null==(e=H.current)||e.focus()),"Escape"===t.code&&(document.activeElement===H.current||null!=(a=H.current)&&a.contains(document.activeElement))&&I(!1)};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[s]),o.useEffect(()=>{if(H.current)return()=>{O.current&&(O.current.focus({preventScroll:!0}),O.current=null,V.current=!1)}},[H.current]),o.createElement("section",{ref:e,"aria-label":"".concat(S," ").concat(L),tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},M.map((e,r)=>{var n;let s,[m,h]=e.split("-");return B.length?o.createElement("ol",{key:e,dir:"auto"===x?y():x,tabIndex:-1,ref:H,className:d,"data-sonner-toaster":!0,"data-theme":P,"data-y-position":m,"data-lifted":R&&B.length>1&&!i,"data-x-position":h,style:{"--front-toast-height":"".concat((null==(n=z[0])?void 0:n.height)||0,"px"),"--width":"".concat(356,"px"),"--gap":"".concat(E,"px"),...g,...(s={},[c,u].forEach((t,e)=>{let a=1===e,o=a?"--mobile-offset":"--offset",r=a?"16px":"32px";function n(t){["top","right","bottom","left"].forEach(e=>{s["".concat(o,"-").concat(e)]="number"==typeof t?"".concat(t,"px"):t})}"number"==typeof t||"string"==typeof t?n(t):"object"==typeof t?["top","right","bottom","left"].forEach(e=>{void 0===t[e]?s["".concat(o,"-").concat(e)]=r:s["".concat(o,"-").concat(e)]="number"==typeof t[e]?"".concat(t[e],"px"):t[e]}):n(r)}),s)},onBlur:t=>{V.current&&!t.currentTarget.contains(t.relatedTarget)&&(V.current=!1,O.current&&(O.current.focus({preventScroll:!0}),O.current=null))},onFocus:t=>{t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible||V.current||(V.current=!0,O.current=t.relatedTarget)},onMouseEnter:()=>I(!0),onMouseMove:()=>I(!0),onMouseLeave:()=>{Y||I(!1)},onDragEnd:()=>I(!1),onPointerDown:t=>{t.target instanceof HTMLElement&&"false"===t.target.dataset.dismissible||D(!0)},onPointerUp:()=>D(!1)},B.filter(t=>!t.position&&0===r||t.position===e).map((r,n)=>{var s,d;return o.createElement(b,{key:r.id,icons:N,index:n,toast:r,defaultRichColors:f,duration:null!=(s=null==w?void 0:w.duration)?s:p,className:null==w?void 0:w.className,descriptionClassName:null==w?void 0:w.descriptionClassName,invert:a,visibleToasts:v,closeButton:null!=(d=null==w?void 0:w.closeButton)?d:l,interacting:Y,position:e,style:null==w?void 0:w.style,unstyled:null==w?void 0:w.unstyled,classNames:null==w?void 0:w.classNames,cancelButtonStyle:null==w?void 0:w.cancelButtonStyle,actionButtonStyle:null==w?void 0:w.actionButtonStyle,removeToast:U,toasts:B.filter(t=>t.position==r.position),heights:z.filter(t=>t.position==r.position),setHeights:j,expandByDefault:i,gap:E,loadingIcon:k,expanded:R,pauseWhenPageIsHidden:T,swipeDirections:t.swipeDirections})})):null}))})}}]); +//# sourceMappingURL=7-d68c13c7afd0ec4d.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/7-d68c13c7afd0ec4d.js.map b/opencut-ui/_next/static/chunks/7-d68c13c7afd0ec4d.js.map new file mode 100644 index 0000000..f62856a --- /dev/null +++ b/opencut-ui/_next/static/chunks/7-d68c13c7afd0ec4d.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/7-d68c13c7afd0ec4d.js","mappings":"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","sources":["webpack://_N_E/../../node_modules/.bun/zustand@5.0.6+0e2fb8dbc083adda/node_modules/zustand/esm/vanilla.mjs","webpack://_N_E/../../node_modules/.bun/zustand@5.0.6+0e2fb8dbc083adda/node_modules/zustand/esm/react.mjs","webpack://_N_E/../src/index.tsx","webpack://_N_E/../src/assets.tsx","webpack://_N_E/../src/hooks.tsx","webpack://_N_E/../src/state.ts","webpack://_N_E/#style-inject:#style-inject","webpack://_N_E/../src/styles.css","webpack://_N_E/../src/types.ts"],"sourcesContent":["const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n () => selector(api.getState()),\n () => selector(api.getInitialState())\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\n\nexport { create, useStore };\n","'use client';\n\nimport React, { forwardRef, isValidElement } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { CloseIcon, getAsset, Loader } from './assets';\nimport { useIsDocumentHidden } from './hooks';\nimport { toast, ToastState } from './state';\nimport './styles.css';\nimport {\n isAction,\n SwipeDirection,\n type ExternalToast,\n type HeightT,\n type ToasterProps,\n type ToastProps,\n type ToastT,\n type ToastToDismiss,\n} from './types';\n\n// Visible toasts amount\nconst VISIBLE_TOASTS_AMOUNT = 3;\n\n// Viewport padding\nconst VIEWPORT_OFFSET = '32px';\n\n// Mobile viewport padding\nconst MOBILE_VIEWPORT_OFFSET = '16px';\n\n// Default lifetime of a toasts (in ms)\nconst TOAST_LIFETIME = 4000;\n\n// Default toast width\nconst TOAST_WIDTH = 356;\n\n// Default gap between toasts\nconst GAP = 14;\n\n// Threshold to dismiss a toast\nconst SWIPE_THRESHOLD = 20;\n\n// Equal to exit animation duration\nconst TIME_BEFORE_UNMOUNT = 200;\n\nfunction cn(...classes: (string | undefined)[]) {\n return classes.filter(Boolean).join(' ');\n}\n\nfunction getDefaultSwipeDirections(position: string): Array<SwipeDirection> {\n const [y, x] = position.split('-');\n const directions: Array<SwipeDirection> = [];\n\n if (y) {\n directions.push(y as SwipeDirection);\n }\n\n if (x) {\n directions.push(x as SwipeDirection);\n }\n\n return directions;\n}\n\nconst Toast = (props: ToastProps) => {\n const {\n invert: ToasterInvert,\n toast,\n unstyled,\n interacting,\n setHeights,\n visibleToasts,\n heights,\n index,\n toasts,\n expanded,\n removeToast,\n defaultRichColors,\n closeButton: closeButtonFromToaster,\n style,\n cancelButtonStyle,\n actionButtonStyle,\n className = '',\n descriptionClassName = '',\n duration: durationFromToaster,\n position,\n gap,\n loadingIcon: loadingIconProp,\n expandByDefault,\n classNames,\n icons,\n closeButtonAriaLabel = 'Close toast',\n pauseWhenPageIsHidden,\n } = props;\n const [swipeDirection, setSwipeDirection] = React.useState<'x' | 'y' | null>(null);\n const [swipeOutDirection, setSwipeOutDirection] = React.useState<'left' | 'right' | 'up' | 'down' | null>(null);\n const [mounted, setMounted] = React.useState(false);\n const [removed, setRemoved] = React.useState(false);\n const [swiping, setSwiping] = React.useState(false);\n const [swipeOut, setSwipeOut] = React.useState(false);\n const [isSwiped, setIsSwiped] = React.useState(false);\n const [offsetBeforeRemove, setOffsetBeforeRemove] = React.useState(0);\n const [initialHeight, setInitialHeight] = React.useState(0);\n const remainingTime = React.useRef(toast.duration || durationFromToaster || TOAST_LIFETIME);\n const dragStartTime = React.useRef<Date | null>(null);\n const toastRef = React.useRef<HTMLLIElement>(null);\n const isFront = index === 0;\n const isVisible = index + 1 <= visibleToasts;\n const toastType = toast.type;\n const dismissible = toast.dismissible !== false;\n const toastClassname = toast.className || '';\n const toastDescriptionClassname = toast.descriptionClassName || '';\n // Height index is used to calculate the offset as it gets updated before the toast array, which means we can calculate the new layout faster.\n const heightIndex = React.useMemo(\n () => heights.findIndex((height) => height.toastId === toast.id) || 0,\n [heights, toast.id],\n );\n const closeButton = React.useMemo(\n () => toast.closeButton ?? closeButtonFromToaster,\n [toast.closeButton, closeButtonFromToaster],\n );\n const duration = React.useMemo(\n () => toast.duration || durationFromToaster || TOAST_LIFETIME,\n [toast.duration, durationFromToaster],\n );\n const closeTimerStartTimeRef = React.useRef(0);\n const offset = React.useRef(0);\n const lastCloseTimerStartTimeRef = React.useRef(0);\n const pointerStartRef = React.useRef<{ x: number; y: number } | null>(null);\n const [y, x] = position.split('-');\n const toastsHeightBefore = React.useMemo(() => {\n return heights.reduce((prev, curr, reducerIndex) => {\n // Calculate offset up until current toast\n if (reducerIndex >= heightIndex) {\n return prev;\n }\n\n return prev + curr.height;\n }, 0);\n }, [heights, heightIndex]);\n const isDocumentHidden = useIsDocumentHidden();\n\n const invert = toast.invert || ToasterInvert;\n const disabled = toastType === 'loading';\n\n offset.current = React.useMemo(() => heightIndex * gap + toastsHeightBefore, [heightIndex, toastsHeightBefore]);\n\n React.useEffect(() => {\n remainingTime.current = duration;\n }, [duration]);\n\n React.useEffect(() => {\n // Trigger enter animation without using CSS animation\n setMounted(true);\n }, []);\n\n React.useEffect(() => {\n const toastNode = toastRef.current;\n if (toastNode) {\n const height = toastNode.getBoundingClientRect().height;\n // Add toast height to heights array after the toast is mounted\n setInitialHeight(height);\n setHeights((h) => [{ toastId: toast.id, height, position: toast.position }, ...h]);\n return () => setHeights((h) => h.filter((height) => height.toastId !== toast.id));\n }\n }, [setHeights, toast.id]);\n\n React.useLayoutEffect(() => {\n if (!mounted) return;\n const toastNode = toastRef.current;\n const originalHeight = toastNode.style.height;\n toastNode.style.height = 'auto';\n const newHeight = toastNode.getBoundingClientRect().height;\n toastNode.style.height = originalHeight;\n\n setInitialHeight(newHeight);\n\n setHeights((heights) => {\n const alreadyExists = heights.find((height) => height.toastId === toast.id);\n if (!alreadyExists) {\n return [{ toastId: toast.id, height: newHeight, position: toast.position }, ...heights];\n } else {\n return heights.map((height) => (height.toastId === toast.id ? { ...height, height: newHeight } : height));\n }\n });\n }, [mounted, toast.title, toast.description, setHeights, toast.id]);\n\n const deleteToast = React.useCallback(() => {\n // Save the offset for the exit swipe animation\n setRemoved(true);\n setOffsetBeforeRemove(offset.current);\n setHeights((h) => h.filter((height) => height.toastId !== toast.id));\n\n setTimeout(() => {\n removeToast(toast);\n }, TIME_BEFORE_UNMOUNT);\n }, [toast, removeToast, setHeights, offset]);\n\n React.useEffect(() => {\n if ((toast.promise && toastType === 'loading') || toast.duration === Infinity || toast.type === 'loading') return;\n let timeoutId: NodeJS.Timeout;\n\n // Pause the timer on each hover\n const pauseTimer = () => {\n if (lastCloseTimerStartTimeRef.current < closeTimerStartTimeRef.current) {\n // Get the elapsed time since the timer started\n const elapsedTime = new Date().getTime() - closeTimerStartTimeRef.current;\n\n remainingTime.current = remainingTime.current - elapsedTime;\n }\n\n lastCloseTimerStartTimeRef.current = new Date().getTime();\n };\n\n const startTimer = () => {\n // setTimeout(, Infinity) behaves as if the delay is 0.\n // As a result, the toast would be closed immediately, giving the appearance that it was never rendered.\n // See: https://github.com/denysdovhan/wtfjs?tab=readme-ov-file#an-infinite-timeout\n if (remainingTime.current === Infinity) return;\n\n closeTimerStartTimeRef.current = new Date().getTime();\n\n // Let the toast know it has started\n timeoutId = setTimeout(() => {\n toast.onAutoClose?.(toast);\n deleteToast();\n }, remainingTime.current);\n };\n\n if (expanded || interacting || (pauseWhenPageIsHidden && isDocumentHidden)) {\n pauseTimer();\n } else {\n startTimer();\n }\n\n return () => clearTimeout(timeoutId);\n }, [expanded, interacting, toast, toastType, pauseWhenPageIsHidden, isDocumentHidden, deleteToast]);\n\n React.useEffect(() => {\n if (toast.delete) {\n deleteToast();\n }\n }, [deleteToast, toast.delete]);\n\n function getLoadingIcon() {\n if (icons?.loading) {\n return (\n <div\n className={cn(classNames?.loader, toast?.classNames?.loader, 'sonner-loader')}\n data-visible={toastType === 'loading'}\n >\n {icons.loading}\n </div>\n );\n }\n\n if (loadingIconProp) {\n return (\n <div\n className={cn(classNames?.loader, toast?.classNames?.loader, 'sonner-loader')}\n data-visible={toastType === 'loading'}\n >\n {loadingIconProp}\n </div>\n );\n }\n return <Loader className={cn(classNames?.loader, toast?.classNames?.loader)} visible={toastType === 'loading'} />;\n }\n\n return (\n <li\n tabIndex={0}\n ref={toastRef}\n className={cn(\n className,\n toastClassname,\n classNames?.toast,\n toast?.classNames?.toast,\n classNames?.default,\n classNames?.[toastType],\n toast?.classNames?.[toastType],\n )}\n data-sonner-toast=\"\"\n data-rich-colors={toast.richColors ?? defaultRichColors}\n data-styled={!Boolean(toast.jsx || toast.unstyled || unstyled)}\n data-mounted={mounted}\n data-promise={Boolean(toast.promise)}\n data-swiped={isSwiped}\n data-removed={removed}\n data-visible={isVisible}\n data-y-position={y}\n data-x-position={x}\n data-index={index}\n data-front={isFront}\n data-swiping={swiping}\n data-dismissible={dismissible}\n data-type={toastType}\n data-invert={invert}\n data-swipe-out={swipeOut}\n data-swipe-direction={swipeOutDirection}\n data-expanded={Boolean(expanded || (expandByDefault && mounted))}\n style={\n {\n '--index': index,\n '--toasts-before': index,\n '--z-index': toasts.length - index,\n '--offset': `${removed ? offsetBeforeRemove : offset.current}px`,\n '--initial-height': expandByDefault ? 'auto' : `${initialHeight}px`,\n ...style,\n ...toast.style,\n } as React.CSSProperties\n }\n onDragEnd={() => {\n setSwiping(false);\n setSwipeDirection(null);\n pointerStartRef.current = null;\n }}\n onPointerDown={(event) => {\n if (disabled || !dismissible) return;\n dragStartTime.current = new Date();\n setOffsetBeforeRemove(offset.current);\n // Ensure we maintain correct pointer capture even when going outside of the toast (e.g. when swiping)\n (event.target as HTMLElement).setPointerCapture(event.pointerId);\n if ((event.target as HTMLElement).tagName === 'BUTTON') return;\n setSwiping(true);\n pointerStartRef.current = { x: event.clientX, y: event.clientY };\n }}\n onPointerUp={() => {\n if (swipeOut || !dismissible) return;\n\n pointerStartRef.current = null;\n const swipeAmountX = Number(\n toastRef.current?.style.getPropertyValue('--swipe-amount-x').replace('px', '') || 0,\n );\n const swipeAmountY = Number(\n toastRef.current?.style.getPropertyValue('--swipe-amount-y').replace('px', '') || 0,\n );\n const timeTaken = new Date().getTime() - dragStartTime.current?.getTime();\n\n const swipeAmount = swipeDirection === 'x' ? swipeAmountX : swipeAmountY;\n const velocity = Math.abs(swipeAmount) / timeTaken;\n\n if (Math.abs(swipeAmount) >= SWIPE_THRESHOLD || velocity > 0.11) {\n setOffsetBeforeRemove(offset.current);\n toast.onDismiss?.(toast);\n\n if (swipeDirection === 'x') {\n setSwipeOutDirection(swipeAmountX > 0 ? 'right' : 'left');\n } else {\n setSwipeOutDirection(swipeAmountY > 0 ? 'down' : 'up');\n }\n\n deleteToast();\n setSwipeOut(true);\n setIsSwiped(false);\n return;\n }\n\n setSwiping(false);\n setSwipeDirection(null);\n }}\n onPointerMove={(event) => {\n if (!pointerStartRef.current || !dismissible) return;\n\n const isHighlighted = window.getSelection()?.toString().length > 0;\n if (isHighlighted) return;\n\n const yDelta = event.clientY - pointerStartRef.current.y;\n const xDelta = event.clientX - pointerStartRef.current.x;\n\n const swipeDirections = props.swipeDirections ?? getDefaultSwipeDirections(position);\n\n // Determine swipe direction if not already locked\n if (!swipeDirection && (Math.abs(xDelta) > 1 || Math.abs(yDelta) > 1)) {\n setSwipeDirection(Math.abs(xDelta) > Math.abs(yDelta) ? 'x' : 'y');\n }\n\n let swipeAmount = { x: 0, y: 0 };\n\n // Only apply swipe in the locked direction\n if (swipeDirection === 'y') {\n // Handle vertical swipes\n if (swipeDirections.includes('top') || swipeDirections.includes('bottom')) {\n if (swipeDirections.includes('top') && yDelta < 0) {\n swipeAmount.y = yDelta;\n } else if (swipeDirections.includes('bottom') && yDelta > 0) {\n swipeAmount.y = yDelta;\n }\n }\n } else if (swipeDirection === 'x') {\n // Handle horizontal swipes\n if (swipeDirections.includes('left') || swipeDirections.includes('right')) {\n if (swipeDirections.includes('left') && xDelta < 0) {\n swipeAmount.x = xDelta;\n } else if (swipeDirections.includes('right') && xDelta > 0) {\n swipeAmount.x = xDelta;\n }\n }\n }\n\n if (Math.abs(swipeAmount.x) > 0 || Math.abs(swipeAmount.y) > 0) {\n setIsSwiped(true);\n }\n\n // Apply transform using both x and y values\n toastRef.current?.style.setProperty('--swipe-amount-x', `${swipeAmount.x}px`);\n toastRef.current?.style.setProperty('--swipe-amount-y', `${swipeAmount.y}px`);\n }}\n >\n {closeButton && !toast.jsx ? (\n <button\n aria-label={closeButtonAriaLabel}\n data-disabled={disabled}\n data-close-button\n onClick={\n disabled || !dismissible\n ? () => {}\n : () => {\n deleteToast();\n toast.onDismiss?.(toast);\n }\n }\n className={cn(classNames?.closeButton, toast?.classNames?.closeButton)}\n >\n {icons?.close ?? CloseIcon}\n </button>\n ) : null}\n {/* TODO: This can be cleaner */}\n {toast.jsx || isValidElement(toast.title) ? (\n toast.jsx ? (\n toast.jsx\n ) : typeof toast.title === 'function' ? (\n toast.title()\n ) : (\n toast.title\n )\n ) : (\n <>\n {toastType || toast.icon || toast.promise ? (\n <div data-icon=\"\" className={cn(classNames?.icon, toast?.classNames?.icon)}>\n {toast.promise || (toast.type === 'loading' && !toast.icon) ? toast.icon || getLoadingIcon() : null}\n {toast.type !== 'loading' ? toast.icon || icons?.[toastType] || getAsset(toastType) : null}\n </div>\n ) : null}\n\n <div data-content=\"\" className={cn(classNames?.content, toast?.classNames?.content)}>\n <div data-title=\"\" className={cn(classNames?.title, toast?.classNames?.title)}>\n {typeof toast.title === 'function' ? toast.title() : toast.title}\n </div>\n {toast.description ? (\n <div\n data-description=\"\"\n className={cn(\n descriptionClassName,\n toastDescriptionClassname,\n classNames?.description,\n toast?.classNames?.description,\n )}\n >\n {typeof toast.description === 'function' ? toast.description() : toast.description}\n </div>\n ) : null}\n </div>\n {isValidElement(toast.cancel) ? (\n toast.cancel\n ) : toast.cancel && isAction(toast.cancel) ? (\n <button\n data-button\n data-cancel\n style={toast.cancelButtonStyle || cancelButtonStyle}\n onClick={(event) => {\n // We need to check twice because typescript\n if (!isAction(toast.cancel)) return;\n if (!dismissible) return;\n toast.cancel.onClick?.(event);\n deleteToast();\n }}\n className={cn(classNames?.cancelButton, toast?.classNames?.cancelButton)}\n >\n {toast.cancel.label}\n </button>\n ) : null}\n {isValidElement(toast.action) ? (\n toast.action\n ) : toast.action && isAction(toast.action) ? (\n <button\n data-button\n data-action\n style={toast.actionButtonStyle || actionButtonStyle}\n onClick={(event) => {\n // We need to check twice because typescript\n if (!isAction(toast.action)) return;\n toast.action.onClick?.(event);\n if (event.defaultPrevented) return;\n deleteToast();\n }}\n className={cn(classNames?.actionButton, toast?.classNames?.actionButton)}\n >\n {toast.action.label}\n </button>\n ) : null}\n </>\n )}\n </li>\n );\n};\n\nfunction getDocumentDirection(): ToasterProps['dir'] {\n if (typeof window === 'undefined') return 'ltr';\n if (typeof document === 'undefined') return 'ltr'; // For Fresh purpose\n\n const dirAttribute = document.documentElement.getAttribute('dir');\n\n if (dirAttribute === 'auto' || !dirAttribute) {\n return window.getComputedStyle(document.documentElement).direction as ToasterProps['dir'];\n }\n\n return dirAttribute as ToasterProps['dir'];\n}\n\nfunction assignOffset(defaultOffset: ToasterProps['offset'], mobileOffset: ToasterProps['mobileOffset']) {\n const styles = {} as React.CSSProperties;\n\n [defaultOffset, mobileOffset].forEach((offset, index) => {\n const isMobile = index === 1;\n const prefix = isMobile ? '--mobile-offset' : '--offset';\n const defaultValue = isMobile ? MOBILE_VIEWPORT_OFFSET : VIEWPORT_OFFSET;\n\n function assignAll(offset: string | number) {\n ['top', 'right', 'bottom', 'left'].forEach((key) => {\n styles[`${prefix}-${key}`] = typeof offset === 'number' ? `${offset}px` : offset;\n });\n }\n\n if (typeof offset === 'number' || typeof offset === 'string') {\n assignAll(offset);\n } else if (typeof offset === 'object') {\n ['top', 'right', 'bottom', 'left'].forEach((key) => {\n if (offset[key] === undefined) {\n styles[`${prefix}-${key}`] = defaultValue;\n } else {\n styles[`${prefix}-${key}`] = typeof offset[key] === 'number' ? `${offset[key]}px` : offset[key];\n }\n });\n } else {\n assignAll(defaultValue);\n }\n });\n\n return styles;\n}\n\nfunction useSonner() {\n const [activeToasts, setActiveToasts] = React.useState<ToastT[]>([]);\n\n React.useEffect(() => {\n return ToastState.subscribe((toast) => {\n if ((toast as ToastToDismiss).dismiss) {\n setTimeout(() => {\n ReactDOM.flushSync(() => {\n setActiveToasts((toasts) => toasts.filter((t) => t.id !== toast.id));\n });\n });\n return;\n }\n\n // Prevent batching, temp solution.\n setTimeout(() => {\n ReactDOM.flushSync(() => {\n setActiveToasts((toasts) => {\n const indexOfExistingToast = toasts.findIndex((t) => t.id === toast.id);\n\n // Update the toast if it already exists\n if (indexOfExistingToast !== -1) {\n return [\n ...toasts.slice(0, indexOfExistingToast),\n { ...toasts[indexOfExistingToast], ...toast },\n ...toasts.slice(indexOfExistingToast + 1),\n ];\n }\n\n return [toast, ...toasts];\n });\n });\n });\n });\n }, []);\n\n return {\n toasts: activeToasts,\n };\n}\n\nconst Toaster = forwardRef<HTMLElement, ToasterProps>(function Toaster(props, ref) {\n const {\n invert,\n position = 'bottom-right',\n hotkey = ['altKey', 'KeyT'],\n expand,\n closeButton,\n className,\n offset,\n mobileOffset,\n theme = 'light',\n richColors,\n duration,\n style,\n visibleToasts = VISIBLE_TOASTS_AMOUNT,\n toastOptions,\n dir = getDocumentDirection(),\n gap = GAP,\n loadingIcon,\n icons,\n containerAriaLabel = 'Notifications',\n pauseWhenPageIsHidden,\n } = props;\n const [toasts, setToasts] = React.useState<ToastT[]>([]);\n const possiblePositions = React.useMemo(() => {\n return Array.from(\n new Set([position].concat(toasts.filter((toast) => toast.position).map((toast) => toast.position))),\n );\n }, [toasts, position]);\n const [heights, setHeights] = React.useState<HeightT[]>([]);\n const [expanded, setExpanded] = React.useState(false);\n const [interacting, setInteracting] = React.useState(false);\n const [actualTheme, setActualTheme] = React.useState(\n theme !== 'system'\n ? theme\n : typeof window !== 'undefined'\n ? window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light'\n : 'light',\n );\n\n const listRef = React.useRef<HTMLOListElement>(null);\n const hotkeyLabel = hotkey.join('+').replace(/Key/g, '').replace(/Digit/g, '');\n const lastFocusedElementRef = React.useRef<HTMLElement>(null);\n const isFocusWithinRef = React.useRef(false);\n\n const removeToast = React.useCallback((toastToRemove: ToastT) => {\n setToasts((toasts) => {\n if (!toasts.find((toast) => toast.id === toastToRemove.id)?.delete) {\n ToastState.dismiss(toastToRemove.id);\n }\n\n return toasts.filter(({ id }) => id !== toastToRemove.id);\n });\n }, []);\n\n React.useEffect(() => {\n return ToastState.subscribe((toast) => {\n if ((toast as ToastToDismiss).dismiss) {\n setToasts((toasts) => toasts.map((t) => (t.id === toast.id ? { ...t, delete: true } : t)));\n return;\n }\n\n // Prevent batching, temp solution.\n setTimeout(() => {\n ReactDOM.flushSync(() => {\n setToasts((toasts) => {\n const indexOfExistingToast = toasts.findIndex((t) => t.id === toast.id);\n\n // Update the toast if it already exists\n if (indexOfExistingToast !== -1) {\n return [\n ...toasts.slice(0, indexOfExistingToast),\n { ...toasts[indexOfExistingToast], ...toast },\n ...toasts.slice(indexOfExistingToast + 1),\n ];\n }\n\n return [toast, ...toasts];\n });\n });\n });\n });\n }, []);\n\n React.useEffect(() => {\n if (theme !== 'system') {\n setActualTheme(theme);\n return;\n }\n\n if (theme === 'system') {\n // check if current preference is dark\n if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n // it's currently dark\n setActualTheme('dark');\n } else {\n // it's not dark\n setActualTheme('light');\n }\n }\n\n if (typeof window === 'undefined') return;\n const darkMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n\n try {\n // Chrome & Firefox\n darkMediaQuery.addEventListener('change', ({ matches }) => {\n if (matches) {\n setActualTheme('dark');\n } else {\n setActualTheme('light');\n }\n });\n } catch (error) {\n // Safari < 14\n darkMediaQuery.addListener(({ matches }) => {\n try {\n if (matches) {\n setActualTheme('dark');\n } else {\n setActualTheme('light');\n }\n } catch (e) {\n console.error(e);\n }\n });\n }\n }, [theme]);\n\n React.useEffect(() => {\n // Ensure expanded is always false when no toasts are present / only one left\n if (toasts.length <= 1) {\n setExpanded(false);\n }\n }, [toasts]);\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n const isHotkeyPressed = hotkey.every((key) => (event as any)[key] || event.code === key);\n\n if (isHotkeyPressed) {\n setExpanded(true);\n listRef.current?.focus();\n }\n\n if (\n event.code === 'Escape' &&\n (document.activeElement === listRef.current || listRef.current?.contains(document.activeElement))\n ) {\n setExpanded(false);\n }\n };\n document.addEventListener('keydown', handleKeyDown);\n\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [hotkey]);\n\n React.useEffect(() => {\n if (listRef.current) {\n return () => {\n if (lastFocusedElementRef.current) {\n lastFocusedElementRef.current.focus({ preventScroll: true });\n lastFocusedElementRef.current = null;\n isFocusWithinRef.current = false;\n }\n };\n }\n }, [listRef.current]);\n\n return (\n // Remove item from normal navigation flow, only available via hotkey\n <section\n ref={ref}\n aria-label={`${containerAriaLabel} ${hotkeyLabel}`}\n tabIndex={-1}\n aria-live=\"polite\"\n aria-relevant=\"additions text\"\n aria-atomic=\"false\"\n suppressHydrationWarning\n >\n {possiblePositions.map((position, index) => {\n const [y, x] = position.split('-');\n\n if (!toasts.length) return null;\n\n return (\n <ol\n key={position}\n dir={dir === 'auto' ? getDocumentDirection() : dir}\n tabIndex={-1}\n ref={listRef}\n className={className}\n data-sonner-toaster\n data-theme={actualTheme}\n data-y-position={y}\n data-lifted={expanded && toasts.length > 1 && !expand}\n data-x-position={x}\n style={\n {\n '--front-toast-height': `${heights[0]?.height || 0}px`,\n '--width': `${TOAST_WIDTH}px`,\n '--gap': `${gap}px`,\n ...style,\n ...assignOffset(offset, mobileOffset),\n } as React.CSSProperties\n }\n onBlur={(event) => {\n if (isFocusWithinRef.current && !event.currentTarget.contains(event.relatedTarget)) {\n isFocusWithinRef.current = false;\n if (lastFocusedElementRef.current) {\n lastFocusedElementRef.current.focus({ preventScroll: true });\n lastFocusedElementRef.current = null;\n }\n }\n }}\n onFocus={(event) => {\n const isNotDismissible =\n event.target instanceof HTMLElement && event.target.dataset.dismissible === 'false';\n\n if (isNotDismissible) return;\n\n if (!isFocusWithinRef.current) {\n isFocusWithinRef.current = true;\n lastFocusedElementRef.current = event.relatedTarget as HTMLElement;\n }\n }}\n onMouseEnter={() => setExpanded(true)}\n onMouseMove={() => setExpanded(true)}\n onMouseLeave={() => {\n // Avoid setting expanded to false when interacting with a toast, e.g. swiping\n if (!interacting) {\n setExpanded(false);\n }\n }}\n onDragEnd={() => setExpanded(false)}\n onPointerDown={(event) => {\n const isNotDismissible =\n event.target instanceof HTMLElement && event.target.dataset.dismissible === 'false';\n\n if (isNotDismissible) return;\n setInteracting(true);\n }}\n onPointerUp={() => setInteracting(false)}\n >\n {toasts\n .filter((toast) => (!toast.position && index === 0) || toast.position === position)\n .map((toast, index) => (\n <Toast\n key={toast.id}\n icons={icons}\n index={index}\n toast={toast}\n defaultRichColors={richColors}\n duration={toastOptions?.duration ?? duration}\n className={toastOptions?.className}\n descriptionClassName={toastOptions?.descriptionClassName}\n invert={invert}\n visibleToasts={visibleToasts}\n closeButton={toastOptions?.closeButton ?? closeButton}\n interacting={interacting}\n position={position}\n style={toastOptions?.style}\n unstyled={toastOptions?.unstyled}\n classNames={toastOptions?.classNames}\n cancelButtonStyle={toastOptions?.cancelButtonStyle}\n actionButtonStyle={toastOptions?.actionButtonStyle}\n removeToast={removeToast}\n toasts={toasts.filter((t) => t.position == toast.position)}\n heights={heights.filter((h) => h.position == toast.position)}\n setHeights={setHeights}\n expandByDefault={expand}\n gap={gap}\n loadingIcon={loadingIcon}\n expanded={expanded}\n pauseWhenPageIsHidden={pauseWhenPageIsHidden}\n swipeDirections={props.swipeDirections}\n />\n ))}\n </ol>\n );\n })}\n </section>\n );\n});\nexport { toast, Toaster, type ExternalToast, type ToastT, type ToasterProps, useSonner };\nexport { type ToastClassnames, type ToastToDismiss, type Action } from './types';\n","'use client';\nimport React from 'react';\nimport type { ToastTypes } from './types';\n\nexport const getAsset = (type: ToastTypes): JSX.Element | null => {\n switch (type) {\n case 'success':\n return SuccessIcon;\n\n case 'info':\n return InfoIcon;\n\n case 'warning':\n return WarningIcon;\n\n case 'error':\n return ErrorIcon;\n\n default:\n return null;\n }\n};\n\nconst bars = Array(12).fill(0);\n\nexport const Loader = ({ visible, className }: { visible: boolean, className?: string }) => {\n return (\n <div className={['sonner-loading-wrapper', className].filter(Boolean).join(' ')} data-visible={visible}>\n <div className=\"sonner-spinner\">\n {bars.map((_, i) => (\n <div className=\"sonner-loading-bar\" key={`spinner-bar-${i}`} />\n ))}\n </div>\n </div>\n );\n};\n\nconst SuccessIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" height=\"20\" width=\"20\">\n <path\n fillRule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n\nconst WarningIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" height=\"20\" width=\"20\">\n <path\n fillRule=\"evenodd\"\n d=\"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n\nconst InfoIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" height=\"20\" width=\"20\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n\nconst ErrorIcon = (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" height=\"20\" width=\"20\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n\nexport const CloseIcon = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n);\n","import React from 'react';\n\nexport const useIsDocumentHidden = () => {\n const [isDocumentHidden, setIsDocumentHidden] = React.useState(document.hidden);\n\n React.useEffect(() => {\n const callback = () => {\n setIsDocumentHidden(document.hidden);\n };\n document.addEventListener('visibilitychange', callback);\n return () => window.removeEventListener('visibilitychange', callback);\n }, []);\n\n return isDocumentHidden;\n};\n","import type { ExternalToast, PromiseData, PromiseT, ToastT, ToastToDismiss, ToastTypes } from './types';\n\nimport React from 'react';\n\nlet toastsCounter = 1;\n\ntype titleT = (() => React.ReactNode) | React.ReactNode;\n\nclass Observer {\n subscribers: Array<(toast: ExternalToast | ToastToDismiss) => void>;\n toasts: Array<ToastT | ToastToDismiss>;\n dismissedToasts: Set<string | number>;\n\n constructor() {\n this.subscribers = [];\n this.toasts = [];\n this.dismissedToasts = new Set();\n }\n\n // We use arrow functions to maintain the correct `this` reference\n subscribe = (subscriber: (toast: ToastT | ToastToDismiss) => void) => {\n this.subscribers.push(subscriber);\n\n return () => {\n const index = this.subscribers.indexOf(subscriber);\n this.subscribers.splice(index, 1);\n };\n };\n\n publish = (data: ToastT) => {\n this.subscribers.forEach((subscriber) => subscriber(data));\n };\n\n addToast = (data: ToastT) => {\n this.publish(data);\n this.toasts = [...this.toasts, data];\n };\n\n create = (\n data: ExternalToast & {\n message?: titleT;\n type?: ToastTypes;\n promise?: PromiseT;\n jsx?: React.ReactElement;\n },\n ) => {\n const { message, ...rest } = data;\n const id = typeof data?.id === 'number' || data.id?.length > 0 ? data.id : toastsCounter++;\n const alreadyExists = this.toasts.find((toast) => {\n return toast.id === id;\n });\n const dismissible = data.dismissible === undefined ? true : data.dismissible;\n\n if (this.dismissedToasts.has(id)) {\n this.dismissedToasts.delete(id);\n }\n\n if (alreadyExists) {\n this.toasts = this.toasts.map((toast) => {\n if (toast.id === id) {\n this.publish({ ...toast, ...data, id, title: message });\n return {\n ...toast,\n ...data,\n id,\n dismissible,\n title: message,\n };\n }\n\n return toast;\n });\n } else {\n this.addToast({ title: message, ...rest, dismissible, id });\n }\n\n return id;\n };\n\n dismiss = (id?: number | string) => {\n this.dismissedToasts.add(id);\n\n if (!id) {\n this.toasts.forEach((toast) => {\n this.subscribers.forEach((subscriber) => subscriber({ id: toast.id, dismiss: true }));\n });\n }\n this.subscribers.forEach((subscriber) => subscriber({ id, dismiss: true }));\n return id;\n };\n\n message = (message: titleT | React.ReactNode, data?: ExternalToast) => {\n return this.create({ ...data, message });\n };\n\n error = (message: titleT | React.ReactNode, data?: ExternalToast) => {\n return this.create({ ...data, message, type: 'error' });\n };\n\n success = (message: titleT | React.ReactNode, data?: ExternalToast) => {\n return this.create({ ...data, type: 'success', message });\n };\n\n info = (message: titleT | React.ReactNode, data?: ExternalToast) => {\n return this.create({ ...data, type: 'info', message });\n };\n\n warning = (message: titleT | React.ReactNode, data?: ExternalToast) => {\n return this.create({ ...data, type: 'warning', message });\n };\n\n loading = (message: titleT | React.ReactNode, data?: ExternalToast) => {\n return this.create({ ...data, type: 'loading', message });\n };\n\n promise = <ToastData>(promise: PromiseT<ToastData>, data?: PromiseData<ToastData>) => {\n if (!data) {\n // Nothing to show\n return;\n }\n\n let id: string | number | undefined = undefined;\n if (data.loading !== undefined) {\n id = this.create({\n ...data,\n promise,\n type: 'loading',\n message: data.loading,\n description: typeof data.description !== 'function' ? data.description : undefined,\n });\n }\n\n const p = promise instanceof Promise ? promise : promise();\n\n let shouldDismiss = id !== undefined;\n let result: ['resolve', ToastData] | ['reject', unknown];\n\n const originalPromise = p\n .then(async (response) => {\n result = ['resolve', response];\n const isReactElementResponse = React.isValidElement(response);\n if (isReactElementResponse) {\n shouldDismiss = false;\n this.create({ id, type: 'default', message: response });\n } else if (isHttpResponse(response) && !response.ok) {\n shouldDismiss = false;\n const message =\n typeof data.error === 'function' ? await data.error(`HTTP error! status: ${response.status}`) : data.error;\n const description =\n typeof data.description === 'function'\n ? await data.description(`HTTP error! status: ${response.status}`)\n : data.description;\n this.create({ id, type: 'error', message, description });\n } else if (data.success !== undefined) {\n shouldDismiss = false;\n const message = typeof data.success === 'function' ? await data.success(response) : data.success;\n const description =\n typeof data.description === 'function' ? await data.description(response) : data.description;\n this.create({ id, type: 'success', message, description });\n }\n })\n .catch(async (error) => {\n result = ['reject', error];\n if (data.error !== undefined) {\n shouldDismiss = false;\n const message = typeof data.error === 'function' ? await data.error(error) : data.error;\n const description = typeof data.description === 'function' ? await data.description(error) : data.description;\n this.create({ id, type: 'error', message, description });\n }\n })\n .finally(() => {\n if (shouldDismiss) {\n // Toast is still in load state (and will be indefinitely — dismiss it)\n this.dismiss(id);\n id = undefined;\n }\n\n data.finally?.();\n });\n\n const unwrap = () =>\n new Promise<ToastData>((resolve, reject) =>\n originalPromise.then(() => (result[0] === 'reject' ? reject(result[1]) : resolve(result[1]))).catch(reject),\n );\n\n if (typeof id !== 'string' && typeof id !== 'number') {\n // cannot Object.assign on undefined\n return { unwrap };\n } else {\n return Object.assign(id, { unwrap });\n }\n };\n\n custom = (jsx: (id: number | string) => React.ReactElement, data?: ExternalToast) => {\n const id = data?.id || toastsCounter++;\n this.create({ jsx: jsx(id), id, ...data });\n return id;\n };\n\n getActiveToasts = () => {\n return this.toasts.filter((toast) => !this.dismissedToasts.has(toast.id));\n };\n}\n\nexport const ToastState = new Observer();\n\n// bind this to the toast function\nconst toastFunction = (message: titleT, data?: ExternalToast) => {\n const id = data?.id || toastsCounter++;\n\n ToastState.addToast({\n title: message,\n ...data,\n id,\n });\n return id;\n};\n\nconst isHttpResponse = (data: any): data is Response => {\n return (\n data &&\n typeof data === 'object' &&\n 'ok' in data &&\n typeof data.ok === 'boolean' &&\n 'status' in data &&\n typeof data.status === 'number'\n );\n};\n\nconst basicToast = toastFunction;\n\nconst getHistory = () => ToastState.toasts;\nconst getToasts = () => ToastState.getActiveToasts();\n\n// We use `Object.assign` to maintain the correct types as we would lose them otherwise\nexport const toast = Object.assign(\n basicToast,\n {\n success: ToastState.success,\n info: ToastState.info,\n warning: ToastState.warning,\n error: ToastState.error,\n custom: ToastState.custom,\n message: ToastState.message,\n promise: ToastState.promise,\n dismiss: ToastState.dismiss,\n loading: ToastState.loading,\n },\n { getHistory, getToasts },\n);\n","\n export default function styleInject(css, { insertAt } = {}) {\n if (!css || typeof document === 'undefined') return\n \n const head = document.head || document.getElementsByTagName('head')[0]\n const style = document.createElement('style')\n style.type = 'text/css'\n \n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild)\n } else {\n head.appendChild(style)\n }\n } else {\n head.appendChild(style)\n }\n \n if (style.styleSheet) {\n style.styleSheet.cssText = css\n } else {\n style.appendChild(document.createTextNode(css))\n }\n }\n ","import styleInject from '#style-inject';styleInject(\":where(html[dir=\\\"ltr\\\"]),:where([data-sonner-toaster][dir=\\\"ltr\\\"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir=\\\"rtl\\\"]),:where([data-sonner-toaster][dir=\\\"rtl\\\"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted=\\\"true\\\"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted=\\\"true\\\"]){transform:none}}:where([data-sonner-toaster][data-x-position=\\\"right\\\"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position=\\\"left\\\"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position=\\\"center\\\"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position=\\\"top\\\"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position=\\\"bottom\\\"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled=\\\"true\\\"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position=\\\"top\\\"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position=\\\"bottom\\\"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise=\\\"true\\\"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme=\\\"dark\\\"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled=\\\"true\\\"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping=\\\"true\\\"]):before{content:\\\"\\\";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position=\\\"top\\\"][data-swiping=\\\"true\\\"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position=\\\"bottom\\\"][data-swiping=\\\"true\\\"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping=\\\"false\\\"][data-removed=\\\"true\\\"]):before{content:\\\"\\\";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:\\\"\\\";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted=\\\"true\\\"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded=\\\"false\\\"][data-front=\\\"false\\\"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded=\\\"false\\\"][data-front=\\\"false\\\"][data-styled=\\\"true\\\"])>*{opacity:0}:where([data-sonner-toast][data-visible=\\\"false\\\"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted=\\\"true\\\"][data-expanded=\\\"true\\\"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed=\\\"true\\\"][data-front=\\\"true\\\"][data-swipe-out=\\\"false\\\"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed=\\\"true\\\"][data-front=\\\"false\\\"][data-swipe-out=\\\"false\\\"][data-expanded=\\\"true\\\"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed=\\\"true\\\"][data-front=\\\"false\\\"][data-swipe-out=\\\"false\\\"][data-expanded=\\\"false\\\"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed=\\\"true\\\"][data-front=\\\"false\\\"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}\\n\")","import React from 'react';\n\nexport type ToastTypes = 'normal' | 'action' | 'success' | 'info' | 'warning' | 'error' | 'loading' | 'default';\n\nexport type PromiseT<Data = any> = Promise<Data> | (() => Promise<Data>);\n\nexport type PromiseTResult<Data = any> =\n | string\n | React.ReactNode\n | ((data: Data) => React.ReactNode | string | Promise<React.ReactNode | string>);\n\nexport type PromiseExternalToast = Omit<ExternalToast, 'description'>;\n\nexport type PromiseData<ToastData = any> = PromiseExternalToast & {\n loading?: string | React.ReactNode;\n success?: PromiseTResult<ToastData>;\n error?: PromiseTResult;\n description?: PromiseTResult;\n finally?: () => void | Promise<void>;\n};\n\nexport interface ToastClassnames {\n toast?: string;\n title?: string;\n description?: string;\n loader?: string;\n closeButton?: string;\n cancelButton?: string;\n actionButton?: string;\n success?: string;\n error?: string;\n info?: string;\n warning?: string;\n loading?: string;\n default?: string;\n content?: string;\n icon?: string;\n}\n\nexport interface ToastIcons {\n success?: React.ReactNode;\n info?: React.ReactNode;\n warning?: React.ReactNode;\n error?: React.ReactNode;\n loading?: React.ReactNode;\n close?: React.ReactNode;\n}\n\nexport interface Action {\n label: React.ReactNode;\n onClick: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n actionButtonStyle?: React.CSSProperties;\n}\n\nexport interface ToastT {\n id: number | string;\n title?: (() => React.ReactNode) | React.ReactNode;\n type?: ToastTypes;\n icon?: React.ReactNode;\n jsx?: React.ReactNode;\n richColors?: boolean;\n invert?: boolean;\n closeButton?: boolean;\n dismissible?: boolean;\n description?: (() => React.ReactNode) | React.ReactNode;\n duration?: number;\n delete?: boolean;\n action?: Action | React.ReactNode;\n cancel?: Action | React.ReactNode;\n onDismiss?: (toast: ToastT) => void;\n onAutoClose?: (toast: ToastT) => void;\n promise?: PromiseT;\n cancelButtonStyle?: React.CSSProperties;\n actionButtonStyle?: React.CSSProperties;\n style?: React.CSSProperties;\n unstyled?: boolean;\n className?: string;\n classNames?: ToastClassnames;\n descriptionClassName?: string;\n position?: Position;\n}\n\nexport function isAction(action: Action | React.ReactNode): action is Action {\n return (action as Action).label !== undefined;\n}\n\nexport type Position = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'top-center' | 'bottom-center';\nexport interface HeightT {\n height: number;\n toastId: number | string;\n position: Position;\n}\n\ninterface ToastOptions {\n className?: string;\n closeButton?: boolean;\n descriptionClassName?: string;\n style?: React.CSSProperties;\n cancelButtonStyle?: React.CSSProperties;\n actionButtonStyle?: React.CSSProperties;\n duration?: number;\n unstyled?: boolean;\n classNames?: ToastClassnames;\n}\n\ntype Offset =\n | {\n top?: string | number;\n right?: string | number;\n bottom?: string | number;\n left?: string | number;\n }\n | string\n | number;\n\nexport interface ToasterProps {\n invert?: boolean;\n theme?: 'light' | 'dark' | 'system';\n position?: Position;\n hotkey?: string[];\n richColors?: boolean;\n expand?: boolean;\n duration?: number;\n gap?: number;\n visibleToasts?: number;\n closeButton?: boolean;\n toastOptions?: ToastOptions;\n className?: string;\n style?: React.CSSProperties;\n offset?: Offset;\n mobileOffset?: Offset;\n dir?: 'rtl' | 'ltr' | 'auto';\n swipeDirections?: SwipeDirection[];\n /**\n * @deprecated Please use the `icons` prop instead:\n * ```jsx\n * <Toaster\n * icons={{ loading: <LoadingIcon /> }}\n * />\n * ```\n */\n loadingIcon?: React.ReactNode;\n icons?: ToastIcons;\n containerAriaLabel?: string;\n pauseWhenPageIsHidden?: boolean;\n}\n\nexport type SwipeDirection = 'top' | 'right' | 'bottom' | 'left';\n\nexport interface ToastProps {\n toast: ToastT;\n toasts: ToastT[];\n index: number;\n swipeDirections?: SwipeDirection[];\n expanded: boolean;\n invert: boolean;\n heights: HeightT[];\n setHeights: React.Dispatch<React.SetStateAction<HeightT[]>>;\n removeToast: (toast: ToastT) => void;\n gap?: number;\n position: Position;\n visibleToasts: number;\n expandByDefault: boolean;\n closeButton: boolean;\n interacting: boolean;\n style?: React.CSSProperties;\n cancelButtonStyle?: React.CSSProperties;\n actionButtonStyle?: React.CSSProperties;\n duration?: number;\n className?: string;\n unstyled?: boolean;\n descriptionClassName?: string;\n loadingIcon?: React.ReactNode;\n classNames?: ToastClassnames;\n icons?: ToastIcons;\n closeButtonAriaLabel?: string;\n pauseWhenPageIsHidden: boolean;\n defaultRichColors?: boolean;\n}\n\nexport enum SwipeStateTypes {\n SwipedOut = 'SwipedOut',\n SwipedBack = 'SwipedBack',\n NotSwiped = 'NotSwiped',\n}\n\nexport type Theme = 'light' | 'dark';\n\nexport interface ToastToDismiss {\n id: number | string;\n dismiss: boolean;\n}\n\nexport type ExternalToast = Omit<ToastT, 'id' | 'type' | 'title' | 'jsx' | 'delete' | 'promise'> & {\n id?: number | string;\n};\n"],"names":["bars","Loader","visible","className","getAsset","_","i","SuccessIcon","WarningIcon","InfoIcon","ErrorIcon","CloseIcon","toastsCounter","ToastState","Observer","toastFunction","subscriber","index","data","_a","message","rest","id","alreadyExists","toast","dismissible","promise","p","shouldDismiss","result","originalPromise","response","isHttpResponse","description","error","unwrap","resolve","reject","jsx","basicToast","getHistory","getToasts","isAction","action","cn","classes","styleInject","css","insertAt","head","style","Toast","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","ToasterInvert","unstyled","interacting","setHeights","visibleToasts","heights","toasts","expanded","removeToast","defaultRichColors","closeButtonFromToaster","cancelButtonStyle","actionButtonStyle","descriptionClassName","durationFromToaster","position","gap","loadingIconProp","expandByDefault","classNames","icons","closeButtonAriaLabel","pauseWhenPageIsHidden","props","swipeDirection","setSwipeDirection","setSwipeOut","swipeOutDirection","setSwipeOutDirection","mounted","setMounted","removed","setRemoved","swiping","setSwiping","swipeOut","isSwiped","setIsSwiped","offsetBeforeRemove","setOffsetBeforeRemove","initialHeight","setInitialHeight","remainingTime","TOAST_LIFETIME","dragStartTime","toastRef","isFront","isVisible","toastType","toastClassname","toastDescriptionClassname","heightIndex","height","closeButton","duration","TOAST_WIDTH","closeTimerStartTimeRef","offset","lastCloseTimerStartTimeRef","pointerStartRef","y","x","toastsHeightBefore","prev","curr","reducerIndex","isDocumentHidden","useIsDocumentHidden","setIsDocumentHidden","callback","invert","disabled","toastNode","h","originalHeight","newHeight","deleteToast","TIME_BEFORE_UNMOUNT","timeoutId","elapsedTime","event","swipeAmountX","swipeAmountY","timeTaken","swipeAmount","velocity","SWIPE_THRESHOLD","yDelta","xDelta","swipeDirections","getDefaultSwipeDirections","directions","indexOfExistingToast","isValidElement","getLoadingIcon","type","getDocumentDirection","dirAttribute","Toaster","darkMediaQuery","forwardRef","ref","hotkey","expand","mobileOffset","theme","richColors","VISIBLE_TOASTS_AMOUNT","toastOptions","dir","GAP","loadingIcon","containerAriaLabel","setToasts","possiblePositions","setExpanded","setInteracting","actualTheme","setActualTheme","listRef","hotkeyLabel","lastFocusedElementRef","isFocusWithinRef","toastToRemove","t","matches","e","handleKeyDown","key","styles","isMobile","prefix","defaultValue","MOBILE_VIEWPORT_OFFSET","VIEWPORT_OFFSET","assignAll","assignOffset"],"sourceRoot":"","ignoreList":[0,1]} \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/772-1f28eef8a4a9a668.js b/opencut-ui/_next/static/chunks/772-1f28eef8a4a9a668.js new file mode 100644 index 0000000..7801da0 --- /dev/null +++ b/opencut-ui/_next/static/chunks/772-1f28eef8a4a9a668.js @@ -0,0 +1,2 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[772],{13746:e=>{e.exports={style:{fontFamily:"'Inter', 'Inter Fallback'",fontStyle:"normal"},className:"__className_ef9af1"}},19947:e=>{e.exports={style:{fontFamily:"'Roboto', 'Roboto Fallback'",fontStyle:"normal"},className:"__className_765053"}},27387:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{cancelIdleCallback:function(){return r},requestIdleCallback:function(){return n}});let n="undefined"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},r="undefined"!=typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},53322:e=>{e.exports={style:{fontFamily:"'Comic Neue', 'Comic Neue Fallback'",fontStyle:"normal"},className:"__className_5f610d"}},54143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"setAttributesFromProps",{enumerable:!0,get:function(){return l}});let n={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv",noModule:"noModule"},r=["onLoad","onReady","dangerouslySetInnerHTML","children","onError","strategy","stylesheets"];function a(e){return["async","defer","noModule"].includes(e)}function l(e,t){for(let[l,s]of Object.entries(t)){if(!t.hasOwnProperty(l)||r.includes(l)||void 0===s)continue;let o=n[l]||l.toLowerCase();"SCRIPT"===e.tagName&&a(o)?e[o]=!!s:e.setAttribute(o,String(s)),(!1===s||"SCRIPT"===e.tagName&&a(o)&&(!s||"false"===s))&&(e.setAttribute(o,""),e.removeAttribute(o))}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},54152:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{default:function(){return b},handleClientScriptLoad:function(){return y},initScriptLoader:function(){return p}});let r=n(4760),a=n(44253),l=n(28064),s=r._(n(82749)),o=a._(n(74188)),i=n(97051),c=n(54143),u=n(27387),d=new Map,f=new Set,m=e=>{let{src:t,id:n,onLoad:r=()=>{},onReady:a=null,dangerouslySetInnerHTML:l,children:o="",strategy:i="afterInteractive",onError:u,stylesheets:m}=e,y=n||t;if(y&&f.has(y))return;if(d.has(t)){f.add(y),d.get(t).then(r,u);return}let p=()=>{a&&a(),f.add(y)},h=document.createElement("script"),b=new Promise((e,t)=>{h.addEventListener("load",function(t){e(),r&&r.call(this,t),p()}),h.addEventListener("error",function(e){t(e)})}).catch(function(e){u&&u(e)});l?(h.innerHTML=l.__html||"",p()):o?(h.textContent="string"==typeof o?o:Array.isArray(o)?o.join(""):"",p()):t&&(h.src=t,d.set(t,b)),(0,c.setAttributesFromProps)(h,e),"worker"===i&&h.setAttribute("type","text/partytown"),h.setAttribute("data-nscript",i),m&&(e=>{if(s.default.preinit)return e.forEach(e=>{s.default.preinit(e,{as:"style"})});{let t=document.head;e.forEach(e=>{let n=document.createElement("link");n.type="text/css",n.rel="stylesheet",n.href=e,t.appendChild(n)})}})(m),document.body.appendChild(h)};function y(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,u.requestIdleCallback)(()=>m(e))}):m(e)}function p(e){e.forEach(y),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");f.add(t)})}function h(e){let{id:t,src:n="",onLoad:r=()=>{},onReady:a=null,strategy:c="afterInteractive",onError:d,stylesheets:y,...p}=e,{updateScripts:h,scripts:b,getIsSsr:_,appDir:g,nonce:v}=(0,o.useContext)(i.HeadManagerContext);v=p.nonce||v;let S=(0,o.useRef)(!1);(0,o.useEffect)(()=>{let e=t||n;S.current||(a&&e&&f.has(e)&&a(),S.current=!0)},[a,t,n]);let w=(0,o.useRef)(!1);if((0,o.useEffect)(()=>{if(!w.current){if("afterInteractive"===c)m(e);else"lazyOnload"===c&&("complete"===document.readyState?(0,u.requestIdleCallback)(()=>m(e)):window.addEventListener("load",()=>{(0,u.requestIdleCallback)(()=>m(e))}));w.current=!0}},[e,c]),("beforeInteractive"===c||"worker"===c)&&(h?(b[c]=(b[c]||[]).concat([{id:t,src:n,onLoad:r,onReady:a,onError:d,...p,nonce:v}]),h(b)):_&&_()?f.add(t||n):_&&!_()&&m({...e,nonce:v})),g){if(y&&y.forEach(e=>{s.default.preinit(e,{as:"style"})}),"beforeInteractive"===c)if(!n)return p.dangerouslySetInnerHTML&&(p.children=p.dangerouslySetInnerHTML.__html,delete p.dangerouslySetInnerHTML),(0,l.jsx)("script",{nonce:v,dangerouslySetInnerHTML:{__html:"(self.__next_s=self.__next_s||[]).push("+JSON.stringify([0,{...p,id:t}])+")"}});else return s.default.preload(n,p.integrity?{as:"script",integrity:p.integrity,nonce:v,crossOrigin:p.crossOrigin}:{as:"script",nonce:v,crossOrigin:p.crossOrigin}),(0,l.jsx)("script",{nonce:v,dangerouslySetInnerHTML:{__html:"(self.__next_s=self.__next_s||[]).push("+JSON.stringify([n,{...p,id:t}])+")"}});"afterInteractive"===c&&n&&s.default.preload(n,p.integrity?{as:"script",integrity:p.integrity,nonce:v,crossOrigin:p.crossOrigin}:{as:"script",nonce:v,crossOrigin:p.crossOrigin})}return null}Object.defineProperty(h,"__nextScript",{value:!0});let b=h;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},60331:(e,t,n)=>{"use strict";n.d(t,{D:()=>u,ThemeProvider:()=>d});var r=n(74188),a=(e,t,n,r,a,l,s,o)=>{let i=document.documentElement,c=["light","dark"];function u(t){var n;(Array.isArray(e)?e:[e]).forEach(e=>{let n="class"===e,r=n&&l?a.map(e=>l[e]||e):a;n?(i.classList.remove(...r),i.classList.add(l&&l[t]?l[t]:t)):i.setAttribute(e,t)}),n=t,o&&c.includes(n)&&(i.style.colorScheme=n)}if(r)u(r);else try{let e=localStorage.getItem(t)||n,r=s&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;u(r)}catch(e){}},l=["light","dark"],s="(prefers-color-scheme: dark)",o="undefined"==typeof window,i=r.createContext(void 0),c={setTheme:e=>{},themes:[]},u=()=>{var e;return null!=(e=r.useContext(i))?e:c},d=e=>r.useContext(i)?r.createElement(r.Fragment,null,e.children):r.createElement(m,{...e}),f=["light","dark"],m=e=>{let{forcedTheme:t,disableTransitionOnChange:n=!1,enableSystem:a=!0,enableColorScheme:o=!0,storageKey:c="theme",themes:u=f,defaultTheme:d=a?"system":"light",attribute:m="data-theme",value:_,children:g,nonce:v,scriptProps:S}=e,[w,C]=r.useState(()=>p(c,d)),[k,E]=r.useState(()=>"system"===w?b():w),O=_?Object.values(_):u,I=r.useCallback(e=>{let t=e;if(!t)return;"system"===e&&a&&(t=b());let r=_?_[t]:t,s=n?h(v):null,i=document.documentElement,c=e=>{"class"===e?(i.classList.remove(...O),r&&i.classList.add(r)):e.startsWith("data-")&&(r?i.setAttribute(e,r):i.removeAttribute(e))};if(Array.isArray(m)?m.forEach(c):c(m),o){let e=l.includes(d)?d:null,n=l.includes(t)?t:e;i.style.colorScheme=n}null==s||s()},[v]),T=r.useCallback(e=>{let t="function"==typeof e?e(w):e;C(t);try{localStorage.setItem(c,t)}catch(e){}},[w]),M=r.useCallback(e=>{E(b(e)),"system"===w&&a&&!t&&I("system")},[w,t]);r.useEffect(()=>{let e=window.matchMedia(s);return e.addListener(M),M(e),()=>e.removeListener(M)},[M]),r.useEffect(()=>{let e=e=>{e.key===c&&(e.newValue?C(e.newValue):T(d))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[T]),r.useEffect(()=>{I(null!=t?t:w)},[t,w]);let x=r.useMemo(()=>({theme:w,setTheme:T,forcedTheme:t,resolvedTheme:"system"===w?k:w,themes:a?[...u,"system"]:u,systemTheme:a?k:void 0}),[w,T,t,k,a,u]);return r.createElement(i.Provider,{value:x},r.createElement(y,{forcedTheme:t,storageKey:c,attribute:m,enableSystem:a,enableColorScheme:o,defaultTheme:d,value:_,themes:u,nonce:v,scriptProps:S}),g)},y=r.memo(e=>{let{forcedTheme:t,storageKey:n,attribute:l,enableSystem:s,enableColorScheme:o,defaultTheme:i,value:c,themes:u,nonce:d,scriptProps:f}=e,m=JSON.stringify([l,n,i,t,u,c,s,o]).slice(1,-1);return r.createElement("script",{...f,suppressHydrationWarning:!0,nonce:"undefined"==typeof window?d:"",dangerouslySetInnerHTML:{__html:"(".concat(a.toString(),")(").concat(m,")")}})}),p=(e,t)=>{let n;if(!o){try{n=localStorage.getItem(e)||void 0}catch(e){}return n||t}},h=e=>{let t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(t),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(t)},1)}},b=e=>(e||(e=window.matchMedia(s)),e.matches?"dark":"light")},82189:e=>{e.exports={style:{fontFamily:"'Open Sans', 'Open Sans Fallback'",fontStyle:"normal"},className:"__className_2d07b8"}},93237:e=>{e.exports={style:{fontFamily:"'Playfair Display', 'Playfair Display Fallback'",fontStyle:"normal"},className:"__className_17d9d3"}}}]); +//# sourceMappingURL=772-1f28eef8a4a9a668.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/772-1f28eef8a4a9a668.js.map b/opencut-ui/_next/static/chunks/772-1f28eef8a4a9a668.js.map new file mode 100644 index 0000000..5d57269 --- /dev/null +++ b/opencut-ui/_next/static/chunks/772-1f28eef8a4a9a668.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/772-1f28eef8a4a9a668.js","mappings":"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","sources":["webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/font/google/target.css","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/font/google/target.css?073e","webpack://_N_E/../../src/client/request-idle-callback.ts","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/font/google/target.css?0291","webpack://_N_E/../../src/client/set-attributes-from-props.ts","webpack://_N_E/../../src/client/script.tsx","webpack://_N_E/../../node_modules/.bun/next-themes@0.4.6+6dbf9a050bc9aadb/node_modules/next-themes/dist/index.mjs","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/font/google/target.css?26b0","webpack://_N_E/../../node_modules/.bun/next@15.4.5+6dbf9a050bc9aadb/node_modules/next/font/google/target.css?aba9"],"sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'Inter', 'Inter Fallback'\",\"fontStyle\":\"normal\"},\"className\":\"__className_ef9af1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'Roboto', 'Roboto Fallback'\",\"fontStyle\":\"normal\"},\"className\":\"__className_765053\"};","export const requestIdleCallback =\n (typeof self !== 'undefined' &&\n self.requestIdleCallback &&\n self.requestIdleCallback.bind(window)) ||\n function (cb: IdleRequestCallback): number {\n let start = Date.now()\n return self.setTimeout(function () {\n cb({\n didTimeout: false,\n timeRemaining: function () {\n return Math.max(0, 50 - (Date.now() - start))\n },\n })\n }, 1)\n }\n\nexport const cancelIdleCallback =\n (typeof self !== 'undefined' &&\n self.cancelIdleCallback &&\n self.cancelIdleCallback.bind(window)) ||\n function (id: number) {\n return clearTimeout(id)\n }\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'Comic Neue', 'Comic Neue Fallback'\",\"fontStyle\":\"normal\"},\"className\":\"__className_5f610d\"};","const DOMAttributeNames: Record<string, string> = {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv',\n noModule: 'noModule',\n}\n\nconst ignoreProps = [\n 'onLoad',\n 'onReady',\n 'dangerouslySetInnerHTML',\n 'children',\n 'onError',\n 'strategy',\n 'stylesheets',\n]\n\nfunction isBooleanScriptAttribute(\n attr: string\n): attr is 'async' | 'defer' | 'noModule' {\n return ['async', 'defer', 'noModule'].includes(attr)\n}\n\nexport function setAttributesFromProps(el: HTMLElement, props: object) {\n for (const [p, value] of Object.entries(props)) {\n if (!props.hasOwnProperty(p)) continue\n if (ignoreProps.includes(p)) continue\n\n // we don't render undefined props to the DOM\n if (value === undefined) {\n continue\n }\n\n const attr = DOMAttributeNames[p] || p.toLowerCase()\n\n if (el.tagName === 'SCRIPT' && isBooleanScriptAttribute(attr)) {\n // Correctly assign boolean script attributes\n // https://github.com/vercel/next.js/pull/20748\n ;(el as HTMLScriptElement)[attr] = !!value\n } else {\n el.setAttribute(attr, String(value))\n }\n\n // Remove falsy non-zero boolean attributes so they are correctly interpreted\n // (e.g. if we set them to false, this coerces to the string \"false\", which the browser interprets as true)\n if (\n value === false ||\n (el.tagName === 'SCRIPT' &&\n isBooleanScriptAttribute(attr) &&\n (!value || value === 'false'))\n ) {\n // Call setAttribute before, as we need to set and unset the attribute to override force async:\n // https://html.spec.whatwg.org/multipage/scripting.html#script-force-async\n el.setAttribute(attr, '')\n el.removeAttribute(attr)\n }\n }\n}\n","'use client'\n\nimport ReactDOM from 'react-dom'\nimport React, { useEffect, useContext, useRef, type JSX } from 'react'\nimport type { ScriptHTMLAttributes } from 'react'\nimport { HeadManagerContext } from '../shared/lib/head-manager-context.shared-runtime'\nimport { setAttributesFromProps } from './set-attributes-from-props'\nimport { requestIdleCallback } from './request-idle-callback'\n\nconst ScriptCache = new Map()\nconst LoadCache = new Set()\n\nexport interface ScriptProps extends ScriptHTMLAttributes<HTMLScriptElement> {\n strategy?: 'afterInteractive' | 'lazyOnload' | 'beforeInteractive' | 'worker'\n id?: string\n onLoad?: (e: any) => void\n onReady?: () => void | null\n onError?: (e: any) => void\n children?: React.ReactNode\n stylesheets?: string[]\n}\n\n/**\n * @deprecated Use `ScriptProps` instead.\n */\nexport type Props = ScriptProps\n\nconst insertStylesheets = (stylesheets: string[]) => {\n // Case 1: Styles for afterInteractive/lazyOnload with appDir injected via handleClientScriptLoad\n //\n // Using ReactDOM.preinit to feature detect appDir and inject styles\n // Stylesheets might have already been loaded if initialized with Script component\n // Re-inject styles here to handle scripts loaded via handleClientScriptLoad\n // ReactDOM.preinit handles dedup and ensures the styles are loaded only once\n if (ReactDOM.preinit) {\n stylesheets.forEach((stylesheet: string) => {\n ReactDOM.preinit(stylesheet, { as: 'style' })\n })\n\n return\n }\n\n // Case 2: Styles for afterInteractive/lazyOnload with pages injected via handleClientScriptLoad\n //\n // We use this function to load styles when appdir is not detected\n // TODO: Use React float APIs to load styles once available for pages dir\n if (typeof window !== 'undefined') {\n let head = document.head\n stylesheets.forEach((stylesheet: string) => {\n let link = document.createElement('link')\n\n link.type = 'text/css'\n link.rel = 'stylesheet'\n link.href = stylesheet\n\n head.appendChild(link)\n })\n }\n}\n\nconst loadScript = (props: ScriptProps): void => {\n const {\n src,\n id,\n onLoad = () => {},\n onReady = null,\n dangerouslySetInnerHTML,\n children = '',\n strategy = 'afterInteractive',\n onError,\n stylesheets,\n } = props\n\n const cacheKey = id || src\n\n // Script has already loaded\n if (cacheKey && LoadCache.has(cacheKey)) {\n return\n }\n\n // Contents of this script are already loading/loaded\n if (ScriptCache.has(src)) {\n LoadCache.add(cacheKey)\n // It is possible that multiple `next/script` components all have same \"src\", but has different \"onLoad\"\n // This is to make sure the same remote script will only load once, but \"onLoad\" are executed in order\n ScriptCache.get(src).then(onLoad, onError)\n return\n }\n\n /** Execute after the script first loaded */\n const afterLoad = () => {\n // Run onReady for the first time after load event\n if (onReady) {\n onReady()\n }\n // add cacheKey to LoadCache when load successfully\n LoadCache.add(cacheKey)\n }\n\n const el = document.createElement('script')\n\n const loadPromise = new Promise<void>((resolve, reject) => {\n el.addEventListener('load', function (e) {\n resolve()\n if (onLoad) {\n onLoad.call(this, e)\n }\n afterLoad()\n })\n el.addEventListener('error', function (e) {\n reject(e)\n })\n }).catch(function (e) {\n if (onError) {\n onError(e)\n }\n })\n\n if (dangerouslySetInnerHTML) {\n // Casting since lib.dom.d.ts doesn't have TrustedHTML yet.\n el.innerHTML = (dangerouslySetInnerHTML.__html as string) || ''\n\n afterLoad()\n } else if (children) {\n el.textContent =\n typeof children === 'string'\n ? children\n : Array.isArray(children)\n ? children.join('')\n : ''\n\n afterLoad()\n } else if (src) {\n el.src = src\n // do not add cacheKey into LoadCache for remote script here\n // cacheKey will be added to LoadCache when it is actually loaded (see loadPromise above)\n\n ScriptCache.set(src, loadPromise)\n }\n\n setAttributesFromProps(el, props)\n\n if (strategy === 'worker') {\n el.setAttribute('type', 'text/partytown')\n }\n\n el.setAttribute('data-nscript', strategy)\n\n // Load styles associated with this script\n if (stylesheets) {\n insertStylesheets(stylesheets)\n }\n\n document.body.appendChild(el)\n}\n\nexport function handleClientScriptLoad(props: ScriptProps) {\n const { strategy = 'afterInteractive' } = props\n if (strategy === 'lazyOnload') {\n window.addEventListener('load', () => {\n requestIdleCallback(() => loadScript(props))\n })\n } else {\n loadScript(props)\n }\n}\n\nfunction loadLazyScript(props: ScriptProps) {\n if (document.readyState === 'complete') {\n requestIdleCallback(() => loadScript(props))\n } else {\n window.addEventListener('load', () => {\n requestIdleCallback(() => loadScript(props))\n })\n }\n}\n\nfunction addBeforeInteractiveToCache() {\n const scripts = [\n ...document.querySelectorAll('[data-nscript=\"beforeInteractive\"]'),\n ...document.querySelectorAll('[data-nscript=\"beforePageRender\"]'),\n ]\n scripts.forEach((script) => {\n const cacheKey = script.id || script.getAttribute('src')\n LoadCache.add(cacheKey)\n })\n}\n\nexport function initScriptLoader(scriptLoaderItems: ScriptProps[]) {\n scriptLoaderItems.forEach(handleClientScriptLoad)\n addBeforeInteractiveToCache()\n}\n\n/**\n * Load a third-party scripts in an optimized way.\n *\n * Read more: [Next.js Docs: `next/script`](https://nextjs.org/docs/app/api-reference/components/script)\n */\nfunction Script(props: ScriptProps): JSX.Element | null {\n const {\n id,\n src = '',\n onLoad = () => {},\n onReady = null,\n strategy = 'afterInteractive',\n onError,\n stylesheets,\n ...restProps\n } = props\n\n // Context is available only during SSR\n let { updateScripts, scripts, getIsSsr, appDir, nonce } =\n useContext(HeadManagerContext)\n\n // if a nonce is explicitly passed to the script tag, favor that over the automatic handling\n nonce = restProps.nonce || nonce\n\n /**\n * - First mount:\n * 1. The useEffect for onReady executes\n * 2. hasOnReadyEffectCalled.current is false, but the script hasn't loaded yet (not in LoadCache)\n * onReady is skipped, set hasOnReadyEffectCalled.current to true\n * 3. The useEffect for loadScript executes\n * 4. hasLoadScriptEffectCalled.current is false, loadScript executes\n * Once the script is loaded, the onLoad and onReady will be called by then\n * [If strict mode is enabled / is wrapped in <OffScreen /> component]\n * 5. The useEffect for onReady executes again\n * 6. hasOnReadyEffectCalled.current is true, so entire effect is skipped\n * 7. The useEffect for loadScript executes again\n * 8. hasLoadScriptEffectCalled.current is true, so entire effect is skipped\n *\n * - Second mount:\n * 1. The useEffect for onReady executes\n * 2. hasOnReadyEffectCalled.current is false, but the script has already loaded (found in LoadCache)\n * onReady is called, set hasOnReadyEffectCalled.current to true\n * 3. The useEffect for loadScript executes\n * 4. The script is already loaded, loadScript bails out\n * [If strict mode is enabled / is wrapped in <OffScreen /> component]\n * 5. The useEffect for onReady executes again\n * 6. hasOnReadyEffectCalled.current is true, so entire effect is skipped\n * 7. The useEffect for loadScript executes again\n * 8. hasLoadScriptEffectCalled.current is true, so entire effect is skipped\n */\n const hasOnReadyEffectCalled = useRef(false)\n\n useEffect(() => {\n const cacheKey = id || src\n if (!hasOnReadyEffectCalled.current) {\n // Run onReady if script has loaded before but component is re-mounted\n if (onReady && cacheKey && LoadCache.has(cacheKey)) {\n onReady()\n }\n\n hasOnReadyEffectCalled.current = true\n }\n }, [onReady, id, src])\n\n const hasLoadScriptEffectCalled = useRef(false)\n\n useEffect(() => {\n if (!hasLoadScriptEffectCalled.current) {\n if (strategy === 'afterInteractive') {\n loadScript(props)\n } else if (strategy === 'lazyOnload') {\n loadLazyScript(props)\n }\n\n hasLoadScriptEffectCalled.current = true\n }\n }, [props, strategy])\n\n if (strategy === 'beforeInteractive' || strategy === 'worker') {\n if (updateScripts) {\n scripts[strategy] = (scripts[strategy] || []).concat([\n {\n id,\n src,\n onLoad,\n onReady,\n onError,\n ...restProps,\n nonce,\n },\n ])\n updateScripts(scripts)\n } else if (getIsSsr && getIsSsr()) {\n // Script has already loaded during SSR\n LoadCache.add(id || src)\n } else if (getIsSsr && !getIsSsr()) {\n loadScript({\n ...props,\n nonce,\n })\n }\n }\n\n // For the app directory, we need React Float to preload these scripts.\n if (appDir) {\n // Injecting stylesheets here handles beforeInteractive and worker scripts correctly\n // For other strategies injecting here ensures correct stylesheet order\n // ReactDOM.preinit handles loading the styles in the correct order,\n // also ensures the stylesheet is loaded only once and in a consistent manner\n //\n // Case 1: Styles for beforeInteractive/worker with appDir - handled here\n // Case 2: Styles for beforeInteractive/worker with pages dir - Not handled yet\n // Case 3: Styles for afterInteractive/lazyOnload with appDir - handled here\n // Case 4: Styles for afterInteractive/lazyOnload with pages dir - handled in insertStylesheets function\n if (stylesheets) {\n stylesheets.forEach((styleSrc) => {\n ReactDOM.preinit(styleSrc, { as: 'style' })\n })\n }\n\n // Before interactive scripts need to be loaded by Next.js' runtime instead\n // of native <script> tags, because they no longer have `defer`.\n if (strategy === 'beforeInteractive') {\n if (!src) {\n // For inlined scripts, we put the content in `children`.\n if (restProps.dangerouslySetInnerHTML) {\n // Casting since lib.dom.d.ts doesn't have TrustedHTML yet.\n restProps.children = restProps.dangerouslySetInnerHTML\n .__html as string\n delete restProps.dangerouslySetInnerHTML\n }\n\n return (\n <script\n nonce={nonce}\n dangerouslySetInnerHTML={{\n __html: `(self.__next_s=self.__next_s||[]).push(${JSON.stringify([\n 0,\n { ...restProps, id },\n ])})`,\n }}\n />\n )\n } else {\n // @ts-ignore\n ReactDOM.preload(\n src,\n restProps.integrity\n ? {\n as: 'script',\n integrity: restProps.integrity,\n nonce,\n crossOrigin: restProps.crossOrigin,\n }\n : { as: 'script', nonce, crossOrigin: restProps.crossOrigin }\n )\n return (\n <script\n nonce={nonce}\n dangerouslySetInnerHTML={{\n __html: `(self.__next_s=self.__next_s||[]).push(${JSON.stringify([\n src,\n { ...restProps, id },\n ])})`,\n }}\n />\n )\n }\n } else if (strategy === 'afterInteractive') {\n if (src) {\n // @ts-ignore\n ReactDOM.preload(\n src,\n restProps.integrity\n ? {\n as: 'script',\n integrity: restProps.integrity,\n nonce,\n crossOrigin: restProps.crossOrigin,\n }\n : { as: 'script', nonce, crossOrigin: restProps.crossOrigin }\n )\n }\n }\n }\n\n return null\n}\n\nObject.defineProperty(Script, '__nextScript', { value: true })\n\nexport default Script\n","\"use client\";import*as t from\"react\";var M=(e,i,s,u,m,a,l,h)=>{let d=document.documentElement,w=[\"light\",\"dark\"];function p(n){(Array.isArray(e)?e:[e]).forEach(y=>{let k=y===\"class\",S=k&&a?m.map(f=>a[f]||f):m;k?(d.classList.remove(...S),d.classList.add(a&&a[n]?a[n]:n)):d.setAttribute(y,n)}),R(n)}function R(n){h&&w.includes(n)&&(d.style.colorScheme=n)}function c(){return window.matchMedia(\"(prefers-color-scheme: dark)\").matches?\"dark\":\"light\"}if(u)p(u);else try{let n=localStorage.getItem(i)||s,y=l&&n===\"system\"?c():n;p(y)}catch(n){}};var b=[\"light\",\"dark\"],I=\"(prefers-color-scheme: dark)\",O=typeof window==\"undefined\",x=t.createContext(void 0),U={setTheme:e=>{},themes:[]},z=()=>{var e;return(e=t.useContext(x))!=null?e:U},J=e=>t.useContext(x)?t.createElement(t.Fragment,null,e.children):t.createElement(V,{...e}),N=[\"light\",\"dark\"],V=({forcedTheme:e,disableTransitionOnChange:i=!1,enableSystem:s=!0,enableColorScheme:u=!0,storageKey:m=\"theme\",themes:a=N,defaultTheme:l=s?\"system\":\"light\",attribute:h=\"data-theme\",value:d,children:w,nonce:p,scriptProps:R})=>{let[c,n]=t.useState(()=>H(m,l)),[T,y]=t.useState(()=>c===\"system\"?E():c),k=d?Object.values(d):a,S=t.useCallback(o=>{let r=o;if(!r)return;o===\"system\"&&s&&(r=E());let v=d?d[r]:r,C=i?W(p):null,P=document.documentElement,L=g=>{g===\"class\"?(P.classList.remove(...k),v&&P.classList.add(v)):g.startsWith(\"data-\")&&(v?P.setAttribute(g,v):P.removeAttribute(g))};if(Array.isArray(h)?h.forEach(L):L(h),u){let g=b.includes(l)?l:null,D=b.includes(r)?r:g;P.style.colorScheme=D}C==null||C()},[p]),f=t.useCallback(o=>{let r=typeof o==\"function\"?o(c):o;n(r);try{localStorage.setItem(m,r)}catch(v){}},[c]),A=t.useCallback(o=>{let r=E(o);y(r),c===\"system\"&&s&&!e&&S(\"system\")},[c,e]);t.useEffect(()=>{let o=window.matchMedia(I);return o.addListener(A),A(o),()=>o.removeListener(A)},[A]),t.useEffect(()=>{let o=r=>{r.key===m&&(r.newValue?n(r.newValue):f(l))};return window.addEventListener(\"storage\",o),()=>window.removeEventListener(\"storage\",o)},[f]),t.useEffect(()=>{S(e!=null?e:c)},[e,c]);let Q=t.useMemo(()=>({theme:c,setTheme:f,forcedTheme:e,resolvedTheme:c===\"system\"?T:c,themes:s?[...a,\"system\"]:a,systemTheme:s?T:void 0}),[c,f,e,T,s,a]);return t.createElement(x.Provider,{value:Q},t.createElement(_,{forcedTheme:e,storageKey:m,attribute:h,enableSystem:s,enableColorScheme:u,defaultTheme:l,value:d,themes:a,nonce:p,scriptProps:R}),w)},_=t.memo(({forcedTheme:e,storageKey:i,attribute:s,enableSystem:u,enableColorScheme:m,defaultTheme:a,value:l,themes:h,nonce:d,scriptProps:w})=>{let p=JSON.stringify([s,i,a,e,h,l,u,m]).slice(1,-1);return t.createElement(\"script\",{...w,suppressHydrationWarning:!0,nonce:typeof window==\"undefined\"?d:\"\",dangerouslySetInnerHTML:{__html:`(${M.toString()})(${p})`}})}),H=(e,i)=>{if(O)return;let s;try{s=localStorage.getItem(e)||void 0}catch(u){}return s||i},W=e=>{let i=document.createElement(\"style\");return e&&i.setAttribute(\"nonce\",e),i.appendChild(document.createTextNode(\"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\")),document.head.appendChild(i),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(i)},1)}},E=e=>(e||(e=window.matchMedia(I)),e.matches?\"dark\":\"light\");export{J as ThemeProvider,z as useTheme};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'Open Sans', 'Open Sans Fallback'\",\"fontStyle\":\"normal\"},\"className\":\"__className_2d07b8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'Playfair Display', 'Playfair Display Fallback'\",\"fontStyle\":\"normal\"},\"className\":\"__className_17d9d3\"};"],"names":["cancelIdleCallback","requestIdleCallback","self","bind","window","cb","start","Date","now","setTimeout","didTimeout","timeRemaining","Math","max","id","clearTimeout","setAttributesFromProps","DOMAttributeNames","acceptCharset","className","htmlFor","httpEquiv","noModule","ignoreProps","isBooleanScriptAttribute","attr","includes","el","props","p","value","Object","entries","hasOwnProperty","undefined","toLowerCase","tagName","setAttribute","String","removeAttribute","handleClientScriptLoad","initScriptLoader","ScriptCache","Map","LoadCache","Set","loadScript","src","onLoad","onReady","dangerouslySetInnerHTML","children","strategy","onError","stylesheets","cacheKey","has","add","get","then","afterLoad","document","createElement","loadPromise","Promise","resolve","reject","addEventListener","e","call","catch","innerHTML","__html","textContent","Array","isArray","join","set","insertStylesheets","ReactDOM","preinit","forEach","stylesheet","as","head","link","type","rel","href","appendChild","body","scriptLoaderItems","querySelectorAll","script","getAttribute","Script","restProps","updateScripts","scripts","getIsSsr","appDir","nonce","useContext","HeadManagerContext","hasOnReadyEffectCalled","useRef","useEffect","current","hasLoadScriptEffectCalled","readyState","concat","styleSrc","JSON","stringify","preload","integrity","crossOrigin","defineProperty","M","i","s","u","m","a","l","h","d","documentElement","w","n","y","k","S","map","f","classList","remove","R","style","colorScheme","localStorage","getItem","matchMedia","matches","b","I","O","x","t","U","setTheme","themes","z","J","V","N","forcedTheme","disableTransitionOnChange","enableSystem","enableColorScheme","storageKey","defaultTheme","attribute","scriptProps","c","H","T","E","values","o","r","v","C","W","P","L","g","startsWith","D","setItem","A","addListener","removeListener","key","newValue","removeEventListener","Q","theme","resolvedTheme","systemTheme","Provider","_","slice","suppressHydrationWarning","toString","createTextNode","getComputedStyle","removeChild"],"sourceRoot":"","ignoreList":[0,1,3,6,7,8]} \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/787.68226320d86b7d57.js b/opencut-ui/_next/static/chunks/787.68226320d86b7d57.js new file mode 100644 index 0000000..ed0983f --- /dev/null +++ b/opencut-ui/_next/static/chunks/787.68226320d86b7d57.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[787],{22005:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"AmpStateContext",{enumerable:!0,get:function(){return r}});let r=n(78873)._(n(30233)).default.createContext({})},24333:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{default:function(){return y},defaultHead:function(){return c}});let r=n(78873),o=n(37978),l=n(485),a=o._(n(30233)),i=r._(n(99594)),d=n(22005),s=n(16149),u=n(67337);function c(e){void 0===e&&(e=!1);let t=[(0,l.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push((0,l.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}function p(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===a.default.Fragment?e.concat(a.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}n(32737);let f=["name","httpEquiv","charSet","itemProp"];function h(e,t){let{inAmpMode:n}=t;return e.reduce(p,[]).reverse().concat(c(n).reverse()).filter(function(){let e=new Set,t=new Set,n=new Set,r={};return o=>{let l=!0,a=!1;if(o.key&&"number"!=typeof o.key&&o.key.indexOf("$")>0){a=!0;let t=o.key.slice(o.key.indexOf("$")+1);e.has(t)?l=!1:e.add(t)}switch(o.type){case"title":case"base":t.has(o.type)?l=!1:t.add(o.type);break;case"meta":for(let e=0,t=f.length;e<t;e++){let t=f[e];if(o.props.hasOwnProperty(t))if("charSet"===t)n.has(t)?l=!1:n.add(t);else{let e=o.props[t],n=r[t]||new Set;("name"!==t||!a)&&n.has(e)?l=!1:(n.add(e),r[t]=n)}}}return l}}()).reverse().map((e,t)=>{let n=e.key||t;return a.default.cloneElement(e,{key:n})})}let y=function(e){let{children:t}=e,n=(0,a.useContext)(d.AmpStateContext),r=(0,a.useContext)(s.HeadManagerContext);return(0,l.jsx)(i.default,{reduceComponentsToState:h,headManager:r,inAmpMode:(0,u.isInAmpMode)(n),children:t})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},67337:(e,t)=>{function n(e){let{ampFirst:t=!1,hybrid:n=!1,hasQuery:r=!1}=void 0===e?{}:e;return t||n&&r}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isInAmpMode",{enumerable:!0,get:function(){return n}})},78787:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let r=n(78873),o=n(485),l=r._(n(30233)),a=r._(n(24333)),i={400:"Bad Request",404:"This page could not be found",405:"Method Not Allowed",500:"Internal Server Error"};function d(e){let{req:t,res:n,err:r}=e;return{statusCode:n&&n.statusCode?n.statusCode:r?r.statusCode:404,hostname:window.location.hostname}}let s={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{lineHeight:"48px"},h1:{display:"inline-block",margin:"0 20px 0 0",paddingRight:23,fontSize:24,fontWeight:500,verticalAlign:"top"},h2:{fontSize:14,fontWeight:400,lineHeight:"28px"},wrap:{display:"inline-block"}};class u extends l.default.Component{render(){let{statusCode:e,withDarkMode:t=!0}=this.props,n=this.props.title||i[e]||"An unexpected error has occurred";return(0,o.jsxs)("div",{style:s.error,children:[(0,o.jsx)(a.default,{children:(0,o.jsx)("title",{children:e?e+": "+n:"Application error: a client-side exception has occurred"})}),(0,o.jsxs)("div",{style:s.desc,children:[(0,o.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}"+(t?"@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}":"")}}),e?(0,o.jsx)("h1",{className:"next-error-h1",style:s.h1,children:e}):null,(0,o.jsx)("div",{style:s.wrap,children:(0,o.jsxs)("h2",{style:s.h2,children:[this.props.title||e?n:(0,o.jsxs)(o.Fragment,{children:["Application error: a client-side exception has occurred"," ",!!this.props.hostname&&(0,o.jsxs)(o.Fragment,{children:["while loading ",this.props.hostname]})," ","(see the browser console for more information)"]}),"."]})})]})]})}}u.displayName="ErrorPage",u.getInitialProps=d,u.origGetInitialProps=d,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},99594:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a}});let r=n(30233),o=r.useLayoutEffect,l=r.useEffect;function a(e){let{headManager:t,reduceComponentsToState:n}=e;function a(){if(t&&t.mountedInstances){let o=r.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(n(o,e))}}return o(()=>{var n;return null==t||null==(n=t.mountedInstances)||n.add(e.children),()=>{var n;null==t||null==(n=t.mountedInstances)||n.delete(e.children)}}),o(()=>(t&&(t._pendingUpdate=a),()=>{t&&(t._pendingUpdate=a)})),l(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}}}]); +//# sourceMappingURL=787.68226320d86b7d57.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/787.68226320d86b7d57.js.map b/opencut-ui/_next/static/chunks/787.68226320d86b7d57.js.map new file mode 100644 index 0000000..7ba1fa5 --- /dev/null +++ b/opencut-ui/_next/static/chunks/787.68226320d86b7d57.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/787.68226320d86b7d57.js","mappings":"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","sources":["webpack://_N_E/../../../src/shared/lib/amp-context.shared-runtime.ts","webpack://_N_E/../../../src/shared/lib/head.tsx","webpack://_N_E/../../../src/shared/lib/amp-mode.ts","webpack://_N_E/../../src/pages/_error.tsx","webpack://_N_E/../../../src/shared/lib/side-effect.tsx"],"sourcesContent":["import React from 'react'\n\nexport const AmpStateContext: React.Context<any> = React.createContext({})\n\nif (process.env.NODE_ENV !== 'production') {\n AmpStateContext.displayName = 'AmpStateContext'\n}\n","'use client'\n\nimport React, { useContext, type JSX } from 'react'\nimport Effect from './side-effect'\nimport { AmpStateContext } from './amp-context.shared-runtime'\nimport { HeadManagerContext } from './head-manager-context.shared-runtime'\nimport { isInAmpMode } from './amp-mode'\nimport { warnOnce } from './utils/warn-once'\n\ntype WithInAmpMode = {\n inAmpMode?: boolean\n}\n\nexport function defaultHead(inAmpMode = false): JSX.Element[] {\n const head = [<meta charSet=\"utf-8\" key=\"charset\" />]\n if (!inAmpMode) {\n head.push(\n <meta name=\"viewport\" content=\"width=device-width\" key=\"viewport\" />\n )\n }\n return head\n}\n\nfunction onlyReactElement(\n list: Array<React.ReactElement<any>>,\n child: React.ReactElement | number | string\n): Array<React.ReactElement<any>> {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list\n }\n // Adds support for React.Fragment\n if (child.type === React.Fragment) {\n return list.concat(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n React.Children.toArray(child.props.children).reduce(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n (\n fragmentList: Array<React.ReactElement<any>>,\n fragmentChild: React.ReactElement | number | string\n ): Array<React.ReactElement<any>> => {\n if (\n typeof fragmentChild === 'string' ||\n typeof fragmentChild === 'number'\n ) {\n return fragmentList\n }\n return fragmentList.concat(fragmentChild)\n },\n []\n )\n )\n }\n return list.concat(child)\n}\n\nconst METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp']\n\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/\nfunction unique() {\n const keys = new Set()\n const tags = new Set()\n const metaTypes = new Set()\n const metaCategories: { [metatype: string]: Set<string> } = {}\n\n return (h: React.ReactElement<any>) => {\n let isUnique = true\n let hasKey = false\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true\n const key = h.key.slice(h.key.indexOf('$') + 1)\n if (keys.has(key)) {\n isUnique = false\n } else {\n keys.add(key)\n }\n }\n\n // eslint-disable-next-line default-case\n switch (h.type) {\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false\n } else {\n tags.add(h.type)\n }\n break\n case 'meta':\n for (let i = 0, len = METATYPES.length; i < len; i++) {\n const metatype = METATYPES[i]\n if (!h.props.hasOwnProperty(metatype)) continue\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false\n } else {\n metaTypes.add(metatype)\n }\n } else {\n const category = h.props[metatype]\n const categories = metaCategories[metatype] || new Set()\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false\n } else {\n categories.add(category)\n metaCategories[metatype] = categories\n }\n }\n }\n break\n }\n\n return isUnique\n }\n}\n\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */\nfunction reduceComponents<T extends {} & WithInAmpMode>(\n headChildrenElements: Array<React.ReactElement<any>>,\n props: T\n) {\n const { inAmpMode } = props\n return headChildrenElements\n .reduce(onlyReactElement, [])\n .reverse()\n .concat(defaultHead(inAmpMode).reverse())\n .filter(unique())\n .reverse()\n .map((c: React.ReactElement<any>, i: number) => {\n const key = c.key || i\n if (process.env.NODE_ENV === 'development') {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src']\n ? `<script> tag with src=\"${c.props['src']}\"`\n : `inline <script>`\n warnOnce(\n `Do not add <script> tags using next/head (see ${srcMessage}). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component`\n )\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n warnOnce(\n `Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"${c.props['href']}\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component`\n )\n }\n }\n return React.cloneElement(c, { key })\n })\n}\n\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */\nfunction Head({ children }: { children: React.ReactNode }) {\n const ampState = useContext(AmpStateContext)\n const headManager = useContext(HeadManagerContext)\n return (\n <Effect\n reduceComponentsToState={reduceComponents}\n headManager={headManager}\n inAmpMode={isInAmpMode(ampState)}\n >\n {children}\n </Effect>\n )\n}\n\nexport default Head\n","export function isInAmpMode({\n ampFirst = false,\n hybrid = false,\n hasQuery = false,\n} = {}): boolean {\n return ampFirst || (hybrid && hasQuery)\n}\n","import React from 'react'\nimport Head from '../shared/lib/head'\nimport type { NextPageContext } from '../shared/lib/utils'\n\nconst statusCodes: { [code: number]: string } = {\n 400: 'Bad Request',\n 404: 'This page could not be found',\n 405: 'Method Not Allowed',\n 500: 'Internal Server Error',\n}\n\nexport type ErrorProps = {\n statusCode: number\n hostname?: string\n title?: string\n withDarkMode?: boolean\n}\n\nfunction _getInitialProps({\n req,\n res,\n err,\n}: NextPageContext): Promise<ErrorProps> | ErrorProps {\n const statusCode =\n res && res.statusCode ? res.statusCode : err ? err.statusCode! : 404\n\n let hostname\n\n if (typeof window !== 'undefined') {\n hostname = window.location.hostname\n } else if (req) {\n const { getRequestMeta } =\n require('../server/request-meta') as typeof import('../server/request-meta')\n\n const initUrl = getRequestMeta(req, 'initURL')\n if (initUrl) {\n const url = new URL(initUrl)\n hostname = url.hostname\n }\n }\n\n return { statusCode, hostname }\n}\n\nconst styles: Record<string, React.CSSProperties> = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily:\n 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n desc: {\n lineHeight: '48px',\n },\n h1: {\n display: 'inline-block',\n margin: '0 20px 0 0',\n paddingRight: 23,\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: 'top',\n },\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: '28px',\n },\n wrap: {\n display: 'inline-block',\n },\n}\n\n/**\n * `Error` component used for handling errors.\n */\nexport default class Error<P = {}> extends React.Component<P & ErrorProps> {\n static displayName = 'ErrorPage'\n\n static getInitialProps = _getInitialProps\n static origGetInitialProps = _getInitialProps\n\n render() {\n const { statusCode, withDarkMode = true } = this.props\n const title =\n this.props.title ||\n statusCodes[statusCode] ||\n 'An unexpected error has occurred'\n\n return (\n <div style={styles.error}>\n <Head>\n <title>\n {statusCode\n ? `${statusCode}: ${title}`\n : 'Application error: a client-side exception has occurred'}\n \n \n

\n \n\n {statusCode ? (\n

\n {statusCode}\n

\n ) : null}\n
\n

\n {this.props.title || statusCode ? (\n title\n ) : (\n <>\n Application error: a client-side exception has occurred{' '}\n {Boolean(this.props.hostname) && (\n <>while loading {this.props.hostname}\n )}{' '}\n (see the browser console for more information)\n \n )}\n .\n

\n
\n
\n \n )\n }\n}\n","import type React from 'react'\nimport { Children, useEffect, useLayoutEffect, type JSX } from 'react'\n\ntype State = JSX.Element[] | undefined\n\nexport type SideEffectProps = {\n reduceComponentsToState: (\n components: Array>,\n props: T\n ) => State\n handleStateChange?: (state: State) => void\n headManager: any\n inAmpMode?: boolean\n children: React.ReactNode\n}\n\nconst isServer = typeof window === 'undefined'\nconst useClientOnlyLayoutEffect = isServer ? () => {} : useLayoutEffect\nconst useClientOnlyEffect = isServer ? () => {} : useEffect\n\nexport default function SideEffect(props: SideEffectProps) {\n const { headManager, reduceComponentsToState } = props\n\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = Children.toArray(\n Array.from(headManager.mountedInstances as Set).filter(\n Boolean\n )\n ) as React.ReactElement[]\n headManager.updateHead(reduceComponentsToState(headElements, props))\n }\n }\n\n if (isServer) {\n headManager?.mountedInstances?.add(props.children)\n emitChange()\n }\n\n useClientOnlyLayoutEffect(() => {\n headManager?.mountedInstances?.add(props.children)\n return () => {\n headManager?.mountedInstances?.delete(props.children)\n }\n })\n\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect(() => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n return () => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n }\n })\n\n useClientOnlyEffect(() => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n return () => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n }\n })\n\n return null\n}\n"],"names":["AmpStateContext","React","createContext","defaultHead","inAmpMode","head","meta","charSet","push","name","content","onlyReactElement","list","child","type","Fragment","concat","Children","toArray","props","children","reduce","fragmentList","fragmentChild","METATYPES","reduceComponents","headChildrenElements","reverse","filter","unique","keys","Set","tags","metaTypes","metaCategories","isUnique","hasKey","h","key","indexOf","slice","has","add","i","len","length","metatype","hasOwnProperty","category","categories","map","c","cloneElement","Head","ampState","useContext","headManager","HeadManagerContext","Effect","reduceComponentsToState","isInAmpMode","ampFirst","hybrid","hasQuery","Error","statusCodes","_getInitialProps","req","res","err","statusCode","hostname","window","location","styles","error","fontFamily","height","textAlign","display","flexDirection","alignItems","justifyContent","desc","lineHeight","h1","margin","paddingRight","fontSize","fontWeight","verticalAlign","h2","wrap","Component","render","withDarkMode","title","div","style","dangerouslySetInnerHTML","__html","className","Boolean","displayName","getInitialProps","origGetInitialProps","SideEffect","useClientOnlyLayoutEffect","useLayoutEffect","useClientOnlyEffect","useEffect","isServer","emitChange","mountedInstances","headElements","Array","from","updateHead","delete","_pendingUpdate"],"sourceRoot":"","ignoreList":[]} \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/818.92d6c0498cff915c.js b/opencut-ui/_next/static/chunks/818.92d6c0498cff915c.js new file mode 100644 index 0000000..39be273 --- /dev/null +++ b/opencut-ui/_next/static/chunks/818.92d6c0498cff915c.js @@ -0,0 +1,2 @@ +(()=>{var e={92031:e=>{function r(e){return Promise.resolve().then(()=>{var r=Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r})}r.keys=()=>[],r.resolve=r,r.id=92031,e.exports=r}},r={};function t(a){var s=r[a];if(void 0!==s)return s.exports;var E=r[a]={exports:{}},o=!0;try{e[a](E,E.exports,t),o=!1}finally{o&&delete r[a]}return E.exports}t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{"use strict";var e;let r,a="https://unpkg.com/@ffmpeg/core@0.12.9/dist/umd/ffmpeg-core.js";!function(e){e.LOAD="LOAD",e.EXEC="EXEC",e.FFPROBE="FFPROBE",e.WRITE_FILE="WRITE_FILE",e.READ_FILE="READ_FILE",e.DELETE_FILE="DELETE_FILE",e.RENAME="RENAME",e.CREATE_DIR="CREATE_DIR",e.LIST_DIR="LIST_DIR",e.DELETE_DIR="DELETE_DIR",e.ERROR="ERROR",e.DOWNLOAD="DOWNLOAD",e.PROGRESS="PROGRESS",e.LOG="LOG",e.MOUNT="MOUNT",e.UNMOUNT="UNMOUNT"}(e||(e={}));let s=Error("unknown message type"),E=Error("ffmpeg is not loaded, call `await ffmpeg.load()` first");Error("called FFmpeg.terminate()");let o=Error("failed to import ffmpeg-core.js"),l=async({coreURL:s,wasmURL:E,workerURL:l})=>{let i=!r;try{s||(s=a),importScripts(s)}catch{if(s&&s!==a||(s=a.replace("/umd/","/esm/")),self.createFFmpegCore=(await t(92031)(s)).default,!self.createFFmpegCore)throw o}let c=s,n=E||s.replace(/.js$/g,".wasm"),R=l||s.replace(/.js$/g,".worker.js");return(r=await self.createFFmpegCore({mainScriptUrlOrBlob:`${c}#${btoa(JSON.stringify({wasmURL:n,workerURL:R}))}`})).setLogger(r=>self.postMessage({type:e.LOG,data:r})),r.setProgress(r=>self.postMessage({type:e.PROGRESS,data:r})),i};self.onmessage=async({data:{id:t,type:a,data:o}})=>{let i,c=[];try{if(a!==e.LOAD&&!r)throw E;switch(a){case e.LOAD:i=await l(o);break;case e.EXEC:i=(({args:e,timeout:t=-1})=>{r.setTimeout(t),r.exec(...e);let a=r.ret;return r.reset(),a})(o);break;case e.FFPROBE:i=(({args:e,timeout:t=-1})=>{r.setTimeout(t),r.ffprobe(...e);let a=r.ret;return r.reset(),a})(o);break;case e.WRITE_FILE:i=(({path:e,data:t})=>(r.FS.writeFile(e,t),!0))(o);break;case e.READ_FILE:i=(({path:e,encoding:t})=>r.FS.readFile(e,{encoding:t}))(o);break;case e.DELETE_FILE:i=(({path:e})=>(r.FS.unlink(e),!0))(o);break;case e.RENAME:i=(({oldPath:e,newPath:t})=>(r.FS.rename(e,t),!0))(o);break;case e.CREATE_DIR:i=(({path:e})=>(r.FS.mkdir(e),!0))(o);break;case e.LIST_DIR:i=(({path:e})=>{let t=r.FS.readdir(e),a=[];for(let s of t){let t=r.FS.stat(`${e}/${s}`),E=r.FS.isDir(t.mode);a.push({name:s,isDir:E})}return a})(o);break;case e.DELETE_DIR:i=(({path:e})=>(r.FS.rmdir(e),!0))(o);break;case e.MOUNT:i=(({fsType:e,options:t,mountPoint:a})=>{let s=r.FS.filesystems[e];return!!s&&(r.FS.mount(s,t,a),!0)})(o);break;case e.UNMOUNT:i=(({mountPoint:e})=>(r.FS.unmount(e),!0))(o);break;default:throw s}}catch(r){self.postMessage({id:t,type:e.ERROR,data:r.toString()});return}i instanceof Uint8Array&&c.push(i.buffer),self.postMessage({id:t,type:a,data:i},c)}})(),_N_E={}})(); +//# sourceMappingURL=818.92d6c0498cff915c.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/818.92d6c0498cff915c.js.map b/opencut-ui/_next/static/chunks/818.92d6c0498cff915c.js.map new file mode 100644 index 0000000..5530e4e --- /dev/null +++ b/opencut-ui/_next/static/chunks/818.92d6c0498cff915c.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/818.92d6c0498cff915c.js","mappings":"uBAAA,cAGA,mCACA,yCAEA,OADA,0BACA,CACA,CAAE,CACF,CACA,cACA,YACA,WACA,cCXA,KAGA,cAEA,WACA,cACA,iBAGA,YAGA,UACA,EAGA,KACA,IACA,oBACA,IACA,EAAG,OACH,eAIA,iBC3BA,4ECIO,MECP,EFFO,oCAAmD,aAAa,kBAEvE,YACA,cACA,cACA,oBACA,0BACA,wBACA,4BACA,kBACA,0BACA,sBACA,0BACA,gBACA,sBACA,sBACA,YACA,gBACA,mBACA,CAAC,UAAsC,ECtBhC,oCACA,kEACA,mCACA,+CCGP,SAAsB,gCAA8D,IACpF,SACA,IACA,GACA,GAAuB,EAAQ,CAE/B,gBACA,CACA,MAMA,GALA,OAAsC,GACtC,GAAuB,EAAQ,0BAE/B,6BAAuC,SACZ,EAAQ,CAAC,SACpC,uBACA,MAAkB,CAElB,CACA,QACA,UAJsC,IAItC,kBACA,KAEA,gCAWA,MAVA,gCAGA,uBAAgC,EAAQ,GAAG,6BAAsB,cAAoB,GAAG,GACnF,EACL,+BAAkD,KAAM,EAAa,cACrE,mCACA,KAAc,EAAa,SAC3B,EAD2B,GAC3B,CACA,CAAK,GACL,CACA,CA6DA,uBAA0B,SAAQ,gBAAuB,CAAG,IAC5D,IACA,EADA,KAEA,IACA,OAAqB,EAAa,SAClC,EADkC,IAChB,EAClB,UACA,IAFkC,CAEjB,CAFmB,CAEN,KAC9B,MAD8B,EAC9B,KACA,KACA,MAAiB,EAAa,KAC9B,EAvEA,IAsE8B,IAtEd,eAAoB,IACpC,gBACA,aACA,YAEA,OADA,UACA,EACA,EAiEA,GACA,KACA,MAAiB,EAAa,QAC9B,EAnEA,QAAmB,eAAoB,IACvC,gBACA,gBACA,YAEA,OADA,UACA,EACA,EA6DA,GACA,KACA,MAAiB,EAAa,aAC9B,CA/DA,OAAqB,SAAY,IACjC,oBACA,GACA,EA4DA,GACA,KACA,MAAiB,EAAa,UAC9B,CAD8B,CA7D9B,QAAoB,aAAgB,6BAAgC,GAAU,EA8D9E,GACA,KACA,MAAiB,EAAa,YAC9B,EA/DA,QAAsB,EAAM,IAC5B,eACA,GACA,EA4DA,GACA,KACA,MAAiB,EAAa,OAC9B,EA9DA,WAAkB,YAAkB,IACpC,iBACA,GACA,EA2DA,GACA,KACA,MAAiB,EAAa,WAC9B,GA5DA,OAAqB,EAAM,IAC3B,cACA,GACA,EAyDA,GACA,KACA,MAAiB,EAAa,SAC9B,GA3DA,OAAmB,EAAM,IACzB,sBACA,KACA,gBACA,mBAAuC,EAAK,GAAG,EAAK,GACpD,qBACA,aAAqB,UAAa,CAClC,CACA,SACA,EAkDA,GACA,KACA,MAAiB,EAAa,aAlD9B,QAAqB,EAAM,IAC3B,cACA,GACA,EAgDA,GACA,KACA,MAAiB,EAAa,MAC9B,EAlDA,GAiD8B,OAjDb,yBAA6B,IAE9C,uBADA,EACA,OACA,MAEA,kBACA,IACA,EA2CA,GACA,KACA,MAAiB,EAAa,QAC9B,EA7CA,CA4C8B,CA5C9B,YAAmB,EAAY,IAC/B,gBACA,GACA,EA0CA,GACA,KACA,SACA,MAAsB,CACtB,CACA,CACA,SACA,cAJgD,EAIhD,EACA,KACA,KAAkB,EAAa,MAC/B,KAD+B,EAC/B,UACA,CAAS,EACT,MACA,CACA,yBACA,iBAEA,qBAAuB,gBAAgB,GACvC","sources":["webpack://_N_E/../../node_modules/.bun/@ffmpeg+ffmpeg@0.12.15/node_modules/@ffmpeg/ffmpeg/dist/esm/ lazy namespace object","webpack://_N_E/webpack/bootstrap","webpack://_N_E/webpack/runtime/hasOwnProperty shorthand","webpack://_N_E/../../node_modules/.bun/@ffmpeg+ffmpeg@0.12.15/node_modules/@ffmpeg/ffmpeg/dist/esm/const.js","webpack://_N_E/../../node_modules/.bun/@ffmpeg+ffmpeg@0.12.15/node_modules/@ffmpeg/ffmpeg/dist/esm/errors.js","webpack://_N_E/../../node_modules/.bun/@ffmpeg+ffmpeg@0.12.15/node_modules/@ffmpeg/ffmpeg/dist/esm/worker.js"],"sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(() => {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = () => ([]);\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 92031;\nmodule.exports = webpackEmptyAsyncContext;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","export const MIME_TYPE_JAVASCRIPT = \"text/javascript\";\nexport const MIME_TYPE_WASM = \"application/wasm\";\nexport const CORE_VERSION = \"0.12.9\";\nexport const CORE_URL = `https://unpkg.com/@ffmpeg/core@${CORE_VERSION}/dist/umd/ffmpeg-core.js`;\nexport var FFMessageType;\n(function (FFMessageType) {\n FFMessageType[\"LOAD\"] = \"LOAD\";\n FFMessageType[\"EXEC\"] = \"EXEC\";\n FFMessageType[\"FFPROBE\"] = \"FFPROBE\";\n FFMessageType[\"WRITE_FILE\"] = \"WRITE_FILE\";\n FFMessageType[\"READ_FILE\"] = \"READ_FILE\";\n FFMessageType[\"DELETE_FILE\"] = \"DELETE_FILE\";\n FFMessageType[\"RENAME\"] = \"RENAME\";\n FFMessageType[\"CREATE_DIR\"] = \"CREATE_DIR\";\n FFMessageType[\"LIST_DIR\"] = \"LIST_DIR\";\n FFMessageType[\"DELETE_DIR\"] = \"DELETE_DIR\";\n FFMessageType[\"ERROR\"] = \"ERROR\";\n FFMessageType[\"DOWNLOAD\"] = \"DOWNLOAD\";\n FFMessageType[\"PROGRESS\"] = \"PROGRESS\";\n FFMessageType[\"LOG\"] = \"LOG\";\n FFMessageType[\"MOUNT\"] = \"MOUNT\";\n FFMessageType[\"UNMOUNT\"] = \"UNMOUNT\";\n})(FFMessageType || (FFMessageType = {}));\n","export const ERROR_UNKNOWN_MESSAGE_TYPE = new Error(\"unknown message type\");\nexport const ERROR_NOT_LOADED = new Error(\"ffmpeg is not loaded, call `await ffmpeg.load()` first\");\nexport const ERROR_TERMINATED = new Error(\"called FFmpeg.terminate()\");\nexport const ERROR_IMPORT_FAILURE = new Error(\"failed to import ffmpeg-core.js\");\n","/// \n/// \n/// \nimport { CORE_URL, FFMessageType } from \"./const.js\";\nimport { ERROR_UNKNOWN_MESSAGE_TYPE, ERROR_NOT_LOADED, ERROR_IMPORT_FAILURE, } from \"./errors.js\";\nlet ffmpeg;\nconst load = async ({ coreURL: _coreURL, wasmURL: _wasmURL, workerURL: _workerURL, }) => {\n const first = !ffmpeg;\n try {\n if (!_coreURL)\n _coreURL = CORE_URL;\n // when web worker type is `classic`.\n importScripts(_coreURL);\n }\n catch {\n if (!_coreURL || _coreURL === CORE_URL)\n _coreURL = CORE_URL.replace('/umd/', '/esm/');\n // when web worker type is `module`.\n self.createFFmpegCore = (await import(\n /* @vite-ignore */ _coreURL)).default;\n if (!self.createFFmpegCore) {\n throw ERROR_IMPORT_FAILURE;\n }\n }\n const coreURL = _coreURL;\n const wasmURL = _wasmURL ? _wasmURL : _coreURL.replace(/.js$/g, \".wasm\");\n const workerURL = _workerURL\n ? _workerURL\n : _coreURL.replace(/.js$/g, \".worker.js\");\n ffmpeg = await self.createFFmpegCore({\n // Fix `Overload resolution failed.` when using multi-threaded ffmpeg-core.\n // Encoded wasmURL and workerURL in the URL as a hack to fix locateFile issue.\n mainScriptUrlOrBlob: `${coreURL}#${btoa(JSON.stringify({ wasmURL, workerURL }))}`,\n });\n ffmpeg.setLogger((data) => self.postMessage({ type: FFMessageType.LOG, data }));\n ffmpeg.setProgress((data) => self.postMessage({\n type: FFMessageType.PROGRESS,\n data,\n }));\n return first;\n};\nconst exec = ({ args, timeout = -1 }) => {\n ffmpeg.setTimeout(timeout);\n ffmpeg.exec(...args);\n const ret = ffmpeg.ret;\n ffmpeg.reset();\n return ret;\n};\nconst ffprobe = ({ args, timeout = -1 }) => {\n ffmpeg.setTimeout(timeout);\n ffmpeg.ffprobe(...args);\n const ret = ffmpeg.ret;\n ffmpeg.reset();\n return ret;\n};\nconst writeFile = ({ path, data }) => {\n ffmpeg.FS.writeFile(path, data);\n return true;\n};\nconst readFile = ({ path, encoding }) => ffmpeg.FS.readFile(path, { encoding });\n// TODO: check if deletion works.\nconst deleteFile = ({ path }) => {\n ffmpeg.FS.unlink(path);\n return true;\n};\nconst rename = ({ oldPath, newPath }) => {\n ffmpeg.FS.rename(oldPath, newPath);\n return true;\n};\n// TODO: check if creation works.\nconst createDir = ({ path }) => {\n ffmpeg.FS.mkdir(path);\n return true;\n};\nconst listDir = ({ path }) => {\n const names = ffmpeg.FS.readdir(path);\n const nodes = [];\n for (const name of names) {\n const stat = ffmpeg.FS.stat(`${path}/${name}`);\n const isDir = ffmpeg.FS.isDir(stat.mode);\n nodes.push({ name, isDir });\n }\n return nodes;\n};\n// TODO: check if deletion works.\nconst deleteDir = ({ path }) => {\n ffmpeg.FS.rmdir(path);\n return true;\n};\nconst mount = ({ fsType, options, mountPoint }) => {\n const str = fsType;\n const fs = ffmpeg.FS.filesystems[str];\n if (!fs)\n return false;\n ffmpeg.FS.mount(fs, options, mountPoint);\n return true;\n};\nconst unmount = ({ mountPoint }) => {\n ffmpeg.FS.unmount(mountPoint);\n return true;\n};\nself.onmessage = async ({ data: { id, type, data: _data }, }) => {\n const trans = [];\n let data;\n try {\n if (type !== FFMessageType.LOAD && !ffmpeg)\n throw ERROR_NOT_LOADED; // eslint-disable-line\n switch (type) {\n case FFMessageType.LOAD:\n data = await load(_data);\n break;\n case FFMessageType.EXEC:\n data = exec(_data);\n break;\n case FFMessageType.FFPROBE:\n data = ffprobe(_data);\n break;\n case FFMessageType.WRITE_FILE:\n data = writeFile(_data);\n break;\n case FFMessageType.READ_FILE:\n data = readFile(_data);\n break;\n case FFMessageType.DELETE_FILE:\n data = deleteFile(_data);\n break;\n case FFMessageType.RENAME:\n data = rename(_data);\n break;\n case FFMessageType.CREATE_DIR:\n data = createDir(_data);\n break;\n case FFMessageType.LIST_DIR:\n data = listDir(_data);\n break;\n case FFMessageType.DELETE_DIR:\n data = deleteDir(_data);\n break;\n case FFMessageType.MOUNT:\n data = mount(_data);\n break;\n case FFMessageType.UNMOUNT:\n data = unmount(_data);\n break;\n default:\n throw ERROR_UNKNOWN_MESSAGE_TYPE;\n }\n }\n catch (e) {\n self.postMessage({\n id,\n type: FFMessageType.ERROR,\n data: e.toString(),\n });\n return;\n }\n if (data instanceof Uint8Array) {\n trans.push(data.buffer);\n }\n self.postMessage({ id, type, data }, trans);\n};\n"],"names":[],"sourceRoot":"","ignoreList":[0,1,2,3,4,5]} \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/83-4398df1e2258347e.js b/opencut-ui/_next/static/chunks/83-4398df1e2258347e.js new file mode 100644 index 0000000..b9f07bd --- /dev/null +++ b/opencut-ui/_next/static/chunks/83-4398df1e2258347e.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[83],{8300:(e,t,a)=>{a.d(t,{A:()=>p});var i=a(59467),r=a(14700),n=a(75141),o=a(80196),d=a(19439),s=a(82337),l=a(93146),c=a(87100);let m=e=>{let t=[...e].sort((e,t)=>e.startTime-t.startTime);for(let e=0;ei.startTime)return!0}return!1},u=e=>{let t=[...e].sort((e,t)=>e.startTime-t.startTime),a=[];for(let e=0;e0){let e=a[a.length-1],t=e.startTime+(e.duration-e.trimStart-e.trimEnd);i.startTime{let a=e.replace(/ \(left\)$/,"").replace(/ \(right\)$/,"").replace(/ \(audio\)$/,"").replace(/ \(split \d+\)$/,"");return"".concat(a," (").concat(t,")")},p=(0,i.v)((e,t)=>{let i=t=>{let a=(0,r.zb)(t),i=(0,r.Oy)(a);e({_tracks:a,tracks:i})},p=async()=>{let e=s.I.getState().activeProject;if(e)try{await d.P.saveTimeline(e.id,t()._tracks)}catch(e){}},f=e=>{i(e),setTimeout(p,100)},g=(0,r.zb)([]),y=(0,r.Oy)(g);return{_tracks:g,tracks:y,history:[],redoStack:[],selectedElements:[],rippleEditingEnabled:!1,snappingEnabled:!0,getSortedTracks:()=>{let{_tracks:e}=t(),a=(0,r.zb)(e);return(0,r.Oy)(a)},pushHistory:()=>{let{_tracks:a,history:i}=t();e({history:[...i,JSON.parse(JSON.stringify(a))],redoStack:[]})},undo:()=>{let{history:a,redoStack:i,_tracks:r}=t();0!==a.length&&(f(a[a.length-1]),e({history:a.slice(0,-1),redoStack:[...i,JSON.parse(JSON.stringify(r))]}))},selectElement:function(t,a){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];e(e=>{let r=e.selectedElements.some(e=>e.trackId===t&&e.elementId===a);return i?r?{selectedElements:e.selectedElements.filter(e=>e.trackId!==t||e.elementId!==a)}:{selectedElements:[...e.selectedElements,{trackId:t,elementId:a}]}:{selectedElements:[{trackId:t,elementId:a}]}})},deselectElement:(t,a)=>{e(e=>({selectedElements:e.selectedElements.filter(e=>e.trackId!==t||e.elementId!==a)}))},clearSelectedElements:()=>{e({selectedElements:[]})},setSelectedElements:t=>e({selectedElements:t}),addTrack:e=>{t().pushHistory();let a={id:(0,l.lk)(),name:"media"===e?"Media Track":"text"===e?"Text Track":"audio"===e?"Audio Track":"Track",type:e,elements:[],muted:!1};return f([...t()._tracks,a]),a.id},insertTrackAt:(e,a)=>{t().pushHistory();let i={id:(0,l.lk)(),name:"media"===e?"Media Track":"text"===e?"Text Track":"audio"===e?"Audio Track":"Track",type:e,elements:[],muted:!1},r=[...t()._tracks];return r.splice(a,0,i),f(r),i.id},removeTrack:e=>{let{rippleEditingEnabled:a}=t();a?t().removeTrackWithRipple(e):(t().pushHistory(),f(t()._tracks.filter(t=>t.id!==e)))},removeTrackWithRipple:e=>{let{_tracks:a}=t(),i=a.find(t=>t.id===e);if(!i)return;if(t().pushHistory(),0===i.elements.length)return void f(a.filter(t=>t.id!==e));let r=i.elements.map(e=>({startTime:e.startTime,endTime:e.startTime+(e.duration-e.trimStart-e.trimEnd)}));r.sort((e,t)=>e.startTime-t.startTime);let n=[];for(let e of r)if(0===n.length)n.push({startTime:e.startTime,endTime:e.endTime,duration:e.endTime-e.startTime});else{let t=n[n.length-1];e.startTime<=t.endTime?(t.endTime=Math.max(t.endTime,e.endTime),t.duration=t.endTime-t.startTime):n.push({startTime:e.startTime,endTime:e.endTime,duration:e.endTime-e.startTime})}f(a.filter(t=>t.id!==e).map(e=>{let t=e.elements.map(e=>{let t=e.startTime;for(let e=n.length-1;e>=0;e--){let a=n[e];t>=a.endTime&&(t-=a.duration)}return{...e,startTime:Math.max(0,t)}});if(m(t)){let a=u(t);return{...e,elements:a}}return{...e,elements:t}}))},addElementToTrack:(e,a)=>{t().pushHistory();let i=t()._tracks.find(t=>t.id===e);if(!i||!(0,r.aI)(a,i).isValid||"media"===a.type&&!a.mediaId||"text"===a.type&&!a.content)return;let d=t()._tracks.reduce((e,t)=>e+t.elements.length,0),c={...a,id:(0,l.lk)(),startTime:a.startTime||0,trimStart:0,trimEnd:0};if(0===d&&"media"===c.type){let e=o.B.getState().mediaItems.find(e=>e.id===c.mediaId);if(e&&("image"===e.type||"video"===e.type)&&n.U.getState().setCanvasSizeFromAspectRatio((0,o.C)(e)),e&&"video"===e.type&&e.fps){let t=s.I.getState();t.activeProject&&t.updateProjectFps(e.fps)}}f(t()._tracks.map(t=>t.id===e?{...t,elements:[...t.elements,c]}:t)),t().selectElement(e,c.id)},removeElementFromTrack:function(e,a){let i=!(arguments.length>2)||void 0===arguments[2]||arguments[2],{rippleEditingEnabled:r}=t();r?t().removeElementFromTrackWithRipple(e,a,i):(i&&t().pushHistory(),f(t()._tracks.map(t=>t.id===e?{...t,elements:t.elements.filter(e=>e.id!==a)}:t).filter(e=>e.elements.length>0)))},removeElementFromTrackWithRipple:function(e,a){let i=!(arguments.length>2)||void 0===arguments[2]||arguments[2],{_tracks:r,rippleEditingEnabled:n}=t();if(!n)return void t().removeElementFromTrack(e,a,i);let o=r.find(t=>t.id===e),d=null==o?void 0:o.elements.find(e=>e.id===a);if(!d||!o)return;i&&t().pushHistory();let s=d.startTime,l=d.duration-d.trimStart-d.trimEnd,c=s+l;f(r.map(t=>{let i=t.id===e,r=t.elements.filter(i=>i.id!==a||t.id!==e).map(e=>i&&e.startTime>=c?{...e,startTime:Math.max(0,e.startTime-l)}:e);if(m(r)){let e=u(r);return{...t,elements:e}}return{...t,elements:r}}).filter(e=>e.elements.length>0||e.isMain))},moveElementToTrack:(e,a,i)=>{t().pushHistory();let n=t()._tracks.find(t=>t.id===e),o=t()._tracks.find(e=>e.id===a),d=null==n?void 0:n.elements.find(e=>e.id===i);d&&o&&(0,r.aI)(d,o).isValid&&f(t()._tracks.map(t=>t.id===e?{...t,elements:t.elements.filter(e=>e.id!==i)}:t.id===a?{...t,elements:[...t.elements,d]}:t).filter(e=>e.elements.length>0))},updateElementTrim:function(e,a,i,r){let n=!(arguments.length>4)||void 0===arguments[4]||arguments[4];n&&t().pushHistory(),f(t()._tracks.map(t=>t.id===e?{...t,elements:t.elements.map(e=>e.id===a?{...e,trimStart:i,trimEnd:r}:e)}:t))},updateElementDuration:function(e,a,i){let r=!(arguments.length>3)||void 0===arguments[3]||arguments[3];r&&t().pushHistory(),f(t()._tracks.map(t=>t.id===e?{...t,elements:t.elements.map(e=>e.id===a?{...e,duration:i}:e)}:t))},updateElementStartTime:function(e,a,i){let r=!(arguments.length>3)||void 0===arguments[3]||arguments[3];r&&t().pushHistory();let n=Math.max(0,i);f(t()._tracks.map(t=>t.id===e?{...t,elements:t.elements.map(e=>e.id===a?{...e,startTime:n}:e)}:t))},updateElementStartTimeWithRipple:(e,a,i)=>{let{_tracks:r,rippleEditingEnabled:n}=t();if(!n)return void t().updateElementStartTime(e,a,i);let o=r.find(t=>t.id===e),d=null==o?void 0:o.elements.find(e=>e.id===a);if(!d||!o)return;t().pushHistory();let s=d.startTime,l=d.startTime+(d.duration-d.trimStart-d.trimEnd),c=i+(d.duration-d.trimStart-d.trimEnd),h=i-s;f(r.map(t=>{let r=t.id===e,n=t.elements.map(n=>{if(n.id===a&&t.id===e)return{...n,startTime:Math.max(0,i)};if(!r)return n;let o=n.startTime;if(n.startTime,n.duration,n.trimStart,n.trimEnd,h>0){if(o>=l)return{...n,startTime:o+h}}else if(h<0&&o>=c&&o>=s)return{...n,startTime:Math.max(0,o+h)};return n});if(m(n)){let e=u(n);return{...t,elements:e}}return{...t,elements:n}}))},toggleTrackMute:e=>{t().pushHistory(),f(t()._tracks.map(t=>t.id===e?{...t,muted:!t.muted}:t))},toggleElementHidden:(e,a)=>{t().pushHistory(),f(t()._tracks.map(t=>t.id===e?{...t,elements:t.elements.map(e=>e.id===a?{...e,hidden:!e.hidden}:e)}:t))},updateTextElement:(e,a,i)=>{t().pushHistory(),f(t()._tracks.map(t=>t.id===e?{...t,elements:t.elements.map(e=>e.id===a&&"text"===e.type?{...e,...i}:e)}:t))},splitElement:(e,a,i)=>{let{_tracks:r}=t(),n=r.find(t=>t.id===e),o=null==n?void 0:n.elements.find(e=>e.id===a);if(!o)return null;let d=o.startTime,s=o.startTime+(o.duration-o.trimStart-o.trimEnd);if(i<=d||i>=s)return null;t().pushHistory();let c=i-o.startTime,m=o.duration-o.trimStart-o.trimEnd-c,u=(0,l.lk)();return f(t()._tracks.map(t=>t.id===e?{...t,elements:t.elements.flatMap(e=>e.id===a?[{...e,trimEnd:e.trimEnd+m,name:h(e.name,"left")},{...e,id:u,startTime:i,trimStart:e.trimStart+c,name:h(e.name,"right")}]:[e])}:t)),u},splitAndKeepLeft:(e,a,i)=>{let{_tracks:r}=t(),n=r.find(t=>t.id===e),o=null==n?void 0:n.elements.find(e=>e.id===a);if(!o)return;let d=o.startTime,s=o.startTime+(o.duration-o.trimStart-o.trimEnd);if(i<=d||i>=s)return;t().pushHistory();let l=i-o.startTime,c=o.duration-o.trimStart-o.trimEnd-l;f(t()._tracks.map(t=>t.id===e?{...t,elements:t.elements.map(e=>e.id===a?{...e,trimEnd:e.trimEnd+c,name:h(e.name,"left")}:e)}:t))},splitAndKeepRight:(e,a,i)=>{let{_tracks:r}=t(),n=r.find(t=>t.id===e),o=null==n?void 0:n.elements.find(e=>e.id===a);if(!o)return;let d=o.startTime,s=o.startTime+(o.duration-o.trimStart-o.trimEnd);if(i<=d||i>=s)return;t().pushHistory();let l=i-o.startTime;f(t()._tracks.map(t=>t.id===e?{...t,elements:t.elements.map(e=>e.id===a?{...e,startTime:i,trimStart:e.trimStart+l,name:h(e.name,"right")}:e)}:t))},separateAudio:(e,a)=>{let{_tracks:i}=t(),r=i.find(t=>t.id===e),n=null==r?void 0:r.elements.find(e=>e.id===a);if(!n||(null==r?void 0:r.type)!=="media")return null;t().pushHistory();let o=i.find(e=>"audio"===e.type),d=(0,l.lk)();if(o)f(t()._tracks.map(e=>e.id===o.id?{...e,elements:[...e.elements,{...n,id:d,name:h(n.name,"audio")}]}:e));else{let e={id:(0,l.lk)(),name:"Audio Track",type:"audio",elements:[{...n,id:d,name:h(n.name,"audio")}],muted:!1};f([...t()._tracks,e])}return d},replaceElementMedia:async(e,i,r)=>{let{_tracks:n}=t(),d=n.find(t=>t.id===e),l=null==d?void 0:d.elements.find(e=>e.id===i);if(!l)return{success:!1,error:"Timeline element not found"};if("media"!==l.type)return{success:!1,error:"Replace is only available for media clips"};try{let d=o.B.getState(),l=s.I.getState();if(!l.activeProject)return{success:!1,error:"No active project found"};let{getFileType:c,getImageDimensions:m,generateVideoThumbnail:u,getMediaDuration:h}=await Promise.resolve().then(a.bind(a,80196)),p=c(r);if(!p)return{success:!1,error:"Unsupported file type. Please select a video, audio, or image file."};let g={name:r.name,type:p,file:r,url:URL.createObjectURL(r)};try{if("image"===p){let{width:e,height:t}=await m(r);g.width=e,g.height=t}else if("video"===p){let[e,{thumbnailUrl:t,width:a,height:i}]=await Promise.all([h(r),u(r)]);g.duration=e,g.thumbnailUrl=t,g.width=a,g.height=i}else"audio"===p&&(g.duration=await h(r))}catch(e){return{success:!1,error:"Failed to process ".concat(p," file: ").concat(e instanceof Error?e.message:"Unknown error")}}try{await d.addMediaItem(l.activeProject.id,g)}catch(e){return{success:!1,error:"Failed to add media to project: ".concat(e instanceof Error?e.message:"Unknown error")}}let y=d.mediaItems.find(e=>e.file===r);if(!y)return{success:!1,error:"Failed to create media item in project. Please try again."};return t().pushHistory(),f(n.map(t=>t.id===e?{...t,elements:t.elements.map(e=>e.id===i?{...e,mediaId:y.id,name:y.name,duration:y.duration||e.duration}:e)}:t)),{success:!0}}catch(e){return{success:!1,error:"Unexpected error: ".concat(e instanceof Error?e.message:"Unknown error")}}},getTotalDuration:()=>{let{_tracks:e}=t();return 0===e.length?0:Math.max(...e.map(e=>e.elements.reduce((e,t)=>Math.max(e,t.startTime+t.duration-t.trimStart-t.trimEnd),0)),0)},getProjectThumbnail:async e=>{try{let t=await d.P.loadTimeline(e),i=await d.P.loadAllMediaItems(e);if(!t||!i.length)return null;let r=t.flatMap(e=>e.elements).filter(e=>"media"===e.type).sort((e,t)=>e.startTime-t.startTime)[0];if(!r)return null;let n=i.find(e=>e.id===r.mediaId);if(!n)return null;if("video"===n.type&&n.file){let{generateVideoThumbnail:e}=await Promise.resolve().then(a.bind(a,80196)),{thumbnailUrl:t}=await e(n.file);return t}if("image"===n.type&&n.url)return n.url;return null}catch(e){return null}},redo:()=>{let{redoStack:a}=t();0!==a.length&&(f(a[a.length-1]),e({redoStack:a.slice(0,-1)}))},dragState:{isDragging:!1,elementId:null,trackId:null,startMouseX:0,startElementTime:0,clickOffsetTime:0,currentTime:0},setDragState:t=>e(e=>({dragState:{...e.dragState,...t}})),startDrag:(t,a,i,r,n)=>{e({dragState:{isDragging:!0,elementId:t,trackId:a,startMouseX:i,startElementTime:r,clickOffsetTime:n,currentTime:r}})},updateDragTime:t=>{e(e=>({dragState:{...e.dragState,currentTime:t}}))},endDrag:()=>{e({dragState:{isDragging:!1,elementId:null,trackId:null,startMouseX:0,startElementTime:0,clickOffsetTime:0,currentTime:0}})},loadProjectTimeline:async t=>{try{let a=await d.P.loadTimeline(t);if(a)i(a);else{let e=(0,r.zb)([]);i(e)}e({history:[],redoStack:[]})}catch(t){i((0,r.zb)([])),e({history:[],redoStack:[]})}},saveProjectTimeline:async e=>{try{await d.P.saveTimeline(e,t()._tracks)}catch(e){}},clearTimeline:()=>{i((0,r.zb)([])),e({history:[],redoStack:[],selectedElements:[]})},toggleSnapping:()=>{e(e=>({snappingEnabled:!e.snappingEnabled}))},toggleRippleEditing:()=>{e(e=>({rippleEditingEnabled:!e.rippleEditingEnabled}))},checkElementOverlap:(e,a,i,r)=>{let n=t()._tracks.find(t=>t.id===e);return!!n&&n.elements.some(e=>{let t=e.startTime+e.duration-e.trimStart-e.trimEnd;return e.id!==r&&(a>=e.startTime&&ae.startTime&&a+i<=t||at)})},findOrCreateTrack:e=>{if("text"===e)return t().insertTrackAt(e,0);let a=t()._tracks.find(t=>t.type===e);return a?a.id:t().addTrack(e)},addMediaAtTime:function(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i="audio"===e.type?"audio":"media",r=e.duration||c.of.DEFAULT_IMAGE_DURATION,n=t()._tracks.filter(e=>e.type===i),o=null;for(let e of n)if(!t().checkElementOverlap(e.id,a,r)){o=e.id;break}return o||(o=t().addTrack(i)),t().addElementToTrack(o,{type:"media",mediaId:e.id,name:e.name,duration:r,startTime:a,trimStart:0,trimEnd:0}),!0},addTextAtTime:function(e){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=t().insertTrackAt("text",0);return t().addElementToTrack(i,{type:"text",name:e.name||"Text",content:e.content||"Default Text",duration:e.duration||c.of.DEFAULT_TEXT_DURATION,startTime:a,trimStart:0,trimEnd:0,fontSize:e.fontSize||48,fontFamily:e.fontFamily||"Arial",color:e.color||"#ffffff",backgroundColor:e.backgroundColor||"transparent",textAlign:e.textAlign||"center",fontWeight:e.fontWeight||"normal",fontStyle:e.fontStyle||"normal",textDecoration:e.textDecoration||"none",x:e.x||0,y:e.y||0,rotation:e.rotation||0,opacity:void 0!==e.opacity?e.opacity:1}),!0},addMediaToNewTrack:e=>{let a="audio"===e.type?"audio":"media",i=t().findOrCreateTrack(a);return t().addElementToTrack(i,{type:"media",mediaId:e.id,name:e.name,duration:e.duration||c.of.DEFAULT_IMAGE_DURATION,startTime:0,trimStart:0,trimEnd:0}),!0},addTextToNewTrack:e=>{let a=t().insertTrackAt("text",0);return t().addElementToTrack(a,{type:"text",name:e.name||"Text",content:("content"in e?e.content:"Default Text")||"Default Text",duration:c.of.DEFAULT_TEXT_DURATION,startTime:0,trimStart:0,trimEnd:0,fontSize:("fontSize"in e?e.fontSize:48)||48,fontFamily:("fontFamily"in e?e.fontFamily:"Arial")||"Arial",color:("color"in e?e.color:"#ffffff")||"#ffffff",backgroundColor:("backgroundColor"in e?e.backgroundColor:"transparent")||"transparent",textAlign:("textAlign"in e?e.textAlign:"center")||"center",fontWeight:("fontWeight"in e?e.fontWeight:"normal")||"normal",fontStyle:("fontStyle"in e?e.fontStyle:"normal")||"normal",textDecoration:("textDecoration"in e?e.textDecoration:"none")||"none",x:("x"in e?e.x:0)||0,y:("y"in e?e.y:0)||0,rotation:("rotation"in e?e.rotation:0)||0,opacity:"opacity"in e&&void 0!==e.opacity?e.opacity:1}),!0}}})},14700:(e,t,a)=>{a.d(t,{Oy:()=>r,aI:()=>s,hX:()=>d,xK:()=>n,zb:()=>o});var i=a(93146);function r(e){return[...e].sort((e,t)=>"text"===e.type&&"text"!==t.type?-1:"text"===t.type&&"text"!==e.type||"audio"===e.type&&"audio"!==t.type?1:"audio"===t.type&&"audio"!==e.type?-1:e.isMain&&!t.isMain&&"audio"!==t.type&&"text"!==t.type?1:t.isMain&&!e.isMain&&"audio"!==e.type&&"text"!==e.type?-1:0)}function n(e){return e.find(e=>e.isMain)||null}function o(e){return e.some(e=>e.isMain)?e:[{id:(0,i.lk)(),name:"Main Track",type:"media",elements:[],muted:!1,isMain:!0},...e]}function d(e,t){return"text"===e?"text"===t:"media"===e&&("media"===t||"audio"===t)}function s(e,t){return d(e.type,t.type)?{isValid:!0}:{isValid:!1,errorMessage:"text"===e.type?"Text elements can only be placed on text tracks":"Media elements can only be placed on media or audio tracks"}}},19439:(e,t,a)=>{a.d(t,{P:()=>o});class i{async getDB(){return new Promise((e,t)=>{let a=indexedDB.open(this.dbName,this.version);a.onerror=()=>t(a.error),a.onsuccess=()=>e(a.result),a.onupgradeneeded=e=>{let t=e.target.result;t.objectStoreNames.contains(this.storeName)||t.createObjectStore(this.storeName,{keyPath:"id"})}})}async get(e){let t=(await this.getDB()).transaction([this.storeName],"readonly").objectStore(this.storeName);return new Promise((a,i)=>{let r=t.get(e);r.onerror=()=>i(r.error),r.onsuccess=()=>a(r.result||null)})}async set(e,t){let a=(await this.getDB()).transaction([this.storeName],"readwrite").objectStore(this.storeName);return new Promise((i,r)=>{let n=a.put({id:e,...t});n.onerror=()=>r(n.error),n.onsuccess=()=>i()})}async remove(e){let t=(await this.getDB()).transaction([this.storeName],"readwrite").objectStore(this.storeName);return new Promise((a,i)=>{let r=t.delete(e);r.onerror=()=>i(r.error),r.onsuccess=()=>a()})}async list(){let e=(await this.getDB()).transaction([this.storeName],"readonly").objectStore(this.storeName);return new Promise((t,a)=>{let i=e.getAllKeys();i.onerror=()=>a(i.error),i.onsuccess=()=>t(i.result)})}async clear(){let e=(await this.getDB()).transaction([this.storeName],"readwrite").objectStore(this.storeName);return new Promise((t,a)=>{let i=e.clear();i.onerror=()=>a(i.error),i.onsuccess=()=>t()})}constructor(e,t,a=1){this.dbName=e,this.storeName=t,this.version=a}}class r{async getDirectory(){let e=await navigator.storage.getDirectory();return await e.getDirectoryHandle(this.directoryName,{create:!0})}async get(e){try{let t=await this.getDirectory(),a=await t.getFileHandle(e);return await a.getFile()}catch(e){if("NotFoundError"===e.name)return null;throw e}}async set(e,t){let a=await this.getDirectory(),i=await a.getFileHandle(e,{create:!0}),r=await i.createWritable();await r.write(t),await r.close()}async remove(e){try{let t=await this.getDirectory();await t.removeEntry(e)}catch(e){if("NotFoundError"!==e.name)throw e}}async list(){let e=await this.getDirectory(),t=[];for await(let a of e.keys())t.push(a);return t}async clear(){let e=await this.getDirectory();for await(let t of e.keys())await e.removeEntry(t)}static isSupported(){return"storage"in navigator&&"getDirectory"in navigator.storage}constructor(e="media"){this.directoryName=e}}class n{getProjectMediaAdapters(e){return{mediaMetadataAdapter:new i("".concat(this.config.mediaDb,"-").concat(e),"media-metadata",this.config.version),mediaFilesAdapter:new r("media-files-".concat(e))}}getProjectTimelineAdapter(e){return new i("".concat(this.config.timelineDb,"-").concat(e),"timeline",this.config.version)}async saveProject(e){let t={id:e.id,name:e.name,thumbnail:e.thumbnail,createdAt:e.createdAt.toISOString(),updatedAt:e.updatedAt.toISOString(),backgroundColor:e.backgroundColor,backgroundType:e.backgroundType,blurIntensity:e.blurIntensity,bookmarks:e.bookmarks,fps:e.fps};await this.projectsAdapter.set(e.id,t)}async loadProject(e){let t=await this.projectsAdapter.get(e);return t?{id:t.id,name:t.name,thumbnail:t.thumbnail,createdAt:new Date(t.createdAt),updatedAt:new Date(t.updatedAt),backgroundColor:t.backgroundColor,backgroundType:t.backgroundType,blurIntensity:t.blurIntensity,bookmarks:t.bookmarks,fps:t.fps}:null}async loadAllProjects(){let e=await this.projectsAdapter.list(),t=[];for(let a of e){let e=await this.loadProject(a);e&&t.push(e)}return t.sort((e,t)=>t.updatedAt.getTime()-e.updatedAt.getTime())}async deleteProject(e){await this.projectsAdapter.remove(e)}async saveMediaItem(e,t){let{mediaMetadataAdapter:a,mediaFilesAdapter:i}=this.getProjectMediaAdapters(e);await i.set(t.id,t.file);let r={id:t.id,name:t.name,type:t.type,size:t.file.size,lastModified:t.file.lastModified,width:t.width,height:t.height,duration:t.duration};await a.set(t.id,r)}async loadMediaItem(e,t){let{mediaMetadataAdapter:a,mediaFilesAdapter:i}=this.getProjectMediaAdapters(e),[r,n]=await Promise.all([i.get(t),a.get(t)]);if(!r||!n)return null;let o=URL.createObjectURL(r);return{id:n.id,name:n.name,type:n.type,file:r,url:o,width:n.width,height:n.height,duration:n.duration}}async loadAllMediaItems(e){let{mediaMetadataAdapter:t}=this.getProjectMediaAdapters(e),a=await t.list(),i=[];for(let t of a){let a=await this.loadMediaItem(e,t);a&&i.push(a)}return i}async deleteMediaItem(e,t){let{mediaMetadataAdapter:a,mediaFilesAdapter:i}=this.getProjectMediaAdapters(e);await Promise.all([i.remove(t),a.remove(t)])}async deleteProjectMedia(e){let{mediaMetadataAdapter:t,mediaFilesAdapter:a}=this.getProjectMediaAdapters(e);await Promise.all([t.clear(),a.clear()])}async saveTimeline(e,t){let a=this.getProjectTimelineAdapter(e),i={tracks:t,lastModified:new Date().toISOString()};await a.set("timeline",i)}async loadTimeline(e){let t=this.getProjectTimelineAdapter(e),a=await t.get("timeline");return a?a.tracks:null}async deleteProjectTimeline(e){let t=this.getProjectTimelineAdapter(e);await t.remove("timeline")}async clearAllData(){await this.projectsAdapter.clear()}async getStorageInfo(){return{projects:(await this.projectsAdapter.list()).length,isOPFSSupported:this.isOPFSSupported(),isIndexedDBSupported:this.isIndexedDBSupported()}}async getProjectStorageInfo(e){let{mediaMetadataAdapter:t}=this.getProjectMediaAdapters(e),a=this.getProjectTimelineAdapter(e),[i,r]=await Promise.all([t.list(),a.get("timeline")]);return{mediaItems:i.length,hasTimeline:!!r}}async loadSavedSounds(){try{return await this.savedSoundsAdapter.get("user-sounds")||{sounds:[],lastModified:new Date().toISOString()}}catch(e){return{sounds:[],lastModified:new Date().toISOString()}}}async saveSoundEffect(e){try{let t=await this.loadSavedSounds();if(t.sounds.some(t=>t.id===e.id))return;let a={id:e.id,name:e.name,username:e.username,previewUrl:e.previewUrl,downloadUrl:e.downloadUrl,duration:e.duration,tags:e.tags,license:e.license,savedAt:new Date().toISOString()},i={sounds:[...t.sounds,a],lastModified:new Date().toISOString()};await this.savedSoundsAdapter.set("user-sounds",i)}catch(e){throw e}}async removeSavedSound(e){try{let t={sounds:(await this.loadSavedSounds()).sounds.filter(t=>t.id!==e),lastModified:new Date().toISOString()};await this.savedSoundsAdapter.set("user-sounds",t)}catch(e){throw e}}async isSoundSaved(e){try{return(await this.loadSavedSounds()).sounds.some(t=>t.id===e)}catch(e){return!1}}async clearSavedSounds(){try{await this.savedSoundsAdapter.remove("user-sounds")}catch(e){throw e}}isOPFSSupported(){return r.isSupported()}isIndexedDBSupported(){return"indexedDB"in window}isFullySupported(){return this.isIndexedDBSupported()&&this.isOPFSSupported()}constructor(){this.config={projectsDb:"video-editor-projects",mediaDb:"video-editor-media",timelineDb:"video-editor-timelines",savedSoundsDb:"video-editor-saved-sounds",version:1},this.projectsAdapter=new i(this.config.projectsDb,"projects",this.config.version),this.savedSoundsAdapter=new i(this.config.savedSoundsDb,"saved-sounds",this.config.version)}}let o=new n},75141:(e,t,a)=>{a.d(t,{U:()=>o});var i=a(59467);let r=[{name:"16:9",width:1920,height:1080},{name:"9:16",width:1080,height:1920},{name:"1:1",width:1080,height:1080},{name:"4:3",width:1440,height:1080}],n=e=>{let t=r[0],a=Math.abs(e-t.width/t.height);for(let i of r){let r=Math.abs(e-i.width/i.height);r.1?e>1?{width:1920,height:Math.round(1920/e)}:{width:Math.round(1080*e),height:1080}:{width:t.width,height:t.height}},o=(0,i.v)((e,t)=>({isInitializing:!0,isPanelsReady:!1,canvasSize:{width:1920,height:1080},canvasMode:"preset",canvasPresets:r,setInitializing:t=>{e({isInitializing:t})},setPanelsReady:t=>{e({isPanelsReady:t})},initializeApp:async()=>{e({isInitializing:!0,isPanelsReady:!1}),e({isPanelsReady:!0,isInitializing:!1})},setCanvasSize:t=>{e({canvasSize:t,canvasMode:"preset"})},setCanvasSizeToOriginal:t=>{e({canvasSize:n(t),canvasMode:"original"})},setCanvasSizeFromAspectRatio:t=>{e({canvasSize:n(t),canvasMode:"custom"})}}))},80196:(e,t,a)=>{a.d(t,{B:()=>u,C:()=>m,generateVideoThumbnail:()=>l,getFileType:()=>d,getImageDimensions:()=>s,getMediaDuration:()=>c});var i=a(59467),r=a(19439),n=a(8300),o=a(93146);let d=e=>{let{type:t}=e;return t.startsWith("image/")?"image":t.startsWith("video/")?"video":t.startsWith("audio/")?"audio":null},s=e=>new Promise((t,a)=>{let i=new window.Image;i.addEventListener("load",()=>{t({width:i.naturalWidth,height:i.naturalHeight}),i.remove()}),i.addEventListener("error",()=>{a(Error("Could not load image")),i.remove()}),i.src=URL.createObjectURL(e)}),l=e=>new Promise((t,a)=>{let i=document.createElement("video"),r=document.createElement("canvas"),n=r.getContext("2d");if(!n)return void a(Error("Could not get canvas context"));i.addEventListener("loadedmetadata",()=>{r.width=i.videoWidth,r.height=i.videoHeight,i.currentTime=Math.min(1,.1*i.duration)}),i.addEventListener("seeked",()=>{n.drawImage(i,0,0,r.width,r.height);let e=r.toDataURL("image/jpeg",.8);t({thumbnailUrl:e,width:i.videoWidth,height:i.videoHeight}),i.remove(),r.remove()}),i.addEventListener("error",()=>{a(Error("Could not load video")),i.remove(),r.remove()}),i.src=URL.createObjectURL(e),i.load()}),c=e=>new Promise((t,a)=>{let i=document.createElement(e.type.startsWith("video/")?"video":"audio");i.addEventListener("loadedmetadata",()=>{t(i.duration),i.remove()}),i.addEventListener("error",()=>{a(Error("Could not load media")),i.remove()}),i.src=URL.createObjectURL(e),i.load()}),m=e=>e.width&&e.height?e.width/e.height:16/9,u=(0,i.v)((e,t)=>({mediaItems:[],isLoading:!1,addMediaItem:async(t,a)=>{let i={...a,id:(0,o.lk)()};e(e=>({mediaItems:[...e.mediaItems,i]}));try{await r.P.saveMediaItem(t,i)}catch(t){e(e=>({mediaItems:e.mediaItems.filter(e=>e.id!==i.id)}))}},removeMediaItem:async(a,i)=>{let o=t().mediaItems.find(e=>e.id===i);(null==o?void 0:o.url)&&(URL.revokeObjectURL(o.url),o.thumbnailUrl&&URL.revokeObjectURL(o.thumbnailUrl)),e(e=>({mediaItems:e.mediaItems.filter(e=>e.id!==i)}));let{tracks:d,removeElementFromTrack:s,removeElementFromTrackWithRipple:l,rippleEditingEnabled:c,pushHistory:m}=n.A.getState(),u=[];for(let e of d)for(let t of e.elements)"media"===t.type&&t.mediaId===i&&u.push({trackId:e.id,elementId:t.id});if(u.length>0)for(let{trackId:e,elementId:t}of(m(),u))c?l(e,t,!1):s(e,t,!1);try{await r.P.deleteMediaItem(a,i)}catch(e){}},loadProjectMedia:async t=>{e({isLoading:!0});try{let a=await r.P.loadAllMediaItems(t),i=await Promise.all(a.map(async e=>{if("video"===e.type&&e.file)try{let{thumbnailUrl:t,width:a,height:i}=await l(e.file);return{...e,thumbnailUrl:t,width:a||e.width,height:i||e.height}}catch(e){}return e}));e({mediaItems:i})}catch(e){}finally{e({isLoading:!1})}},clearProjectMedia:async a=>{let i=t();i.mediaItems.forEach(e=>{e.url&&URL.revokeObjectURL(e.url),e.thumbnailUrl&&URL.revokeObjectURL(e.thumbnailUrl)}),e({mediaItems:[]});try{let e=i.mediaItems.map(e=>e.id);await Promise.all(e.map(e=>r.P.deleteMediaItem(a,e)))}catch(e){}},clearAllMedia:()=>{t().mediaItems.forEach(e=>{e.url&&URL.revokeObjectURL(e.url),e.thumbnailUrl&&URL.revokeObjectURL(e.thumbnailUrl)}),e({mediaItems:[]})}}))},82337:(e,t,a)=>{a.d(t,{I:()=>l});var i=a(59467),r=a(19439),n=a(61557),o=a(80196),d=a(8300),s=a(93146);let l=(0,i.v)((e,t)=>({activeProject:null,savedProjects:[],isLoading:!0,isInitialized:!1,invalidProjectIds:new Set,toggleBookmark:async a=>{let i,{activeProject:o}=t();if(!o)return;let d=o.fps||30,s=Math.round(a*d)/d,l=o.bookmarks||[],c=l.findIndex(e=>.001>Math.abs(e-s));i=-1!==c?l.filter((e,t)=>t!==c):[...l,s].sort((e,t)=>e-t);let m={...o,bookmarks:i,updatedAt:new Date};try{await r.P.saveProject(m),e({activeProject:m}),await t().loadAllProjects()}catch(e){n.oR.error("Failed to update bookmarks",{description:"Please try again"})}},isBookmarked:e=>{let{activeProject:a}=t();if(!a||!a.bookmarks)return!1;let i=a.fps||30,r=Math.round(e*i)/i;return a.bookmarks.some(e=>.001>Math.abs(e-r))},removeBookmark:async a=>{let{activeProject:i}=t();if(!i||!i.bookmarks)return;let o=i.fps||30,d=Math.round(a*o)/o,s=i.bookmarks.filter(e=>Math.abs(e-d)>=.001);if(s.length===i.bookmarks.length)return;let l={...i,bookmarks:s,updatedAt:new Date};try{await r.P.saveProject(l),e({activeProject:l}),await t().loadAllProjects()}catch(e){n.oR.error("Failed to remove bookmark",{description:"Please try again"})}},createNewProject:async a=>{let i={id:(0,s.lk)(),name:a,thumbnail:"",createdAt:new Date,updatedAt:new Date,backgroundColor:"#000000",backgroundType:"color",blurIntensity:8,bookmarks:[],fps:30};e({activeProject:i});try{return await r.P.saveProject(i),await t().loadAllProjects(),i.id}catch(e){throw n.oR.error("Failed to save new project"),e}},loadProject:async a=>{t().isInitialized||e({isLoading:!0});let i=o.B.getState(),n=d.A.getState();i.clearAllMedia(),n.clearTimeline();try{let t=await r.P.loadProject(a);if(t)e({activeProject:t}),await Promise.all([i.loadProjectMedia(a),n.loadProjectTimeline(a)]);else throw Error("Project with id ".concat(a," not found"))}catch(e){throw e}finally{e({isLoading:!1})}},saveCurrentProject:async()=>{let{activeProject:e}=t();if(e)try{let a=d.A.getState();await Promise.all([r.P.saveProject(e),a.saveProjectTimeline(e.id)]),await t().loadAllProjects()}catch(e){}},loadAllProjects:async()=>{t().isInitialized||e({isLoading:!0});try{let t=await r.P.loadAllProjects();e({savedProjects:t})}catch(e){}finally{e({isLoading:!1,isInitialized:!0})}},deleteProject:async a=>{try{await Promise.all([r.P.deleteProjectMedia(a),r.P.deleteProjectTimeline(a),r.P.deleteProject(a)]),await t().loadAllProjects();let{activeProject:i}=t();if((null==i?void 0:i.id)===a){e({activeProject:null});let t=o.B.getState(),a=d.A.getState();t.clearAllMedia(),a.clearTimeline()}}catch(e){}},closeProject:()=>{e({activeProject:null});let t=o.B.getState(),a=d.A.getState();t.clearAllMedia(),a.clearTimeline()},renameProject:async(a,i)=>{let{savedProjects:o}=t(),d=o.find(e=>e.id===a);if(!d)return void n.oR.error("Project not found",{description:"Please try again"});let s={...d,name:i,updatedAt:new Date};try{await r.P.saveProject(s),await t().loadAllProjects();let{activeProject:i}=t();(null==i?void 0:i.id)===a&&e({activeProject:s})}catch(e){n.oR.error("Failed to rename project",{description:e instanceof Error?e.message:"Please try again"})}},duplicateProject:async e=>{try{let a=await r.P.loadProject(e);if(!a)throw n.oR.error("Project not found",{description:"Please try again"}),Error("Project not found");let{savedProjects:i}=t(),o=a.name.match(/^\((\d+)\)\s+(.+)$/),d=o?o[2]:a.name,l=[];i.forEach(e=>{let t=e.name.match(/^\((\d+)\)\s+(.+)$/);t&&t[2]===d&&l.push(parseInt(t[1],10))});let c=l.length>0?Math.max(...l)+1:1,m={...a,id:(0,s.lk)(),name:"(".concat(c,") ").concat(d),createdAt:new Date,updatedAt:new Date};return await r.P.saveProject(m),await t().loadAllProjects(),m.id}catch(e){throw n.oR.error("Failed to duplicate project",{description:e instanceof Error?e.message:"Please try again"}),e}},updateProjectBackground:async a=>{let{activeProject:i}=t();if(!i)return;let o={...i,backgroundColor:a,updatedAt:new Date};try{await r.P.saveProject(o),e({activeProject:o}),await t().loadAllProjects()}catch(e){n.oR.error("Failed to update background",{description:"Please try again"})}},updateBackgroundType:async(a,i)=>{let{activeProject:o}=t();if(!o)return;let d={...o,backgroundType:a,...(null==i?void 0:i.backgroundColor)&&{backgroundColor:i.backgroundColor},...(null==i?void 0:i.blurIntensity)&&{blurIntensity:i.blurIntensity},updatedAt:new Date};try{await r.P.saveProject(d),e({activeProject:d}),await t().loadAllProjects()}catch(e){n.oR.error("Failed to update background",{description:"Please try again"})}},updateProjectFps:async a=>{let{activeProject:i}=t();if(!i)return;let o={...i,fps:a,updatedAt:new Date};try{await r.P.saveProject(o),e({activeProject:o}),await t().loadAllProjects()}catch(e){n.oR.error("Failed to update project FPS",{description:"Please try again"})}},getFilteredAndSortedProjects:(e,a)=>{let{savedProjects:i}=t();return[...i.filter(t=>t.name.toLowerCase().includes(e.toLowerCase()))].sort((e,t)=>{let[i,r]=a.split("-");if("createdAt"!==i&&"name"!==i)return 0;let n=e[i],o=t[i];return void 0===n||void 0===o?0:"asc"===r?no):n>o?-1:+(n(t().invalidProjectIds||new Set).has(e),markProjectIdAsInvalid:t=>{e(e=>({invalidProjectIds:new Set([...e.invalidProjectIds||new Set,t])}))},clearInvalidProjectIds:()=>{e({invalidProjectIds:new Set})}}))},87100:(e,t,a)=>{a.d(t,{A0:()=>r,Ij:()=>s,Tm:()=>c,gY:()=>m,of:()=>l,sn:()=>d,t_:()=>o});let i={media:{solid:"bg-blue-500",background:"",border:""},text:{solid:"bg-[#5DBAA0]",background:"bg-[#5DBAA0]",border:""},audio:{solid:"bg-green-500",background:"bg-[#915DBE]",border:""}};function r(e){let t=i[e];return"".concat(t.background," ").concat(t.border)}let n={media:60,text:25,audio:50};function o(e){return n[e]}function d(e,t){return e.slice(0,t).reduce((e,t)=>e+n[t.type]+4,0)}function s(e){return e.reduce((e,t)=>e+n[t.type],0)+4*Math.max(0,e.length-1)}let l={ELEMENT_MIN_WIDTH:80,PIXELS_PER_SECOND:50,TRACK_HEIGHT:60,DEFAULT_TEXT_DURATION:5,DEFAULT_IMAGE_DURATION:5,ZOOM_LEVELS:[.25,.5,1,1.5,2,3,4]},c=[{value:"24",label:"24 fps"},{value:"25",label:"25 fps"},{value:"30",label:"30 fps"},{value:"60",label:"60 fps"},{value:"120",label:"120 fps"}];function m(e,t){return t<=0?e:Math.round(e*t)/t}},93146:(e,t,a)=>{a.d(t,{C7:()=>c,Fe:()=>d,bT:()=>m,cn:()=>n,lg:()=>l,lk:()=>o,mr:()=>s});var i=a(54083),r=a(14234);function n(){for(var e=arguments.length,t=Array(e),a=0;ae.toString(16).padStart(2,"0"));return t.slice(0,4).join("")+"-"+t.slice(4,6).join("")+"-"+t.slice(6,8).join("")+"-"+t.slice(8,10).join("")+"-"+t.slice(10,16).join("")}function d(e){return!!e&&(e instanceof Element||e instanceof HTMLElement)}function s(e){return!!e.isContentEditable||("INPUT"===e.tagName||"TEXTAREA"===e.tagName)&&!e.disabled}function l(){return/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)}function c(){return l()?"⌘":"Ctrl"}function m(){return l()?"⌥":"Alt"}}}]); +//# sourceMappingURL=83-4398df1e2258347e.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/83-4398df1e2258347e.js.map b/opencut-ui/_next/static/chunks/83-4398df1e2258347e.js.map new file mode 100644 index 0000000..e92c9ed --- /dev/null +++ b/opencut-ui/_next/static/chunks/83-4398df1e2258347e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/83-4398df1e2258347e.js","mappings":"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","sources":["webpack://_N_E/./src/lib/timeline.ts","webpack://_N_E/./src/stores/timeline-store.ts","webpack://_N_E/./src/types/timeline.ts","webpack://_N_E/./src/lib/storage/indexeddb-adapter.ts","webpack://_N_E/./src/lib/storage/opfs-adapter.ts","webpack://_N_E/./src/lib/storage/storage-service.ts","webpack://_N_E/./src/stores/editor-store.ts","webpack://_N_E/./src/stores/media-store.ts","webpack://_N_E/./src/stores/project-store.ts","webpack://_N_E/./src/constants/timeline-constants.ts","webpack://_N_E/./src/lib/utils.ts"],"sourcesContent":["import { TimelineElement } from \"@/types/timeline\";\r\n\r\n// Helper function to check for element overlaps and prevent invalid timeline states\r\nexport const checkElementOverlaps = (elements: TimelineElement[]): boolean => {\r\n // Sort elements by start time\r\n const sortedElements = [...elements].sort(\r\n (a, b) => a.startTime - b.startTime\r\n );\r\n\r\n for (let i = 0; i < sortedElements.length - 1; i++) {\r\n const current = sortedElements[i];\r\n const next = sortedElements[i + 1];\r\n\r\n const currentEnd =\r\n current.startTime +\r\n (current.duration - current.trimStart - current.trimEnd);\r\n\r\n // Check if current element overlaps with next element\r\n if (currentEnd > next.startTime) return true; // Overlap detected\r\n }\r\n\r\n return false; // No overlaps\r\n};\r\n\r\n// Helper function to resolve overlaps by adjusting element positions\r\nexport const resolveElementOverlaps = (\r\n elements: TimelineElement[]\r\n): TimelineElement[] => {\r\n // Sort elements by start time\r\n const sortedElements = [...elements].sort(\r\n (a, b) => a.startTime - b.startTime\r\n );\r\n const resolvedElements: TimelineElement[] = [];\r\n\r\n for (let i = 0; i < sortedElements.length; i++) {\r\n const current = { ...sortedElements[i] };\r\n\r\n if (resolvedElements.length > 0) {\r\n const previous = resolvedElements[resolvedElements.length - 1];\r\n const previousEnd =\r\n previous.startTime +\r\n (previous.duration - previous.trimStart - previous.trimEnd);\r\n\r\n // If current element would overlap with previous, push it after previous ends\r\n if (current.startTime < previousEnd) {\r\n current.startTime = previousEnd;\r\n }\r\n }\r\n\r\n resolvedElements.push(current);\r\n }\r\n\r\n return resolvedElements;\r\n};\r\n","import { create } from \"zustand\";\r\nimport {\r\n TrackType,\r\n TimelineElement,\r\n CreateTimelineElement,\r\n TimelineTrack,\r\n TextElement,\r\n DragData,\r\n sortTracksByOrder,\r\n ensureMainTrack,\r\n validateElementTrackCompatibility,\r\n} from \"@/types/timeline\";\r\nimport { useEditorStore } from \"./editor-store\";\r\nimport {\r\n useMediaStore,\r\n getMediaAspectRatio,\r\n type MediaItem,\r\n} from \"./media-store\";\r\nimport { storageService } from \"@/lib/storage/storage-service\";\r\nimport { useProjectStore } from \"./project-store\";\r\nimport { generateUUID } from \"@/lib/utils\";\r\nimport { TIMELINE_CONSTANTS } from \"@/constants/timeline-constants\";\r\nimport { toast } from \"sonner\";\r\nimport { checkElementOverlaps, resolveElementOverlaps } from \"@/lib/timeline\";\r\n\r\n// Helper function to manage element naming with suffixes\r\nconst getElementNameWithSuffix = (\r\n originalName: string,\r\n suffix: string\r\n): string => {\r\n // Remove existing suffixes to prevent accumulation\r\n const baseName = originalName\r\n .replace(/ \\(left\\)$/, \"\")\r\n .replace(/ \\(right\\)$/, \"\")\r\n .replace(/ \\(audio\\)$/, \"\")\r\n .replace(/ \\(split \\d+\\)$/, \"\");\r\n\r\n return `${baseName} (${suffix})`;\r\n};\r\n\r\ninterface TimelineStore {\r\n // Private track storage\r\n _tracks: TimelineTrack[];\r\n history: TimelineTrack[][];\r\n redoStack: TimelineTrack[][];\r\n\r\n // Always returns properly ordered tracks with main track ensured\r\n tracks: TimelineTrack[];\r\n\r\n // Manual method if you need to force recomputation\r\n getSortedTracks: () => TimelineTrack[];\r\n\r\n // Snapping settings\r\n snappingEnabled: boolean;\r\n\r\n // Snapping actions\r\n toggleSnapping: () => void;\r\n\r\n // Ripple editing mode\r\n rippleEditingEnabled: boolean;\r\n toggleRippleEditing: () => void;\r\n\r\n // Multi-selection\r\n selectedElements: { trackId: string; elementId: string }[];\r\n selectElement: (trackId: string, elementId: string, multi?: boolean) => void;\r\n deselectElement: (trackId: string, elementId: string) => void;\r\n clearSelectedElements: () => void;\r\n setSelectedElements: (\r\n elements: { trackId: string; elementId: string }[]\r\n ) => void;\r\n\r\n // Drag state\r\n dragState: {\r\n isDragging: boolean;\r\n elementId: string | null;\r\n trackId: string | null;\r\n startMouseX: number;\r\n startElementTime: number;\r\n clickOffsetTime: number;\r\n currentTime: number;\r\n };\r\n setDragState: (dragState: Partial) => void;\r\n startDrag: (\r\n elementId: string,\r\n trackId: string,\r\n startMouseX: number,\r\n startElementTime: number,\r\n clickOffsetTime: number\r\n ) => void;\r\n updateDragTime: (currentTime: number) => void;\r\n endDrag: () => void;\r\n\r\n // Actions\r\n addTrack: (type: TrackType) => string;\r\n insertTrackAt: (type: TrackType, index: number) => string;\r\n removeTrack: (trackId: string) => void;\r\n removeTrackWithRipple: (trackId: string) => void;\r\n addElementToTrack: (trackId: string, element: CreateTimelineElement) => void;\r\n removeElementFromTrack: (\r\n trackId: string,\r\n elementId: string,\r\n pushHistory?: boolean\r\n ) => void;\r\n moveElementToTrack: (\r\n fromTrackId: string,\r\n toTrackId: string,\r\n elementId: string\r\n ) => void;\r\n updateElementTrim: (\r\n trackId: string,\r\n elementId: string,\r\n trimStart: number,\r\n trimEnd: number,\r\n pushHistory?: boolean\r\n ) => void;\r\n updateElementDuration: (\r\n trackId: string,\r\n elementId: string,\r\n duration: number,\r\n pushHistory?: boolean\r\n ) => void;\r\n updateElementStartTime: (\r\n trackId: string,\r\n elementId: string,\r\n startTime: number,\r\n pushHistory?: boolean\r\n ) => void;\r\n toggleTrackMute: (trackId: string) => void;\r\n toggleElementHidden: (trackId: string, elementId: string) => void;\r\n\r\n // Split operations for elements\r\n splitElement: (\r\n trackId: string,\r\n elementId: string,\r\n splitTime: number\r\n ) => string | null;\r\n splitAndKeepLeft: (\r\n trackId: string,\r\n elementId: string,\r\n splitTime: number\r\n ) => void;\r\n splitAndKeepRight: (\r\n trackId: string,\r\n elementId: string,\r\n splitTime: number\r\n ) => void;\r\n separateAudio: (trackId: string, elementId: string) => string | null;\r\n\r\n // Replace media for an element\r\n replaceElementMedia: (\r\n trackId: string,\r\n elementId: string,\r\n newFile: File\r\n ) => Promise<{ success: boolean; error?: string }>;\r\n\r\n // Ripple editing functions\r\n updateElementStartTimeWithRipple: (\r\n trackId: string,\r\n elementId: string,\r\n newStartTime: number\r\n ) => void;\r\n removeElementFromTrackWithRipple: (\r\n trackId: string,\r\n elementId: string,\r\n pushHistory?: boolean\r\n ) => void;\r\n\r\n // Computed values\r\n getTotalDuration: () => number;\r\n getProjectThumbnail: (projectId: string) => Promise;\r\n\r\n // History actions\r\n undo: () => void;\r\n redo: () => void;\r\n pushHistory: () => void;\r\n\r\n // Persistence actions\r\n loadProjectTimeline: (projectId: string) => Promise;\r\n saveProjectTimeline: (projectId: string) => Promise;\r\n clearTimeline: () => void;\r\n updateTextElement: (\r\n trackId: string,\r\n elementId: string,\r\n updates: Partial<\r\n Pick<\r\n TextElement,\r\n | \"content\"\r\n | \"fontSize\"\r\n | \"fontFamily\"\r\n | \"color\"\r\n | \"backgroundColor\"\r\n | \"textAlign\"\r\n | \"fontWeight\"\r\n | \"fontStyle\"\r\n | \"textDecoration\"\r\n | \"x\"\r\n | \"y\"\r\n | \"rotation\"\r\n | \"opacity\"\r\n >\r\n >\r\n ) => void;\r\n checkElementOverlap: (\r\n trackId: string,\r\n startTime: number,\r\n duration: number,\r\n excludeElementId?: string\r\n ) => boolean;\r\n findOrCreateTrack: (trackType: TrackType) => string;\r\n addMediaAtTime: (item: MediaItem, currentTime?: number) => boolean;\r\n addTextAtTime: (item: TextElement, currentTime?: number) => boolean;\r\n addMediaToNewTrack: (item: MediaItem) => boolean;\r\n addTextToNewTrack: (item: TextElement | DragData) => boolean;\r\n}\r\n\r\nexport const useTimelineStore = create((set, get) => {\r\n // Helper to update tracks and maintain ordering\r\n const updateTracks = (newTracks: TimelineTrack[]) => {\r\n const tracksWithMain = ensureMainTrack(newTracks);\r\n const sortedTracks = sortTracksByOrder(tracksWithMain);\r\n set({\r\n _tracks: tracksWithMain,\r\n tracks: sortedTracks,\r\n });\r\n };\r\n\r\n // Helper to auto-save timeline changes\r\n const autoSaveTimeline = async () => {\r\n const activeProject = useProjectStore.getState().activeProject;\r\n if (activeProject) {\r\n try {\r\n await storageService.saveTimeline(activeProject.id, get()._tracks);\r\n } catch (error) {\r\n console.error(\"Failed to auto-save timeline:\", error);\r\n }\r\n }\r\n };\r\n\r\n // Helper to update tracks and auto-save\r\n const updateTracksAndSave = (newTracks: TimelineTrack[]) => {\r\n updateTracks(newTracks);\r\n // Auto-save in background\r\n setTimeout(autoSaveTimeline, 100);\r\n };\r\n\r\n // Initialize with proper track ordering\r\n const initialTracks = ensureMainTrack([]);\r\n const sortedInitialTracks = sortTracksByOrder(initialTracks);\r\n\r\n return {\r\n _tracks: initialTracks,\r\n tracks: sortedInitialTracks,\r\n history: [],\r\n redoStack: [],\r\n selectedElements: [],\r\n rippleEditingEnabled: false,\r\n\r\n // Snapping settings defaults\r\n snappingEnabled: true,\r\n\r\n getSortedTracks: () => {\r\n const { _tracks } = get();\r\n const tracksWithMain = ensureMainTrack(_tracks);\r\n return sortTracksByOrder(tracksWithMain);\r\n },\r\n\r\n pushHistory: () => {\r\n const { _tracks, history } = get();\r\n set({\r\n history: [...history, JSON.parse(JSON.stringify(_tracks))],\r\n redoStack: [],\r\n });\r\n },\r\n\r\n undo: () => {\r\n const { history, redoStack, _tracks } = get();\r\n if (history.length === 0) return;\r\n const prev = history[history.length - 1];\r\n updateTracksAndSave(prev);\r\n set({\r\n history: history.slice(0, -1),\r\n redoStack: [...redoStack, JSON.parse(JSON.stringify(_tracks))],\r\n });\r\n },\r\n\r\n selectElement: (trackId, elementId, multi = false) => {\r\n set((state) => {\r\n const exists = state.selectedElements.some(\r\n (c) => c.trackId === trackId && c.elementId === elementId\r\n );\r\n if (multi) {\r\n return exists\r\n ? {\r\n selectedElements: state.selectedElements.filter(\r\n (c) => !(c.trackId === trackId && c.elementId === elementId)\r\n ),\r\n }\r\n : {\r\n selectedElements: [\r\n ...state.selectedElements,\r\n { trackId, elementId },\r\n ],\r\n };\r\n }\r\n return { selectedElements: [{ trackId, elementId }] };\r\n });\r\n },\r\n\r\n deselectElement: (trackId, elementId) => {\r\n set((state) => ({\r\n selectedElements: state.selectedElements.filter(\r\n (c) => !(c.trackId === trackId && c.elementId === elementId)\r\n ),\r\n }));\r\n },\r\n\r\n clearSelectedElements: () => {\r\n set({ selectedElements: [] });\r\n },\r\n\r\n setSelectedElements: (elements) => set({ selectedElements: elements }),\r\n\r\n addTrack: (type) => {\r\n get().pushHistory();\r\n\r\n // Generate proper track name based on type\r\n const trackName =\r\n type === \"media\"\r\n ? \"Media Track\"\r\n : type === \"text\"\r\n ? \"Text Track\"\r\n : type === \"audio\"\r\n ? \"Audio Track\"\r\n : \"Track\";\r\n\r\n const newTrack: TimelineTrack = {\r\n id: generateUUID(),\r\n name: trackName,\r\n type,\r\n elements: [],\r\n muted: false,\r\n };\r\n\r\n updateTracksAndSave([...get()._tracks, newTrack]);\r\n return newTrack.id;\r\n },\r\n\r\n insertTrackAt: (type, index) => {\r\n get().pushHistory();\r\n\r\n // Generate proper track name based on type\r\n const trackName =\r\n type === \"media\"\r\n ? \"Media Track\"\r\n : type === \"text\"\r\n ? \"Text Track\"\r\n : type === \"audio\"\r\n ? \"Audio Track\"\r\n : \"Track\";\r\n\r\n const newTrack: TimelineTrack = {\r\n id: generateUUID(),\r\n name: trackName,\r\n type,\r\n elements: [],\r\n muted: false,\r\n };\r\n\r\n const newTracks = [...get()._tracks];\r\n newTracks.splice(index, 0, newTrack);\r\n updateTracksAndSave(newTracks);\r\n return newTrack.id;\r\n },\r\n\r\n removeTrack: (trackId) => {\r\n const { rippleEditingEnabled } = get();\r\n\r\n if (rippleEditingEnabled) {\r\n get().removeTrackWithRipple(trackId);\r\n } else {\r\n get().pushHistory();\r\n updateTracksAndSave(\r\n get()._tracks.filter((track) => track.id !== trackId)\r\n );\r\n }\r\n },\r\n\r\n removeTrackWithRipple: (trackId) => {\r\n const { _tracks } = get();\r\n const trackToRemove = _tracks.find((t) => t.id === trackId);\r\n\r\n if (!trackToRemove) return;\r\n\r\n get().pushHistory();\r\n\r\n // If track has no elements, just remove it normally\r\n if (trackToRemove.elements.length === 0) {\r\n updateTracksAndSave(_tracks.filter((track) => track.id !== trackId));\r\n return;\r\n }\r\n\r\n // Find all the time ranges occupied by elements in the track being removed\r\n const occupiedRanges = trackToRemove.elements.map((element) => ({\r\n startTime: element.startTime,\r\n endTime:\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd),\r\n }));\r\n\r\n // Sort ranges by start time\r\n occupiedRanges.sort((a, b) => a.startTime - b.startTime);\r\n\r\n // Merge overlapping ranges to get consolidated gaps\r\n const mergedRanges: Array<{\r\n startTime: number;\r\n endTime: number;\r\n duration: number;\r\n }> = [];\r\n\r\n for (const range of occupiedRanges) {\r\n if (mergedRanges.length === 0) {\r\n mergedRanges.push({\r\n startTime: range.startTime,\r\n endTime: range.endTime,\r\n duration: range.endTime - range.startTime,\r\n });\r\n } else {\r\n const lastRange = mergedRanges[mergedRanges.length - 1];\r\n if (range.startTime <= lastRange.endTime) {\r\n // Overlapping or adjacent ranges, merge them\r\n lastRange.endTime = Math.max(lastRange.endTime, range.endTime);\r\n lastRange.duration = lastRange.endTime - lastRange.startTime;\r\n } else {\r\n // Non-overlapping range, add as new\r\n mergedRanges.push({\r\n startTime: range.startTime,\r\n endTime: range.endTime,\r\n duration: range.endTime - range.startTime,\r\n });\r\n }\r\n }\r\n }\r\n\r\n // Remove the track and apply ripple effects to remaining tracks\r\n const updatedTracks = _tracks\r\n .filter((track) => track.id !== trackId)\r\n .map((track) => {\r\n const updatedElements = track.elements.map((element) => {\r\n let newStartTime = element.startTime;\r\n\r\n // Process gaps from right to left (latest to earliest) to avoid cumulative shifts\r\n for (let i = mergedRanges.length - 1; i >= 0; i--) {\r\n const gap = mergedRanges[i];\r\n // If this element starts after the gap, shift it left by the gap duration\r\n if (newStartTime >= gap.endTime) {\r\n newStartTime -= gap.duration;\r\n }\r\n }\r\n\r\n return {\r\n ...element,\r\n startTime: Math.max(0, newStartTime),\r\n };\r\n });\r\n\r\n // Check for overlaps and resolve them if necessary\r\n const hasOverlaps = checkElementOverlaps(updatedElements);\r\n if (hasOverlaps) {\r\n const resolvedElements = resolveElementOverlaps(updatedElements);\r\n return { ...track, elements: resolvedElements };\r\n }\r\n\r\n return { ...track, elements: updatedElements };\r\n });\r\n\r\n updateTracksAndSave(updatedTracks);\r\n },\r\n\r\n addElementToTrack: (trackId, elementData) => {\r\n get().pushHistory();\r\n\r\n // Validate element type matches track type\r\n const track = get()._tracks.find((t) => t.id === trackId);\r\n if (!track) {\r\n console.error(\"Track not found:\", trackId);\r\n return;\r\n }\r\n\r\n // Use utility function for validation\r\n const validation = validateElementTrackCompatibility(elementData, track);\r\n if (!validation.isValid) {\r\n console.error(validation.errorMessage);\r\n return;\r\n }\r\n\r\n // For media elements, validate mediaId exists\r\n if (elementData.type === \"media\" && !elementData.mediaId) {\r\n console.error(\"Media element must have mediaId\");\r\n return;\r\n }\r\n\r\n // For text elements, validate required text properties\r\n if (elementData.type === \"text\" && !elementData.content) {\r\n console.error(\"Text element must have content\");\r\n return;\r\n }\r\n\r\n // Check if this is the first element being added to the timeline\r\n const currentState = get();\r\n const totalElementsInTimeline = currentState._tracks.reduce(\r\n (total, track) => total + track.elements.length,\r\n 0\r\n );\r\n const isFirstElement = totalElementsInTimeline === 0;\r\n\r\n const newElement: TimelineElement = {\r\n ...elementData,\r\n id: generateUUID(),\r\n startTime: elementData.startTime || 0,\r\n trimStart: 0,\r\n trimEnd: 0,\r\n } as TimelineElement; // Type assertion since we trust the caller passes valid data\r\n\r\n // If this is the first element and it's a media element, automatically set the project canvas size\r\n // to match the media's aspect ratio and FPS (for videos)\r\n if (isFirstElement && newElement.type === \"media\") {\r\n const mediaStore = useMediaStore.getState();\r\n const mediaItem = mediaStore.mediaItems.find(\r\n (item) => item.id === newElement.mediaId\r\n );\r\n\r\n if (\r\n mediaItem &&\r\n (mediaItem.type === \"image\" || mediaItem.type === \"video\")\r\n ) {\r\n const editorStore = useEditorStore.getState();\r\n editorStore.setCanvasSizeFromAspectRatio(\r\n getMediaAspectRatio(mediaItem)\r\n );\r\n }\r\n\r\n // Set project FPS from the first video element\r\n if (mediaItem && mediaItem.type === \"video\" && mediaItem.fps) {\r\n const projectStore = useProjectStore.getState();\r\n if (projectStore.activeProject) {\r\n projectStore.updateProjectFps(mediaItem.fps);\r\n }\r\n }\r\n }\r\n\r\n updateTracksAndSave(\r\n get()._tracks.map((track) =>\r\n track.id === trackId\r\n ? { ...track, elements: [...track.elements, newElement] }\r\n : track\r\n )\r\n );\r\n\r\n get().selectElement(trackId, newElement.id);\r\n },\r\n\r\n removeElementFromTrack: (trackId, elementId, pushHistory = true) => {\r\n const { rippleEditingEnabled } = get();\r\n\r\n if (rippleEditingEnabled) {\r\n get().removeElementFromTrackWithRipple(trackId, elementId, pushHistory);\r\n } else {\r\n if (pushHistory) get().pushHistory();\r\n updateTracksAndSave(\r\n get()\r\n ._tracks.map((track) =>\r\n track.id === trackId\r\n ? {\r\n ...track,\r\n elements: track.elements.filter(\r\n (element) => element.id !== elementId\r\n ),\r\n }\r\n : track\r\n )\r\n .filter((track) => track.elements.length > 0)\r\n );\r\n }\r\n },\r\n\r\n removeElementFromTrackWithRipple: (\r\n trackId,\r\n elementId,\r\n pushHistory = true\r\n ) => {\r\n const { _tracks, rippleEditingEnabled } = get();\r\n\r\n if (!rippleEditingEnabled) {\r\n // If ripple editing is disabled, use regular removal\r\n get().removeElementFromTrack(trackId, elementId, pushHistory);\r\n return;\r\n }\r\n\r\n const track = _tracks.find((t) => t.id === trackId);\r\n const element = track?.elements.find((e) => e.id === elementId);\r\n\r\n if (!element || !track) return;\r\n\r\n if (pushHistory) get().pushHistory();\r\n\r\n const elementStartTime = element.startTime;\r\n const elementDuration =\r\n element.duration - element.trimStart - element.trimEnd;\r\n const elementEndTime = elementStartTime + elementDuration;\r\n\r\n // Remove the element and shift all elements that come after it\r\n const updatedTracks = _tracks\r\n .map((currentTrack) => {\r\n // Only apply ripple effects to the same track unless multi-track ripple is enabled\r\n const shouldApplyRipple = currentTrack.id === trackId;\r\n\r\n const updatedElements = currentTrack.elements\r\n .filter((currentElement) => {\r\n // Remove the target element\r\n if (\r\n currentElement.id === elementId &&\r\n currentTrack.id === trackId\r\n ) {\r\n return false;\r\n }\r\n return true;\r\n })\r\n .map((currentElement) => {\r\n // Only apply ripple effects if we should process this track\r\n if (!shouldApplyRipple) {\r\n return currentElement;\r\n }\r\n\r\n // Shift elements that start after the removed element\r\n if (currentElement.startTime >= elementEndTime) {\r\n return {\r\n ...currentElement,\r\n startTime: Math.max(\r\n 0,\r\n currentElement.startTime - elementDuration\r\n ),\r\n };\r\n }\r\n return currentElement;\r\n });\r\n\r\n // Check for overlaps and resolve them if necessary\r\n const hasOverlaps = checkElementOverlaps(updatedElements);\r\n if (hasOverlaps) {\r\n // Resolve overlaps by adjusting element positions\r\n const resolvedElements = resolveElementOverlaps(updatedElements);\r\n return { ...currentTrack, elements: resolvedElements };\r\n }\r\n\r\n return { ...currentTrack, elements: updatedElements };\r\n })\r\n .filter((track) => track.elements.length > 0 || track.isMain);\r\n\r\n updateTracksAndSave(updatedTracks);\r\n },\r\n\r\n moveElementToTrack: (fromTrackId, toTrackId, elementId) => {\r\n get().pushHistory();\r\n\r\n const fromTrack = get()._tracks.find((track) => track.id === fromTrackId);\r\n const toTrack = get()._tracks.find((track) => track.id === toTrackId);\r\n const elementToMove = fromTrack?.elements.find(\r\n (element) => element.id === elementId\r\n );\r\n\r\n if (!elementToMove || !toTrack) return;\r\n\r\n // Validate element type compatibility with target track\r\n const validation = validateElementTrackCompatibility(\r\n elementToMove,\r\n toTrack\r\n );\r\n if (!validation.isValid) {\r\n console.error(validation.errorMessage);\r\n return;\r\n }\r\n\r\n const newTracks = get()\r\n ._tracks.map((track) => {\r\n if (track.id === fromTrackId) {\r\n return {\r\n ...track,\r\n elements: track.elements.filter(\r\n (element) => element.id !== elementId\r\n ),\r\n };\r\n }\r\n if (track.id === toTrackId) {\r\n return {\r\n ...track,\r\n elements: [...track.elements, elementToMove],\r\n };\r\n }\r\n return track;\r\n })\r\n .filter((track) => track.elements.length > 0);\r\n\r\n updateTracksAndSave(newTracks);\r\n },\r\n\r\n updateElementTrim: (\r\n trackId,\r\n elementId,\r\n trimStart,\r\n trimEnd,\r\n pushHistory = true\r\n ) => {\r\n if (pushHistory) get().pushHistory();\r\n updateTracksAndSave(\r\n get()._tracks.map((track) =>\r\n track.id === trackId\r\n ? {\r\n ...track,\r\n elements: track.elements.map((element) =>\r\n element.id === elementId\r\n ? { ...element, trimStart, trimEnd }\r\n : element\r\n ),\r\n }\r\n : track\r\n )\r\n );\r\n },\r\n\r\n updateElementDuration: (\r\n trackId,\r\n elementId,\r\n duration,\r\n pushHistory = true\r\n ) => {\r\n if (pushHistory) get().pushHistory();\r\n updateTracksAndSave(\r\n get()._tracks.map((track) =>\r\n track.id === trackId\r\n ? {\r\n ...track,\r\n elements: track.elements.map((element) =>\r\n element.id === elementId ? { ...element, duration } : element\r\n ),\r\n }\r\n : track\r\n )\r\n );\r\n },\r\n\r\n updateElementStartTime: (\r\n trackId,\r\n elementId,\r\n startTime,\r\n pushHistory = true\r\n ) => {\r\n if (pushHistory) get().pushHistory();\r\n const clampedStartTime = Math.max(0, startTime);\r\n updateTracksAndSave(\r\n get()._tracks.map((track) =>\r\n track.id === trackId\r\n ? {\r\n ...track,\r\n elements: track.elements.map((element) =>\r\n element.id === elementId\r\n ? { ...element, startTime: clampedStartTime }\r\n : element\r\n ),\r\n }\r\n : track\r\n )\r\n );\r\n },\r\n\r\n updateElementStartTimeWithRipple: (trackId, elementId, newStartTime) => {\r\n const { _tracks, rippleEditingEnabled } = get();\r\n\r\n if (!rippleEditingEnabled) {\r\n // If ripple editing is disabled, use regular update\r\n get().updateElementStartTime(trackId, elementId, newStartTime);\r\n return;\r\n }\r\n\r\n const track = _tracks.find((t) => t.id === trackId);\r\n const element = track?.elements.find((e) => e.id === elementId);\r\n\r\n if (!element || !track) return;\r\n\r\n get().pushHistory();\r\n\r\n const oldStartTime = element.startTime;\r\n const oldEndTime =\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd);\r\n const newEndTime =\r\n newStartTime + (element.duration - element.trimStart - element.trimEnd);\r\n const timeDelta = newStartTime - oldStartTime;\r\n\r\n // Update tracks based on multi-track ripple setting\r\n const updatedTracks = _tracks.map((currentTrack) => {\r\n // Only apply ripple effects to the same track unless multi-track ripple is enabled\r\n const shouldApplyRipple = currentTrack.id === trackId;\r\n\r\n const updatedElements = currentTrack.elements.map((currentElement) => {\r\n if (currentElement.id === elementId && currentTrack.id === trackId) {\r\n return { ...currentElement, startTime: Math.max(0, newStartTime) };\r\n }\r\n\r\n // Only apply ripple effects if we should process this track\r\n if (!shouldApplyRipple) {\r\n return currentElement;\r\n }\r\n\r\n // For ripple editing, we need to move elements that come after the moved element\r\n const currentElementStart = currentElement.startTime;\r\n const currentElementEnd =\r\n currentElement.startTime +\r\n (currentElement.duration -\r\n currentElement.trimStart -\r\n currentElement.trimEnd);\r\n\r\n // If moving element to the right (positive delta)\r\n if (timeDelta > 0) {\r\n // Move elements that start after the original position of the moved element\r\n if (currentElementStart >= oldEndTime) {\r\n return {\r\n ...currentElement,\r\n startTime: currentElementStart + timeDelta,\r\n };\r\n }\r\n }\r\n // If moving element to the left (negative delta)\r\n else if (timeDelta < 0) {\r\n // Move elements that start after the new position of the moved element\r\n if (\r\n currentElementStart >= newEndTime &&\r\n currentElementStart >= oldStartTime\r\n ) {\r\n return {\r\n ...currentElement,\r\n startTime: Math.max(0, currentElementStart + timeDelta),\r\n };\r\n }\r\n }\r\n\r\n return currentElement;\r\n });\r\n\r\n // Check for overlaps and resolve them if necessary\r\n const hasOverlaps = checkElementOverlaps(updatedElements);\r\n if (hasOverlaps) {\r\n // Resolve overlaps by adjusting element positions\r\n const resolvedElements = resolveElementOverlaps(updatedElements);\r\n return { ...currentTrack, elements: resolvedElements };\r\n }\r\n\r\n return { ...currentTrack, elements: updatedElements };\r\n });\r\n\r\n updateTracksAndSave(updatedTracks);\r\n },\r\n\r\n toggleTrackMute: (trackId) => {\r\n get().pushHistory();\r\n updateTracksAndSave(\r\n get()._tracks.map((track) =>\r\n track.id === trackId ? { ...track, muted: !track.muted } : track\r\n )\r\n );\r\n },\r\n\r\n toggleElementHidden: (trackId, elementId) => {\r\n get().pushHistory();\r\n updateTracksAndSave(\r\n get()._tracks.map((track) =>\r\n track.id === trackId\r\n ? {\r\n ...track,\r\n elements: track.elements.map((element) =>\r\n element.id === elementId\r\n ? { ...element, hidden: !element.hidden }\r\n : element\r\n ),\r\n }\r\n : track\r\n )\r\n );\r\n },\r\n\r\n updateTextElement: (trackId, elementId, updates) => {\r\n get().pushHistory();\r\n updateTracksAndSave(\r\n get()._tracks.map((track) =>\r\n track.id === trackId\r\n ? {\r\n ...track,\r\n elements: track.elements.map((element) =>\r\n element.id === elementId && element.type === \"text\"\r\n ? { ...element, ...updates }\r\n : element\r\n ),\r\n }\r\n : track\r\n )\r\n );\r\n },\r\n\r\n splitElement: (trackId, elementId, splitTime) => {\r\n const { _tracks } = get();\r\n const track = _tracks.find((t) => t.id === trackId);\r\n const element = track?.elements.find((c) => c.id === elementId);\r\n\r\n if (!element) return null;\r\n\r\n const effectiveStart = element.startTime;\r\n const effectiveEnd =\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd);\r\n\r\n if (splitTime <= effectiveStart || splitTime >= effectiveEnd) return null;\r\n\r\n get().pushHistory();\r\n\r\n const relativeTime = splitTime - element.startTime;\r\n const firstDuration = relativeTime;\r\n const secondDuration =\r\n element.duration - element.trimStart - element.trimEnd - relativeTime;\r\n\r\n const secondElementId = generateUUID();\r\n\r\n updateTracksAndSave(\r\n get()._tracks.map((track) =>\r\n track.id === trackId\r\n ? {\r\n ...track,\r\n elements: track.elements.flatMap((c) =>\r\n c.id === elementId\r\n ? [\r\n {\r\n ...c,\r\n trimEnd: c.trimEnd + secondDuration,\r\n name: getElementNameWithSuffix(c.name, \"left\"),\r\n },\r\n {\r\n ...c,\r\n id: secondElementId,\r\n startTime: splitTime,\r\n trimStart: c.trimStart + firstDuration,\r\n name: getElementNameWithSuffix(c.name, \"right\"),\r\n },\r\n ]\r\n : [c]\r\n ),\r\n }\r\n : track\r\n )\r\n );\r\n\r\n return secondElementId;\r\n },\r\n\r\n // Split element and keep only the left portion\r\n splitAndKeepLeft: (trackId, elementId, splitTime) => {\r\n const { _tracks } = get();\r\n const track = _tracks.find((t) => t.id === trackId);\r\n const element = track?.elements.find((c) => c.id === elementId);\r\n\r\n if (!element) return;\r\n\r\n const effectiveStart = element.startTime;\r\n const effectiveEnd =\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd);\r\n\r\n if (splitTime <= effectiveStart || splitTime >= effectiveEnd) return;\r\n\r\n get().pushHistory();\r\n\r\n const relativeTime = splitTime - element.startTime;\r\n const durationToRemove =\r\n element.duration - element.trimStart - element.trimEnd - relativeTime;\r\n\r\n updateTracksAndSave(\r\n get()._tracks.map((track) =>\r\n track.id === trackId\r\n ? {\r\n ...track,\r\n elements: track.elements.map((c) =>\r\n c.id === elementId\r\n ? {\r\n ...c,\r\n trimEnd: c.trimEnd + durationToRemove,\r\n name: getElementNameWithSuffix(c.name, \"left\"),\r\n }\r\n : c\r\n ),\r\n }\r\n : track\r\n )\r\n );\r\n },\r\n\r\n // Split element and keep only the right portion\r\n splitAndKeepRight: (trackId, elementId, splitTime) => {\r\n const { _tracks } = get();\r\n const track = _tracks.find((t) => t.id === trackId);\r\n const element = track?.elements.find((c) => c.id === elementId);\r\n\r\n if (!element) return;\r\n\r\n const effectiveStart = element.startTime;\r\n const effectiveEnd =\r\n element.startTime +\r\n (element.duration - element.trimStart - element.trimEnd);\r\n\r\n if (splitTime <= effectiveStart || splitTime >= effectiveEnd) return;\r\n\r\n get().pushHistory();\r\n\r\n const relativeTime = splitTime - element.startTime;\r\n\r\n updateTracksAndSave(\r\n get()._tracks.map((track) =>\r\n track.id === trackId\r\n ? {\r\n ...track,\r\n elements: track.elements.map((c) =>\r\n c.id === elementId\r\n ? {\r\n ...c,\r\n startTime: splitTime,\r\n trimStart: c.trimStart + relativeTime,\r\n name: getElementNameWithSuffix(c.name, \"right\"),\r\n }\r\n : c\r\n ),\r\n }\r\n : track\r\n )\r\n );\r\n },\r\n\r\n // Extract audio from video element to an audio track\r\n separateAudio: (trackId, elementId) => {\r\n const { _tracks } = get();\r\n const track = _tracks.find((t) => t.id === trackId);\r\n const element = track?.elements.find((c) => c.id === elementId);\r\n\r\n if (!element || track?.type !== \"media\") return null;\r\n\r\n get().pushHistory();\r\n\r\n // Find existing audio track or prepare to create one\r\n const existingAudioTrack = _tracks.find((t) => t.type === \"audio\");\r\n const audioElementId = generateUUID();\r\n\r\n if (existingAudioTrack) {\r\n // Add audio element to existing audio track\r\n updateTracksAndSave(\r\n get()._tracks.map((track) =>\r\n track.id === existingAudioTrack.id\r\n ? {\r\n ...track,\r\n elements: [\r\n ...track.elements,\r\n {\r\n ...element,\r\n id: audioElementId,\r\n name: getElementNameWithSuffix(element.name, \"audio\"),\r\n },\r\n ],\r\n }\r\n : track\r\n )\r\n );\r\n } else {\r\n // Create new audio track with the audio element in a single atomic update\r\n const newAudioTrack: TimelineTrack = {\r\n id: generateUUID(),\r\n name: \"Audio Track\",\r\n type: \"audio\",\r\n elements: [\r\n {\r\n ...element,\r\n id: audioElementId,\r\n name: getElementNameWithSuffix(element.name, \"audio\"),\r\n },\r\n ],\r\n muted: false,\r\n };\r\n\r\n updateTracksAndSave([...get()._tracks, newAudioTrack]);\r\n }\r\n\r\n return audioElementId;\r\n },\r\n\r\n // Replace media for an element\r\n replaceElementMedia: async (\r\n trackId: string,\r\n elementId: string,\r\n newFile: File\r\n ): Promise<{ success: boolean; error?: string }> => {\r\n const { _tracks } = get();\r\n const track = _tracks.find((t) => t.id === trackId);\r\n const element = track?.elements.find((c) => c.id === elementId);\r\n\r\n if (!element) {\r\n return { success: false, error: \"Timeline element not found\" };\r\n }\r\n\r\n if (element.type !== \"media\") {\r\n return {\r\n success: false,\r\n error: \"Replace is only available for media clips\",\r\n };\r\n }\r\n\r\n try {\r\n const mediaStore = useMediaStore.getState();\r\n const projectStore = useProjectStore.getState();\r\n\r\n if (!projectStore.activeProject) {\r\n return { success: false, error: \"No active project found\" };\r\n }\r\n\r\n // Import required media processing functions\r\n const {\r\n getFileType,\r\n getImageDimensions,\r\n generateVideoThumbnail,\r\n getMediaDuration,\r\n } = await import(\"./media-store\");\r\n\r\n const fileType = getFileType(newFile);\r\n if (!fileType) {\r\n return {\r\n success: false,\r\n error:\r\n \"Unsupported file type. Please select a video, audio, or image file.\",\r\n };\r\n }\r\n\r\n // Process the new media file\r\n const mediaData: any = {\r\n name: newFile.name,\r\n type: fileType,\r\n file: newFile,\r\n url: URL.createObjectURL(newFile),\r\n };\r\n\r\n try {\r\n // Get media-specific metadata\r\n if (fileType === \"image\") {\r\n const { width, height } = await getImageDimensions(newFile);\r\n mediaData.width = width;\r\n mediaData.height = height;\r\n } else if (fileType === \"video\") {\r\n const [duration, { thumbnailUrl, width, height }] =\r\n await Promise.all([\r\n getMediaDuration(newFile),\r\n generateVideoThumbnail(newFile),\r\n ]);\r\n mediaData.duration = duration;\r\n mediaData.thumbnailUrl = thumbnailUrl;\r\n mediaData.width = width;\r\n mediaData.height = height;\r\n } else if (fileType === \"audio\") {\r\n mediaData.duration = await getMediaDuration(newFile);\r\n }\r\n } catch (error) {\r\n return {\r\n success: false,\r\n error: `Failed to process ${fileType} file: ${error instanceof Error ? error.message : \"Unknown error\"}`,\r\n };\r\n }\r\n\r\n // Add new media item to store\r\n try {\r\n await mediaStore.addMediaItem(\r\n projectStore.activeProject.id,\r\n mediaData\r\n );\r\n } catch (error) {\r\n return {\r\n success: false,\r\n error: `Failed to add media to project: ${error instanceof Error ? error.message : \"Unknown error\"}`,\r\n };\r\n }\r\n\r\n // Find the newly created media item\r\n const newMediaItem = mediaStore.mediaItems.find(\r\n (item) => item.file === newFile\r\n );\r\n\r\n if (!newMediaItem) {\r\n return {\r\n success: false,\r\n error: \"Failed to create media item in project. Please try again.\",\r\n };\r\n }\r\n\r\n get().pushHistory();\r\n\r\n // Update the timeline element to reference the new media\r\n updateTracksAndSave(\r\n _tracks.map((track) =>\r\n track.id === trackId\r\n ? {\r\n ...track,\r\n elements: track.elements.map((c) =>\r\n c.id === elementId\r\n ? {\r\n ...c,\r\n mediaId: newMediaItem.id,\r\n name: newMediaItem.name,\r\n // Update duration if the new media has a different duration\r\n duration: newMediaItem.duration || c.duration,\r\n }\r\n : c\r\n ),\r\n }\r\n : track\r\n )\r\n );\r\n\r\n return { success: true };\r\n } catch (error) {\r\n console.error(\"Failed to replace element media:\", error);\r\n return {\r\n success: false,\r\n error: `Unexpected error: ${error instanceof Error ? error.message : \"Unknown error\"}`,\r\n };\r\n }\r\n },\r\n\r\n getTotalDuration: () => {\r\n const { _tracks } = get();\r\n if (_tracks.length === 0) return 0;\r\n\r\n const trackEndTimes = _tracks.map((track) =>\r\n track.elements.reduce((maxEnd, element) => {\r\n const elementEnd =\r\n element.startTime +\r\n element.duration -\r\n element.trimStart -\r\n element.trimEnd;\r\n return Math.max(maxEnd, elementEnd);\r\n }, 0)\r\n );\r\n\r\n return Math.max(...trackEndTimes, 0);\r\n },\r\n\r\n getProjectThumbnail: async (projectId) => {\r\n try {\r\n const tracks = await storageService.loadTimeline(projectId);\r\n const mediaItems = await storageService.loadAllMediaItems(projectId);\r\n\r\n if (!tracks || !mediaItems.length) return null;\r\n\r\n const firstMediaElement = tracks\r\n .flatMap((track) => track.elements)\r\n .filter((element) => element.type === \"media\")\r\n .sort((a, b) => a.startTime - b.startTime)[0];\r\n\r\n if (!firstMediaElement) return null;\r\n\r\n const mediaItem = mediaItems.find(\r\n (item) => item.id === firstMediaElement.mediaId\r\n );\r\n if (!mediaItem) return null;\r\n\r\n if (mediaItem.type === \"video\" && mediaItem.file) {\r\n const { generateVideoThumbnail } = await import(\r\n \"@/stores/media-store\"\r\n );\r\n const { thumbnailUrl } = await generateVideoThumbnail(mediaItem.file);\r\n return thumbnailUrl;\r\n }\r\n if (mediaItem.type === \"image\" && mediaItem.url) {\r\n return mediaItem.url;\r\n }\r\n\r\n return null;\r\n } catch (error) {\r\n console.error(\"Failed to get project thumbnail:\", error);\r\n return null;\r\n }\r\n },\r\n\r\n redo: () => {\r\n const { redoStack } = get();\r\n if (redoStack.length === 0) return;\r\n const next = redoStack[redoStack.length - 1];\r\n updateTracksAndSave(next);\r\n set({ redoStack: redoStack.slice(0, -1) });\r\n },\r\n\r\n dragState: {\r\n isDragging: false,\r\n elementId: null,\r\n trackId: null,\r\n startMouseX: 0,\r\n startElementTime: 0,\r\n clickOffsetTime: 0,\r\n currentTime: 0,\r\n },\r\n\r\n setDragState: (dragState) =>\r\n set((state) => ({\r\n dragState: { ...state.dragState, ...dragState },\r\n })),\r\n\r\n startDrag: (\r\n elementId,\r\n trackId,\r\n startMouseX,\r\n startElementTime,\r\n clickOffsetTime\r\n ) => {\r\n set({\r\n dragState: {\r\n isDragging: true,\r\n elementId,\r\n trackId,\r\n startMouseX,\r\n startElementTime,\r\n clickOffsetTime,\r\n currentTime: startElementTime,\r\n },\r\n });\r\n },\r\n\r\n updateDragTime: (currentTime) => {\r\n set((state) => ({\r\n dragState: {\r\n ...state.dragState,\r\n currentTime,\r\n },\r\n }));\r\n },\r\n\r\n endDrag: () => {\r\n set({\r\n dragState: {\r\n isDragging: false,\r\n elementId: null,\r\n trackId: null,\r\n startMouseX: 0,\r\n startElementTime: 0,\r\n clickOffsetTime: 0,\r\n currentTime: 0,\r\n },\r\n });\r\n },\r\n\r\n // Persistence methods\r\n loadProjectTimeline: async (projectId) => {\r\n try {\r\n const tracks = await storageService.loadTimeline(projectId);\r\n if (tracks) {\r\n updateTracks(tracks);\r\n } else {\r\n // No timeline saved yet, initialize with default\r\n const defaultTracks = ensureMainTrack([]);\r\n updateTracks(defaultTracks);\r\n }\r\n // Clear history when loading a project\r\n set({ history: [], redoStack: [] });\r\n } catch (error) {\r\n console.error(\"Failed to load timeline:\", error);\r\n // Initialize with default on error\r\n const defaultTracks = ensureMainTrack([]);\r\n updateTracks(defaultTracks);\r\n set({ history: [], redoStack: [] });\r\n }\r\n },\r\n\r\n saveProjectTimeline: async (projectId) => {\r\n try {\r\n await storageService.saveTimeline(projectId, get()._tracks);\r\n } catch (error) {\r\n console.error(\"Failed to save timeline:\", error);\r\n }\r\n },\r\n\r\n clearTimeline: () => {\r\n const defaultTracks = ensureMainTrack([]);\r\n updateTracks(defaultTracks);\r\n set({ history: [], redoStack: [], selectedElements: [] });\r\n },\r\n\r\n // Snapping actions\r\n toggleSnapping: () => {\r\n set((state) => ({ snappingEnabled: !state.snappingEnabled }));\r\n },\r\n\r\n // Ripple editing functions\r\n toggleRippleEditing: () => {\r\n set((state) => ({\r\n rippleEditingEnabled: !state.rippleEditingEnabled,\r\n }));\r\n },\r\n\r\n checkElementOverlap: (trackId, startTime, duration, excludeElementId) => {\r\n const track = get()._tracks.find((t) => t.id === trackId);\r\n if (!track) return false;\r\n\r\n const overlap = track.elements.some((element) => {\r\n const elementEnd =\r\n element.startTime +\r\n element.duration -\r\n element.trimStart -\r\n element.trimEnd;\r\n\r\n if (element.id === excludeElementId) {\r\n return false;\r\n }\r\n\r\n return (\r\n (startTime >= element.startTime && startTime < elementEnd) ||\r\n (startTime + duration > element.startTime &&\r\n startTime + duration <= elementEnd) ||\r\n (startTime < element.startTime && startTime + duration > elementEnd)\r\n );\r\n });\r\n return overlap;\r\n },\r\n\r\n findOrCreateTrack: (trackType) => {\r\n // Always create new text track to allow multiple text elements\r\n // Insert text tracks at the top\r\n if (trackType === \"text\") {\r\n return get().insertTrackAt(trackType, 0);\r\n }\r\n\r\n const existingTrack = get()._tracks.find((t) => t.type === trackType);\r\n if (existingTrack) {\r\n return existingTrack.id;\r\n }\r\n\r\n return get().addTrack(trackType);\r\n },\r\n\r\n addMediaAtTime: (item, currentTime = 0) => {\r\n const trackType = item.type === \"audio\" ? \"audio\" : \"media\";\r\n const duration =\r\n item.duration || TIMELINE_CONSTANTS.DEFAULT_IMAGE_DURATION;\r\n\r\n // Get all tracks of the right type\r\n const tracks = get()._tracks.filter((t) => t.type === trackType);\r\n\r\n // Try to find a track with no overlap\r\n let targetTrackId = null;\r\n for (const track of tracks) {\r\n if (!get().checkElementOverlap(track.id, currentTime, duration)) {\r\n targetTrackId = track.id;\r\n break;\r\n }\r\n }\r\n\r\n // If no free track found, create a new one\r\n if (!targetTrackId) {\r\n targetTrackId = get().addTrack(trackType);\r\n }\r\n\r\n get().addElementToTrack(targetTrackId, {\r\n type: \"media\",\r\n mediaId: item.id,\r\n name: item.name,\r\n duration,\r\n startTime: currentTime,\r\n trimStart: 0,\r\n trimEnd: 0,\r\n });\r\n return true;\r\n },\r\n\r\n addTextAtTime: (item, currentTime = 0) => {\r\n const targetTrackId = get().insertTrackAt(\"text\", 0); // Always create new text track at the top\r\n\r\n get().addElementToTrack(targetTrackId, {\r\n type: \"text\",\r\n name: item.name || \"Text\",\r\n content: item.content || \"Default Text\",\r\n duration: item.duration || TIMELINE_CONSTANTS.DEFAULT_TEXT_DURATION,\r\n startTime: currentTime,\r\n trimStart: 0,\r\n trimEnd: 0,\r\n fontSize: item.fontSize || 48,\r\n fontFamily: item.fontFamily || \"Arial\",\r\n color: item.color || \"#ffffff\",\r\n backgroundColor: item.backgroundColor || \"transparent\",\r\n textAlign: item.textAlign || \"center\",\r\n fontWeight: item.fontWeight || \"normal\",\r\n fontStyle: item.fontStyle || \"normal\",\r\n textDecoration: item.textDecoration || \"none\",\r\n x: item.x || 0,\r\n y: item.y || 0,\r\n rotation: item.rotation || 0,\r\n opacity: item.opacity !== undefined ? item.opacity : 1,\r\n });\r\n return true;\r\n },\r\n\r\n addMediaToNewTrack: (item) => {\r\n const trackType = item.type === \"audio\" ? \"audio\" : \"media\";\r\n const targetTrackId = get().findOrCreateTrack(trackType);\r\n\r\n get().addElementToTrack(targetTrackId, {\r\n type: \"media\",\r\n mediaId: item.id,\r\n name: item.name,\r\n duration: item.duration || TIMELINE_CONSTANTS.DEFAULT_IMAGE_DURATION,\r\n startTime: 0,\r\n trimStart: 0,\r\n trimEnd: 0,\r\n });\r\n return true;\r\n },\r\n\r\n addTextToNewTrack: (item) => {\r\n const targetTrackId = get().insertTrackAt(\"text\", 0); // Always create new text track at the top\r\n\r\n get().addElementToTrack(targetTrackId, {\r\n type: \"text\",\r\n name: item.name || \"Text\",\r\n content:\r\n (\"content\" in item ? item.content : \"Default Text\") || \"Default Text\",\r\n duration: TIMELINE_CONSTANTS.DEFAULT_TEXT_DURATION,\r\n startTime: 0,\r\n trimStart: 0,\r\n trimEnd: 0,\r\n fontSize: (\"fontSize\" in item ? item.fontSize : 48) || 48,\r\n fontFamily:\r\n (\"fontFamily\" in item ? item.fontFamily : \"Arial\") || \"Arial\",\r\n color: (\"color\" in item ? item.color : \"#ffffff\") || \"#ffffff\",\r\n backgroundColor:\r\n (\"backgroundColor\" in item ? item.backgroundColor : \"transparent\") ||\r\n \"transparent\",\r\n textAlign:\r\n (\"textAlign\" in item ? item.textAlign : \"center\") || \"center\",\r\n fontWeight:\r\n (\"fontWeight\" in item ? item.fontWeight : \"normal\") || \"normal\",\r\n fontStyle:\r\n (\"fontStyle\" in item ? item.fontStyle : \"normal\") || \"normal\",\r\n textDecoration:\r\n (\"textDecoration\" in item ? item.textDecoration : \"none\") || \"none\",\r\n x: (\"x\" in item ? item.x : 0) || 0,\r\n y: (\"y\" in item ? item.y : 0) || 0,\r\n rotation: (\"rotation\" in item ? item.rotation : 0) || 0,\r\n opacity:\r\n \"opacity\" in item && item.opacity !== undefined ? item.opacity : 1,\r\n });\r\n return true;\r\n },\r\n };\r\n});\r\n","import { MediaType } from \"@/stores/media-store\";\r\nimport { generateUUID } from \"@/lib/utils\";\r\n\r\nexport type TrackType = \"media\" | \"text\" | \"audio\";\r\n\r\n// Base element properties\r\ninterface BaseTimelineElement {\r\n id: string;\r\n name: string;\r\n duration: number;\r\n startTime: number;\r\n trimStart: number;\r\n trimEnd: number;\r\n hidden?: boolean;\r\n}\r\n\r\n// Media element that references MediaStore\r\nexport interface MediaElement extends BaseTimelineElement {\r\n type: \"media\";\r\n mediaId: string;\r\n}\r\n\r\n// Text element with embedded text data\r\nexport interface TextElement extends BaseTimelineElement {\r\n type: \"text\";\r\n content: string;\r\n fontSize: number;\r\n fontFamily: string;\r\n color: string;\r\n backgroundColor: string;\r\n textAlign: \"left\" | \"center\" | \"right\";\r\n fontWeight: \"normal\" | \"bold\";\r\n fontStyle: \"normal\" | \"italic\";\r\n textDecoration: \"none\" | \"underline\" | \"line-through\";\r\n x: number; // Position relative to canvas center\r\n y: number; // Position relative to canvas center\r\n rotation: number; // in degrees\r\n opacity: number; // 0-1\r\n}\r\n\r\n// Typed timeline elements\r\nexport type TimelineElement = MediaElement | TextElement;\r\n\r\n// Creation types (without id, for addElementToTrack)\r\nexport type CreateMediaElement = Omit;\r\nexport type CreateTextElement = Omit;\r\nexport type CreateTimelineElement = CreateMediaElement | CreateTextElement;\r\n\r\nexport interface TimelineElementProps {\r\n element: TimelineElement;\r\n track: TimelineTrack;\r\n zoomLevel: number;\r\n isSelected: boolean;\r\n onElementMouseDown: (e: React.MouseEvent, element: TimelineElement) => void;\r\n onElementClick: (e: React.MouseEvent, element: TimelineElement) => void;\r\n}\r\n\r\nexport interface ResizeState {\r\n elementId: string;\r\n side: \"left\" | \"right\";\r\n startX: number;\r\n initialTrimStart: number;\r\n initialTrimEnd: number;\r\n}\r\n\r\n// Drag data types for type-safe drag and drop\r\nexport interface MediaItemDragData {\r\n id: string;\r\n type: MediaType;\r\n name: string;\r\n}\r\n\r\nexport interface TextItemDragData {\r\n id: string;\r\n type: \"text\";\r\n name: string;\r\n content: string;\r\n}\r\n\r\nexport type DragData = MediaItemDragData | TextItemDragData;\r\n\r\nexport interface TimelineTrack {\r\n id: string;\r\n name: string;\r\n type: TrackType;\r\n elements: TimelineElement[];\r\n muted?: boolean;\r\n isMain?: boolean;\r\n}\r\n\r\nexport function sortTracksByOrder(tracks: TimelineTrack[]): TimelineTrack[] {\r\n return [...tracks].sort((a, b) => {\r\n // Text tracks always go to the top\r\n if (a.type === \"text\" && b.type !== \"text\") return -1;\r\n if (b.type === \"text\" && a.type !== \"text\") return 1;\r\n\r\n // Audio tracks always go to bottom\r\n if (a.type === \"audio\" && b.type !== \"audio\") return 1;\r\n if (b.type === \"audio\" && a.type !== \"audio\") return -1;\r\n\r\n // Main track goes above audio but below text tracks\r\n if (a.isMain && !b.isMain && b.type !== \"audio\" && b.type !== \"text\")\r\n return 1;\r\n if (b.isMain && !a.isMain && a.type !== \"audio\" && a.type !== \"text\")\r\n return -1;\r\n\r\n // Within same category, maintain creation order\r\n return 0;\r\n });\r\n}\r\n\r\nexport function getMainTrack(tracks: TimelineTrack[]): TimelineTrack | null {\r\n return tracks.find((track) => track.isMain) || null;\r\n}\r\n\r\nexport function ensureMainTrack(tracks: TimelineTrack[]): TimelineTrack[] {\r\n const hasMainTrack = tracks.some((track) => track.isMain);\r\n\r\n if (!hasMainTrack) {\r\n // Create main track if it doesn't exist\r\n const mainTrack: TimelineTrack = {\r\n id: generateUUID(),\r\n name: \"Main Track\",\r\n type: \"media\",\r\n elements: [],\r\n muted: false,\r\n isMain: true,\r\n };\r\n return [mainTrack, ...tracks];\r\n }\r\n\r\n return tracks;\r\n}\r\n\r\n// Timeline validation utilities\r\nexport function canElementGoOnTrack(\r\n elementType: \"text\" | \"media\",\r\n trackType: TrackType\r\n): boolean {\r\n if (elementType === \"text\") {\r\n return trackType === \"text\";\r\n }\r\n if (elementType === \"media\") {\r\n return trackType === \"media\" || trackType === \"audio\";\r\n }\r\n return false;\r\n}\r\n\r\nexport function validateElementTrackCompatibility(\r\n element: { type: \"text\" | \"media\" },\r\n track: { type: TrackType }\r\n): { isValid: boolean; errorMessage?: string } {\r\n const isValid = canElementGoOnTrack(element.type, track.type);\r\n\r\n if (!isValid) {\r\n const errorMessage =\r\n element.type === \"text\"\r\n ? \"Text elements can only be placed on text tracks\"\r\n : \"Media elements can only be placed on media or audio tracks\";\r\n\r\n return { isValid: false, errorMessage };\r\n }\r\n\r\n return { isValid: true };\r\n}\r\n","import { StorageAdapter } from \"./types\";\r\n\r\nexport class IndexedDBAdapter implements StorageAdapter {\r\n private dbName: string;\r\n private storeName: string;\r\n private version: number;\r\n\r\n constructor(dbName: string, storeName: string, version = 1) {\r\n this.dbName = dbName;\r\n this.storeName = storeName;\r\n this.version = version;\r\n }\r\n\r\n private async getDB(): Promise {\r\n return new Promise((resolve, reject) => {\r\n const request = indexedDB.open(this.dbName, this.version);\r\n\r\n request.onerror = () => reject(request.error);\r\n request.onsuccess = () => resolve(request.result);\r\n\r\n request.onupgradeneeded = (event) => {\r\n const db = (event.target as IDBOpenDBRequest).result;\r\n if (!db.objectStoreNames.contains(this.storeName)) {\r\n db.createObjectStore(this.storeName, { keyPath: \"id\" });\r\n }\r\n };\r\n });\r\n }\r\n\r\n async get(key: string): Promise {\r\n const db = await this.getDB();\r\n const transaction = db.transaction([this.storeName], \"readonly\");\r\n const store = transaction.objectStore(this.storeName);\r\n\r\n return new Promise((resolve, reject) => {\r\n const request = store.get(key);\r\n request.onerror = () => reject(request.error);\r\n request.onsuccess = () => resolve(request.result || null);\r\n });\r\n }\r\n\r\n async set(key: string, value: T): Promise {\r\n const db = await this.getDB();\r\n const transaction = db.transaction([this.storeName], \"readwrite\");\r\n const store = transaction.objectStore(this.storeName);\r\n\r\n return new Promise((resolve, reject) => {\r\n const request = store.put({ id: key, ...value });\r\n request.onerror = () => reject(request.error);\r\n request.onsuccess = () => resolve();\r\n });\r\n }\r\n\r\n async remove(key: string): Promise {\r\n const db = await this.getDB();\r\n const transaction = db.transaction([this.storeName], \"readwrite\");\r\n const store = transaction.objectStore(this.storeName);\r\n\r\n return new Promise((resolve, reject) => {\r\n const request = store.delete(key);\r\n request.onerror = () => reject(request.error);\r\n request.onsuccess = () => resolve();\r\n });\r\n }\r\n\r\n async list(): Promise {\r\n const db = await this.getDB();\r\n const transaction = db.transaction([this.storeName], \"readonly\");\r\n const store = transaction.objectStore(this.storeName);\r\n\r\n return new Promise((resolve, reject) => {\r\n const request = store.getAllKeys();\r\n request.onerror = () => reject(request.error);\r\n request.onsuccess = () => resolve(request.result as string[]);\r\n });\r\n }\r\n\r\n async clear(): Promise {\r\n const db = await this.getDB();\r\n const transaction = db.transaction([this.storeName], \"readwrite\");\r\n const store = transaction.objectStore(this.storeName);\r\n\r\n return new Promise((resolve, reject) => {\r\n const request = store.clear();\r\n request.onerror = () => reject(request.error);\r\n request.onsuccess = () => resolve();\r\n });\r\n }\r\n}\r\n","import { StorageAdapter } from \"./types\";\r\n\r\nexport class OPFSAdapter implements StorageAdapter {\r\n private directoryName: string;\r\n\r\n constructor(directoryName = \"media\") {\r\n this.directoryName = directoryName;\r\n }\r\n\r\n private async getDirectory(): Promise {\r\n const opfsRoot = await navigator.storage.getDirectory();\r\n return await opfsRoot.getDirectoryHandle(this.directoryName, {\r\n create: true,\r\n });\r\n }\r\n\r\n async get(key: string): Promise {\r\n try {\r\n const directory = await this.getDirectory();\r\n const fileHandle = await directory.getFileHandle(key);\r\n return await fileHandle.getFile();\r\n } catch (error) {\r\n if ((error as Error).name === \"NotFoundError\") {\r\n return null;\r\n }\r\n throw error;\r\n }\r\n }\r\n\r\n async set(key: string, file: File): Promise {\r\n const directory = await this.getDirectory();\r\n const fileHandle = await directory.getFileHandle(key, { create: true });\r\n const writable = await fileHandle.createWritable();\r\n\r\n await writable.write(file);\r\n await writable.close();\r\n }\r\n\r\n async remove(key: string): Promise {\r\n try {\r\n const directory = await this.getDirectory();\r\n await directory.removeEntry(key);\r\n } catch (error) {\r\n if ((error as Error).name !== \"NotFoundError\") {\r\n throw error;\r\n }\r\n }\r\n }\r\n\r\n async list(): Promise {\r\n const directory = await this.getDirectory();\r\n const keys: string[] = [];\r\n\r\n for await (const name of directory.keys()) {\r\n keys.push(name);\r\n }\r\n\r\n return keys;\r\n }\r\n\r\n async clear(): Promise {\r\n const directory = await this.getDirectory();\r\n\r\n for await (const name of directory.keys()) {\r\n await directory.removeEntry(name);\r\n }\r\n }\r\n\r\n // Helper method to check OPFS support\r\n static isSupported(): boolean {\r\n return \"storage\" in navigator && \"getDirectory\" in navigator.storage;\r\n }\r\n}\r\n","import { TProject } from \"@/types/project\";\r\nimport { MediaItem } from \"@/stores/media-store\";\r\nimport { IndexedDBAdapter } from \"./indexeddb-adapter\";\r\nimport { OPFSAdapter } from \"./opfs-adapter\";\r\nimport {\r\n MediaFileData,\r\n StorageConfig,\r\n SerializedProject,\r\n TimelineData,\r\n} from \"./types\";\r\nimport { TimelineTrack } from \"@/types/timeline\";\r\nimport { SavedSoundsData, SavedSound, SoundEffect } from \"@/types/sounds\";\r\n\r\nclass StorageService {\r\n private projectsAdapter: IndexedDBAdapter;\r\n private savedSoundsAdapter: IndexedDBAdapter;\r\n private config: StorageConfig;\r\n\r\n constructor() {\r\n this.config = {\r\n projectsDb: \"video-editor-projects\",\r\n mediaDb: \"video-editor-media\",\r\n timelineDb: \"video-editor-timelines\",\r\n savedSoundsDb: \"video-editor-saved-sounds\",\r\n version: 1,\r\n };\r\n\r\n this.projectsAdapter = new IndexedDBAdapter(\r\n this.config.projectsDb,\r\n \"projects\",\r\n this.config.version\r\n );\r\n\r\n this.savedSoundsAdapter = new IndexedDBAdapter(\r\n this.config.savedSoundsDb,\r\n \"saved-sounds\",\r\n this.config.version\r\n );\r\n }\r\n\r\n // Helper to get project-specific media adapters\r\n private getProjectMediaAdapters(projectId: string) {\r\n const mediaMetadataAdapter = new IndexedDBAdapter(\r\n `${this.config.mediaDb}-${projectId}`,\r\n \"media-metadata\",\r\n this.config.version\r\n );\r\n\r\n const mediaFilesAdapter = new OPFSAdapter(`media-files-${projectId}`);\r\n\r\n return { mediaMetadataAdapter, mediaFilesAdapter };\r\n }\r\n\r\n // Helper to get project-specific timeline adapter\r\n private getProjectTimelineAdapter(projectId: string) {\r\n return new IndexedDBAdapter(\r\n `${this.config.timelineDb}-${projectId}`,\r\n \"timeline\",\r\n this.config.version\r\n );\r\n }\r\n\r\n // Project operations\r\n async saveProject(project: TProject): Promise {\r\n // Convert TProject to serializable format\r\n const serializedProject: SerializedProject = {\r\n id: project.id,\r\n name: project.name,\r\n thumbnail: project.thumbnail,\r\n createdAt: project.createdAt.toISOString(),\r\n updatedAt: project.updatedAt.toISOString(),\r\n backgroundColor: project.backgroundColor,\r\n backgroundType: project.backgroundType,\r\n blurIntensity: project.blurIntensity,\r\n bookmarks: project.bookmarks,\r\n fps: project.fps,\r\n };\r\n\r\n await this.projectsAdapter.set(project.id, serializedProject);\r\n }\r\n\r\n async loadProject(id: string): Promise {\r\n const serializedProject = await this.projectsAdapter.get(id);\r\n\r\n if (!serializedProject) return null;\r\n\r\n // Convert back to TProject format\r\n return {\r\n id: serializedProject.id,\r\n name: serializedProject.name,\r\n thumbnail: serializedProject.thumbnail,\r\n createdAt: new Date(serializedProject.createdAt),\r\n updatedAt: new Date(serializedProject.updatedAt),\r\n backgroundColor: serializedProject.backgroundColor,\r\n backgroundType: serializedProject.backgroundType,\r\n blurIntensity: serializedProject.blurIntensity,\r\n bookmarks: serializedProject.bookmarks,\r\n fps: serializedProject.fps,\r\n };\r\n }\r\n\r\n async loadAllProjects(): Promise {\r\n const projectIds = await this.projectsAdapter.list();\r\n const projects: TProject[] = [];\r\n\r\n for (const id of projectIds) {\r\n const project = await this.loadProject(id);\r\n if (project) {\r\n projects.push(project);\r\n }\r\n }\r\n\r\n // Sort by last updated (most recent first)\r\n return projects.sort(\r\n (a, b) => b.updatedAt.getTime() - a.updatedAt.getTime()\r\n );\r\n }\r\n\r\n async deleteProject(id: string): Promise {\r\n await this.projectsAdapter.remove(id);\r\n }\r\n\r\n // Media operations - now project-specific\r\n async saveMediaItem(projectId: string, mediaItem: MediaItem): Promise {\r\n const { mediaMetadataAdapter, mediaFilesAdapter } =\r\n this.getProjectMediaAdapters(projectId);\r\n\r\n // Save file to project-specific OPFS\r\n await mediaFilesAdapter.set(mediaItem.id, mediaItem.file);\r\n\r\n // Save metadata to project-specific IndexedDB\r\n const metadata: MediaFileData = {\r\n id: mediaItem.id,\r\n name: mediaItem.name,\r\n type: mediaItem.type,\r\n size: mediaItem.file.size,\r\n lastModified: mediaItem.file.lastModified,\r\n width: mediaItem.width,\r\n height: mediaItem.height,\r\n duration: mediaItem.duration,\r\n };\r\n\r\n await mediaMetadataAdapter.set(mediaItem.id, metadata);\r\n }\r\n\r\n async loadMediaItem(\r\n projectId: string,\r\n id: string\r\n ): Promise {\r\n const { mediaMetadataAdapter, mediaFilesAdapter } =\r\n this.getProjectMediaAdapters(projectId);\r\n\r\n const [file, metadata] = await Promise.all([\r\n mediaFilesAdapter.get(id),\r\n mediaMetadataAdapter.get(id),\r\n ]);\r\n\r\n if (!file || !metadata) return null;\r\n\r\n // Create new object URL for the file\r\n const url = URL.createObjectURL(file);\r\n\r\n return {\r\n id: metadata.id,\r\n name: metadata.name,\r\n type: metadata.type,\r\n file,\r\n url,\r\n width: metadata.width,\r\n height: metadata.height,\r\n duration: metadata.duration,\r\n // thumbnailUrl would need to be regenerated or cached separately\r\n };\r\n }\r\n\r\n async loadAllMediaItems(projectId: string): Promise {\r\n const { mediaMetadataAdapter } = this.getProjectMediaAdapters(projectId);\r\n\r\n const mediaIds = await mediaMetadataAdapter.list();\r\n const mediaItems: MediaItem[] = [];\r\n\r\n for (const id of mediaIds) {\r\n const item = await this.loadMediaItem(projectId, id);\r\n if (item) {\r\n mediaItems.push(item);\r\n }\r\n }\r\n\r\n return mediaItems;\r\n }\r\n\r\n async deleteMediaItem(projectId: string, id: string): Promise {\r\n const { mediaMetadataAdapter, mediaFilesAdapter } =\r\n this.getProjectMediaAdapters(projectId);\r\n\r\n await Promise.all([\r\n mediaFilesAdapter.remove(id),\r\n mediaMetadataAdapter.remove(id),\r\n ]);\r\n }\r\n\r\n async deleteProjectMedia(projectId: string): Promise {\r\n const { mediaMetadataAdapter, mediaFilesAdapter } =\r\n this.getProjectMediaAdapters(projectId);\r\n\r\n await Promise.all([\r\n mediaMetadataAdapter.clear(),\r\n mediaFilesAdapter.clear(),\r\n ]);\r\n }\r\n\r\n // Timeline operations - now project-specific\r\n async saveTimeline(\r\n projectId: string,\r\n tracks: TimelineTrack[]\r\n ): Promise {\r\n const timelineAdapter = this.getProjectTimelineAdapter(projectId);\r\n const timelineData: TimelineData = {\r\n tracks,\r\n lastModified: new Date().toISOString(),\r\n };\r\n await timelineAdapter.set(\"timeline\", timelineData);\r\n }\r\n\r\n async loadTimeline(projectId: string): Promise {\r\n const timelineAdapter = this.getProjectTimelineAdapter(projectId);\r\n const timelineData = await timelineAdapter.get(\"timeline\");\r\n return timelineData ? timelineData.tracks : null;\r\n }\r\n\r\n async deleteProjectTimeline(projectId: string): Promise {\r\n const timelineAdapter = this.getProjectTimelineAdapter(projectId);\r\n await timelineAdapter.remove(\"timeline\");\r\n }\r\n\r\n // Utility methods\r\n async clearAllData(): Promise {\r\n // Clear all projects\r\n await this.projectsAdapter.clear();\r\n\r\n // Note: Project-specific media and timelines will be cleaned up when projects are deleted\r\n }\r\n\r\n async getStorageInfo(): Promise<{\r\n projects: number;\r\n isOPFSSupported: boolean;\r\n isIndexedDBSupported: boolean;\r\n }> {\r\n const projectIds = await this.projectsAdapter.list();\r\n\r\n return {\r\n projects: projectIds.length,\r\n isOPFSSupported: this.isOPFSSupported(),\r\n isIndexedDBSupported: this.isIndexedDBSupported(),\r\n };\r\n }\r\n\r\n async getProjectStorageInfo(projectId: string): Promise<{\r\n mediaItems: number;\r\n hasTimeline: boolean;\r\n }> {\r\n const { mediaMetadataAdapter } = this.getProjectMediaAdapters(projectId);\r\n const timelineAdapter = this.getProjectTimelineAdapter(projectId);\r\n\r\n const [mediaIds, timelineData] = await Promise.all([\r\n mediaMetadataAdapter.list(),\r\n timelineAdapter.get(\"timeline\"),\r\n ]);\r\n\r\n return {\r\n mediaItems: mediaIds.length,\r\n hasTimeline: !!timelineData,\r\n };\r\n }\r\n\r\n async loadSavedSounds(): Promise {\r\n try {\r\n const savedSoundsData = await this.savedSoundsAdapter.get(\"user-sounds\");\r\n return (\r\n savedSoundsData || {\r\n sounds: [],\r\n lastModified: new Date().toISOString(),\r\n }\r\n );\r\n } catch (error) {\r\n console.error(\"Failed to load saved sounds:\", error);\r\n return { sounds: [], lastModified: new Date().toISOString() };\r\n }\r\n }\r\n\r\n async saveSoundEffect(soundEffect: SoundEffect): Promise {\r\n try {\r\n const currentData = await this.loadSavedSounds();\r\n\r\n // Check if sound is already saved\r\n if (currentData.sounds.some((sound) => sound.id === soundEffect.id)) {\r\n return; // Already saved\r\n }\r\n\r\n const savedSound: SavedSound = {\r\n id: soundEffect.id,\r\n name: soundEffect.name,\r\n username: soundEffect.username,\r\n previewUrl: soundEffect.previewUrl,\r\n downloadUrl: soundEffect.downloadUrl,\r\n duration: soundEffect.duration,\r\n tags: soundEffect.tags,\r\n license: soundEffect.license,\r\n savedAt: new Date().toISOString(),\r\n };\r\n\r\n const updatedData: SavedSoundsData = {\r\n sounds: [...currentData.sounds, savedSound],\r\n lastModified: new Date().toISOString(),\r\n };\r\n\r\n await this.savedSoundsAdapter.set(\"user-sounds\", updatedData);\r\n } catch (error) {\r\n console.error(\"Failed to save sound effect:\", error);\r\n throw error;\r\n }\r\n }\r\n\r\n async removeSavedSound(soundId: number): Promise {\r\n try {\r\n const currentData = await this.loadSavedSounds();\r\n\r\n const updatedData: SavedSoundsData = {\r\n sounds: currentData.sounds.filter((sound) => sound.id !== soundId),\r\n lastModified: new Date().toISOString(),\r\n };\r\n\r\n await this.savedSoundsAdapter.set(\"user-sounds\", updatedData);\r\n } catch (error) {\r\n console.error(\"Failed to remove saved sound:\", error);\r\n throw error;\r\n }\r\n }\r\n\r\n async isSoundSaved(soundId: number): Promise {\r\n try {\r\n const currentData = await this.loadSavedSounds();\r\n return currentData.sounds.some((sound) => sound.id === soundId);\r\n } catch (error) {\r\n console.error(\"Failed to check if sound is saved:\", error);\r\n return false;\r\n }\r\n }\r\n\r\n async clearSavedSounds(): Promise {\r\n try {\r\n await this.savedSoundsAdapter.remove(\"user-sounds\");\r\n } catch (error) {\r\n console.error(\"Failed to clear saved sounds:\", error);\r\n throw error;\r\n }\r\n }\r\n\r\n // Check browser support\r\n isOPFSSupported(): boolean {\r\n return OPFSAdapter.isSupported();\r\n }\r\n\r\n isIndexedDBSupported(): boolean {\r\n return \"indexedDB\" in window;\r\n }\r\n\r\n isFullySupported(): boolean {\r\n return this.isIndexedDBSupported() && this.isOPFSSupported();\r\n }\r\n}\r\n\r\n// Export singleton instance\r\nexport const storageService = new StorageService();\r\nexport { StorageService };\r\n","import { create } from \"zustand\";\r\nimport { CanvasSize, CanvasPreset } from \"@/types/editor\";\r\n\r\ntype CanvasMode = \"preset\" | \"original\" | \"custom\";\r\n\r\ninterface EditorState {\r\n // Loading states\r\n isInitializing: boolean;\r\n isPanelsReady: boolean;\r\n\r\n // Canvas/Project settings\r\n canvasSize: CanvasSize;\r\n canvasMode: CanvasMode;\r\n canvasPresets: CanvasPreset[];\r\n\r\n // Actions\r\n setInitializing: (loading: boolean) => void;\r\n setPanelsReady: (ready: boolean) => void;\r\n initializeApp: () => Promise;\r\n setCanvasSize: (size: CanvasSize) => void;\r\n setCanvasSizeToOriginal: (aspectRatio: number) => void;\r\n setCanvasSizeFromAspectRatio: (aspectRatio: number) => void;\r\n}\r\n\r\nconst DEFAULT_CANVAS_PRESETS: CanvasPreset[] = [\r\n { name: \"16:9\", width: 1920, height: 1080 },\r\n { name: \"9:16\", width: 1080, height: 1920 },\r\n { name: \"1:1\", width: 1080, height: 1080 },\r\n { name: \"4:3\", width: 1440, height: 1080 },\r\n];\r\n\r\n// Helper function to find the best matching canvas preset for an aspect ratio\r\nconst findBestCanvasPreset = (aspectRatio: number): CanvasSize => {\r\n // Calculate aspect ratio for each preset and find the closest match\r\n let bestMatch = DEFAULT_CANVAS_PRESETS[0]; // Default to 16:9 HD\r\n let smallestDifference = Math.abs(\r\n aspectRatio - bestMatch.width / bestMatch.height\r\n );\r\n\r\n for (const preset of DEFAULT_CANVAS_PRESETS) {\r\n const presetAspectRatio = preset.width / preset.height;\r\n const difference = Math.abs(aspectRatio - presetAspectRatio);\r\n\r\n if (difference < smallestDifference) {\r\n smallestDifference = difference;\r\n bestMatch = preset;\r\n }\r\n }\r\n\r\n // If the difference is still significant (> 0.1), create a custom size\r\n // based on the media aspect ratio with a reasonable resolution\r\n const bestAspectRatio = bestMatch.width / bestMatch.height;\r\n if (Math.abs(aspectRatio - bestAspectRatio) > 0.1) {\r\n // Create custom dimensions based on the aspect ratio\r\n if (aspectRatio > 1) {\r\n // Landscape - use 1920 width\r\n return { width: 1920, height: Math.round(1920 / aspectRatio) };\r\n }\r\n // Portrait or square - use 1080 height\r\n return { width: Math.round(1080 * aspectRatio), height: 1080 };\r\n }\r\n\r\n return { width: bestMatch.width, height: bestMatch.height };\r\n};\r\n\r\nexport const useEditorStore = create((set, get) => ({\r\n // Initial states\r\n isInitializing: true,\r\n isPanelsReady: false,\r\n canvasSize: { width: 1920, height: 1080 }, // Default 16:9 HD\r\n canvasMode: \"preset\" as CanvasMode,\r\n canvasPresets: DEFAULT_CANVAS_PRESETS,\r\n\r\n // Actions\r\n setInitializing: (loading) => {\r\n set({ isInitializing: loading });\r\n },\r\n\r\n setPanelsReady: (ready) => {\r\n set({ isPanelsReady: ready });\r\n },\r\n\r\n initializeApp: async () => {\r\n console.log(\"Initializing video editor...\");\r\n set({ isInitializing: true, isPanelsReady: false });\r\n\r\n set({ isPanelsReady: true, isInitializing: false });\r\n console.log(\"Video editor ready\");\r\n },\r\n\r\n setCanvasSize: (size) => {\r\n set({ canvasSize: size, canvasMode: \"preset\" });\r\n },\r\n\r\n setCanvasSizeToOriginal: (aspectRatio) => {\r\n const newCanvasSize = findBestCanvasPreset(aspectRatio);\r\n set({ canvasSize: newCanvasSize, canvasMode: \"original\" });\r\n },\r\n\r\n setCanvasSizeFromAspectRatio: (aspectRatio) => {\r\n const newCanvasSize = findBestCanvasPreset(aspectRatio);\r\n set({ canvasSize: newCanvasSize, canvasMode: \"custom\" });\r\n },\r\n}));\r\n","import { create } from \"zustand\";\r\nimport { storageService } from \"@/lib/storage/storage-service\";\r\nimport { useTimelineStore } from \"./timeline-store\";\r\nimport { generateUUID } from \"@/lib/utils\";\r\n\r\nexport type MediaType = \"image\" | \"video\" | \"audio\";\r\n\r\nexport interface MediaItem {\r\n id: string;\r\n name: string;\r\n type: MediaType;\r\n file: File;\r\n url?: string; // Object URL for preview\r\n thumbnailUrl?: string; // For video thumbnails\r\n duration?: number; // For video/audio duration\r\n width?: number; // For video/image width\r\n height?: number; // For video/image height\r\n fps?: number; // For video frame rate\r\n // Text-specific properties\r\n content?: string; // Text content\r\n fontSize?: number; // Font size\r\n fontFamily?: string; // Font family\r\n color?: string; // Text color\r\n backgroundColor?: string; // Background color\r\n textAlign?: \"left\" | \"center\" | \"right\"; // Text alignment\r\n}\r\n\r\ninterface MediaStore {\r\n mediaItems: MediaItem[];\r\n isLoading: boolean;\r\n\r\n // Actions - now require projectId\r\n addMediaItem: (\r\n projectId: string,\r\n item: Omit\r\n ) => Promise;\r\n removeMediaItem: (projectId: string, id: string) => Promise;\r\n loadProjectMedia: (projectId: string) => Promise;\r\n clearProjectMedia: (projectId: string) => Promise;\r\n clearAllMedia: () => void; // Clear local state only\r\n}\r\n\r\n// Helper function to determine file type\r\nexport const getFileType = (file: File): MediaType | null => {\r\n const { type } = file;\r\n\r\n if (type.startsWith(\"image/\")) {\r\n return \"image\";\r\n }\r\n if (type.startsWith(\"video/\")) {\r\n return \"video\";\r\n }\r\n if (type.startsWith(\"audio/\")) {\r\n return \"audio\";\r\n }\r\n\r\n return null;\r\n};\r\n\r\n// Helper function to get image dimensions\r\nexport const getImageDimensions = (\r\n file: File\r\n): Promise<{ width: number; height: number }> => {\r\n return new Promise((resolve, reject) => {\r\n const img = new window.Image();\r\n\r\n img.addEventListener(\"load\", () => {\r\n const width = img.naturalWidth;\r\n const height = img.naturalHeight;\r\n resolve({ width, height });\r\n img.remove();\r\n });\r\n\r\n img.addEventListener(\"error\", () => {\r\n reject(new Error(\"Could not load image\"));\r\n img.remove();\r\n });\r\n\r\n img.src = URL.createObjectURL(file);\r\n });\r\n};\r\n\r\n// Helper function to generate video thumbnail and get dimensions\r\nexport const generateVideoThumbnail = (\r\n file: File\r\n): Promise<{ thumbnailUrl: string; width: number; height: number }> => {\r\n return new Promise((resolve, reject) => {\r\n const video = document.createElement(\"video\") as HTMLVideoElement;\r\n const canvas = document.createElement(\"canvas\") as HTMLCanvasElement;\r\n const ctx = canvas.getContext(\"2d\");\r\n\r\n if (!ctx) {\r\n reject(new Error(\"Could not get canvas context\"));\r\n return;\r\n }\r\n\r\n video.addEventListener(\"loadedmetadata\", () => {\r\n canvas.width = video.videoWidth;\r\n canvas.height = video.videoHeight;\r\n\r\n // Seek to 1 second or 10% of duration, whichever is smaller\r\n video.currentTime = Math.min(1, video.duration * 0.1);\r\n });\r\n\r\n video.addEventListener(\"seeked\", () => {\r\n ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\r\n const thumbnailUrl = canvas.toDataURL(\"image/jpeg\", 0.8);\r\n const width = video.videoWidth;\r\n const height = video.videoHeight;\r\n\r\n resolve({ thumbnailUrl, width, height });\r\n\r\n // Cleanup\r\n video.remove();\r\n canvas.remove();\r\n });\r\n\r\n video.addEventListener(\"error\", () => {\r\n reject(new Error(\"Could not load video\"));\r\n video.remove();\r\n canvas.remove();\r\n });\r\n\r\n video.src = URL.createObjectURL(file);\r\n video.load();\r\n });\r\n};\r\n\r\n// Helper function to get media duration\r\nexport const getMediaDuration = (file: File): Promise => {\r\n return new Promise((resolve, reject) => {\r\n const element = document.createElement(\r\n file.type.startsWith(\"video/\") ? \"video\" : \"audio\"\r\n ) as HTMLVideoElement;\r\n\r\n element.addEventListener(\"loadedmetadata\", () => {\r\n resolve(element.duration);\r\n element.remove();\r\n });\r\n\r\n element.addEventListener(\"error\", () => {\r\n reject(new Error(\"Could not load media\"));\r\n element.remove();\r\n });\r\n\r\n element.src = URL.createObjectURL(file);\r\n element.load();\r\n });\r\n};\r\n\r\n// Helper to get aspect ratio from MediaItem\r\nexport const getMediaAspectRatio = (item: MediaItem): number => {\r\n if (item.width && item.height) {\r\n return item.width / item.height;\r\n }\r\n return 16 / 9; // Default aspect ratio\r\n};\r\n\r\nexport const useMediaStore = create((set, get) => ({\r\n mediaItems: [],\r\n isLoading: false,\r\n\r\n addMediaItem: async (projectId, item) => {\r\n const newItem: MediaItem = {\r\n ...item,\r\n id: generateUUID(),\r\n };\r\n\r\n // Add to local state immediately for UI responsiveness\r\n set((state) => ({\r\n mediaItems: [...state.mediaItems, newItem],\r\n }));\r\n\r\n // Save to persistent storage in background\r\n try {\r\n await storageService.saveMediaItem(projectId, newItem);\r\n } catch (error) {\r\n console.error(\"Failed to save media item:\", error);\r\n // Remove from local state if save failed\r\n set((state) => ({\r\n mediaItems: state.mediaItems.filter((media) => media.id !== newItem.id),\r\n }));\r\n }\r\n },\r\n\r\n removeMediaItem: async (projectId: string, id: string) => {\r\n const state = get();\r\n const item = state.mediaItems.find((media) => media.id === id);\r\n\r\n // Cleanup object URLs to prevent memory leaks\r\n if (item?.url) {\r\n URL.revokeObjectURL(item.url);\r\n if (item.thumbnailUrl) {\r\n URL.revokeObjectURL(item.thumbnailUrl);\r\n }\r\n }\r\n\r\n // 1) Remove from local state immediately\r\n set((state) => ({\r\n mediaItems: state.mediaItems.filter((media) => media.id !== id),\r\n }));\r\n\r\n // 2) Cascade into the timeline: remove any elements using this media ID\r\n const timeline = useTimelineStore.getState();\r\n const {\r\n tracks,\r\n removeElementFromTrack,\r\n removeElementFromTrackWithRipple,\r\n rippleEditingEnabled,\r\n pushHistory,\r\n } = timeline;\r\n\r\n // Find all elements that reference this media\r\n const elementsToRemove: Array<{ trackId: string; elementId: string }> = [];\r\n for (const track of tracks) {\r\n for (const el of track.elements) {\r\n if (el.type === \"media\" && el.mediaId === id) {\r\n elementsToRemove.push({ trackId: track.id, elementId: el.id });\r\n }\r\n }\r\n }\r\n\r\n // If there are elements to remove, push history once before batch removal\r\n if (elementsToRemove.length > 0) {\r\n pushHistory();\r\n\r\n // Remove all elements without pushing additional history entries\r\n for (const { trackId, elementId } of elementsToRemove) {\r\n if (rippleEditingEnabled) {\r\n removeElementFromTrackWithRipple(trackId, elementId, false);\r\n } else {\r\n removeElementFromTrack(trackId, elementId, false);\r\n }\r\n }\r\n }\r\n\r\n // 3) Remove from persistent storage\r\n try {\r\n await storageService.deleteMediaItem(projectId, id);\r\n } catch (error) {\r\n console.error(\"Failed to delete media item:\", error);\r\n }\r\n },\r\n\r\n loadProjectMedia: async (projectId) => {\r\n set({ isLoading: true });\r\n\r\n try {\r\n const mediaItems = await storageService.loadAllMediaItems(projectId);\r\n\r\n // Regenerate thumbnails for video items\r\n const updatedMediaItems = await Promise.all(\r\n mediaItems.map(async (item) => {\r\n if (item.type === \"video\" && item.file) {\r\n try {\r\n const { thumbnailUrl, width, height } =\r\n await generateVideoThumbnail(item.file);\r\n return {\r\n ...item,\r\n thumbnailUrl,\r\n width: width || item.width,\r\n height: height || item.height,\r\n };\r\n } catch (error) {\r\n console.error(\r\n `Failed to regenerate thumbnail for video ${item.id}:`,\r\n error\r\n );\r\n return item;\r\n }\r\n }\r\n return item;\r\n })\r\n );\r\n\r\n set({ mediaItems: updatedMediaItems });\r\n } catch (error) {\r\n console.error(\"Failed to load media items:\", error);\r\n } finally {\r\n set({ isLoading: false });\r\n }\r\n },\r\n\r\n clearProjectMedia: async (projectId) => {\r\n const state = get();\r\n\r\n // Cleanup all object URLs\r\n state.mediaItems.forEach((item) => {\r\n if (item.url) {\r\n URL.revokeObjectURL(item.url);\r\n }\r\n if (item.thumbnailUrl) {\r\n URL.revokeObjectURL(item.thumbnailUrl);\r\n }\r\n });\r\n\r\n // Clear local state\r\n set({ mediaItems: [] });\r\n\r\n // Clear persistent storage\r\n try {\r\n const mediaIds = state.mediaItems.map((item) => item.id);\r\n await Promise.all(\r\n mediaIds.map((id) => storageService.deleteMediaItem(projectId, id))\r\n );\r\n } catch (error) {\r\n console.error(\"Failed to clear media items from storage:\", error);\r\n }\r\n },\r\n\r\n clearAllMedia: () => {\r\n const state = get();\r\n\r\n // Cleanup all object URLs\r\n state.mediaItems.forEach((item) => {\r\n if (item.url) {\r\n URL.revokeObjectURL(item.url);\r\n }\r\n if (item.thumbnailUrl) {\r\n URL.revokeObjectURL(item.thumbnailUrl);\r\n }\r\n });\r\n\r\n // Clear local state\r\n set({ mediaItems: [] });\r\n },\r\n}));\r\n","import { TProject } from \"@/types/project\";\r\nimport { create } from \"zustand\";\r\nimport { storageService } from \"@/lib/storage/storage-service\";\r\nimport { toast } from \"sonner\";\r\nimport { useMediaStore } from \"./media-store\";\r\nimport { useTimelineStore } from \"./timeline-store\";\r\nimport { generateUUID } from \"@/lib/utils\";\r\n\r\ninterface ProjectStore {\r\n activeProject: TProject | null;\r\n savedProjects: TProject[];\r\n isLoading: boolean;\r\n isInitialized: boolean;\r\n invalidProjectIds?: Set;\r\n\r\n // Actions\r\n createNewProject: (name: string) => Promise;\r\n loadProject: (id: string) => Promise;\r\n saveCurrentProject: () => Promise;\r\n loadAllProjects: () => Promise;\r\n deleteProject: (id: string) => Promise;\r\n closeProject: () => void;\r\n renameProject: (projectId: string, name: string) => Promise;\r\n duplicateProject: (projectId: string) => Promise;\r\n updateProjectBackground: (backgroundColor: string) => Promise;\r\n updateBackgroundType: (\r\n type: \"color\" | \"blur\",\r\n options?: { backgroundColor?: string; blurIntensity?: number }\r\n ) => Promise;\r\n updateProjectFps: (fps: number) => Promise;\r\n\r\n // Bookmark methods\r\n toggleBookmark: (time: number) => Promise;\r\n isBookmarked: (time: number) => boolean;\r\n removeBookmark: (time: number) => Promise;\r\n\r\n getFilteredAndSortedProjects: (\r\n searchQuery: string,\r\n sortOption: string\r\n ) => TProject[];\r\n\r\n // Global invalid project ID tracking\r\n isInvalidProjectId: (id: string) => boolean;\r\n markProjectIdAsInvalid: (id: string) => void;\r\n clearInvalidProjectIds: () => void;\r\n}\r\n\r\nexport const useProjectStore = create((set, get) => ({\r\n activeProject: null,\r\n savedProjects: [],\r\n isLoading: true,\r\n isInitialized: false,\r\n invalidProjectIds: new Set(),\r\n\r\n // Implementation of bookmark methods\r\n toggleBookmark: async (time: number) => {\r\n const { activeProject } = get();\r\n if (!activeProject) return;\r\n\r\n // Round time to the nearest frame\r\n const fps = activeProject.fps || 30;\r\n const frameTime = Math.round(time * fps) / fps;\r\n\r\n const bookmarks = activeProject.bookmarks || [];\r\n let updatedBookmarks: number[];\r\n\r\n // Check if already bookmarked\r\n const bookmarkIndex = bookmarks.findIndex(\r\n (bookmark) => Math.abs(bookmark - frameTime) < 0.001\r\n );\r\n\r\n if (bookmarkIndex !== -1) {\r\n // Remove bookmark\r\n updatedBookmarks = bookmarks.filter((_, i) => i !== bookmarkIndex);\r\n } else {\r\n // Add bookmark\r\n updatedBookmarks = [...bookmarks, frameTime].sort((a, b) => a - b);\r\n }\r\n\r\n const updatedProject = {\r\n ...activeProject,\r\n bookmarks: updatedBookmarks,\r\n updatedAt: new Date(),\r\n };\r\n\r\n try {\r\n await storageService.saveProject(updatedProject);\r\n set({ activeProject: updatedProject });\r\n await get().loadAllProjects(); // Refresh the list\r\n } catch (error) {\r\n console.error(\"Failed to update project bookmarks:\", error);\r\n toast.error(\"Failed to update bookmarks\", {\r\n description: \"Please try again\",\r\n });\r\n }\r\n },\r\n\r\n isBookmarked: (time: number) => {\r\n const { activeProject } = get();\r\n if (!activeProject || !activeProject.bookmarks) return false;\r\n\r\n // Round time to the nearest frame\r\n const fps = activeProject.fps || 30;\r\n const frameTime = Math.round(time * fps) / fps;\r\n\r\n return activeProject.bookmarks.some(\r\n (bookmark) => Math.abs(bookmark - frameTime) < 0.001\r\n );\r\n },\r\n\r\n removeBookmark: async (time: number) => {\r\n const { activeProject } = get();\r\n if (!activeProject || !activeProject.bookmarks) return;\r\n\r\n // Round time to the nearest frame\r\n const fps = activeProject.fps || 30;\r\n const frameTime = Math.round(time * fps) / fps;\r\n\r\n const updatedBookmarks = activeProject.bookmarks.filter(\r\n (bookmark) => Math.abs(bookmark - frameTime) >= 0.001\r\n );\r\n\r\n if (updatedBookmarks.length === activeProject.bookmarks.length) {\r\n // No bookmark found to remove\r\n return;\r\n }\r\n\r\n const updatedProject = {\r\n ...activeProject,\r\n bookmarks: updatedBookmarks,\r\n updatedAt: new Date(),\r\n };\r\n\r\n try {\r\n await storageService.saveProject(updatedProject);\r\n set({ activeProject: updatedProject });\r\n await get().loadAllProjects(); // Refresh the list\r\n } catch (error) {\r\n console.error(\"Failed to update project bookmarks:\", error);\r\n toast.error(\"Failed to remove bookmark\", {\r\n description: \"Please try again\",\r\n });\r\n }\r\n },\r\n\r\n createNewProject: async (name: string) => {\r\n const newProject: TProject = {\r\n id: generateUUID(),\r\n name,\r\n thumbnail: \"\",\r\n createdAt: new Date(),\r\n updatedAt: new Date(),\r\n backgroundColor: \"#000000\",\r\n backgroundType: \"color\",\r\n blurIntensity: 8,\r\n bookmarks: [],\r\n fps: 30,\r\n };\r\n\r\n set({ activeProject: newProject });\r\n\r\n try {\r\n await storageService.saveProject(newProject);\r\n // Reload all projects to update the list\r\n await get().loadAllProjects();\r\n return newProject.id;\r\n } catch (error) {\r\n toast.error(\"Failed to save new project\");\r\n throw error;\r\n }\r\n },\r\n\r\n loadProject: async (id: string) => {\r\n if (!get().isInitialized) {\r\n set({ isLoading: true });\r\n }\r\n\r\n // Clear media and timeline immediately to prevent flickering when switching projects\r\n const mediaStore = useMediaStore.getState();\r\n const timelineStore = useTimelineStore.getState();\r\n mediaStore.clearAllMedia();\r\n timelineStore.clearTimeline();\r\n\r\n try {\r\n const project = await storageService.loadProject(id);\r\n if (project) {\r\n set({ activeProject: project });\r\n\r\n // Load project-specific data in parallel\r\n await Promise.all([\r\n mediaStore.loadProjectMedia(id),\r\n timelineStore.loadProjectTimeline(id),\r\n ]);\r\n } else {\r\n throw new Error(`Project with id ${id} not found`);\r\n }\r\n } catch (error) {\r\n console.error(\"Failed to load project:\", error);\r\n throw error; // Re-throw so the editor page can handle it\r\n } finally {\r\n set({ isLoading: false });\r\n }\r\n },\r\n\r\n saveCurrentProject: async () => {\r\n const { activeProject } = get();\r\n if (!activeProject) return;\r\n\r\n try {\r\n // Save project metadata and timeline data in parallel\r\n const timelineStore = useTimelineStore.getState();\r\n await Promise.all([\r\n storageService.saveProject(activeProject),\r\n timelineStore.saveProjectTimeline(activeProject.id),\r\n ]);\r\n await get().loadAllProjects(); // Refresh the list\r\n } catch (error) {\r\n console.error(\"Failed to save project:\", error);\r\n }\r\n },\r\n\r\n loadAllProjects: async () => {\r\n if (!get().isInitialized) {\r\n set({ isLoading: true });\r\n }\r\n\r\n try {\r\n const projects = await storageService.loadAllProjects();\r\n set({ savedProjects: projects });\r\n } catch (error) {\r\n console.error(\"Failed to load projects:\", error);\r\n } finally {\r\n set({ isLoading: false, isInitialized: true });\r\n }\r\n },\r\n\r\n deleteProject: async (id: string) => {\r\n try {\r\n // Delete project data in parallel\r\n await Promise.all([\r\n storageService.deleteProjectMedia(id),\r\n storageService.deleteProjectTimeline(id),\r\n storageService.deleteProject(id),\r\n ]);\r\n await get().loadAllProjects(); // Refresh the list\r\n\r\n // If we deleted the active project, close it and clear data\r\n const { activeProject } = get();\r\n if (activeProject?.id === id) {\r\n set({ activeProject: null });\r\n const mediaStore = useMediaStore.getState();\r\n const timelineStore = useTimelineStore.getState();\r\n mediaStore.clearAllMedia();\r\n timelineStore.clearTimeline();\r\n }\r\n } catch (error) {\r\n console.error(\"Failed to delete project:\", error);\r\n }\r\n },\r\n\r\n closeProject: () => {\r\n set({ activeProject: null });\r\n\r\n // Clear data from stores when closing project\r\n const mediaStore = useMediaStore.getState();\r\n const timelineStore = useTimelineStore.getState();\r\n mediaStore.clearAllMedia();\r\n timelineStore.clearTimeline();\r\n },\r\n\r\n renameProject: async (id: string, name: string) => {\r\n const { savedProjects } = get();\r\n\r\n // Find the project to rename\r\n const projectToRename = savedProjects.find((p) => p.id === id);\r\n if (!projectToRename) {\r\n toast.error(\"Project not found\", {\r\n description: \"Please try again\",\r\n });\r\n return;\r\n }\r\n\r\n const updatedProject = {\r\n ...projectToRename,\r\n name,\r\n updatedAt: new Date(),\r\n };\r\n\r\n try {\r\n // Save to storage\r\n await storageService.saveProject(updatedProject);\r\n\r\n await get().loadAllProjects();\r\n\r\n // Update activeProject if it's the same project\r\n const { activeProject } = get();\r\n if (activeProject?.id === id) {\r\n set({ activeProject: updatedProject });\r\n }\r\n } catch (error) {\r\n console.error(\"Failed to rename project:\", error);\r\n toast.error(\"Failed to rename project\", {\r\n description:\r\n error instanceof Error ? error.message : \"Please try again\",\r\n });\r\n }\r\n },\r\n\r\n duplicateProject: async (projectId: string) => {\r\n try {\r\n const project = await storageService.loadProject(projectId);\r\n if (!project) {\r\n toast.error(\"Project not found\", {\r\n description: \"Please try again\",\r\n });\r\n throw new Error(\"Project not found\");\r\n }\r\n\r\n const { savedProjects } = get();\r\n\r\n // Extract the base name (remove any existing numbering)\r\n const numberMatch = project.name.match(/^\\((\\d+)\\)\\s+(.+)$/);\r\n const baseName = numberMatch ? numberMatch[2] : project.name;\r\n const existingNumbers: number[] = [];\r\n\r\n // Check for pattern \"(number) baseName\" in existing projects\r\n savedProjects.forEach((p) => {\r\n const match = p.name.match(/^\\((\\d+)\\)\\s+(.+)$/);\r\n if (match && match[2] === baseName) {\r\n existingNumbers.push(parseInt(match[1], 10));\r\n }\r\n });\r\n\r\n const nextNumber =\r\n existingNumbers.length > 0 ? Math.max(...existingNumbers) + 1 : 1;\r\n\r\n const newProject: TProject = {\r\n ...project, // Copy all properties from the original project\r\n id: generateUUID(),\r\n name: `(${nextNumber}) ${baseName}`,\r\n createdAt: new Date(),\r\n updatedAt: new Date(),\r\n };\r\n\r\n await storageService.saveProject(newProject);\r\n await get().loadAllProjects();\r\n return newProject.id;\r\n } catch (error) {\r\n console.error(\"Failed to duplicate project:\", error);\r\n toast.error(\"Failed to duplicate project\", {\r\n description:\r\n error instanceof Error ? error.message : \"Please try again\",\r\n });\r\n throw error;\r\n }\r\n },\r\n\r\n updateProjectBackground: async (backgroundColor: string) => {\r\n const { activeProject } = get();\r\n if (!activeProject) return;\r\n\r\n const updatedProject = {\r\n ...activeProject,\r\n backgroundColor,\r\n updatedAt: new Date(),\r\n };\r\n\r\n try {\r\n await storageService.saveProject(updatedProject);\r\n set({ activeProject: updatedProject });\r\n await get().loadAllProjects(); // Refresh the list\r\n } catch (error) {\r\n console.error(\"Failed to update project background:\", error);\r\n toast.error(\"Failed to update background\", {\r\n description: \"Please try again\",\r\n });\r\n }\r\n },\r\n\r\n updateBackgroundType: async (\r\n type: \"color\" | \"blur\",\r\n options?: { backgroundColor?: string; blurIntensity?: number }\r\n ) => {\r\n const { activeProject } = get();\r\n if (!activeProject) return;\r\n\r\n const updatedProject = {\r\n ...activeProject,\r\n backgroundType: type,\r\n ...(options?.backgroundColor && {\r\n backgroundColor: options.backgroundColor,\r\n }),\r\n ...(options?.blurIntensity && { blurIntensity: options.blurIntensity }),\r\n updatedAt: new Date(),\r\n };\r\n\r\n try {\r\n await storageService.saveProject(updatedProject);\r\n set({ activeProject: updatedProject });\r\n await get().loadAllProjects(); // Refresh the list\r\n } catch (error) {\r\n console.error(\"Failed to update background type:\", error);\r\n toast.error(\"Failed to update background\", {\r\n description: \"Please try again\",\r\n });\r\n }\r\n },\r\n\r\n updateProjectFps: async (fps: number) => {\r\n const { activeProject } = get();\r\n if (!activeProject) return;\r\n\r\n const updatedProject = {\r\n ...activeProject,\r\n fps,\r\n updatedAt: new Date(),\r\n };\r\n\r\n try {\r\n await storageService.saveProject(updatedProject);\r\n set({ activeProject: updatedProject });\r\n await get().loadAllProjects(); // Refresh the list\r\n } catch (error) {\r\n console.error(\"Failed to update project FPS:\", error);\r\n toast.error(\"Failed to update project FPS\", {\r\n description: \"Please try again\",\r\n });\r\n }\r\n },\r\n\r\n getFilteredAndSortedProjects: (searchQuery: string, sortOption: string) => {\r\n const { savedProjects } = get();\r\n\r\n // Filter projects by search query\r\n const filteredProjects = savedProjects.filter((project) =>\r\n project.name.toLowerCase().includes(searchQuery.toLowerCase())\r\n );\r\n\r\n // Sort filtered projects\r\n const sortedProjects = [...filteredProjects].sort((a, b) => {\r\n const [key, order] = sortOption.split(\"-\");\r\n\r\n if (key !== \"createdAt\" && key !== \"name\") {\r\n console.warn(`Invalid sort key: ${key}`);\r\n return 0;\r\n }\r\n\r\n const aValue = a[key];\r\n const bValue = b[key];\r\n\r\n if (aValue === undefined || bValue === undefined) return 0;\r\n\r\n if (order === \"asc\") {\r\n if (aValue < bValue) return -1;\r\n if (aValue > bValue) return 1;\r\n return 0;\r\n }\r\n if (aValue > bValue) return -1;\r\n if (aValue < bValue) return 1;\r\n return 0;\r\n });\r\n\r\n return sortedProjects;\r\n },\r\n\r\n // Global invalid project ID tracking implementation\r\n isInvalidProjectId: (id: string) => {\r\n const invalidIds = get().invalidProjectIds || new Set();\r\n return invalidIds.has(id);\r\n },\r\n\r\n markProjectIdAsInvalid: (id: string) => {\r\n set((state) => ({\r\n invalidProjectIds: new Set([\r\n ...(state.invalidProjectIds || new Set()),\r\n id,\r\n ]),\r\n }));\r\n },\r\n\r\n clearInvalidProjectIds: () => {\r\n set({ invalidProjectIds: new Set() });\r\n },\r\n}));\r\n","import type { TrackType } from \"@/types/timeline\";\r\n\r\n// Track color definitions\r\nexport const TRACK_COLORS: Record<\r\n TrackType,\r\n { solid: string; background: string; border: string }\r\n> = {\r\n media: {\r\n solid: \"bg-blue-500\",\r\n background: \"\",\r\n border: \"\",\r\n },\r\n text: {\r\n solid: \"bg-[#5DBAA0]\",\r\n background: \"bg-[#5DBAA0]\",\r\n border: \"\",\r\n },\r\n audio: {\r\n solid: \"bg-green-500\",\r\n background: \"bg-[#915DBE]\",\r\n border: \"\",\r\n },\r\n} as const;\r\n\r\n// Utility functions\r\nexport function getTrackColors(type: TrackType) {\r\n return TRACK_COLORS[type];\r\n}\r\n\r\nexport function getTrackElementClasses(type: TrackType) {\r\n const colors = getTrackColors(type);\r\n return `${colors.background} ${colors.border}`;\r\n}\r\n\r\n// Track height definitions\r\nexport const TRACK_HEIGHTS: Record = {\r\n media: 60,\r\n text: 25,\r\n audio: 50,\r\n} as const;\r\n\r\n// Utility function for track heights\r\nexport function getTrackHeight(type: TrackType): number {\r\n return TRACK_HEIGHTS[type];\r\n}\r\n\r\n// Calculate cumulative height up to (but not including) a track index\r\nexport function getCumulativeHeightBefore(\r\n tracks: Array<{ type: TrackType }>,\r\n trackIndex: number\r\n): number {\r\n const GAP = 4; // 4px gap between tracks (equivalent to Tailwind's gap-1)\r\n return tracks\r\n .slice(0, trackIndex)\r\n .reduce((sum, track) => sum + getTrackHeight(track.type) + GAP, 0);\r\n}\r\n\r\n// Calculate total height of all tracks\r\nexport function getTotalTracksHeight(\r\n tracks: Array<{ type: TrackType }>\r\n): number {\r\n const GAP = 4; // 4px gap between tracks (equivalent to Tailwind's gap-1)\r\n const tracksHeight = tracks.reduce(\r\n (sum, track) => sum + getTrackHeight(track.type),\r\n 0\r\n );\r\n const gapsHeight = Math.max(0, tracks.length - 1) * GAP; // n-1 gaps for n tracks\r\n return tracksHeight + gapsHeight;\r\n}\r\n\r\n// Other timeline constants\r\nexport const TIMELINE_CONSTANTS = {\r\n ELEMENT_MIN_WIDTH: 80,\r\n PIXELS_PER_SECOND: 50,\r\n TRACK_HEIGHT: 60, // Default fallback\r\n DEFAULT_TEXT_DURATION: 5,\r\n DEFAULT_IMAGE_DURATION: 5,\r\n ZOOM_LEVELS: [0.25, 0.5, 1, 1.5, 2, 3, 4],\r\n} as const;\r\n\r\n// FPS presets for project settings\r\nexport const FPS_PRESETS = [\r\n { value: \"24\", label: \"24 fps\" },\r\n { value: \"25\", label: \"25 fps\" },\r\n { value: \"30\", label: \"30 fps\" },\r\n { value: \"60\", label: \"60 fps\" },\r\n { value: \"120\", label: \"120 fps\" },\r\n] as const;\r\n\r\n// Frame snapping utilities\r\nexport function timeToFrame(time: number, fps: number): number {\r\n return Math.round(time * fps);\r\n}\r\n\r\nexport function frameToTime(frame: number, fps: number): number {\r\n return frame / fps;\r\n}\r\n\r\nexport function snapTimeToFrame(time: number, fps: number): number {\r\n if (fps <= 0) return time; // Fallback for invalid FPS\r\n const frame = timeToFrame(time, fps);\r\n return frameToTime(frame, fps);\r\n}\r\n\r\nexport function getFrameDuration(fps: number): number {\r\n return 1 / fps;\r\n}\r\n","// Generic utilities\r\n\r\nimport { type ClassValue, clsx } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n\r\n/**\r\n * Generates a UUID v4 string\r\n * Uses crypto.randomUUID() if available, otherwise falls back to a custom implementation\r\n */\r\nexport function generateUUID(): string {\r\n // Use the native crypto.randomUUID if available\r\n if (\r\n typeof crypto !== \"undefined\" &&\r\n typeof crypto.randomUUID === \"function\"\r\n ) {\r\n return crypto.randomUUID();\r\n }\r\n\r\n // Secure fallback using crypto.getRandomValues\r\n const bytes = new Uint8Array(16);\r\n crypto.getRandomValues(bytes);\r\n\r\n // Set version 4 (UUIDv4)\r\n bytes[6] = (bytes[6] & 0x0f) | 0x40;\r\n // Set variant 10xxxxxx\r\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\r\n\r\n const hex = [...bytes].map((b) => b.toString(16).padStart(2, \"0\"));\r\n\r\n return (\r\n hex.slice(0, 4).join(\"\") +\r\n \"-\" +\r\n hex.slice(4, 6).join(\"\") +\r\n \"-\" +\r\n hex.slice(6, 8).join(\"\") +\r\n \"-\" +\r\n hex.slice(8, 10).join(\"\") +\r\n \"-\" +\r\n hex.slice(10, 16).join(\"\")\r\n );\r\n}\r\n\r\nexport function isDOMElement(el: any): el is HTMLElement {\r\n return !!el && (el instanceof Element || el instanceof HTMLElement);\r\n}\r\n\r\nexport function isTypableElement(el: HTMLElement): boolean {\r\n // If content editable, then it is editable\r\n if (el.isContentEditable) return true;\r\n\r\n // If element is an input and the input is enabled, then it is typable\r\n if (el.tagName === \"INPUT\") {\r\n return !(el as HTMLInputElement).disabled;\r\n }\r\n // If element is a textarea and the input is enabled, then it is typable\r\n if (el.tagName === \"TEXTAREA\") {\r\n return !(el as HTMLTextAreaElement).disabled;\r\n }\r\n\r\n return false;\r\n}\r\nexport function isAppleDevice() {\r\n return /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\r\n}\r\n\r\nexport function getPlatformSpecialKey() {\r\n return isAppleDevice() ? \"⌘\" : \"Ctrl\";\r\n}\r\n\r\nexport function getPlatformAlternateKey() {\r\n return isAppleDevice() ? \"⌥\" : \"Alt\";\r\n}\r\n"],"names":["checkElementOverlaps","elements","sortedElements","sort","a","b","startTime","i","length","current","next","currentEnd","duration","trimStart","trimEnd","resolvedElements","previous","previousEnd","push","originalName","suffix","baseName","replace","useTimelineStore","create","set","get","updateTracks","tracksWithMain","ensureMainTrack","newTracks","sortedTracks","sortTracksByOrder","_tracks","tracks","autoSaveTimeline","activeProject","useProjectStore","getState","storageService","saveTimeline","id","error","updateTracksAndSave","setTimeout","initialTracks","sortedInitialTracks","history","redoStack","selectedElements","rippleEditingEnabled","snappingEnabled","getSortedTracks","pushHistory","JSON","parse","stringify","undo","slice","selectElement","trackId","elementId","multi","exists","state","some","c","filter","deselectElement","clearSelectedElements","setSelectedElements","addTrack","newTrack","generateUUID","name","trackName","type","muted","insertTrackAt","index","splice","removeTrack","removeTrackWithRipple","track","trackToRemove","find","t","occupiedRanges","map","element","endTime","mergedRanges","range","lastRange","Math","max","updatedTracks","updatedElements","newStartTime","gap","hasOverlaps","resolveElementOverlaps","addElementToTrack","elementData","validateElementTrackCompatibility","isValid","mediaId","content","totalElementsInTimeline","reduce","total","newElement","isFirstElement","mediaItem","useMediaStore","mediaItems","item","useEditorStore","setCanvasSizeFromAspectRatio","getMediaAspectRatio","fps","projectStore","updateProjectFps","removeElementFromTrack","removeElementFromTrackWithRipple","e","elementStartTime","elementDuration","elementEndTime","shouldApplyRipple","currentTrack","currentElement","isMain","moveElementToTrack","fromTrackId","toTrackId","fromTrack","toTrack","elementToMove","updateElementTrim","updateElementDuration","updateElementStartTime","clampedStartTime","updateElementStartTimeWithRipple","oldStartTime","oldEndTime","newEndTime","timeDelta","currentElementStart","toggleTrackMute","toggleElementHidden","hidden","updateTextElement","updates","splitElement","splitTime","effectiveStart","effectiveEnd","relativeTime","secondDuration","secondElementId","flatMap","getElementNameWithSuffix","firstDuration","splitAndKeepLeft","durationToRemove","splitAndKeepRight","separateAudio","existingAudioTrack","audioElementId","newAudioTrack","replaceElementMedia","newFile","success","mediaStore","getFileType","getImageDimensions","generateVideoThumbnail","getMediaDuration","fileType","mediaData","file","url","URL","createObjectURL","width","height","thumbnailUrl","Promise","all","Error","message","addMediaItem","newMediaItem","getTotalDuration","trackEndTimes","maxEnd","elementEnd","getProjectThumbnail","projectId","loadTimeline","loadAllMediaItems","firstMediaElement","redo","dragState","isDragging","startMouseX","startElementTime","clickOffsetTime","currentTime","setDragState","startDrag","updateDragTime","endDrag","loadProjectTimeline","defaultTracks","saveProjectTimeline","clearTimeline","toggleSnapping","toggleRippleEditing","checkElementOverlap","excludeElementId","findOrCreateTrack","trackType","existingTrack","addMediaAtTime","TIMELINE_CONSTANTS","DEFAULT_IMAGE_DURATION","targetTrackId","addTextAtTime","DEFAULT_TEXT_DURATION","fontSize","fontFamily","color","backgroundColor","textAlign","fontWeight","fontStyle","textDecoration","x","y","rotation","opacity","undefined","addMediaToNewTrack","addTextToNewTrack","getMainTrack","hasMainTrack","canElementGoOnTrack","elementType","errorMessage","IndexedDBAdapter","getDB","resolve","reject","request","indexedDB","open","dbName","version","onerror","onsuccess","result","onupgradeneeded","db","target","objectStoreNames","contains","storeName","createObjectStore","keyPath","key","store","transaction","objectStore","value","put","remove","delete","list","getAllKeys","clear","OPFSAdapter","getDirectory","opfsRoot","navigator","storage","getDirectoryHandle","directoryName","directory","fileHandle","getFileHandle","getFile","writable","createWritable","write","close","removeEntry","keys","isSupported","StorageService","getProjectMediaAdapters","mediaMetadataAdapter","config","mediaDb","mediaFilesAdapter","getProjectTimelineAdapter","timelineDb","saveProject","project","serializedProject","thumbnail","createdAt","toISOString","updatedAt","backgroundType","blurIntensity","bookmarks","projectsAdapter","loadProject","Date","loadAllProjects","projectIds","projects","getTime","deleteProject","saveMediaItem","metadata","size","lastModified","loadMediaItem","mediaIds","deleteMediaItem","deleteProjectMedia","timelineAdapter","timelineData","deleteProjectTimeline","clearAllData","getStorageInfo","isOPFSSupported","isIndexedDBSupported","getProjectStorageInfo","hasTimeline","loadSavedSounds","savedSoundsAdapter","sounds","saveSoundEffect","soundEffect","currentData","sound","savedSound","username","previewUrl","downloadUrl","tags","license","savedAt","updatedData","removeSavedSound","soundId","isSoundSaved","clearSavedSounds","window","isFullySupported","projectsDb","savedSoundsDb","DEFAULT_CANVAS_PRESETS","findBestCanvasPreset","bestMatch","smallestDifference","abs","aspectRatio","preset","difference","presetAspectRatio","bestAspectRatio","round","isPanelsReady","canvasSize","canvasMode","canvasPresets","setInitializing","loading","isInitializing","setPanelsReady","ready","initializeApp","setCanvasSize","setCanvasSizeToOriginal","newCanvasSize","startsWith","img","Image","addEventListener","naturalWidth","naturalHeight","src","video","document","createElement","canvas","ctx","getContext","videoWidth","videoHeight","min","drawImage","toDataURL","load","isLoading","newItem","media","removeMediaItem","revokeObjectURL","timeline","elementsToRemove","el","loadProjectMedia","updatedMediaItems","clearProjectMedia","forEach","clearAllMedia","savedProjects","isInitialized","invalidProjectIds","Set","toggleBookmark","time","updatedBookmarks","frameTime","bookmarkIndex","findIndex","bookmark","_","updatedProject","toast","description","isBookmarked","removeBookmark","createNewProject","newProject","timelineStore","saveCurrentProject","closeProject","renameProject","projectToRename","p","duplicateProject","numberMatch","match","existingNumbers","nextNumber","updateProjectBackground","updateBackgroundType","options","getFilteredAndSortedProjects","searchQuery","sortOption","sortedProjects","toLowerCase","includes","order","split","aValue","bValue","isInvalidProjectId","invalidIds","has","markProjectIdAsInvalid","clearInvalidProjectIds","TRACK_COLORS","solid","background","border","text","audio","getTrackElementClasses","colors","getTrackColors","TRACK_HEIGHTS","getTrackHeight","getCumulativeHeightBefore","trackIndex","sum","GAP","getTotalTracksHeight","gapsHeight","ELEMENT_MIN_WIDTH","PIXELS_PER_SECOND","TRACK_HEIGHT","ZOOM_LEVELS","label","snapTimeToFrame","frame","cn","inputs","twMerge","clsx","crypto","randomUUID","bytes","Uint8Array","getRandomValues","hex","toString","padStart","join","isDOMElement","Element","HTMLElement","isTypableElement","isContentEditable","tagName","disabled","isAppleDevice","test","platform","getPlatformSpecialKey","getPlatformAlternateKey"],"sourceRoot":"","ignoreList":[]} \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/8340eb7d-6d11ac2b571c9b82.js b/opencut-ui/_next/static/chunks/8340eb7d-6d11ac2b571c9b82.js new file mode 100644 index 0000000..879e6d4 --- /dev/null +++ b/opencut-ui/_next/static/chunks/8340eb7d-6d11ac2b571c9b82.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[340],{81009:(c,a,t)=>{t.d(a,{O4U:()=>r,hL4:()=>e});var h=t(61913);function r(c){return(0,h.k5)({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z"},child:[]}]})(c)}function e(c){return(0,h.k5)({tag:"svg",attr:{viewBox:"0 0 496 512"},child:[{tag:"path",attr:{d:"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"},child:[]}]})(c)}}}]); +//# sourceMappingURL=8340eb7d-6d11ac2b571c9b82.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/8340eb7d-6d11ac2b571c9b82.js.map b/opencut-ui/_next/static/chunks/8340eb7d-6d11ac2b571c9b82.js.map new file mode 100644 index 0000000..e89ddcf --- /dev/null +++ b/opencut-ui/_next/static/chunks/8340eb7d-6d11ac2b571c9b82.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/8340eb7d-6d11ac2b571c9b82.js","mappings":"wIA2VO,SAASA,EAAWC,CAAK,EAC9B,MAAOC,CAAAA,EAAAA,EAAAA,EAAAA,CAAOA,CAAC,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,aAAa,EAAE,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,gxCAAgxC,EAAE,MAAQ,EAAE,EAAE,GAAGD,EACn4C,CAyKO,SAASE,EAAUF,CAAK,EAC7B,MAAOC,CAAAA,EAAAA,EAAAA,EAAAA,CAAOA,CAAC,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,aAAa,EAAE,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,0xCAA0xC,EAAE,MAAQ,EAAE,EAAE,GAAGD,EAC74C","sources":["webpack://_N_E/../../node_modules/.bun/react-icons@5.5.0+f4eacebf2041cd4f/node_modules/react-icons/fa6/index.mjs"],"sourcesContent":["// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib/index.mjs';\nexport function Fa42Group (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 96V416C341.011 416 361.818 411.861 381.23 403.821C400.641 395.78 418.28 383.995 433.138 369.138C447.995 354.28 459.78 336.641 467.821 317.23C475.861 297.818 480 277.011 480 256C480 234.989 475.861 214.182 467.821 194.771C459.78 175.359 447.995 157.72 433.138 142.863C418.28 128.005 400.641 116.22 381.23 108.179C361.818 100.139 341.011 96 320 96ZM0 256L160.002 416L320.003 256L160.002 96L0 256ZM480 256C480 277.011 484.138 297.818 492.179 317.23C500.219 336.643 512.005 354.28 526.862 369.138C541.72 383.995 559.357 395.781 578.77 403.821C598.182 411.862 618.989 416 640 416V96C597.565 96 556.869 112.858 526.862 142.863C496.857 172.869 480 213.565 480 256Z\"},\"child\":[]}]})(props);\n};\nexport function Fa500Px (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaAccessibleIcon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z\"},\"child\":[]}]})(props);\n};\nexport function FaAccusoft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zm160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8.5-116.5.6-19.2.1-32.9-.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z\"},\"child\":[]}]})(props);\n};\nexport function FaAdn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z\"},\"child\":[]}]})(props);\n};\nexport function FaAdversal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z\"},\"child\":[]}]})(props);\n};\nexport function FaAffiliatetheme (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z\"},\"child\":[]}]})(props);\n};\nexport function FaAirbnb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 373.12c-25.24-31.67-40.08-59.43-45-83.18-22.55-88 112.61-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.15 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.07 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.72-231.18 115.87-241.56 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.48 114.84 239.09 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.12C280.27 35.93 273.13 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.19 22 349.81-3.22 419.14 48.74 480 111.63 480c21.71 0 60.61-6.06 112.37-62.4 58.68 63.78 101.26 62.4 112.37 62.4 62.89.05 114.85-60.86 89.61-130.19.02-3.89-16.82-38.9-16.82-39.58z\"},\"child\":[]}]})(props);\n};\nexport function FaAlgolia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0C116.1 0 2 112.7 0 252.1C-2 393.6 112.9 510.8 254.5 511.6c43.7 .3 85.9-10.4 123.3-30.7c3.6-2 4.2-7 1.1-9.7l-24-21.2c-4.9-4.3-11.8-5.5-17.8-3c-26.1 11.1-54.5 16.8-83.7 16.4C139 461.9 46.5 366.8 48.3 252.4C50.1 139.5 142.6 48.2 256 48.2H463.7V417.2L345.9 312.5c-3.8-3.4-9.7-2.7-12.7 1.3c-18.9 25-49.7 40.6-83.9 38.2c-47.5-3.3-85.9-41.5-89.5-88.9c-4.2-56.6 40.6-103.9 96.3-103.9c50.4 0 91.9 38.8 96.2 88c.4 4.4 2.4 8.5 5.7 11.4l30.7 27.2c3.5 3.1 9 1.2 9.9-3.4c2.2-11.8 3-24.2 2.1-36.8c-4.9-72-63.3-130-135.4-134.4c-82.7-5.1-151.8 59.5-154 140.6c-2.1 78.9 62.6 147 141.6 148.7c33 .7 63.6-9.6 88.3-27.6L495 509.4c6.6 5.8 17 1.2 17-7.7V9.7c0-5.4-4.4-9.7-9.7-9.7H256z\"},\"child\":[]}]})(props);\n};\nexport function FaAlipay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z\"},\"child\":[]}]})(props);\n};\nexport function FaAmazonPay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7a595.88 595.88 0 0 0 127.4 46.3 616.61 616.61 0 0 0 63.2 11.8 603.33 603.33 0 0 0 95 5.2c17.4-.4 34.8-1.8 52.1-3.8a603.66 603.66 0 0 0 163.3-42.8c2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9a70 70 0 0 1-9.6 7.4c-30.7 21.1-64.2 36.4-99.6 47.9a473.31 473.31 0 0 1-75.1 17.6 431 431 0 0 1-53.2 4.8 21.3 21.3 0 0 0-2.5.3H308a21.3 21.3 0 0 0-2.5-.3c-3.6-.2-7.2-.3-10.7-.4a426.3 426.3 0 0 1-50.4-5.3A448.4 448.4 0 0 1 164 420a443.33 443.33 0 0 1-145.6-87c-1.8-1.6-3-3.8-4.4-5.7zM172 65.1l-4.3.6a80.92 80.92 0 0 0-38 15.1c-2.4 1.7-4.6 3.5-7.1 5.4a4.29 4.29 0 0 1-.4-1.4c-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6h-11.5c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3v-72.4c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107a3.48 3.48 0 0 1 1.7-3.3c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9a3.57 3.57 0 0 1-1.7-3.3c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zm205.7-41.9c-1 .1-2 .3-2.9.4a148 148 0 0 0-28.9 4.1c-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9a7.84 7.84 0 0 1-.2 1.4c-.5-.1-.9 0-1.3-.1a180.56 180.56 0 0 0-32-4.9c-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4a7.36 7.36 0 0 1 1.6-1.1c.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0a4.84 4.84 0 0 0 4.8-4.7 26.2 26.2 0 0 0 .1-2.8v-106a80 80 0 0 0-.9-12.9c-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7a3.33 3.33 0 0 1-1.5 3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8a20.08 20.08 0 0 1-12.4-13.3 32.9 32.9 0 0 1-.1-19.4c2.5-8.3 8.4-13 16.4-15.6a61.33 61.33 0 0 1 24.8-2.2c8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3a88.42 88.42 0 0 0-21-3.9 147.32 147.32 0 0 0-39.2 1.9c-14.3 2.7-27.9 7.3-40 15.6a13.75 13.75 0 0 0-3.7 3.5 5.11 5.11 0 0 0-.5 4c.4 1.5 2.1 1.9 3.6 1.8a16.2 16.2 0 0 0 2.2-.1c7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9a71.64 71.64 0 0 1 14.4 2.7c5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1a17.6 17.6 0 0 0-1 3c-.5 2.9 1.2 4.8 4.1 4.1a10.56 10.56 0 0 0 4.8-2.5 145.91 145.91 0 0 0 12.7-13.4c12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM493.1 199q-19.35-53.55-38.7-107.2c-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5a43.1 43.1 0 0 0 1.9 6.1q29.4 72.75 59.1 145.5c1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3a42.13 42.13 0 0 1-15.4 1.1c-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8q-.15 5 0 9.9c.1 5.5 2 8 7.4 8.9a108.18 108.18 0 0 0 16.9 2c17.1.4 30.7-6.5 39.5-21.4a131.63 131.63 0 0 0 9.2-18.4q35.55-89.7 70.6-179.6a26.62 26.62 0 0 0 1.6-5.5c.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0a7.54 7.54 0 0 0-7.7 5.2c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z\"},\"child\":[]}]})(props);\n};\nexport function FaAmazon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z\"},\"child\":[]}]})(props);\n};\nexport function FaAmilia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5z\"},\"child\":[]}]})(props);\n};\nexport function FaAndroid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M420.55,301.93a24,24,0,1,1,24-24,24,24,0,0,1-24,24m-265.1,0a24,24,0,1,1,24-24,24,24,0,0,1-24,24m273.7-144.48,47.94-83a10,10,0,1,0-17.27-10h0l-48.54,84.07a301.25,301.25,0,0,0-246.56,0L116.18,64.45a10,10,0,1,0-17.27,10h0l47.94,83C64.53,202.22,8.24,285.55,0,384H576c-8.24-98.45-64.54-181.78-146.85-226.55\"},\"child\":[]}]})(props);\n};\nexport function FaAngellist (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z\"},\"child\":[]}]})(props);\n};\nexport function FaAngrycreative (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z\"},\"child\":[]}]})(props);\n};\nexport function FaAngular (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M185.7 268.1h76.2l-38.1-91.6-38.1 91.6zM223.8 32L16 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7zM354 373.8h-48.6l-26.2-65.4H168.6l-26.2 65.4H93.7L223.8 81.5z\"},\"child\":[]}]})(props);\n};\nexport function FaAppStoreIos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"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-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaAppStore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 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\"},\"child\":[]}]})(props);\n};\nexport function FaApper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z\"},\"child\":[]}]})(props);\n};\nexport function FaApplePay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z\"},\"child\":[]}]})(props);\n};\nexport function FaApple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\"},\"child\":[]}]})(props);\n};\nexport function FaArtstation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 377.4l43 74.3A51.35 51.35 0 0 0 90.9 480h285.4l-59.2-102.6zM501.8 350L335.6 59.3A51.38 51.38 0 0 0 290.2 32h-88.4l257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275 304.5l-115.5-200L44 304.5z\"},\"child\":[]}]})(props);\n};\nexport function FaAsymmetrik (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z\"},\"child\":[]}]})(props);\n};\nexport function FaAtlassian (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7h175c5.8.1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4H497c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6.1z\"},\"child\":[]}]})(props);\n};\nexport function FaAudible (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z\"},\"child\":[]}]})(props);\n};\nexport function FaAutoprefixer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z\"},\"child\":[]}]})(props);\n};\nexport function FaAvianex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z\"},\"child\":[]}]})(props);\n};\nexport function FaAviato (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z\"},\"child\":[]}]})(props);\n};\nexport function FaAws (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z\"},\"child\":[]}]})(props);\n};\nexport function FaBandcamp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm48.2,326.1h-181L207.9,178h181Z\"},\"child\":[]}]})(props);\n};\nexport function FaBattleNet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448.61 225.62c26.87.18 35.57-7.43 38.92-12.37 12.47-16.32-7.06-47.6-52.85-71.33 17.76-33.58 30.11-63.68 36.34-85.3 3.38-11.83 1.09-19 .45-20.25-1.72 10.52-15.85 48.46-48.2 100.05-25-11.22-56.52-20.1-93.77-23.8-8.94-16.94-34.88-63.86-60.48-88.93C252.18 7.14 238.7 1.07 228.18.22h-.05c-13.83-1.55-22.67 5.85-27.4 11-17.2 18.53-24.33 48.87-25 84.07-7.24-12.35-17.17-24.63-28.5-25.93h-.18c-20.66-3.48-38.39 29.22-36 81.29-38.36 1.38-71 5.75-93 11.23-9.9 2.45-16.22 7.27-17.76 9.72 1-.38 22.4-9.22 111.56-9.22 5.22 53 29.75 101.82 26 93.19-9.73 15.4-38.24 62.36-47.31 97.7-5.87 22.88-4.37 37.61.15 47.14 5.57 12.75 16.41 16.72 23.2 18.26 25 5.71 55.38-3.63 86.7-21.14-7.53 12.84-13.9 28.51-9.06 39.34 7.31 19.65 44.49 18.66 88.44-9.45 20.18 32.18 40.07 57.94 55.7 74.12a39.79 39.79 0 0 0 8.75 7.09c5.14 3.21 8.58 3.37 8.58 3.37-8.24-6.75-34-38-62.54-91.78 22.22-16 45.65-38.87 67.47-69.27 122.82 4.6 143.29-24.76 148-31.64 14.67-19.88 3.43-57.44-57.32-93.69zm-77.85 106.22c23.81-37.71 30.34-67.77 29.45-92.33 27.86 17.57 47.18 37.58 49.06 58.83 1.14 12.93-8.1 29.12-78.51 33.5zM216.9 387.69c9.76-6.23 19.53-13.12 29.2-20.49 6.68 13.33 13.6 26.1 20.6 38.19-40.6 21.86-68.84 12.76-49.8-17.7zm215-171.35c-10.29-5.34-21.16-10.34-32.38-15.05a722.459 722.459 0 0 0 22.74-36.9c39.06 24.1 45.9 53.18 9.64 51.95zM279.18 398c-5.51-11.35-11-23.5-16.5-36.44 43.25 1.27 62.42-18.73 63.28-20.41 0 .07-25 15.64-62.53 12.25a718.78 718.78 0 0 0 85.06-84q13.06-15.31 24.93-31.11c-.36-.29-1.54-3-16.51-12-51.7 60.27-102.34 98-132.75 115.92-20.59-11.18-40.84-31.78-55.71-61.49-20-39.92-30-82.39-31.57-116.07 12.3.91 25.27 2.17 38.85 3.88-22.29 36.8-14.39 63-13.47 64.23 0-.07-.95-29.17 20.14-59.57a695.23 695.23 0 0 0 44.67 152.84c.93-.38 1.84.88 18.67-8.25-26.33-74.47-33.76-138.17-34-173.43 20-12.42 48.18-19.8 81.63-17.81 44.57 2.67 86.36 15.25 116.32 30.71q-10.69 15.66-23.33 32.47C365.63 152 339.1 145.84 337.5 146c.11 0 25.9 14.07 41.52 47.22a717.63 717.63 0 0 0-115.34-31.71 646.608 646.608 0 0 0-39.39-6.05c-.07.45-1.81 1.85-2.16 20.33C300 190.28 358.78 215.68 389.36 233c.74 23.55-6.95 51.61-25.41 79.57-24.6 37.31-56.39 67.23-84.77 85.43zm27.4-287c-44.56-1.66-73.58 7.43-94.69 20.67 2-52.3 21.31-76.38 38.21-75.28C267 52.15 305 108.55 306.58 111zm-130.65 3.1c.48 12.11 1.59 24.62 3.21 37.28-14.55-.85-28.74-1.25-42.4-1.26-.08 3.24-.12-51 24.67-49.59h.09c5.76 1.09 10.63 6.88 14.43 13.57zm-28.06 162c20.76 39.7 43.3 60.57 65.25 72.31-46.79 24.76-77.53 20-84.92 4.51-.2-.21-11.13-15.3 19.67-76.81zm210.06 74.8\"},\"child\":[]}]})(props);\n};\nexport function FaBehance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z\"},\"child\":[]}]})(props);\n};\nexport function FaBilibili (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488.6 104.1C505.3 122.2 513 143.8 511.9 169.8V372.2C511.5 398.6 502.7 420.3 485.4 437.3C468.2 454.3 446.3 463.2 419.9 464H92.02C65.57 463.2 43.81 454.2 26.74 436.8C9.682 419.4 .7667 396.5 0 368.2V169.8C.7667 143.8 9.682 122.2 26.74 104.1C43.81 87.75 65.57 78.77 92.02 78H121.4L96.05 52.19C90.3 46.46 87.42 39.19 87.42 30.4C87.42 21.6 90.3 14.34 96.05 8.603C101.8 2.868 109.1 0 117.9 0C126.7 0 134 2.868 139.8 8.603L213.1 78H301.1L375.6 8.603C381.7 2.868 389.2 0 398 0C406.8 0 414.1 2.868 419.9 8.603C425.6 14.34 428.5 21.6 428.5 30.4C428.5 39.19 425.6 46.46 419.9 52.19L394.6 78L423.9 78C450.3 78.77 471.9 87.75 488.6 104.1H488.6zM449.8 173.8C449.4 164.2 446.1 156.4 439.1 150.3C433.9 144.2 425.1 140.9 416.4 140.5H96.05C86.46 140.9 78.6 144.2 72.47 150.3C66.33 156.4 63.07 164.2 62.69 173.8V368.2C62.69 377.4 65.95 385.2 72.47 391.7C78.99 398.2 86.85 401.5 96.05 401.5H416.4C425.6 401.5 433.4 398.2 439.7 391.7C446 385.2 449.4 377.4 449.8 368.2L449.8 173.8zM185.5 216.5C191.8 222.8 195.2 230.6 195.6 239.7V273C195.2 282.2 191.9 289.9 185.8 296.2C179.6 302.5 171.8 305.7 162.2 305.7C152.6 305.7 144.7 302.5 138.6 296.2C132.5 289.9 129.2 282.2 128.8 273V239.7C129.2 230.6 132.6 222.8 138.9 216.5C145.2 210.2 152.1 206.9 162.2 206.5C171.4 206.9 179.2 210.2 185.5 216.5H185.5zM377 216.5C383.3 222.8 386.7 230.6 387.1 239.7V273C386.7 282.2 383.4 289.9 377.3 296.2C371.2 302.5 363.3 305.7 353.7 305.7C344.1 305.7 336.3 302.5 330.1 296.2C323.1 289.9 320.7 282.2 320.4 273V239.7C320.7 230.6 324.1 222.8 330.4 216.5C336.7 210.2 344.5 206.9 353.7 206.5C362.9 206.9 370.7 210.2 377 216.5H377z\"},\"child\":[]}]})(props);\n};\nexport function FaBimobject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBitbucket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z\"},\"child\":[]}]})(props);\n};\nexport function FaBitcoin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z\"},\"child\":[]}]})(props);\n};\nexport function FaBity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBlackTie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z\"},\"child\":[]}]})(props);\n};\nexport function FaBlackberry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBloggerB (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z\"},\"child\":[]}]})(props);\n};\nexport function FaBlogger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z\"},\"child\":[]}]})(props);\n};\nexport function FaBluesky (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.8 294.7c-3.3-.4-6.7-.8-10-1.3c3.4 .4 6.7 .9 10 1.3zM288 227.1C261.9 176.4 190.9 81.9 124.9 35.3C61.6-9.4 37.5-1.7 21.6 5.5C3.3 13.8 0 41.9 0 58.4S9.1 194 15 213.9c19.5 65.7 89.1 87.9 153.2 80.7c3.3-.5 6.6-.9 10-1.4c-3.3 .5-6.6 1-10 1.4C74.3 308.6-9.1 342.8 100.3 464.5C220.6 589.1 265.1 437.8 288 361.1c22.9 76.7 49.2 222.5 185.6 103.4c102.4-103.4 28.1-156-65.8-169.9c-3.3-.4-6.7-.8-10-1.3c3.4 .4 6.7 .9 10 1.3c64.1 7.1 133.6-15.1 153.2-80.7C566.9 194 576 75 576 58.4s-3.3-44.7-21.6-52.9c-15.8-7.1-40-14.9-103.2 29.8C385.1 81.9 314.1 176.4 288 227.1z\"},\"child\":[]}]})(props);\n};\nexport function FaBluetoothB (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z\"},\"child\":[]}]})(props);\n};\nexport function FaBluetooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBootstrap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M333.5,201.4c0-22.1-15.6-34.3-43-34.3h-50.4v71.2h42.5C315.4,238.2,333.5,225,333.5,201.4z M517,188.6 c-9.5-30.9-10.9-68.8-9.8-98.1c1.1-30.5-22.7-58.5-54.7-58.5H123.7c-32.1,0-55.8,28.1-54.7,58.5c1,29.3-0.3,67.2-9.8,98.1 c-9.6,31-25.7,50.6-52.2,53.1v28.5c26.4,2.5,42.6,22.1,52.2,53.1c9.5,30.9,10.9,68.8,9.8,98.1c-1.1,30.5,22.7,58.5,54.7,58.5h328.7 c32.1,0,55.8-28.1,54.7-58.5c-1-29.3,0.3-67.2,9.8-98.1c9.6-31,25.7-50.6,52.1-53.1v-28.5C542.7,239.2,526.5,219.6,517,188.6z M300.2,375.1h-97.9V136.8h97.4c43.3,0,71.7,23.4,71.7,59.4c0,25.3-19.1,47.9-43.5,51.8v1.3c33.2,3.6,55.5,26.6,55.5,58.3 C383.4,349.7,352.1,375.1,300.2,375.1z M290.2,266.4h-50.1v78.4h52.3c34.2,0,52.3-13.7,52.3-39.5 C344.7,279.6,326.1,266.4,290.2,266.4z\"},\"child\":[]}]})(props);\n};\nexport function FaBots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M86.344,197.834a51.767,51.767,0,0,0-41.57,20.058V156.018a8.19,8.19,0,0,0-8.19-8.19H8.19A8.19,8.19,0,0,0,0,156.018V333.551a8.189,8.189,0,0,0,8.19,8.189H36.584a8.189,8.189,0,0,0,8.19-8.189v-8.088c11.628,13.373,25.874,19.769,41.573,19.769,34.6,0,61.922-26.164,61.922-73.843C148.266,225.452,121.229,197.834,86.344,197.834ZM71.516,305.691c-9.593,0-21.221-4.942-26.745-12.5V250.164c5.528-7.558,17.152-12.791,26.745-12.791,17.734,0,31.107,13.082,31.107,34.013C102.623,292.609,89.25,305.691,71.516,305.691Zm156.372-59.032a17.4,17.4,0,1,0,17.4,17.4A17.4,17.4,0,0,0,227.888,246.659ZM273.956,156.7V112.039a13.308,13.308,0,1,0-10.237,0V156.7a107.49,107.49,0,1,0,10.237,0Zm85.993,107.367c0,30.531-40.792,55.281-91.112,55.281s-91.111-24.75-91.111-55.281,40.792-55.281,91.111-55.281S359.949,233.532,359.949,264.062Zm-50.163,17.4a17.4,17.4,0,1,0-17.4-17.4h0A17.4,17.4,0,0,0,309.786,281.466ZM580.7,250.455c-14.828-2.617-22.387-3.78-22.387-9.885,0-5.523,7.268-9.884,17.735-9.884a65.56,65.56,0,0,1,34.484,10.1,8.171,8.171,0,0,0,11.288-2.468c.07-.11.138-.221.2-.333l8.611-14.886a8.2,8.2,0,0,0-2.867-11.123,99.863,99.863,0,0,0-52.014-14.138c-38.956,0-60.179,21.514-60.179,46.225,0,36.342,33.725,41.864,57.563,45.642,13.373,2.326,24.13,4.361,24.13,11.048,0,6.4-5.523,10.757-18.9,10.757-13.552,0-30.994-6.222-42.623-13.579a8.206,8.206,0,0,0-11.335,2.491c-.035.054-.069.108-.1.164l-10.2,16.891a8.222,8.222,0,0,0,2.491,11.066c15.224,10.3,37.663,16.692,59.441,16.692,40.409,0,63.957-19.769,63.957-46.515C640,260.63,604.537,254.816,580.7,250.455Zm-95.928,60.787a8.211,8.211,0,0,0-9.521-5.938,23.168,23.168,0,0,1-4.155.387c-7.849,0-12.5-6.106-12.5-14.245V240.28h20.349a8.143,8.143,0,0,0,8.141-8.143V209.466a8.143,8.143,0,0,0-8.141-8.143H458.594V171.091a8.143,8.143,0,0,0-8.143-8.143H422.257a8.143,8.143,0,0,0-8.143,8.143h0v30.232H399a8.143,8.143,0,0,0-8.143,8.143h0v22.671A8.143,8.143,0,0,0,399,240.28h15.115v63.667c0,27.037,15.408,41.282,43.9,41.282,12.183,0,21.383-2.2,27.6-5.446a8.161,8.161,0,0,0,4.145-9.278Z\"},\"child\":[]}]})(props);\n};\nexport function FaBraveReverse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M298 0c3 0 5.8 1.3 7.8 3.6l38.1 44c.5-.1 1-.2 1.5-.3c9.2-1.6 18.6-2.2 27.7-1.2c11.6 1.4 21.5 5.4 28.9 12.9c7.7 7.8 15.4 15.8 22.6 23.6c2.5 2.7 4.9 5.2 6.9 7.4c.7 .8 1.4 1.5 1.9 2c3.4 3.7 4.2 8.1 2.7 11.9l-9.8 24.6 13.1 38.1c.7 2 .8 4.1 .2 6.2c-.1 .4-.1 .4-.5 2.1c-.6 2.3-.6 2.3-1.5 5.8c-1.6 6.3-3.5 13.3-5.4 20.9c-5.6 21.6-11.2 43.2-16.4 63.4c-12.9 49.9-21.4 82.7-23.4 90.9c-11.1 44.5-19.9 60-48.3 80.3c-24.9 17.8-76.8 53.6-86.8 60c-1 .6-2 1.3-3.4 2.3c-.5 .4-3.2 2.2-3.9 2.7c-4.9 3.3-8.3 5.5-12.1 7.3c-4.7 2.2-9.3 3.5-13.9 3.5s-9.1-1.2-13.9-3.5c-3.7-1.8-7.2-3.9-12.1-7.3c-.8-.5-3.4-2.4-3.9-2.7c-1.4-1-2.5-1.7-3.4-2.3c-10-6.4-61.9-42.1-86.8-60c-28.4-20.4-37.2-35.8-48.3-80.3c-2-8.2-10.5-41-23.3-90.5c-5.3-20.6-10.9-42.2-16.5-63.8c-2-7.6-3.8-14.6-5.4-20.9c-.9-3.5-.9-3.5-1.5-5.8c-.4-1.7-.4-1.7-.5-2.1c-.5-2-.4-4.2 .2-6.2l13.1-38.1L11.8 104c-1.5-3.8-.7-8.2 2-11.2c1.2-1.3 1.8-2 2.6-2.8c2-2.2 4.4-4.7 6.9-7.4C30.6 74.9 38.3 66.9 46 59.1c7.4-7.5 17.3-11.6 28.9-12.9c9.1-1.1 18.5-.5 27.7 1.2c.5 .1 1 .2 1.5 .3l38.1-44C144.2 1.3 147 0 150 0H298zm-4.7 21.1H154.7L115.6 66.2c-2.6 3-6.7 4.3-10.6 3.2c-.2-.1-.7-.2-1.5-.4c-1.3-.3-2.9-.6-4.5-.9c-7.4-1.3-14.9-1.8-21.7-1C70 68 64.3 70.3 60.7 74c-7.6 7.7-15.2 15.6-22.3 23.3c-1.7 1.8-3.3 3.5-4.8 5.1l8.8 22c1 2.4 1 5 .2 7.5L29.2 170.6c.4 1.4 .5 1.9 1.2 4.8c1.6 6.3 3.5 13.3 5.4 20.9c5.6 21.6 11.2 43.2 16.4 63.4c12.9 50 21.4 82.8 23.4 91C85.7 390.8 92 402 115.8 419c24.6 17.6 76.3 53.2 85.9 59.3c1.2 .8 2.5 1.6 4 2.7c.6 .4 3.2 2.2 3.9 2.7c4 2.8 6.7 4.4 9.2 5.6c2.2 1 3.9 1.5 5.1 1.5s2.9-.5 5.1-1.5c2.5-1.2 5.2-2.8 9.2-5.6c.7-.5 3.3-2.3 3.9-2.7c1.6-1.1 2.8-1.9 4-2.7c9.6-6.1 61.3-41.7 85.9-59.3c23.8-17.1 30.2-28.2 40.1-68.3c2.1-8.3 10.5-41.1 23.3-90.7c5.3-20.6 10.9-42.2 16.5-63.8c2-7.6 3.8-14.6 5.4-20.9c.7-2.9 .9-3.4 1.2-4.8l-13.3-38.8c-.8-2.4-.8-5.1 .2-7.5l8.8-22c-1.5-1.6-3.1-3.3-4.8-5.1c-7.2-7.6-14.7-15.5-22.3-23.3c-3.7-3.7-9.3-6-16.6-6.9c-6.8-.8-14.4-.3-21.7 1c-1.7 .3-3.2 .6-4.5 .9c-.8 .2-1.3 .3-1.5 .4c-3.8 1.1-7.9-.2-10.6-3.2L293.3 21.1zM224 316c2.8 0 20.9 6.5 35.4 14.1s25 13 28.3 15.2s1.3 6.2-1.7 8.4s-44.1 34.6-48.1 38.2s-9.8 9.5-13.8 9.5s-9.8-5.9-13.8-9.5s-45.1-36-48.1-38.2s-5.1-6.2-1.7-8.4s13.9-7.5 28.3-15.2s32.5-14.1 35.4-14.1zm.1-230.7c.7 0 8.8 .2 20.5 4.2c12.3 4.2 25.7 9.4 31.9 9.4s51.9-8.9 51.9-8.9s54.2 66.7 54.2 81s-6.8 18-13.7 25.4s-36.8 39.8-40.7 43.9s-11.9 10.5-7.1 21.8s11.7 25.8 3.9 40.4s-21 24.4-29.4 22.8s-28.4-12.2-35.7-17.1s-30.5-24.3-30.5-31.8s24-20.8 28.4-23.9s24.7-14.8 25.1-19.4s.3-6-5.7-17.4s-16.7-26.7-14.9-36.8s19.1-15.4 31.5-20.2s36.2-13.7 39.2-15.1s2.2-2.7-6.8-3.6s-34.6-4.3-46.1-1.1s-31.2 8.2-32.8 10.9s-3 2.7-1.4 11.8s10.1 52.8 10.9 60.6s2.4 12.9-5.8 14.8s-22.1 5.2-26.8 5.2s-18.6-3.3-26.8-5.2s-6.6-7-5.8-14.8s9.3-51.5 10.9-60.6s.2-9.2-1.4-11.8s-21.3-7.6-32.8-10.9s-37.1 .2-46.1 1.1s-9.8 2.2-6.8 3.6s26.8 10.4 39.2 15.1s29.7 10 31.5 20.2s-9 25.4-14.9 36.8s-6.1 12.8-5.7 17.4s20.6 16.4 25.1 19.4s28.4 16.4 28.4 23.9s-23.2 27-30.5 31.8s-27.2 15.4-35.7 17.1s-21.7-8.2-29.4-22.8s-.8-29.1 3.9-40.4s-3.3-17.7-7.1-21.8s-33.8-36.5-40.7-43.9s-13.7-11.2-13.7-25.4s54.2-81 54.2-81s45.8 8.9 51.9 8.9s19.5-5.2 31.9-9.4s20.6-4.2 20.6-4.2l.1 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBrave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M145.5 0H224h78.5l44.7 50.8s39.3-10.9 57.8 7.6s33.8 34.9 33.8 34.9l-12 29.5 15.3 43.7s-44.9 170.2-50.1 191c-10.4 40.9-17.4 56.8-46.9 77.5s-82.9 56.8-91.6 62.2c-1.9 1.2-3.9 2.5-5.9 3.9c-7.5 5.1-15.8 10.8-23.5 10.8l0 0 0 0c-7.7 0-16.1-5.7-23.5-10.8c-2-1.4-4-2.8-5.9-3.9c-8.7-5.5-62.1-41.5-91.6-62.2s-36.5-36.6-46.9-77.5c-5.3-20.8-50.1-191-50.1-191l15.3-43.7L9.2 93.3s15.3-16.4 33.8-34.9s57.8-7.6 57.8-7.6L145.5 0zM224 407.6l0 0c3.7 0 8.9-4.7 13-8.4c.6-.5 1.2-1.1 1.7-1.5c4.2-3.7 47.8-37.5 51-39.8s5.4-6.5 1.9-8.7c-2.8-1.7-10-5.5-20.3-10.8c-3-1.6-6.3-3.2-9.7-5c-15.4-8-34.5-14.7-37.5-14.7l0 0 0 0c-3 0-22.1 6.8-37.5 14.7c-3.5 1.8-6.7 3.5-9.7 5c-10.3 5.3-17.6 9.1-20.3 10.8c-3.6 2.2-1.4 6.4 1.9 8.7s46.8 36.1 51 39.8c.5 .5 1.1 1 1.7 1.5c4.1 3.7 9.3 8.4 13 8.4l0 0zm0-165.7l0 0c4.7 0 17.6-3 26.4-5l0 0 2-.5c7.8-1.8 7.3-6.3 6.4-13c-.1-.8-.2-1.6-.3-2.4c-.6-6.1-5.8-33.1-9.1-50.3c-1.1-5.8-2-10.5-2.4-12.9c-1.5-8.1-.6-9.4 .7-11.3c.2-.3 .5-.7 .7-1.1c1.4-2.3 16-6.2 27.9-9.5l0 0c2.5-.7 4.8-1.3 6.9-1.9c10.6-3 32.4-.6 44.2 .6c1.8 .2 3.4 .4 4.7 .5c9.6 .9 10.4 2.3 7.2 3.8c-2.3 1.1-16.2 6.3-28.7 10.9l0 0 0 0c-4.7 1.8-9.2 3.5-12.8 4.8c-1.5 .5-3 1.1-4.5 1.7c-12.5 4.6-27.2 10-28.9 19.4c-1.5 8.3 5.2 19.9 11.3 30.3l0 0c1.6 2.8 3.2 5.5 4.6 8.1c6.3 11.9 6.5 13.3 6.1 18.1c-.4 3.9-14.5 12.7-22.4 17.6l0 0c-1.8 1.1-3.3 2.1-4.2 2.7c-.8 .5-2.1 1.4-3.8 2.4c-8.6 5.2-26.3 16-26.3 22.5c0 7.8 24.6 28.1 32.4 33.2s28.9 16.1 37.9 17.8s23-8.5 31.2-23.8c7.7-14.4 1.7-28.5-3.2-40l-.9-2.2c-4.5-10.6 1.9-17 6.2-21.3l0 0c.5-.5 1-1 1.4-1.4L377.7 194c1.3-1.3 2.5-2.6 3.7-3.8l0 0c5.8-5.7 10.8-10.5 10.8-22.8c0-14.9-57.5-84.5-57.5-84.5s-48.5 9.3-55.1 9.3c-5.2 0-15.3-3.5-25.8-7.1l0 0c-2.7-.9-5.4-1.9-8-2.7C232.8 78.1 224 78 224 78l0 0 0 0s-8.7 0-21.8 4.4c-2.7 .9-5.4 1.8-8 2.7l0 0c-10.5 3.6-20.6 7.1-25.8 7.1c-6.5 0-55.1-9.3-55.1-9.3s-57.5 69.6-57.5 84.5c0 12.3 4.9 17.1 10.8 22.8l0 0c1.2 1.2 2.5 2.4 3.7 3.8l43.1 45.8c.4 .5 .9 .9 1.4 1.4l0 0c4.3 4.3 10.6 10.7 6.2 21.3l-.9 2.2c-4.9 11.5-11 25.6-3.2 40c8.2 15.3 22.2 25.5 31.2 23.8s30.1-12.7 37.9-17.8s32.4-25.4 32.4-33.2c0-6.5-17.7-17.3-26.3-22.5c-1.7-1-3.1-1.9-3.8-2.4c-.9-.6-2.4-1.5-4.2-2.7c-7.9-4.9-22-13.7-22.4-17.6c-.4-4.8-.3-6.2 6.1-18.1c1.3-2.5 2.9-5.3 4.6-8.1c6-10.4 12.8-22 11.3-30.3c-1.7-9.4-16.4-14.8-28.9-19.4c-1.6-.6-3.1-1.1-4.5-1.7c-3.6-1.4-8.1-3.1-12.8-4.8l-.1 0c-12.5-4.7-26.4-9.9-28.7-10.9c-3.2-1.5-2.3-2.8 7.2-3.8c1.3-.1 2.9-.3 4.7-.5c11.8-1.3 33.6-3.6 44.2-.6c2.1 .6 4.4 1.2 6.9 1.9c11.9 3.2 26.5 7.2 27.9 9.5c.2 .4 .5 .7 .7 1.1c1.3 1.9 2.2 3.2 .7 11.3c-.4 2.4-1.3 7.1-2.4 12.9c-3.3 17.2-8.5 44.2-9.1 50.3c-.1 .8-.2 1.7-.3 2.4c-.8 6.7-1.4 11.2 6.4 13l2 .5 0 0c8.8 2 21.8 5 26.4 5l0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBtc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z\"},\"child\":[]}]})(props);\n};\nexport function FaBuffer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M427.84 380.67l-196.5 97.82a18.6 18.6 0 0 1-14.67 0L20.16 380.67c-4-2-4-5.28 0-7.29L67.22 350a18.65 18.65 0 0 1 14.69 0l134.76 67a18.51 18.51 0 0 0 14.67 0l134.76-67a18.62 18.62 0 0 1 14.68 0l47.06 23.43c4.05 1.96 4.05 5.24 0 7.24zm0-136.53l-47.06-23.43a18.62 18.62 0 0 0-14.68 0l-134.76 67.08a18.68 18.68 0 0 1-14.67 0L81.91 220.71a18.65 18.65 0 0 0-14.69 0l-47.06 23.43c-4 2-4 5.29 0 7.31l196.51 97.8a18.6 18.6 0 0 0 14.67 0l196.5-97.8c4.05-2.02 4.05-5.3 0-7.31zM20.16 130.42l196.5 90.29a20.08 20.08 0 0 0 14.67 0l196.51-90.29c4-1.86 4-4.89 0-6.74L231.33 33.4a19.88 19.88 0 0 0-14.67 0l-196.5 90.28c-4.05 1.85-4.05 4.88 0 6.74z\"},\"child\":[]}]})(props);\n};\nexport function FaBuromobelexperte (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z\"},\"child\":[]}]})(props);\n};\nexport function FaBuyNLarge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32C133.27 32 7.79 132.32 7.79 256S133.27 480 288 480s280.21-100.32 280.21-224S442.73 32 288 32zm-85.39 357.19L64.1 390.55l77.25-290.74h133.44c63.15 0 84.93 28.65 78 72.84a60.24 60.24 0 0 1-1.5 6.85 77.39 77.39 0 0 0-17.21-1.93c-42.35 0-76.69 33.88-76.69 75.65 0 37.14 27.14 68 62.93 74.45-18.24 37.16-56.16 60.92-117.71 61.52zM358 207.11h32l-22.16 90.31h-35.41l-11.19-35.63-7.83 35.63h-37.83l26.63-90.31h31.34l15 36.75zm145.86 182.08H306.79L322.63 328a78.8 78.8 0 0 0 11.47.83c42.34 0 76.69-33.87 76.69-75.65 0-32.65-21-60.46-50.38-71.06l21.33-82.35h92.5l-53.05 205.36h103.87zM211.7 269.39H187l-13.8 56.47h24.7c16.14 0 32.11-3.18 37.94-26.65 5.56-22.31-7.99-29.82-24.14-29.82zM233 170h-21.34L200 217.71h21.37c18 0 35.38-14.64 39.21-30.14C265.23 168.71 251.07 170 233 170z\"},\"child\":[]}]})(props);\n};\nexport function FaBuysellads (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 150.7l42.9 160.7h-85.8L224 150.7zM448 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-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z\"},\"child\":[]}]})(props);\n};\nexport function FaCanadianMapleLeaf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5C293.5 72.3 255.9 0 255.9 0s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3S98.1 167 95.6 172s-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167s17.6 59.7 20.1 67.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512h30s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCcAmazonPay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCcAmex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 432c0 26.5 21.5 48 48 48H528c26.5 0 48-21.5 48-48v-1.1H514.3l-31.9-35.1-31.9 35.1H246.8V267.1H181L262.7 82.4h78.6l28.1 63.2V82.4h97.2L483.5 130l17-47.6H576V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80V432zm440.4-21.7L482.6 364l42 46.3H576l-68-72.1 68-72.1H525.4l-42 46.7-41.5-46.7H390.5L458 338.6l-67.4 71.6V377.1h-83V354.9h80.9V322.6H307.6V300.2h83V267.1h-122V410.3H440.4zm96.3-72L576 380.2V296.9l-39.3 41.4zm-36.3-92l36.9-100.6V246.3H576V103H515.8l-32.2 89.3L451.7 103H390.5V246.1L327.3 103H276.1L213.7 246.3h43l11.9-28.7h65.9l12 28.7h82.7V146L466 246.3h34.4zM282 185.4l19.5-46.9 19.4 46.9H282z\"},\"child\":[]}]})(props);\n};\nexport function FaCcApplePay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCcDinersClub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 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-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCcDiscover (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.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-48zm-44.1 138.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4h-19.6l-22.2-32.8h-2.2v32.8h-16zm-55.9.1h45.3v14H444v18.2h28.3V217H444v22.2h29.3V253H428zm-68.7 0l21.9 55.2 22.2-55.2h17.5l-35.5 84.2h-8.6l-35-84.2zm-55.9-3c24.7 0 44.6 20 44.6 44.6 0 24.7-20 44.6-44.6 44.6-24.7 0-44.6-20-44.6-44.6 0-24.7 20-44.6 44.6-44.6zm-49.3 6.1v19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2v19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253H32v-82h23.4c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0h-16v-82h16zM544 433c0 8.2-6.8 15-15 15H128c189.6-35.6 382.7-139.2 416-160zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6H48v54.2h4.2c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCcJcb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCcMastercard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCcPaypal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCcStripe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 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-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1v-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5v33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zm68.8-56.6h-27V275c0 20.9 22.5 14.4 27 12.6v28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4v30.8H191zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4v84.4h-35.5V194.2h30.7l2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5h.1zm44.1 91.8h-35.7V194.2h35.7zm0-142.9l-35.7 7.6v-28.9l35.7-7.6zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5V194.2h31.3l1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5h-69.5c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9V312c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCcVisa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z\"},\"child\":[]}]})(props);\n};\nexport function FaCentercode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCentos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M289.6 97.5l31.6 31.7-76.3 76.5V97.5zm-162.4 31.7l76.3 76.5V97.5h-44.7zm41.5-41.6h44.7v127.9l10.8 10.8 10.8-10.8V87.6h44.7L224.2 32zm26.2 168.1l-10.8-10.8H55.5v-44.8L0 255.7l55.5 55.6v-44.8h128.6l10.8-10.8zm79.3-20.7h107.9v-44.8l-31.6-31.7zm173.3 20.7L392 200.1v44.8H264.3l-10.8 10.8 10.8 10.8H392v44.8l55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5h15.3v-15.3l-90.3-90.5 31.6-31.7H65.4zm316.7-78.7h-78.5l31.6 31.7-90.3 90.5V235h15.3l90.3-90.5 31.6 31.7zM203.5 413.9V305.8l-76.3 76.5 31.6 31.7h44.7zM65.4 235h108.8l-76.3-76.5-32.5 31.7zm316.7 100.2l-31.6 31.7-90.3-90.5h-15.3v15.3l90.3 90.5-31.6 31.7h78.5zm0-58.8H274.2l76.3 76.5 31.6-31.7zm-60.9 105.8l-76.3-76.5v108.1h44.7zM97.9 352.9l76.3-76.5H65.4v44.8zm181.8 70.9H235V295.9l-10.8-10.8-10.8 10.8v127.9h-44.7l55.5 55.6zm-166.5-41.6l90.3-90.5v-15.3h-15.3l-90.3 90.5-32.5-31.7v78.7h79.4z\"},\"child\":[]}]})(props);\n};\nexport function FaChrome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256C0 209.4 12.47 165.6 34.27 127.1L144.1 318.3C166 357.5 207.9 384 256 384C270.3 384 283.1 381.7 296.8 377.4L220.5 509.6C95.9 492.3 0 385.3 0 256zM365.1 321.6C377.4 302.4 384 279.1 384 256C384 217.8 367.2 183.5 340.7 160H493.4C505.4 189.6 512 222.1 512 256C512 397.4 397.4 511.1 256 512L365.1 321.6zM477.8 128H256C193.1 128 142.3 172.1 130.5 230.7L54.19 98.47C101 38.53 174 0 256 0C350.8 0 433.5 51.48 477.8 128V128zM168 256C168 207.4 207.4 168 256 168C304.6 168 344 207.4 344 256C344 304.6 304.6 344 256 344C207.4 344 168 304.6 168 256z\"},\"child\":[]}]})(props);\n};\nexport function FaChromecast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M447.8,64H64c-23.6,0-42.7,19.1-42.7,42.7v63.9H64v-63.9h383.8v298.6H298.6V448H448c23.6,0,42.7-19.1,42.7-42.7V106.7 C490.7,83.1,471.4,64,447.8,64z M21.3,383.6L21.3,383.6l0,63.9h63.9C85.2,412.2,56.6,383.6,21.3,383.6L21.3,383.6z M21.3,298.6V341 c58.9,0,106.6,48.1,106.6,107h42.7C170.7,365.6,103.7,298.7,21.3,298.6z M213.4,448h42.7c-0.5-129.5-105.3-234.3-234.8-234.6l0,42.4 C127.3,255.6,213.3,342,213.4,448z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudflare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.906,319.913l-230.8-2.928a4.58,4.58,0,0,1-3.632-1.926,4.648,4.648,0,0,1-.494-4.147,6.143,6.143,0,0,1,5.361-4.076L411.281,303.9c27.631-1.26,57.546-23.574,68.022-50.784l13.286-34.542a7.944,7.944,0,0,0,.524-2.936,7.735,7.735,0,0,0-.164-1.631A151.91,151.91,0,0,0,201.257,198.4,68.12,68.12,0,0,0,94.2,269.59C41.924,271.106,0,313.728,0,366.12a96.054,96.054,0,0,0,1.029,13.958,4.508,4.508,0,0,0,4.445,3.871l426.1.051c.043,0,.08-.019.122-.02a5.606,5.606,0,0,0,5.271-4l3.273-11.265c3.9-13.4,2.448-25.8-4.1-34.9C430.124,325.423,420.09,320.487,407.906,319.913ZM513.856,221.1c-2.141,0-4.271.062-6.391.164a3.771,3.771,0,0,0-3.324,2.653l-9.077,31.193c-3.9,13.4-2.449,25.786,4.1,34.89,6.02,8.4,16.054,13.323,28.238,13.9l49.2,2.939a4.491,4.491,0,0,1,3.51,1.894,4.64,4.64,0,0,1,.514,4.169,6.153,6.153,0,0,1-5.351,4.075l-51.125,2.939c-27.754,1.27-57.669,23.574-68.145,50.784l-3.695,9.606a2.716,2.716,0,0,0,2.427,3.68c.046,0,.088.017.136.017h175.91a4.69,4.69,0,0,0,4.539-3.37,124.807,124.807,0,0,0,4.682-34C640,277.3,583.524,221.1,513.856,221.1Z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudscale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudsmith (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 227.6v56.9L284.4 512H227.6L0 284.4V227.6L227.6 0h56.9L512 227.6zm-256 162a133.6 133.6 0 1 0 0-267.1 133.6 133.6 0 1 0 0 267.1z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudversify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 616 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCmplid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M226.119,388.165a3.816,3.816,0,0,0-2.294-3.5,3.946,3.946,0,0,0-1.629-.385L72.6,384.3a19.243,19.243,0,0,1-17.924-26.025L81.585,255.692a35.72,35.72,0,0,1,32.373-26H262.525a7.07,7.07,0,0,0,6.392-5.194l10.769-41.131a3.849,3.849,0,0,0-2.237-4.937,3.755,3.755,0,0,0-1.377-.261c-.063,0-.126,0-.189.005H127.38a106.8,106.8,0,0,0-96.99,77.1L3.483,358.824A57.469,57.469,0,0,0,57.314,436q1.43,0,2.86-.072H208.742a7.131,7.131,0,0,0,6.391-5.193L225.839,389.6A3.82,3.82,0,0,0,226.119,388.165ZM306.658,81.2a3.861,3.861,0,0,0,.251-1.367A3.813,3.813,0,0,0,303.079,76c-.064,0-.128,0-.192,0h-41A7.034,7.034,0,0,0,255.5,81.2l-21.347,80.915h51.131ZM180.364,368.249H231.5L263.452,245.69H212.321ZM511.853,79.723a3.809,3.809,0,0,0-3.8-3.661c-.058,0-.137,0-.23.007h-41a7.1,7.1,0,0,0-6.584,5.129L368.91,430.634a3.54,3.54,0,0,0-.262,1.335,3.873,3.873,0,0,0,3.864,3.863c.056,0,.112,0,.169,0h41a7.068,7.068,0,0,0,6.392-5.193L511.533,81.2A3.624,3.624,0,0,0,511.853,79.723ZM324.649,384.47h-41a7.2,7.2,0,0,0-6.392,5.194L266.52,430.8a3.662,3.662,0,0,0-.268,1.374A3.783,3.783,0,0,0,270.023,436c.06,0,.166,0,.3-.012h40.905a7.036,7.036,0,0,0,6.391-5.193l10.769-41.131a3.75,3.75,0,0,0-3.445-5.208c-.108,0-.217,0-.326.014Zm311.324-308.4h-41a7.066,7.066,0,0,0-6.392,5.129l-91.46,349.436a4.073,4.073,0,0,0-.229,1.347,3.872,3.872,0,0,0,3.863,3.851c.056,0,.112,0,.169,0h40.968a7.1,7.1,0,0,0,6.392-5.193L639.68,81.2a3.624,3.624,0,0,0,.32-1.475,3.841,3.841,0,0,0-3.821-3.564c-.068,0-.137,0-.206.006ZM371.562,225.236l10.8-41.1a4.369,4.369,0,0,0,.227-1.388,3.869,3.869,0,0,0-3.861-3.842c-.057,0-.113,0-.169,0h-41.1a7.292,7.292,0,0,0-6.391,5.226l-10.834,41.1a4.417,4.417,0,0,0-.26,1.493c0,.069,0,.138,0,.206a3.776,3.776,0,0,0,3.757,3.507c.076,0,.18,0,.3-.012h41.129A7.034,7.034,0,0,0,371.562,225.236Z\"},\"child\":[]}]})(props);\n};\nexport function FaCodepen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z\"},\"child\":[]}]})(props);\n};\nexport function FaCodiepie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 472 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z\"},\"child\":[]}]})(props);\n};\nexport function FaConfluence (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.3 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1.1-.2.1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8.4 21.7-7.7.1-.1.1-.3.2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3C127.5 179 44.6 345.3 2.3 412.2zm507.4-312.1c4.5-7.6 2.1-17.5-5.5-22.2L398.4 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2.3-.4.6-.6 1-67.3 112.6-81.1 95.6-280.6.9-8.1-3.9-17.8-.4-21.7 7.7-.1.1-.1.3-.2.4L22.2 141.3c-3.6 8.1.1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z\"},\"child\":[]}]})(props);\n};\nexport function FaConnectdevelop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z\"},\"child\":[]}]})(props);\n};\nexport function FaContao (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z\"},\"child\":[]}]})(props);\n};\nexport function FaCottonBureau (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M474.31 330.41c-23.66 91.85-94.23 144.59-201.9 148.35V429.6c0-48 26.41-74.39 74.39-74.39 62 0 99.2-37.2 99.2-99.21 0-61.37-36.53-98.28-97.38-99.06-33-69.32-146.5-64.65-177.24 0C110.52 157.72 74 194.63 74 256c0 62.13 37.27 99.41 99.4 99.41 48 0 74.55 26.23 74.55 74.39V479c-134.43-5-211.1-85.07-211.1-223 0-141.82 81.35-223.2 223.2-223.2 114.77 0 189.84 53.2 214.69 148.81H500C473.88 71.51 388.22 8 259.82 8 105 8 12 101.19 12 255.82 12 411.14 105.19 504.34 259.82 504c128.27 0 213.87-63.81 239.67-173.59zM357 182.33c41.37 3.45 64.2 29 64.2 73.67 0 48-26.43 74.41-74.4 74.41-28.61 0-49.33-9.59-61.59-27.33 83.06-16.55 75.59-99.67 71.79-120.75zm-81.68 97.36c-2.46-10.34-16.33-87 56.23-97 2.27 10.09 16.52 87.11-56.26 97zM260 132c28.61 0 49 9.67 61.44 27.61-28.36 5.48-49.36 20.59-61.59 43.45-12.23-22.86-33.23-38-61.6-43.45 12.41-17.69 33.27-27.35 61.57-27.35zm-71.52 50.72c73.17 10.57 58.91 86.81 56.49 97-72.41-9.84-59-86.95-56.25-97zM173.2 330.41c-48 0-74.4-26.4-74.4-74.41 0-44.36 22.86-70 64.22-73.67-6.75 37.2-1.38 106.53 71.65 120.75-12.14 17.63-32.84 27.3-61.14 27.3zm53.21 12.39A80.8 80.8 0 0 0 260 309.25c7.77 14.49 19.33 25.54 33.82 33.55a80.28 80.28 0 0 0-33.58 33.83c-8-14.5-19.07-26.23-33.56-33.83z\"},\"child\":[]}]})(props);\n};\nexport function FaCpanel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2h-37c-7.1 0-12.5 4.5-14.3 10.9L73.1 320l24.7-.1c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7h19.8c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6h-10.3c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8h32c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28h18.6c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6h-40C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320h12.4l7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3H53.8c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8h-77.9l-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5h57.5c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3h-34.9c-5.3 0-5.3-7.9 0-7.9h21.6c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2h-48.4c-39.2 0-43.6 63.8-.7 63.8l57.5.2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179h-18.9c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zm-236.3 34.7v.1h-48.3l-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3h18.9c4.8 0 9.2-3 10.4-7.8l17.2-64H395c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3H428c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6h32.9c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3h-21.6c-7 0-12.6 4.6-14.2 10.8l-3.5 13h53.4c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8h-47.3c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7h66.7c6.8 0 12.3-4.5 14.2-10.7l5.7-21z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsBy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsNcEu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsNcJp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsNc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsNd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsPdAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C104.7 8 0 123.1 0 256c0 138.5 113.6 248 247.6 248C377.5 504 496 403.1 496 256 496 118.1 389.4 8 247.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM316.7 186h-53.2v137.2h53.2c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5h-19.9v-79.7l19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM203.7 186h-68.2v137.3h34.6V279h27c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3h-29.2v-41.6h28.3c30.9 0 28.8 41.6.9 41.6z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsPd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsRemix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsSa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsSamplingPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsSampling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsZero (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommons (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z\"},\"child\":[]}]})(props);\n};\nexport function FaCriticalRole (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M225.82 0c.26.15 216.57 124.51 217.12 124.72 3 1.18 3.7 3.46 3.7 6.56q-.11 125.17 0 250.36a5.88 5.88 0 0 1-3.38 5.78c-21.37 12-207.86 118.29-218.93 124.58h-3C142 466.34 3.08 386.56 2.93 386.48a3.29 3.29 0 0 1-1.88-3.24c0-.87 0-225.94-.05-253.1a5 5 0 0 1 2.93-4.93C27.19 112.11 213.2 6 224.07 0zM215.4 20.42l-.22-.16Q118.06 75.55 21 130.87c0 .12.08.23.13.35l30.86 11.64c-7.71 6-8.32 6-10.65 5.13-.1 0-24.17-9.28-26.8-10v230.43c.88-1.41 64.07-110.91 64.13-111 1.62-2.82 3-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 63-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13h186.5c1.44 0 1.69-.23 1.7-1.64v-8.88c0-1.34 2.36-.81-18.37-1-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1a2.42 2.42 0 0 1 .3-4.73c3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9 1.1-79.42 0-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-1-2-4.84 1.77-4.85 33.67 0 46.08-1.07 56.06 4.86 7.74 4.61 12 11.48 12.51 20.4.88 14.59-6.51 22.35-15 32.59a1.46 1.46 0 0 0 0 2.22c2.6 3.25 5 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1-.42 1-1.15v-11c0-1 .32-1.43 1.41-1.26a72.37 72.37 0 0 0 23.58-.3c1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62h186.71Q386.51 304.6 346 234.33c2.26-.66-.4 0 6.69-1.39 2-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 134 77.37 134.06V138c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1 0 95.53-35.85 103-38.77-65.42-37.57-130.56-75-196-112.6l86.82 150.39-.28.33c-9.57-.9-10.46-1.6-11.8-3.94-1-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08q43.25-74.74 86.18-149zm51.93 129.92a37.68 37.68 0 0 0 5.54-.85c1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45s-1.88 1.22-2.6-.19c-5-9.69 6.22-9.66-39.12-12-.7 0-1 .23-1 .93 0 .13 3.72 122 3.73 122.11 0 .89.52 1.2 1.21 1.51a83.92 83.92 0 0 1 8.7 4.05c7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4a2.45 2.45 0 0 0 2-2.66c.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23q1.59-9 3.31-18c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73 0 1.78-.08 1.82-1.85.68-27.49.58-22.59 1-29.55a2.69 2.69 0 0 0-1.63-2.8c-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15a4.35 4.35 0 0 0-2.22 4.34c0 .59-.11-4.31 1 30.05 0 .9.43 1.12 1.24 1.11.1 0 23-.09 34.47-.37zM68.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 4-.21 5-1.16 22.33-1.24 23.15a2.65 2.65 0 0 1-1.63 2.34c-4.06 1.7-3.61-4.45-4-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17 53.63 54.08 50.88 27.24-2 19-20.19 24.84-20.47a2.72 2.72 0 0 1 3 3.36c-1.83 10.85-3.42 18.95-3.45 19.15-1.54 9.17-86.7 22.09-93.35-42.06-2.71-25.85 10.44-53.37 40.27-60.15zm80 87.67h-19.49a2.57 2.57 0 0 1-2.66-1.79c2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-38 .23-40.1 0-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-2 2.25-4 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13a2.21 2.21 0 0 0 2.23-2.12c.3-3.42.26 4.73.45-40.58 0-5.65-.34-6.58-3.23-6.83-3.95-.35-4-2.26-.69-3.37l19.09-.09c.32 0 4.49.53 1 3.38 0 .05-.16 0-.24 0-3.61.26-3.94 1-4 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49 0 3.86 3.37 0 3.4-10.37.08-20.74 0-31.11.07-10.67 0-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 4 17.67 4.75-.1 4.73 3.57.83 3.55zm275-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31a18.4 18.4 0 0 1-3.63-.73c-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19a1.94 1.94 0 0 0-2-1.44 138 138 0 0 0-14.58.07 2.23 2.23 0 0 0-1.62 1.06c-1.58 3.62-3.07 7.29-4.51 11-1.27 3.23 7.86 1.32 12.19 2.16 3 .57 4.53 3.72.66 3.73H322.9c-2.92 0-3.09-3.15-.74-3.21a6.3 6.3 0 0 0 5.92-3.47c1.5-3 2.8-6 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61a1.83 1.83 0 0 1 3 0c2.93 3.34 18.4 44.71 23.62 51.92 2 2.7 5.74 2 6.36 2 3.61.13 4-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26 0-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32 0 5.32 2.75-1.21 3.45a2.56 2.56 0 0 0-2.66 2.83c-.07 1.63-.19 38.89.29 41.21a3.06 3.06 0 0 0 3.23 2.43c13.25.43 14.92.44 16-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.72 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64 0-1.64 1.52V304c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76 0 .21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-2 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 6 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64 0 .36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3 .22-3.45 1.1-.19 4 .54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 9-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 22 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1 0 .1.57 11.89-6 12.75-1.6.21-19.38 3.69-32.68-3.39-21-11.19-16.74-35.47-6.88-45.33 14-14.06 39.91-7.06 42.32-6.47zM289.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-5-.42-5 5.46 0 2-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-4 12.39-5.19 12.4l-38.16-.19c-1.93-.23-2.06-3-.42-3.38 2-.48 4.94.4 5.13-2.8 1-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-2-3.22.34-3.22 1.45-.02 17.97-.03 23.09-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6 3.58 2.61.1 2.53 3.41-.07 3.43-6.48 0-13.7 0-21.61-.06-3.84 0-3.38-3.35 0-3.37 4.49 0 3.24 1.61 3.41-45.54 0-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29 0 20.19-.41 21.17.21s1.87 1.65-.42 2.86c-1 .52-3.86-.28-4.15 2.47 0 .21-.82 1.63-.07 43.8zm-36.91 274.27a2.93 2.93 0 0 0 3.26 0c17-9.79 182-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38a28.33 28.33 0 0 1-1.36 7.71c-.55 1.83.38-.5-13.5 32.23-.73 1.72-1 2.21-2-.08-4.19-10.34-8.28-20.72-12.57-31a23.6 23.6 0 0 1-2-10.79c.16-2.46.8-16.12 1.51-48 0-1.95 0-2-2-2h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3 11.54 1.17 21 3.74 25.64-7.32 6-14.46 2.66-34.41-12.48-38.84-2-.59-16-2.76-15.94 1.51.05 8.04.01 11.61.02 41.65zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8a17.9 17.9 0 0 0 22.39-7.07c4.91-7.76 6.84-29.47-5.43-39a2.53 2.53 0 0 1-.36.12zm-12.28-198c-9.83 0-9.73 14.75-.07 14.87s10.1-14.88.07-14.91zm-80.15 103.83c0 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-11 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.32 6.4l-6.1-15.84c-2.16 5.48-4.16 10.57-6.23 15.84z\"},\"child\":[]}]})(props);\n};\nexport function FaCss3Alt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCss3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z\"},\"child\":[]}]})(props);\n};\nexport function FaCuttlefish (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 440 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z\"},\"child\":[]}]})(props);\n};\nexport function FaDAndDBeyond (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9.2-5.8 1.6-7.5.6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9.6-.3 1.3 0 .6 1.9-.2.6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3.1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9.9 7.5.2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1.6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6.7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4.2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5.5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2v77.2l-7.4 8.2c10.4.8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6v-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6.5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9.5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8.5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6.3 3 .6 4.3 1.1-2.1.8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2.8.2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8.6-2.6-.2s.3-4.3.3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3.6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7.2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7.6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8.8-1.4 1.8-2.1 2.6v15.7c3.5 2.6 7.1-2.9 3-7.2 1.5.3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9.3 5.6 1.1V196c-1.1.5-2.2 1-2.7 1.4zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25H3l8.3 8.6v29.5H0l11.4 14.6V346L3 354.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zm-41.3-27.5c20 0 29.6-.8 29.6 9.1v3c0 12.1-19 8.8-29.6 8.8zm0 59.2V315c12.2 0 32.7-2.3 32.7 8.8v4.5h.2c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1.2v-.2l14.1-21.2h-37.2v-14.9h52.4l-14.1-21v-.2l-73.5.2 7.4 8.2v77.1l-7.4 8.2h81.2l14.1-21.2-60.1.2zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3.3-99.3zm-.3 77.5c-37.4 0-36.9-55.3.2-55.3 36.8.1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2h-41.7l6.1 7.2-20.5 37.2h-.3l-21-37.2 6.4-7.2h-44.9l44.1 65.8.2 19.4-7.7 8.2h42.6l-7.2-8.2zm-28.4-151.3c1.6 1.3 2.9 2.4 2.9 6.6v38.8c0 4.2-.8 5.3-2.7 6.4-.1.1-7.5 4.5-7.9 4.6h35.1c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5.8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6.3-39.9-4 .1.8.5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3zm228.9 79.6l7 8.3V312h-.3c-5.4-14.4-42.3-41.5-45.2-50.9h-31.6l7.4 8.5v76.9l-7.2 8.3h39l-7.4-8.2v-47.4h.3c3.7 10.6 44.5 42.9 48.5 55.6h21.3v-85.2l7.4-8.3zm-106.7-96.1c-32.2 0-32.8.2-39.9-4 .1.7.5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6.3-4 1.1-6.1 2.9.1 0 2.1-1.1 7.5-.3v-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3h.3c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z\"},\"child\":[]}]})(props);\n};\nexport function FaDAndD (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z\"},\"child\":[]}]})(props);\n};\nexport function FaDailymotion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M298.93,267a48.4,48.4,0,0,0-24.36-6.21q-19.83,0-33.44,13.27t-13.61,33.42q0,21.16,13.28,34.6t33.43,13.44q20.5,0,34.11-13.78T322,307.47A47.13,47.13,0,0,0,315.9,284,44.13,44.13,0,0,0,298.93,267ZM0,32V480H448V32ZM374.71,405.26h-53.1V381.37h-.67q-15.79,26.2-55.78,26.2-27.56,0-48.89-13.1a88.29,88.29,0,0,1-32.94-35.77q-11.6-22.68-11.59-50.89,0-27.56,11.76-50.22a89.9,89.9,0,0,1,32.93-35.78q21.18-13.09,47.72-13.1a80.87,80.87,0,0,1,29.74,5.21q13.28,5.21,25,17V153l55.79-12.09Z\"},\"child\":[]}]})(props);\n};\nexport function FaDartLang (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M378.6 78.9c-2.8-.1-5.6-.2-8.5-.2l-264.1 0 143.2-72C256.6 2.3 268 0 279.6 0c13.5 0 29.4 9.2 37 16.8l62 62zM107.3 96.5l262.8 0c16 0 25.4 1.4 35.4 9.3L512 212.2 512 421l-79.3 .7L107.3 96.5zM96.5 373l0-262.2L420.3 434.6l.7 77.4-212.2 0-98.1-98.2 0 0C99.4 402.5 96.5 398.5 96.5 373zM78.7 105.3l0 267.7c0 3.3 .1 6.3 .2 9.1l-62-62C6.5 309.3 0 294.3 0 279.6c0-6.8 3.9-17.5 6.7-23.6l72-150.7z\"},\"child\":[]}]})(props);\n};\nexport function FaDashcube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z\"},\"child\":[]}]})(props);\n};\nexport function FaDebian (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.2 245.6c3-7.6 5.5-14 5.2-24.4l-4.3 9c4.4-13.2 4-27.1 3.6-40.4c-.2-6-.3-11.8 0-17.4l-1.8-.5c-1.5-45.2-40.6-93.1-75.3-109.4c-30-13.8-76.1-16.2-97.3-5.8c1.3-1.1 4.2-2 6.8-2.7l.3-.1c3.3-1 6-1.7 4-2.9c-19.2 1.9-24.9 5.5-31.1 9.4l-.1 0c-4.6 2.9-9.5 6-20.3 8.7c-3.5 3.4 1.7 2 5.8 .9l0 0c4.1-1.1 7.2-1.9-.1 2.4c-3.5 1-6.6 1.3-9.6 1.6l-.1 0c-8.3 .8-15.8 1.6-30.7 17c.8 1.3 3.4-.2 5.3-1.3l.1-.1c2.3-1.4 3.4-2-1.7 4.4c-19.1-2.4-60.3 43.7-69.1 59l4.6 .8c-3.2 8-6.8 14.8-10 20.8c-4.3 8.1-7.9 14.9-8.7 21.3c-.3 5.1-1 11-1.7 17.3l0 0c-.1 1-.2 2-.3 3l-.1 .6c-3 27.3-6.7 60.8 3.9 73l-1.3 13c.6 1.2 1.1 2.3 1.6 3.5c.2 .4 .4 .8 .5 1.1l0 0 0 0 0 0 0 0 0 0 0 0 0 0c1 2.1 2 4.2 3.3 6.2l-3 .2c7 22.1 10.8 22.5 15.1 22.9l0 0c4.4 .4 9.3 .9 18.7 24.2c-2.7-.9-5.5-1.9-9.4-7.2c-.5 4.1 5.8 16.3 13.1 25.8l-3.1 3.6c2.1 3.7 4.8 6.2 7.6 8.8l0 0 0 0c1 .9 2.1 1.9 3.1 2.9c-11.9-6.5 3.2 13.7 11.9 25.2c.8 1.1 1.5 2 2.2 2.9l0 0 0 0 0 0 0 0 0 0c1.4 1.9 2.5 3.4 2.9 4.1l2.4-4.2c-.3 6.1 4.3 13.9 13.1 24.7l7.3-.3c3 6 14 16.7 20.7 17.2l-4.4 5.8c8.1 2.6 10.3 4.3 12.7 6.2c2.6 2.1 5.4 4.3 16.1 8.1l-4.2-7.4c3.5 3 6.2 5.9 8.8 8.7l.1 .1c5.2 5.6 9.9 10.6 19.7 15.3c10.7 3.7 16.6 4.7 22.7 5.8c.3 0 .6 .1 .9 .1c5.4 .8 11.2 1.8 20.8 4.5c-1.1-.1-2.2-.1-3.3-.1h0c-2.3-.1-4.7-.1-7-.1l0 0 0 0 0 0 0 0 0 0 0 0 0 0c-14.4-.2-29.2-.4-42.7-5.2C107.8 480.5 19.5 367.2 26 250.6c-.6-9.9-.3-20.9 0-30.7c.4-13.5 .7-24.8-1.6-28.3l1-3.1c5.3-17.4 11.7-38.2 23.8-62.8l-.1-.2v-.1c.4 .4 3.4 3.4 8.8-5.8c.8-1.8 1.6-3.7 2.4-5.6c.5-1.1 .9-2.2 1.4-3.2c2.5-6.1 5.1-12.3 8.4-17.9l2.6-.6c1.7-10.1 17-23.8 29.8-35.2l1.1-1c5.7-5.1 10.7-9.7 13.6-13.1l.7 4.4c17-15.9 44.6-27.5 65.6-36.4l.5-.2c4.8-2 9.3-3.9 13.3-5.7c-3.4 3.8 2.2 2.7 10 1c4.8-1 10.4-2.1 15.3-2.4l-3.9 2.1c-2.7 1.4-5.4 2.8-8 4.6c8.1-2 11.7-1.4 15.7-.8l.3 0c3.5 .6 7.3 1.2 14.6 .2c-5.6 .8-12.3 3-11.2 3.8c7.9 .9 12.8-.1 17.2-1l.2 0c5.5-1.1 10.3-2 19.3 .9l-1-4.8c7.3 2.6 12.7 4.3 17.5 5.8l.5 .1c10 3 17.6 5.3 34.2 14.1c3.2 .2 5.3-.5 7.4-1.2l.1 0c3.6-1.1 7-2.1 15.2 1.2c.3 .5 .5 1 .7 1.4c.1 .2 .2 .5 .3 .7l0 .1c1 2.6 1.8 4.6 14.6 12.1c1.7-.7-2.7-4.7-6.4-8.2c0 0 0 0-.1-.1c-.2-.1-.3-.3-.5-.4c32.2 17.3 67.3 54.1 78 93.5c-6-11.1-5.2-5.5-4.3 .5c.6 4 1.2 8.1-.2 7.5c4.5 12.1 8.1 24.5 10.4 37.4l-.8-2.9-.1-.3c-3.3-11.9-9.6-34.3-19.9-49.3c-.4 4.3-2.8 3.9-5.2 3.5l-.1 0 0 0c-3.3-.6-6.2-1.1-1.9 12.6c2.6 3.8 3.1 2.4 3.5 1.1l0 0c.5-1.5 .9-2.7 4.7 5.2c.1 4.1 1 8.2 2.1 12.7l0 0 0 0 .1 .6c.1 .3 .1 .5 .2 .8l.1 .6c.6 2.6 1.3 5.4 1.8 8.4c-1.1-.2-2.3-2.2-3.4-4.2c-1.4-2.4-2.8-4.7-3.7-3.2c2.4 11.5 6.5 17.4 8 18.3c-.3 .6-.6 .7-1.1 .7c-.8 0-1.8 .1-1.9 5.3c.7 13.7 3.3 12.5 5.3 11.6l0 0c.6-.3 1.2-.6 1.7-.4c-.6 2.5-1.6 5.1-2.7 7.9c-2.8 7.1-6 15.4-3.4 26.1c-.8-3-2-6-3.1-8.9l-.1-.4c-.2-.5-.4-1-.6-1.5l0 0c-.3-.8-.6-1.6-.9-2.3c-.6 4.4-.3 7.7-.1 10.6c0 .2 0 .5 0 .7c.4 5.3 .7 10-3 19.9c4.3-14.2 3.8-26.9-.2-20.8c1 10.9-3.7 20.4-8 28.9l-.1 .2c-3.6 7.1-6.8 13.5-5.9 19.3l-5.2-7.1c-7.5 10.9-7 13.3-6.5 15.5l0 .1c.5 1.9 1 3.8-3.4 10.8c1.7-2.9 1.3-3.6 1-4.2l0 0c-.4-.8-.7-1.5 1.7-5.1c-1.6 .1-5.5 3.9-10.1 8.5c-3.9 3.9-8.5 8.4-12.8 11.8c-37.5 30.1-82.3 34-125.6 17.8c.2-1-.2-2.1-3.1-4.1c-36.8-28.2-58.5-52.1-50.9-107.5c2.1-1.6 3.6-5.8 5.3-10.8l0 0 0 0 .2-.4 .1-.3 0-.1c2.9-8.4 6.5-18.8 14.3-23.8c7.8-17.3 31.3-33.3 56.4-33.7c25.6-1.4 47.2 13.7 58.1 27.9c-19.8-18.4-52.1-24-79.7-10.4c-28.2 12.7-45 43.8-42.5 74.7c.3-.4 .6-.6 .9-.8l0 0s0 0 0 0c0 0 .1-.1 .1-.1l.1-.1c.6-.5 1.1-.9 1.4-3.3c-.9 60.2 64.8 104.3 112.1 82l.6 1.3c12.7-3.5 15.9-6.5 20.3-10.7l.1-.1 0 0c2.2-2.1 4.7-4.5 8.9-7.3c-.3 .7-1.3 1.7-2.4 2.7c-2.2 2.1-4.6 4.5-1.6 4.6c5-1.3 18.5-13.4 28.5-22.3l0 0 0 0c.6-.5 1.2-1 1.7-1.5c1.5-1.3 2.8-2.5 4-3.6l0 0 .3-.3c1.9-4.2 1.6-5.6 1.3-7l0-.1c-.4-1.6-.8-3.3 2.4-9.6l7.3-3.7c.8-2.1 1.5-4.1 2.2-6c.2-.6 .5-1.2 .7-1.8l-.4-.2zM349.3 34.3l-.2-.1 .2 .1 0 0zM247.8 334.1c-6-3-13.7-8.9-14.8-11.4l-.4 .3c-.3 .6-.5 1.3-.2 2.2c-12.2-5.7-23.4-14.3-32.6-24.9c4.9 7.1 10.1 14.1 17 19.5c-6.9-2.3-15.1-11.8-21.6-19.3l-.1-.1c-4.3-5-7.9-9.1-9.7-9.5c19.8 35.5 80.5 62.3 112.3 49c-14.7 .5-33.4 .3-49.9-5.8zm79.3-119.7l-.1-.2c-.5-1.5-1.1-3.1-1.7-3.4c1.4-5.8 5.4-10.7 4.4 4.6c-1 3.8-1.8 1.5-2.6-1zm-4.2 22.2c-1.3 7.9-5 15.5-10.1 22.5c.2-2-1.2-2.4-2.6-2.8l0 0c-2.9-.8-5.9-1.6 5.6-16.1c-.5 1.9-2.1 4.6-3.7 7.3l0 0 0 0-.3 .4c-3.6 5.9-6.7 11 4 4.3l1-1.8c2.6-4.5 5-8.8 6-13.8h.1zm-55.6 33.9c7.1 .6 14.1 .6 21-1.1c-2.5 2.4-5.2 4.8-8.3 7.2c-11.1-1.7-21.2-6-12.7-6.1zm-92.6 11.6c3.6 7.1 6.4 11.5 9 15.7l.1 .2c2.3 3.7 4.4 7.1 6.8 11.7c-5.1-4.2-8.7-9.5-12.5-15l-.3-.5c-1.4-2.1-2.8-4.2-4.4-6.2l1.2-5.9h.1zm7.5-9.6c1.6 3.3 3.2 6.4 5.7 9.1l2.6 7.7-1.3-2.1c-3.2-5.3-6.3-10.6-8-16.7l.8 1.6 .2 .4zm238.9-41.6c-2.3 17.4-7.7 34.6-16 50.3c7.6-14.9 12.5-30.9 14.8-47.2l1.2-3.1zM35.6 110.6c.4 .8 1.4 .5 2.3 .3c1.9-.5 3.6-.9-.1 7.6c-.5 .3-1 .7-1.5 1l0 0 0 0c-1.4 .9-2.8 1.9-3.9 3c1.9-3.8 3.5-7.4 3.2-11.9zM25.3 152.3c-.7 3.7-1.5 7.9-3.4 13.9c.2-1.9 0-3.5-.2-4.9l0-.1c-.4-3.4-.7-6.3 4.3-12.8c-.3 1.2-.5 2.5-.7 3.8v.1z\"},\"child\":[]}]})(props);\n};\nexport function FaDeezer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M451.46,244.71H576V172H451.46Zm0-173.89v72.67H576V70.82Zm0,275.06H576V273.2H451.46ZM0,447.09H124.54V374.42H0Zm150.47,0H275V374.42H150.47Zm150.52,0H425.53V374.42H301Zm150.47,0H576V374.42H451.46ZM301,345.88H425.53V273.2H301Zm-150.52,0H275V273.2H150.47Zm0-101.17H275V172H150.47Z\"},\"child\":[]}]})(props);\n};\nexport function FaDelicious (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192z\"},\"child\":[]}]})(props);\n};\nexport function FaDeploydog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaDeskpro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z\"},\"child\":[]}]})(props);\n};\nexport function FaDev (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z\"},\"child\":[]}]})(props);\n};\nexport function FaDeviantart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z\"},\"child\":[]}]})(props);\n};\nexport function FaDhl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M238 301.2h58.7L319 271h-58.7L238 301.2zM0 282.9v6.4h81.8l4.7-6.4H0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1 2.8-3.7 2.8-5.9-2.8-5.9h-51l-41.1 55.8h100.1c33.1 0 51.5-22.5 57.2-30.3h-68.2zm317.5-6.9l39.3-53.4h-62.2l-39.3 53.4h62.2zM95.3 271H0v6.4h90.6l4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5h45.6s7.3-10 13.5-18.4c8.4-11.4.7-35-29.2-35H112.6l-20.4 27.8h111.4c5.6 0 5.5 2.2 2.7 5.9zM0 301.2h73.1l4.7-6.4H0v6.4zm323 0h58.7L404 271h-58.7c-.1 0-22.3 30.2-22.3 30.2zm222 .1h95v-6.4h-90.3l-4.7 6.4zm22.3-30.3l-4.7 6.4H640V271h-72.7zm-13.5 18.3H640v-6.4h-81.5l-4.7 6.4zm-164.2-78.6l-22.5 30.6h-26.2l22.5-30.6h-58.7l-39.3 53.4H409l39.3-53.4h-58.7zm33.5 60.3s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6h94.3l22.3-30.3H423.1z\"},\"child\":[]}]})(props);\n};\nexport function FaDiaspora (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M251.64 354.55c-1.4 0-88 119.9-88.7 119.9S76.34 414 76 413.25s86.6-125.7 86.6-127.4c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1.6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3.4-2 1-148.6 1.7-149.6.8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3.8.9 31.9 102.2 31.5 102.6-.9.9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5z\"},\"child\":[]}]})(props);\n};\nexport function FaDigg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z\"},\"child\":[]}]})(props);\n};\nexport function FaDigitalOcean (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M87 481.8h73.7v-73.6H87zM25.4 346.6v61.6H87v-61.6zm466.2-169.7c-23-74.2-82.4-133.3-156.6-156.6C164.9-32.8 8 93.7 8 255.9h95.8c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208v.3h-.3V504c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231v-95.3h-95.6v95.6H256v-.3z\"},\"child\":[]}]})(props);\n};\nexport function FaDiscord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z\"},\"child\":[]}]})(props);\n};\nexport function FaDiscourse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaDochub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 416 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z\"},\"child\":[]}]})(props);\n};\nexport function FaDocker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z\"},\"child\":[]}]})(props);\n};\nexport function FaDraft2Digital (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 398.1l-144-82.2v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480zM369.9 371l47.1 27.2-47.1 27.2zM134.2 161.4c0 12.4-10 22.4-22.4 22.4s-22.4-10-22.4-22.4 10-22.4 22.4-22.4 22.4 10.1 22.4 22.4zM82.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7z\"},\"child\":[]}]})(props);\n};\nexport function FaDribbble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z\"},\"child\":[]}]})(props);\n};\nexport function FaDropbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 528 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z\"},\"child\":[]}]})(props);\n};\nexport function FaDrupal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M303.973,108.136C268.2,72.459,234.187,38.35,224.047,0c-9.957,38.35-44.25,72.459-80.019,108.136C90.467,161.7,29.716,222.356,29.716,313.436c-2.337,107.3,82.752,196.18,190.053,198.517S415.948,429.2,418.285,321.9q.091-4.231,0-8.464C418.285,222.356,357.534,161.7,303.973,108.136Zm-174.326,223a130.282,130.282,0,0,0-15.211,24.153,4.978,4.978,0,0,1-3.319,2.766h-1.659c-4.333,0-9.219-8.481-9.219-8.481h0c-1.29-2.028-2.489-4.149-3.687-6.361l-.83-1.752c-11.247-25.72-1.475-62.318-1.475-62.318h0a160.585,160.585,0,0,1,23.231-49.873A290.8,290.8,0,0,1,138.5,201.613l9.219,9.219,43.512,44.434a4.979,4.979,0,0,1,0,6.638L145.78,312.33h0Zm96.612,127.311a67.2,67.2,0,0,1-49.781-111.915c14.2-16.871,31.528-33.464,50.334-55.313,22.309,23.785,36.875,40.1,51.164,57.986a28.413,28.413,0,0,1,2.95,4.425,65.905,65.905,0,0,1,11.984,37.981,66.651,66.651,0,0,1-66.466,66.836ZM352.371,351.6h0a7.743,7.743,0,0,1-6.176,5.347H344.9a11.249,11.249,0,0,1-6.269-5.07h0a348.21,348.21,0,0,0-39.456-48.952L281.387,284.49,222.3,223.185a497.888,497.888,0,0,1-35.4-36.322,12.033,12.033,0,0,0-.922-1.382,35.4,35.4,0,0,1-4.7-9.219V174.51a31.346,31.346,0,0,1,9.218-27.656c11.432-11.431,22.955-22.954,33.833-34.939,11.984,13.275,24.8,26,37.428,38.627h0a530.991,530.991,0,0,1,69.6,79.1,147.494,147.494,0,0,1,27.011,83.8A134.109,134.109,0,0,1,352.371,351.6Z\"},\"child\":[]}]})(props);\n};\nexport function FaDyalog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 416 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z\"},\"child\":[]}]})(props);\n};\nexport function FaEarlybirds (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z\"},\"child\":[]}]})(props);\n};\nexport function FaEbay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M606 189.5l-54.8 109.9-54.9-109.9h-37.5l10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1h33.7c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33v3.4c-12.7 0-28 .1-41.7.4-42.4.9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2v-80.6h-32.1v169.5c0 10.3-.6 22.9-1.1 33.1h31.5c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6.3 13.3 1.1 20.2h29.8c-.7-8.2-1-17.5-1-26.8v-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1h35.9L640 189.5zM243.7 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6zm-411.9 1.6h128.8v-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1h-33.1c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4H33.3c6.9-56.6 92.1-54.7 94.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaEdgeLegacy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M25.71,228.16l.35-.48c0,.16,0,.32-.07.48Zm460.58,15.51c0-44-7.76-84.46-28.81-122.4C416.5,47.88,343.91,8,258.89,8,119,7.72,40.62,113.21,26.06,227.68c42.42-61.31,117.07-121.38,220.37-125,0,0,109.67,0,99.42,105H170c6.37-37.39,18.55-59,34.34-78.93-75.05,34.9-121.85,96.1-120.75,188.32.83,71.45,50.13,144.84,120.75,172,83.35,31.84,192.77,7.2,240.13-21.33V363.31C363.6,419.8,173.6,424.23,172.21,295.74H486.29V243.67Z\"},\"child\":[]}]})(props);\n};\nexport function FaEdge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120.1 37.44C161.1 12.23 207.7-.7753 255 .0016C423 .0016 512 123.8 512 219.5C511.9 252.2 499 283.4 476.1 306.7C453.2 329.9 422.1 343.2 389.4 343.7C314.2 343.7 297.9 320.6 297.9 311.7C297.9 307.9 299.1 305.5 302.7 302.3L303.7 301.1L304.1 299.5C314.6 288 320 273.3 320 257.9C320 179.2 237.8 115.2 136 115.2C98.46 114.9 61.46 124.1 28.48 142.1C55.48 84.58 111.2 44.5 119.8 38.28C120.6 37.73 120.1 37.44 120.1 37.44V37.44zM135.7 355.5C134.3 385.5 140.3 415.5 152.1 442.7C165.7 469.1 184.8 493.7 208.6 512C149.1 500.5 97.11 468.1 59.2 422.7C21.12 376.3 0 318.4 0 257.9C0 206.7 62.4 163.5 136 163.5C172.6 162.9 208.4 174.4 237.8 196.2L234.2 197.4C182.7 215 135.7 288.1 135.7 355.5V355.5zM469.8 400L469.1 400.1C457.3 418.9 443.2 435.2 426.9 449.6C396.1 477.6 358.8 495.1 318.1 499.5C299.5 499.8 281.3 496.3 264.3 488.1C238.7 477.8 217.2 458.1 202.7 435.1C188.3 411.2 181.6 383.4 183.7 355.5C183.1 335.4 189.1 315.2 198.7 297.3C212.6 330.4 236.2 358.6 266.3 378.1C296.4 397.6 331.8 407.6 367.7 406.7C398.7 407 429.8 400 457.9 386.2L459.8 385.3C463.7 383 467.5 381.4 471.4 385.3C475.9 390.2 473.2 394.5 470.2 399.3C470 399.5 469.9 399.8 469.8 400V400z\"},\"child\":[]}]})(props);\n};\nexport function FaElementor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.361 256C.361 397 114 511 255 511C397 511 511 397 511 256C511 116 397 2.05 255 2.05C114 2.05 .361 116 .361 256zM192 150V363H149V150H192zM234 150H362V193H234V150zM362 235V278H234V235H362zM234 320H362V363H234V320z\"},\"child\":[]}]})(props);\n};\nexport function FaEllo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z\"},\"child\":[]}]})(props);\n};\nexport function FaEmber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z\"},\"child\":[]}]})(props);\n};\nexport function FaEmpire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvira (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z\"},\"child\":[]}]})(props);\n};\nexport function FaErlang (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M87.2 53.5H0v405h100.4c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6h.3l-.1-.1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405z\"},\"child\":[]}]})(props);\n};\nexport function FaEthereum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z\"},\"child\":[]}]})(props);\n};\nexport function FaEtsy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z\"},\"child\":[]}]})(props);\n};\nexport function FaEvernote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120.82 132.21c1.6 22.31-17.55 21.59-21.61 21.59-68.93 0-73.64-1-83.58 3.34-.56.22-.74 0-.37-.37L123.79 46.45c.38-.37.6-.22.38.37-4.35 9.99-3.35 15.09-3.35 85.39zm79 308c-14.68-37.08 13-76.93 52.52-76.62 17.49 0 22.6 23.21 7.95 31.42-6.19 3.3-24.95 1.74-25.14 19.2-.05 17.09 19.67 25 31.2 24.89A45.64 45.64 0 0 0 312 393.45v-.08c0-11.63-7.79-47.22-47.54-55.34-7.72-1.54-65-6.35-68.35-50.52-3.74 16.93-17.4 63.49-43.11 69.09-8.74 1.94-69.68 7.64-112.92-36.77 0 0-18.57-15.23-28.23-57.95-3.38-15.75-9.28-39.7-11.14-62 0-18 11.14-30.45 25.07-32.2 81 0 90 2.32 101-7.8 9.82-9.24 7.8-15.5 7.8-102.78 1-8.3 7.79-30.81 53.41-24.14 6 .86 31.91 4.18 37.48 30.64l64.26 11.15c20.43 3.71 70.94 7 80.6 57.94 22.66 121.09 8.91 238.46 7.8 238.46C362.15 485.53 267.06 480 267.06 480c-18.95-.23-54.25-9.4-67.27-39.83zm80.94-204.84c-1 1.92-2.2 6 .85 7 14.09 4.93 39.75 6.84 45.88 5.53 3.11-.25 3.05-4.43 2.48-6.65-3.53-21.85-40.83-26.5-49.24-5.92z\"},\"child\":[]}]})(props);\n};\nexport function FaExpeditedssl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z\"},\"child\":[]}]})(props);\n};\nexport function FaFacebookF (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 299.3V512H196V299.3h86.5l18-97.8H196V166.9c0-51.7 20.3-71.5 72.7-71.5c16.3 0 29.4 .4 37 1.2V7.9C291.4 4 256.4 0 236.2 0C129.3 0 80 50.5 80 159.4v42.1H14v97.8H80z\"},\"child\":[]}]})(props);\n};\nexport function FaFacebookMessenger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.55 8C116.52 8 8 110.34 8 248.57c0 72.3 29.71 134.78 78.07 177.94 8.35 7.51 6.63 11.86 8.05 58.23A19.92 19.92 0 0 0 122 502.31c52.91-23.3 53.59-25.14 62.56-22.7C337.85 521.8 504 423.7 504 248.57 504 110.34 396.59 8 256.55 8zm149.24 185.13l-73 115.57a37.37 37.37 0 0 1-53.91 9.93l-58.08-43.47a15 15 0 0 0-18 0l-78.37 59.44c-10.46 7.93-24.16-4.6-17.11-15.67l73-115.57a37.36 37.36 0 0 1 53.91-9.93l58.06 43.46a15 15 0 0 0 18 0l78.41-59.38c10.44-7.98 24.14 4.54 17.09 15.62z\"},\"child\":[]}]})(props);\n};\nexport function FaFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5V334.2H141.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H287V510.1C413.8 494.8 512 386.9 512 256h0z\"},\"child\":[]}]})(props);\n};\nexport function FaFantasyFlightGames (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z\"},\"child\":[]}]})(props);\n};\nexport function FaFedex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M586 284.5l53.3-59.9h-62.4l-21.7 24.8-22.5-24.8H414v-16h56.1v-48.1H318.9V236h-.5c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14v-24.2H49v-26.2h60v-41.1H0V345h49v-77.5h48.9c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7h-42c-14.7 20.9-45.8 8.9-45.8-14.6h85.5c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6h.5V345h212.2l22.1-25 22.3 25H640l-54-60.5zm-446.7-16.6c6.1-26.3 41.7-25.6 46.5 0h-46.5zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1h-94.4V169.4h95v30.2H405v33.9h55.5v28.1h-56.1v44.7h56.1v29.6zm-45.9-39.8v-24.4h56.1v-44l50.7 57-50.7 57v-45.6h-56.1zm138.6 10.3l-26.1 29.5H489l45.6-51.2-45.6-51.2h39.7l26.6 29.3 25.6-29.3h38.5l-45.4 51 46 51.4h-40.5l-26.3-29.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFedora (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.0413 255.8C.1219 132.2 100.3 32 224 32C347.7 32 448 132.3 448 256C448 379.7 347.8 479.9 224.1 480H50.93C22.84 480 .0832 457.3 .0416 429.2H0V255.8H.0413zM342.6 192.7C342.6 153 307 124.2 269.4 124.2C234.5 124.2 203.6 150.5 199.3 184.1C199.1 187.9 198.9 189.1 198.9 192.6C198.8 213.7 198.9 235.4 198.1 257C199 283.1 199.1 309.1 198.1 333.6C198.1 360.7 178.7 379.1 153.4 379.1C128.1 379.1 107.6 358.9 107.6 333.6C108.1 305.9 130.2 288.3 156.1 287.5H156.3L182.6 287.3V250L156.3 250.2C109.2 249.8 71.72 286.7 70.36 333.6C70.36 379.2 107.9 416.5 153.4 416.5C196.4 416.5 232.1 382.9 236 340.9L236.2 287.4L268.8 287.1C294.1 287.3 293.8 249.3 268.6 249.8L236.2 250.1C236.2 243.7 236.3 237.3 236.3 230.9C236.4 218.2 236.4 205.5 236.2 192.7C236.3 176.2 252 161.5 269.4 161.5C286.9 161.5 305.3 170.2 305.3 192.7C305.3 195.9 305.2 197.8 305 199C303.1 209.5 310.2 219.4 320.7 220.9C331.3 222.4 340.9 214.8 341.9 204.3C342.5 200.1 342.6 196.4 342.6 192.7H342.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFigma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 95.7924C14 42.8877 56.8878 0 109.793 0H274.161C327.066 0 369.954 42.8877 369.954 95.7924C369.954 129.292 352.758 158.776 326.711 175.897C352.758 193.019 369.954 222.502 369.954 256.002C369.954 308.907 327.066 351.795 274.161 351.795H272.081C247.279 351.795 224.678 342.369 207.666 326.904V415.167C207.666 468.777 163.657 512 110.309 512C57.5361 512 14 469.243 14 416.207C14 382.709 31.1945 353.227 57.2392 336.105C31.1945 318.983 14 289.5 14 256.002C14 222.502 31.196 193.019 57.2425 175.897C31.196 158.776 14 129.292 14 95.7924ZM176.288 191.587H109.793C74.2172 191.587 45.3778 220.427 45.3778 256.002C45.3778 291.44 73.9948 320.194 109.381 320.416C109.518 320.415 109.655 320.415 109.793 320.415H176.288V191.587ZM207.666 256.002C207.666 291.577 236.505 320.417 272.081 320.417H274.161C309.737 320.417 338.576 291.577 338.576 256.002C338.576 220.427 309.737 191.587 274.161 191.587H272.081C236.505 191.587 207.666 220.427 207.666 256.002ZM109.793 351.795C109.655 351.795 109.518 351.794 109.381 351.794C73.9948 352.015 45.3778 380.769 45.3778 416.207C45.3778 451.652 74.6025 480.622 110.309 480.622C146.591 480.622 176.288 451.186 176.288 415.167V351.795H109.793ZM109.793 31.3778C74.2172 31.3778 45.3778 60.2173 45.3778 95.7924C45.3778 131.368 74.2172 160.207 109.793 160.207H176.288V31.3778H109.793ZM207.666 160.207H274.161C309.737 160.207 338.576 131.368 338.576 95.7924C338.576 60.2173 309.737 31.3778 274.161 31.3778H207.666V160.207Z\"},\"child\":[]}]})(props);\n};\nexport function FaFirefoxBrowser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M130.22 127.548C130.38 127.558 130.3 127.558 130.22 127.548V127.548ZM481.64 172.898C471.03 147.398 449.56 119.898 432.7 111.168C446.42 138.058 454.37 165.048 457.4 185.168C457.405 185.306 457.422 185.443 457.45 185.578C429.87 116.828 383.098 89.1089 344.9 28.7479C329.908 5.05792 333.976 3.51792 331.82 4.08792L331.7 4.15792C284.99 30.1109 256.365 82.5289 249.12 126.898C232.503 127.771 216.219 131.895 201.19 139.035C199.838 139.649 198.736 140.706 198.066 142.031C197.396 143.356 197.199 144.87 197.506 146.323C197.7 147.162 198.068 147.951 198.586 148.639C199.103 149.327 199.76 149.899 200.512 150.318C201.264 150.737 202.096 150.993 202.954 151.071C203.811 151.148 204.676 151.045 205.491 150.768L206.011 150.558C221.511 143.255 238.408 139.393 255.541 139.238C318.369 138.669 352.698 183.262 363.161 201.528C350.161 192.378 326.811 183.338 304.341 187.248C392.081 231.108 368.541 381.784 246.951 376.448C187.487 373.838 149.881 325.467 146.421 285.648C146.421 285.648 157.671 243.698 227.041 243.698C234.541 243.698 255.971 222.778 256.371 216.698C256.281 214.698 213.836 197.822 197.281 181.518C188.434 172.805 184.229 168.611 180.511 165.458C178.499 163.75 176.392 162.158 174.201 160.688C168.638 141.231 168.399 120.638 173.51 101.058C148.45 112.468 128.96 130.508 114.8 146.428H114.68C105.01 134.178 105.68 93.7779 106.25 85.3479C106.13 84.8179 99.022 89.0159 98.1 89.6579C89.5342 95.7103 81.5528 102.55 74.26 110.088C57.969 126.688 30.128 160.242 18.76 211.318C14.224 231.701 12 255.739 12 263.618C12 398.318 121.21 507.508 255.92 507.508C376.56 507.508 478.939 420.281 496.35 304.888C507.922 228.192 481.64 173.82 481.64 172.898Z\"},\"child\":[]}]})(props);\n};\nexport function FaFirefox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M503.52,241.48c-.12-1.56-.24-3.12-.24-4.68v-.12l-.36-4.68v-.12a245.86,245.86,0,0,0-7.32-41.15c0-.12,0-.12-.12-.24l-1.08-4c-.12-.24-.12-.48-.24-.6-.36-1.2-.72-2.52-1.08-3.72-.12-.24-.12-.6-.24-.84-.36-1.2-.72-2.4-1.08-3.48-.12-.36-.24-.6-.36-1-.36-1.2-.72-2.28-1.2-3.48l-.36-1.08c-.36-1.08-.84-2.28-1.2-3.36a8.27,8.27,0,0,0-.36-1c-.48-1.08-.84-2.28-1.32-3.36-.12-.24-.24-.6-.36-.84-.48-1.2-1-2.28-1.44-3.48,0-.12-.12-.24-.12-.36-1.56-3.84-3.24-7.68-5-11.4l-.36-.72c-.48-1-.84-1.8-1.32-2.64-.24-.48-.48-1.08-.72-1.56-.36-.84-.84-1.56-1.2-2.4-.36-.6-.6-1.2-1-1.8s-.84-1.44-1.2-2.28c-.36-.6-.72-1.32-1.08-1.92s-.84-1.44-1.2-2.16a18.07,18.07,0,0,0-1.2-2c-.36-.72-.84-1.32-1.2-2s-.84-1.32-1.2-2-.84-1.32-1.2-1.92-.84-1.44-1.32-2.16a15.63,15.63,0,0,0-1.2-1.8L463.2,119a15.63,15.63,0,0,0-1.2-1.8c-.48-.72-1.08-1.56-1.56-2.28-.36-.48-.72-1.08-1.08-1.56l-1.8-2.52c-.36-.48-.6-.84-1-1.32-1-1.32-1.8-2.52-2.76-3.72a248.76,248.76,0,0,0-23.51-26.64A186.82,186.82,0,0,0,412,62.46c-4-3.48-8.16-6.72-12.48-9.84a162.49,162.49,0,0,0-24.6-15.12c-2.4-1.32-4.8-2.52-7.2-3.72a254,254,0,0,0-55.43-19.56c-1.92-.36-3.84-.84-5.64-1.2h-.12c-1-.12-1.8-.36-2.76-.48a236.35,236.35,0,0,0-38-4H255.14a234.62,234.62,0,0,0-45.48,5c-33.59,7.08-63.23,21.24-82.91,39-1.08,1-1.92,1.68-2.4,2.16l-.48.48H124l-.12.12.12-.12a.12.12,0,0,0,.12-.12l-.12.12a.42.42,0,0,1,.24-.12c14.64-8.76,34.92-16,49.44-19.56l5.88-1.44c.36-.12.84-.12,1.2-.24,1.68-.36,3.36-.72,5.16-1.08.24,0,.6-.12.84-.12C250.94,20.94,319.34,40.14,367,85.61a171.49,171.49,0,0,1,26.88,32.76c30.36,49.2,27.48,111.11,3.84,147.59-34.44,53-111.35,71.27-159,24.84a84.19,84.19,0,0,1-25.56-59,74.05,74.05,0,0,1,6.24-31c1.68-3.84,13.08-25.67,18.24-24.59-13.08-2.76-37.55,2.64-54.71,28.19-15.36,22.92-14.52,58.2-5,83.28a132.85,132.85,0,0,1-12.12-39.24c-12.24-82.55,43.31-153,94.31-170.51-27.48-24-96.47-22.31-147.71,15.36-29.88,22-51.23,53.16-62.51,90.36,1.68-20.88,9.6-52.08,25.8-83.88-17.16,8.88-39,37-49.8,62.88-15.6,37.43-21,82.19-16.08,124.79.36,3.24.72,6.36,1.08,9.6,19.92,117.11,122,206.38,244.78,206.38C392.77,503.42,504,392.19,504,255,503.88,250.48,503.76,245.92,503.52,241.48Z\"},\"child\":[]}]})(props);\n};\nexport function FaFirstOrderAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z\"},\"child\":[]}]})(props);\n};\nexport function FaFirstOrder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z\"},\"child\":[]}]})(props);\n};\nexport function FaFirstdraft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z\"},\"child\":[]}]})(props);\n};\nexport function FaFlickr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"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-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFlipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFlutter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M429.5 236.3L291.7 374.1 429.5 512H272l-59.1-59.1-78.8-78.8L272 236.3H429.5zM272 0L16 256l78.8 78.8L429.5 0H272z\"},\"child\":[]}]})(props);\n};\nexport function FaFly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z\"},\"child\":[]}]})(props);\n};\nexport function FaFontAwesome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M91.7 96C106.3 86.8 116 70.5 116 52C116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 3 0 352 0 64 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4c0-3.7-.8-7.3-2.3-10.7L432 272l61.7-138.9c1.5-3.4 2.3-7 2.3-10.7c0-14.6-11.8-26.4-26.4-26.4L91.7 96z\"},\"child\":[]}]})(props);\n};\nexport function FaFonticonsFi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z\"},\"child\":[]}]})(props);\n};\nexport function FaFonticons (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFortAwesomeAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 237.4h-22.2c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7H208c2.1 0 3.7-1.6 3.7-3.7v-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5C372 34.1 340.3 20 306 13c-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5C25.2 153 8.3 202.5 8.3 256c0 2 .1 4 .1 6 .1.7.1 1.3.1 2 .1 1.3.1 2.7.2 4 0 .8.1 1.5.1 2.3 0 1.3.1 2.5.2 3.7.1.8.1 1.6.2 2.4.1 1.1.2 2.3.3 3.5 0 .8.1 1.6.2 2.4.1 1.2.3 2.4.4 3.6.1.8.2 1.5.3 2.3.1 1.3.3 2.6.5 3.9.1.6.2 1.3.3 1.9l.9 5.7c.1.6.2 1.1.3 1.7.3 1.3.5 2.7.8 4 .2.8.3 1.6.5 2.4.2 1 .5 2.1.7 3.2.2.9.4 1.7.6 2.6.2 1 .4 2 .7 3 .2.9.5 1.8.7 2.7.3 1 .5 1.9.8 2.9.3.9.5 1.8.8 2.7.2.9.5 1.9.8 2.8s.5 1.8.8 2.7c.3 1 .6 1.9.9 2.8.6 1.6 1.1 3.3 1.7 4.9.4 1 .7 1.9 1 2.8.3 1 .7 2 1.1 3 .3.8.6 1.5.9 2.3l1.2 3c.3.7.6 1.5.9 2.2.4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3.7.6 1.3.9 2 .5 1 1 2.1 1.5 3.1.2.6.5 1.1.8 1.7.6 1.1 1.1 2.2 1.7 3.3.1.2.2.3.3.5 2.2 4.1 4.4 8.2 6.8 12.2.2.4.5.8.7 1.2.7 1.1 1.3 2.2 2 3.3.3.5.6.9.9 1.4.6 1.1 1.3 2.1 2 3.2.3.5.6.9.9 1.4.7 1.1 1.4 2.1 2.1 3.2.2.4.5.8.8 1.2.7 1.1 1.5 2.2 2.3 3.3.2.2.3.5.5.7 37.5 51.7 94.4 88.5 160 99.4.9.1 1.7.3 2.6.4 1 .2 2.1.4 3.1.5s1.9.3 2.8.4c1 .2 2 .3 3 .4.9.1 1.9.2 2.9.3s1.9.2 2.9.3 2.1.2 3.1.3c.9.1 1.8.1 2.7.2 1.1.1 2.3.1 3.4.2.8 0 1.7.1 2.5.1 1.3 0 2.6.1 3.9.1.7.1 1.4.1 2.1.1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1.8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2.9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5.9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4.2-.2.3-.5.5-.7.8-1.1 1.5-2.2 2.3-3.3.2-.4.5-.8.8-1.2.7-1.1 1.4-2.1 2.1-3.2.3-.5.6-.9.9-1.4.6-1.1 1.3-2.1 2-3.2.3-.5.6-.9.9-1.4.7-1.1 1.3-2.2 2-3.3.2-.4.5-.8.7-1.2 2.4-4 4.6-8.1 6.8-12.2.1-.2.2-.3.3-.5.6-1.1 1.1-2.2 1.7-3.3.2-.6.5-1.1.8-1.7.5-1 1-2.1 1.5-3.1.3-.7.6-1.3.9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7.6-1.5.9-2.2l1.2-3c.3-.8.6-1.5.9-2.3.4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9.3-1 .6-1.9.9-2.8s.5-1.8.8-2.7c.2-.9.5-1.9.8-2.8s.6-1.8.8-2.7c.3-1 .5-1.9.8-2.9.2-.9.5-1.8.7-2.7.2-1 .5-2 .7-3 .2-.9.4-1.7.6-2.6.2-1 .5-2.1.7-3.2.2-.8.3-1.6.5-2.4.3-1.3.6-2.7.8-4 .1-.6.2-1.1.3-1.7l.9-5.7c.1-.6.2-1.3.3-1.9.1-1.3.3-2.6.5-3.9.1-.8.2-1.5.3-2.3.1-1.2.3-2.4.4-3.6 0-.8.1-1.6.2-2.4.1-1.1.2-2.3.3-3.5.1-.8.1-1.6.2-2.4.1 1.7.1.5.2-.7 0-.8.1-1.5.1-2.3.1-1.3.2-2.7.2-4 .1-.7.1-1.3.1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2v-75.8c0-58.6-88.6-58.6-88.6 0v75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9v-71.3c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7V326h29.6V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-4.8 6.5-3.7 9.5-3.7V88.1c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5V92c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7v48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8v30.7c3 0 9.5-1.1 9.5 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v144h29.5v-25.8c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7z\"},\"child\":[]}]})(props);\n};\nexport function FaFortAwesome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z\"},\"child\":[]}]})(props);\n};\nexport function FaForumbee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z\"},\"child\":[]}]})(props);\n};\nexport function FaFoursquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 368 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFreeCodeCamp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M97.22,96.21c10.36-10.65,16-17.12,16-21.9,0-2.76-1.92-5.51-3.83-7.42A14.81,14.81,0,0,0,101,64.05c-8.48,0-20.92,8.79-35.84,25.69C23.68,137,2.51,182.81,3.37,250.34s17.47,117,54.06,161.87C76.22,435.86,90.62,448,100.9,448a13.55,13.55,0,0,0,8.37-3.84c1.91-2.76,3.81-5.63,3.81-8.38,0-5.63-3.86-12.2-13.2-20.55-44.45-42.33-67.32-97-67.48-165C32.25,188.8,54,137.83,97.22,96.21ZM239.47,420.07c.58.37.91.55.91.55Zm93.79.55.17-.13C333.24,420.62,333.17,420.67,333.26,420.62Zm3.13-158.18c-16.24-4.15,50.41-82.89-68.05-177.17,0,0,15.54,49.38-62.83,159.57-74.27,104.35,23.46,168.73,34,175.23-6.73-4.35-47.4-35.7,9.55-128.64,11-18.3,25.53-34.87,43.5-72.16,0,0,15.91,22.45,7.6,71.13C287.7,364,354,342.91,355,343.94c22.75,26.78-17.72,73.51-21.58,76.55,5.49-3.65,117.71-78,33-188.1C360.43,238.4,352.62,266.59,336.39,262.44ZM510.88,89.69C496,72.79,483.52,64,475,64a14.81,14.81,0,0,0-8.39,2.84c-1.91,1.91-3.83,4.66-3.83,7.42,0,4.78,5.6,11.26,16,21.9,43.23,41.61,65,92.59,64.82,154.06-.16,68-23,122.63-67.48,165-9.34,8.35-13.18,14.92-13.2,20.55,0,2.75,1.9,5.62,3.81,8.38A13.61,13.61,0,0,0,475.1,448c10.28,0,24.68-12.13,43.47-35.79,36.59-44.85,53.14-94.38,54.06-161.87S552.32,137,510.88,89.69Z\"},\"child\":[]}]})(props);\n};\nexport function FaFreebsd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z\"},\"child\":[]}]})(props);\n};\nexport function FaFulcrum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M95.75 164.14l-35.38 43.55L25 164.14l35.38-43.55zM144.23 0l-20.54 198.18L72.72 256l51 57.82L144.23 512V300.89L103.15 256l41.08-44.89zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55zm-48.48 47L216.5 256l-41.08 44.89V512L196 313.82 247 256l-51-57.82L175.42 0z\"},\"child\":[]}]})(props);\n};\nexport function FaGalacticRepublic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z\"},\"child\":[]}]})(props);\n};\nexport function FaGalacticSenate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z\"},\"child\":[]}]})(props);\n};\nexport function FaGetPocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z\"},\"child\":[]}]})(props);\n};\nexport function FaGgCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z\"},\"child\":[]}]})(props);\n};\nexport function FaGitAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z\"},\"child\":[]}]})(props);\n};\nexport function FaGit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216.29 158.39H137C97 147.9 6.51 150.63 6.51 233.18c0 30.09 15 51.23 35 61-25.1 23-37 33.85-37 49.21 0 11 4.47 21.14 17.89 26.81C8.13 383.61 0 393.35 0 411.65c0 32.11 28.05 50.82 101.63 50.82 70.75 0 111.79-26.42 111.79-73.18 0-58.66-45.16-56.5-151.63-63l13.43-21.55c27.27 7.58 118.7 10 118.7-67.89 0-18.7-7.73-31.71-15-41.07l37.41-2.84zm-63.42 241.9c0 32.06-104.89 32.1-104.89 2.43 0-8.14 5.27-15 10.57-21.54 77.71 5.3 94.32 3.37 94.32 19.11zm-50.81-134.58c-52.8 0-50.46-71.16 1.2-71.16 49.54 0 50.82 71.16-1.2 71.16zm133.3 100.51v-32.1c26.75-3.66 27.24-2 27.24-11V203.61c0-8.5-2.05-7.38-27.24-16.26l4.47-32.92H324v168.71c0 6.51.4 7.32 6.51 8.14l20.73 2.84v32.1zm52.45-244.31c-23.17 0-36.59-13.43-36.59-36.61s13.42-35.77 36.59-35.77c23.58 0 37 12.62 37 35.77s-13.42 36.61-37 36.61zM512 350.46c-17.49 8.53-43.1 16.26-66.28 16.26-48.38 0-66.67-19.5-66.67-65.46V194.75c0-5.42 1.05-4.06-31.71-4.06V154.5c35.78-4.07 50-22 54.47-66.27h38.63c0 65.83-1.34 61.81 3.26 61.81H501v40.65h-60.56v97.15c0 6.92-4.92 51.41 60.57 26.84z\"},\"child\":[]}]})(props);\n};\nexport function FaGithubAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z\"},\"child\":[]}]})(props);\n};\nexport function FaGithub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"},\"child\":[]}]})(props);\n};\nexport function FaGitkraken (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 592 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z\"},\"child\":[]}]})(props);\n};\nexport function FaGitlab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M503.5 204.6L502.8 202.8L433.1 21.02C431.7 17.45 429.2 14.43 425.9 12.38C423.5 10.83 420.8 9.865 417.9 9.57C415 9.275 412.2 9.653 409.5 10.68C406.8 11.7 404.4 13.34 402.4 15.46C400.5 17.58 399.1 20.13 398.3 22.9L351.3 166.9H160.8L113.7 22.9C112.9 20.13 111.5 17.59 109.6 15.47C107.6 13.35 105.2 11.72 102.5 10.7C99.86 9.675 96.98 9.295 94.12 9.587C91.26 9.878 88.51 10.83 86.08 12.38C82.84 14.43 80.33 17.45 78.92 21.02L9.267 202.8L8.543 204.6C-1.484 230.8-2.72 259.6 5.023 286.6C12.77 313.5 29.07 337.3 51.47 354.2L51.74 354.4L52.33 354.8L158.3 434.3L210.9 474L242.9 498.2C246.6 500.1 251.2 502.5 255.9 502.5C260.6 502.5 265.2 500.1 268.9 498.2L300.9 474L353.5 434.3L460.2 354.4L460.5 354.1C482.9 337.2 499.2 313.5 506.1 286.6C514.7 259.6 513.5 230.8 503.5 204.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z\"},\"child\":[]}]})(props);\n};\nexport function FaGlideG (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z\"},\"child\":[]}]})(props);\n};\nexport function FaGlide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 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-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z\"},\"child\":[]}]})(props);\n};\nexport function FaGofore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 400 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z\"},\"child\":[]}]})(props);\n};\nexport function FaGolang (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400.1 194.8C389.2 197.6 380.2 199.1 371 202.4C363.7 204.3 356.3 206.3 347.8 208.5L347.2 208.6C343 209.8 342.6 209.9 338.7 205.4C334 200.1 330.6 196.7 324.1 193.5C304.4 183.9 285.4 186.7 267.7 198.2C246.5 211.9 235.6 232.2 235.9 257.4C236.2 282.4 253.3 302.9 277.1 306.3C299.1 309.1 316.9 301.7 330.9 285.8C333 283.2 334.9 280.5 337 277.5V277.5L337 277.5C337.8 276.5 338.5 275.4 339.3 274.2H279.2C272.7 274.2 271.1 270.2 273.3 264.9C277.3 255.2 284.8 239 289.2 230.9C290.1 229.1 292.3 225.1 296.1 225.1H397.2C401.7 211.7 409 198.2 418.8 185.4C441.5 155.5 468.1 139.9 506 133.4C537.8 127.8 567.7 130.9 594.9 149.3C619.5 166.1 634.7 188.9 638.8 218.8C644.1 260.9 631.9 295.1 602.1 324.4C582.4 345.3 557.2 358.4 528.2 364.3C522.6 365.3 517.1 365.8 511.7 366.3C508.8 366.5 506 366.8 503.2 367.1C474.9 366.5 449 358.4 427.2 339.7C411.9 326.4 401.3 310.1 396.1 291.2C392.4 298.5 388.1 305.6 382.1 312.3C360.5 341.9 331.2 360.3 294.2 365.2C263.6 369.3 235.3 363.4 210.3 344.7C187.3 327.2 174.2 304.2 170.8 275.5C166.7 241.5 176.7 210.1 197.2 184.2C219.4 155.2 248.7 136.8 284.5 130.3C313.8 124.1 341.8 128.4 367.1 145.6C383.6 156.5 395.4 171.4 403.2 189.5C405.1 192.3 403.8 193.9 400.1 194.8zM48.3 200.4C47.05 200.4 46.74 199.8 47.36 198.8L53.91 190.4C54.53 189.5 56.09 188.9 57.34 188.9H168.6C169.8 188.9 170.1 189.8 169.5 190.7L164.2 198.8C163.6 199.8 162 200.7 161.1 200.7L48.3 200.4zM1.246 229.1C0 229.1-.3116 228.4 .3116 227.5L6.855 219.1C7.479 218.2 9.037 217.5 10.28 217.5H152.4C153.6 217.5 154.2 218.5 153.9 219.4L151.4 226.9C151.1 228.1 149.9 228.8 148.6 228.8L1.246 229.1zM75.72 255.9C75.1 256.8 75.41 257.7 76.65 257.7L144.6 258C145.5 258 146.8 257.1 146.8 255.9L147.4 248.4C147.4 247.1 146.8 246.2 145.5 246.2H83.2C81.95 246.2 80.71 247.1 80.08 248.1L75.72 255.9zM577.2 237.9C577 235.3 576.9 233.1 576.5 230.9C570.9 200.1 542.5 182.6 512.9 189.5C483.9 196 465.2 214.4 458.4 243.7C452.8 268 464.6 292.6 487 302.6C504.2 310.1 521.3 309.2 537.8 300.7C562.4 287.1 575.8 268 577.4 241.2C577.3 240 577.3 238.9 577.2 237.9z\"},\"child\":[]}]})(props);\n};\nexport function FaGoodreadsG (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z\"},\"child\":[]}]})(props);\n};\nexport function FaGoodreads (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGoogleDrive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z\"},\"child\":[]}]})(props);\n};\nexport function FaGooglePay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M105.72,215v41.25h57.1a49.66,49.66,0,0,1-21.14,32.6c-9.54,6.55-21.72,10.28-36,10.28-27.6,0-50.93-18.91-59.3-44.22a65.61,65.61,0,0,1,0-41l0,0c8.37-25.46,31.7-44.37,59.3-44.37a56.43,56.43,0,0,1,40.51,16.08L176.47,155a101.24,101.24,0,0,0-70.75-27.84,105.55,105.55,0,0,0-94.38,59.11,107.64,107.64,0,0,0,0,96.18v.15a105.41,105.41,0,0,0,94.38,59c28.47,0,52.55-9.53,70-25.91,20-18.61,31.41-46.15,31.41-78.91A133.76,133.76,0,0,0,205.38,215Zm389.41-4c-10.13-9.38-23.93-14.14-41.39-14.14-22.46,0-39.34,8.34-50.5,24.86l20.85,13.26q11.45-17,31.26-17a34.05,34.05,0,0,1,22.75,8.79A28.14,28.14,0,0,1,487.79,248v5.51c-9.1-5.07-20.55-7.75-34.64-7.75-16.44,0-29.65,3.88-39.49,11.77s-14.82,18.31-14.82,31.56a39.74,39.74,0,0,0,13.94,31.27c9.25,8.34,21,12.51,34.79,12.51,16.29,0,29.21-7.3,39-21.89h1v17.72h22.61V250C510.25,233.45,505.26,220.34,495.13,211ZM475.9,300.3a37.32,37.32,0,0,1-26.57,11.16A28.61,28.61,0,0,1,431,305.21a19.41,19.41,0,0,1-7.77-15.63c0-7,3.22-12.81,9.54-17.42s14.53-7,24.07-7C470,265,480.3,268,487.64,273.94,487.64,284.07,483.68,292.85,475.9,300.3Zm-93.65-142A55.71,55.71,0,0,0,341.74,142H279.07V328.74H302.7V253.1h39c16,0,29.5-5.36,40.51-15.93.88-.89,1.76-1.79,2.65-2.68A54.45,54.45,0,0,0,382.25,158.26Zm-16.58,62.23a30.65,30.65,0,0,1-23.34,9.68H302.7V165h39.63a32,32,0,0,1,22.6,9.23A33.18,33.18,0,0,1,365.67,220.49ZM614.31,201,577.77,292.7h-.45L539.9,201H514.21L566,320.55l-29.35,64.32H561L640,201Z\"},\"child\":[]}]})(props);\n};\nexport function FaGooglePlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z\"},\"child\":[]}]})(props);\n};\nexport function FaGooglePlusG (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z\"},\"child\":[]}]})(props);\n};\nexport function FaGooglePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256,8C119.1,8,8,119.1,8,256S119.1,504,256,504,504,392.9,504,256,392.9,8,256,8ZM185.3,380a124,124,0,0,1,0-248c31.3,0,60.1,11,83,32.3l-33.6,32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9,0-77.2,35.5-77.2,78.1S142.3,334,185.3,334c32.6,0,64.9-19.1,70.1-53.3H185.3V238.1H302.2a109.2,109.2,0,0,1,1.9,20.7c0,70.8-47.5,121.2-118.8,121.2ZM415.5,273.8v35.5H380V273.8H344.5V238.3H380V202.8h35.5v35.5h35.2v35.5Z\"},\"child\":[]}]})(props);\n};\nexport function FaGoogleScholar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M390.9 298.5c0 0 0 .1 .1 .1c9.2 19.4 14.4 41.1 14.4 64C405.3 445.1 338.5 512 256 512s-149.3-66.9-149.3-149.3c0-22.9 5.2-44.6 14.4-64h0c1.7-3.6 3.6-7.2 5.6-10.7c4.4-7.6 9.4-14.7 15-21.3c27.4-32.6 68.5-53.3 114.4-53.3c33.6 0 64.6 11.1 89.6 29.9c9.1 6.9 17.4 14.7 24.8 23.5c5.6 6.6 10.6 13.8 15 21.3c2 3.4 3.8 7 5.5 10.5zm26.4-18.8c-30.1-58.4-91-98.4-161.3-98.4s-131.2 40-161.3 98.4L0 202.7 256 0 512 202.7l-94.7 77.1z\"},\"child\":[]}]})(props);\n};\nexport function FaGoogleWallet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGoogle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 488 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z\"},\"child\":[]}]})(props);\n};\nexport function FaGratipay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z\"},\"child\":[]}]})(props);\n};\nexport function FaGrav (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z\"},\"child\":[]}]})(props);\n};\nexport function FaGripfire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4.4 3.3.6 6.7.6 10C179.1 110.1 32 171.9 32 286.6c0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGrunt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm142.1 45.8c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zM160 418.5h-29.4c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8.6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zm189.2-101.2c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM191.9 187.7h.2c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7h-29.4c-4.2 0-7.2.9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z\"},\"child\":[]}]})(props);\n};\nexport function FaGuilded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M443.427,64H4.571c0,103.26,22.192,180.06,43.418,222.358C112.046,414.135,224,448,225.256,448a312.824,312.824,0,0,0,140.55-103.477c25.907-33.923,53.1-87.19,65.916-145.761H171.833c4.14,36.429,22.177,67.946,45.1,86.944h88.589c-17.012,28.213-48.186,54.4-80.456,69.482-31.232-13.259-69.09-46.544-96.548-98.362-26.726-53.833-27.092-105.883-27.092-105.883H437.573A625.91,625.91,0,0,0,443.427,64Z\"},\"child\":[]}]})(props);\n};\nexport function FaGulp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z\"},\"child\":[]}]})(props);\n};\nexport function FaHackerNews (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHackerrank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M477.5 128C463 103.05 285.13 0 256.16 0S49.25 102.79 34.84 128s-14.49 230.8 0 256 192.38 128 221.32 128S463 409.08 477.49 384s14.51-231 .01-256zM316.13 414.22c-4 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32 0-2-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 6-5.74 5.94-10.13 0-20.27-.11-30.41-.08-4.1 0-5.87-1.53-5.74-6.11.92-33.44 3-84-.15-212.67v-3.17c-9.67-.35-16.38-1-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69s41.17 35.78 38.27 38.69c-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46 0 4.57 1.72 4.5 5.38C333 354.64 336 341.29 336 373.69c8.87.35 16.82 1 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z\"},\"child\":[]}]})(props);\n};\nexport function FaHashnode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M35.19 171.1C-11.72 217.1-11.72 294 35.19 340.9L171.1 476.8C217.1 523.7 294 523.7 340.9 476.8L476.8 340.9C523.7 294 523.7 217.1 476.8 171.1L340.9 35.19C294-11.72 217.1-11.72 171.1 35.19L35.19 171.1zM315.5 315.5C282.6 348.3 229.4 348.3 196.6 315.5C163.7 282.6 163.7 229.4 196.6 196.6C229.4 163.7 282.6 163.7 315.5 196.6C348.3 229.4 348.3 282.6 315.5 315.5z\"},\"child\":[]}]})(props);\n};\nexport function FaHips (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M251.6 157.6c0-1.9-.9-2.8-2.8-2.8h-40.9c-1.6 0-2.7 1.4-2.7 2.8v201.8c0 1.4 1.1 2.8 2.7 2.8h40.9c1.9 0 2.8-.9 2.8-2.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4V80.2c0-1.8-.9-2.7-2.8-2.7H2.7c-1.8 0-2.7.9-2.7 2.7v279.2c0 1.9.9 2.8 2.7 2.8h41c1.9 0 2.8-.9 2.8-2.8V223.3c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27v122.6c0 9 7.3 16.3 16.4 16.3h27.3c1.8 0 2.7-.9 2.7-2.8V223.3c0-23.4-9.3-41.8-28-55.3zm478.4 110.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4v-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5.4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6l53.6 23.5c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4.2-4.4 2.3v34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3.7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHireAHelper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z\"},\"child\":[]}]})(props);\n};\nexport function FaHive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M260.353,254.878,131.538,33.1a2.208,2.208,0,0,0-3.829.009L.3,254.887A2.234,2.234,0,0,0,.3,257.122L129.116,478.9a2.208,2.208,0,0,0,3.83-.009L260.358,257.113A2.239,2.239,0,0,0,260.353,254.878Zm39.078-25.713a2.19,2.19,0,0,0,1.9,1.111h66.509a2.226,2.226,0,0,0,1.9-3.341L259.115,33.111a2.187,2.187,0,0,0-1.9-1.111H190.707a2.226,2.226,0,0,0-1.9,3.341ZM511.7,254.886,384.9,33.112A2.2,2.2,0,0,0,382.99,32h-66.6a2.226,2.226,0,0,0-1.906,3.34L440.652,256,314.481,476.66a2.226,2.226,0,0,0,1.906,3.34h66.6a2.2,2.2,0,0,0,1.906-1.112L511.7,257.114A2.243,2.243,0,0,0,511.7,254.886ZM366.016,284.917H299.508a2.187,2.187,0,0,0-1.9,1.111l-108.8,190.631a2.226,2.226,0,0,0,1.9,3.341h66.509a2.187,2.187,0,0,0,1.9-1.111l108.8-190.631A2.226,2.226,0,0,0,366.016,284.917Z\"},\"child\":[]}]})(props);\n};\nexport function FaHooli (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8zm57.7-5.3v5.3l-19.4.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3zm408.9-115.2c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zm-29 120.5H640V241.5h-57.9zm-73.7 0h57.9V156.7L508.4 184zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9zm-106.2-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.8 110.8V352h57.9v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4v-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184v63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1zm226.5 120.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHornbill (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M76.38 370.3a37.8 37.8 0 1 1-32.07-32.42c-78.28-111.35 52-190.53 52-190.53-5.86 43-8.24 91.16-8.24 91.16-67.31 41.49.93 64.06 39.81 72.87a140.38 140.38 0 0 0 131.66 91.94c1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zm108-327.7A37.57 37.57 0 0 0 181 21.45a37.95 37.95 0 1 0-31.17 54.22c-22.55 29.91-53.83 89.57-52.42 190l21.84-.15c0-.9-.14-1.77-.14-2.68A140.42 140.42 0 0 1 207 132.71c8-37.71 30.7-114.3 73.8-44.29 0 0 48.14 2.38 91.18 8.24 0 0-77.84-128-187.59-54.06zm304.19 134.17a37.94 37.94 0 1 0-53.84-28.7C403 126.13 344.89 99 251.28 100.33l.14 22.5c2.7-.15 5.39-.41 8.14-.41a140.37 140.37 0 0 1 130.49 88.76c39.1 9 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 49-194.61a37.45 37.45 0 0 0 19.31-3.5zM374.06 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15a140.34 140.34 0 0 1-91.39 131.45c-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 51a37.5 37.5 0 0 0 3.64 14 37.93 37.93 0 1 0 33.89-54.29z\"},\"child\":[]}]})(props);\n};\nexport function FaHotjar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M361.5 0c0 131.6-80.7 176.8-140.2 209.4c-.6 .3-1.1 .6-1.6 .9c-53.8 30.2-88.7 49.8-89.6 122H32C32 200.8 112.7 155.6 172.2 123C227 93.2 262.5 73 262.5 0h98.9zM301 302.6c54.8-29.8 90.3-50 90.3-123h98c0 131.6-80.7 176.7-140.2 209.4c-54.8 29.8-90.3 50-90.3 123h-98c0-131.6 80.7-176.8 140.2-209.4z\"},\"child\":[]}]})(props);\n};\nexport function FaHouzz (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M275.9 330.7H171.3V480H17V32h109.5v104.5l305.1 85.6V480H275.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHtml5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z\"},\"child\":[]}]})(props);\n};\nexport function FaHubspot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z\"},\"child\":[]}]})(props);\n};\nexport function FaIdeal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M125.61,165.48a49.07,49.07,0,1,0,49.06,49.06A49.08,49.08,0,0,0,125.61,165.48ZM86.15,425.84h78.94V285.32H86.15Zm151.46-211.6c0-20-10-22.53-18.74-22.53H204.82V237.5h14.05C228.62,237.5,237.61,234.69,237.61,214.24Zm201.69,46V168.93h22.75V237.5h33.69C486.5,113.08,388.61,86.19,299.67,86.19H204.84V169h14c25.6,0,41.5,17.35,41.5,45.26,0,28.81-15.52,46-41.5,46h-14V425.88h94.83c144.61,0,194.94-67.16,196.72-165.64Zm-109.75,0H273.3V169h54.43v22.73H296v10.58h30V225H296V237.5h33.51Zm74.66,0-5.16-17.67H369.31l-5.18,17.67H340.47L368,168.92h32.35l27.53,91.34ZM299.65,32H32V480H299.65c161.85,0,251-79.73,251-224.52C550.62,172,518,32,299.65,32Zm0,426.92H53.07V53.07H299.65c142.1,0,229.9,64.61,229.9,202.41C529.55,389.57,448.55,458.92,299.65,458.92Zm83.86-264.85L376,219.88H392.4l-7.52-25.81Z\"},\"child\":[]}]})(props);\n};\nexport function FaImdb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M89.5 323.6H53.93V186.2H89.5V323.6zM156.1 250.5L165.2 186.2H211.5V323.6H180.5V230.9L167.1 323.6H145.8L132.8 232.9L132.7 323.6H101.5V186.2H147.6C148.1 194.5 150.4 204.3 151.9 215.6L156.1 250.5zM223.7 323.6V186.2H250.3C267.3 186.2 277.3 187.1 283.3 188.6C289.4 190.3 294 192.8 297.2 196.5C300.3 199.8 302.3 203.1 303 208.5C303.9 212.9 304.4 221.6 304.4 234.7V282.9C304.4 295.2 303.7 303.4 302.5 307.6C301.4 311.7 299.4 315 296.5 317.3C293.7 319.7 290.1 321.4 285.8 322.3C281.6 323.1 275.2 323.6 266.7 323.6H223.7zM259.2 209.7V299.1C264.3 299.1 267.5 298.1 268.6 296.8C269.7 294.8 270.4 289.2 270.4 280.1V226.8C270.4 220.6 270.3 216.6 269.7 214.8C269.4 213 268.5 211.8 267.1 210.1C265.7 210.1 263 209.7 259.2 209.7V209.7zM316.5 323.6V186.2H350.6V230.1C353.5 227.7 356.7 225.2 360.1 223.5C363.7 222 368.9 221.1 372.9 221.1C377.7 221.1 381.8 221.9 385.2 223.3C388.6 224.8 391.2 226.8 393.2 229.5C394.9 232.1 395.9 234.8 396.3 237.3C396.7 239.9 396.1 245.3 396.1 253.5V292.1C396.1 300.3 396.3 306.4 395.3 310.5C394.2 314.5 391.5 318.1 387.5 320.1C383.4 324 378.6 325.4 372.9 325.4C368.9 325.4 363.7 324.5 360.2 322.9C356.7 321.1 353.5 318.4 350.6 314.9L348.5 323.6L316.5 323.6zM361.6 302.9C362.3 301.1 362.6 296.9 362.6 290.4V255C362.6 249.4 362.3 245.5 361.5 243.8C360.8 241.9 357.8 241.1 355.7 241.1C353.7 241.1 352.3 241.9 351.6 243.4C351 244.9 350.6 248.8 350.6 255V291.4C350.6 297.5 351 301.4 351.8 303C352.4 304.7 353.9 305.5 355.9 305.5C358.1 305.5 360.1 304.7 361.6 302.9L361.6 302.9zM418.4 32.04C434.1 33.27 447.1 47.28 447.1 63.92V448.1C447.1 464.5 435.2 478.5 418.9 479.1C418.6 479.1 418.4 480 418.1 480H29.88C29.6 480 29.32 479.1 29.04 479.9C13.31 478.5 1.093 466.1 0 449.7L.0186 61.78C1.081 45.88 13.82 33.09 30.26 31.1H417.7C417.9 31.1 418.2 32.01 418.4 32.04L418.4 32.04zM30.27 41.26C19 42.01 10.02 51.01 9.257 62.4V449.7C9.63 455.1 11.91 460.2 15.7 464C19.48 467.9 24.51 470.3 29.89 470.7H418.1C429.6 469.7 438.7 459.1 438.7 448.1V63.91C438.7 58.17 436.6 52.65 432.7 48.45C428.8 44.24 423.4 41.67 417.7 41.26L30.27 41.26z\"},\"child\":[]}]})(props);\n};\nexport function FaInstagram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"},\"child\":[]}]})(props);\n};\nexport function FaInstalod (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M153.384,480H387.113L502.554,275.765,204.229,333.211ZM504.726,240.078,387.113,32H155.669L360.23,267.9ZM124.386,48.809,7.274,256,123.236,461.154,225.627,165.561Z\"},\"child\":[]}]})(props);\n};\nexport function FaIntercom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"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-56zm-108.3 82.1c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0v216.5c0 19.8-29.9 19.8-29.9 0V106.6zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zM59.7 144c0-19.8 29.9-19.8 29.9 0v134.3c0 19.8-29.9 19.8-29.9 0V144zm323.4 227.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0V144c0-19.8 29.9-19.8 29.9 0v134.3z\"},\"child\":[]}]})(props);\n};\nexport function FaInternetExplorer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z\"},\"child\":[]}]})(props);\n};\nexport function FaInvision (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.4 32H40.6C18.2 32 0 50.2 0 72.6v366.8C0 461.8 18.2 480 40.6 480h366.8c22.4 0 40.6-18.2 40.6-40.6V72.6c0-22.4-18.2-40.6-40.6-40.6zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9.7l-25.8 103.3H177l8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3.1-14.3.9-14 23-104.1H81.7l9.7-35.6h76.4c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4h-32.3l9.7-35.6h68.8l-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z\"},\"child\":[]}]})(props);\n};\nexport function FaIoxhost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaItchIo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M71.92 34.77C50.2 47.67 7.4 96.84 7 109.73v21.34c0 27.06 25.29 50.84 48.25 50.84 27.57 0 50.54-22.85 50.54-50 0 27.12 22.18 50 49.76 50s49-22.85 49-50c0 27.12 23.59 50 51.16 50h.5c27.57 0 51.16-22.85 51.16-50 0 27.12 21.47 50 49 50s49.76-22.85 49.76-50c0 27.12 23 50 50.54 50 23 0 48.25-23.78 48.25-50.84v-21.34c-.4-12.9-43.2-62.07-64.92-75C372.56 32.4 325.76 32 256 32S91.14 33.1 71.92 34.77zm132.32 134.39c-22 38.4-77.9 38.71-99.85.25-13.17 23.14-43.17 32.07-56 27.66-3.87 40.15-13.67 237.13 17.73 269.15 80 18.67 302.08 18.12 379.76 0 31.65-32.27 21.32-232 17.75-269.15-12.92 4.44-42.88-4.6-56-27.66-22 38.52-77.85 38.1-99.85-.24-7.1 12.49-23.05 28.94-51.76 28.94a57.54 57.54 0 0 1-51.75-28.94zm-41.58 53.77c16.47 0 31.09 0 49.22 19.78a436.91 436.91 0 0 1 88.18 0C318.22 223 332.85 223 349.31 223c52.33 0 65.22 77.53 83.87 144.45 17.26 62.15-5.52 63.67-33.95 63.73-42.15-1.57-65.49-32.18-65.49-62.79-39.25 6.43-101.93 8.79-155.55 0 0 30.61-23.34 61.22-65.49 62.79-28.42-.06-51.2-1.58-33.94-63.73 18.67-67 31.56-144.45 83.88-144.45zM256 270.79s-44.38 40.77-52.35 55.21l29-1.17v25.32c0 1.55 21.34.16 23.33.16 11.65.54 23.31 1 23.31-.16v-25.28l29 1.17c-8-14.48-52.35-55.24-52.35-55.24z\"},\"child\":[]}]})(props);\n};\nexport function FaItunesNote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z\"},\"child\":[]}]})(props);\n};\nexport function FaItunes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z\"},\"child\":[]}]})(props);\n};\nexport function FaJava (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M277.74 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8C296 53.2 242.84 0 242.84 0c21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zm114.6-176.2c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3zm-6.1 270.5a12.19 12.19 0 0 1-2 2.6c128.3-33.7 81.1-118.9 19.8-97.3a17.33 17.33 0 0 0-8.2 6.3 70.45 70.45 0 0 1 11-3c31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2C232.84 509.4 401 461.3 348 437.4zM124.44 396c-78.7 22 47.9 67.4 148.1 24.5a185.89 185.89 0 0 1-28.2-13.8c-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.64 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9a60.37 60.37 0 0 1-21.1-12.8z\"},\"child\":[]}]})(props);\n};\nexport function FaJediOrder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M398.5 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9v-2.4 1-1 2.4c0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7s-154.4-71.7-68.6-230.1c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7h4.1c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z\"},\"child\":[]}]})(props);\n};\nexport function FaJenkins (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z\"},\"child\":[]}]})(props);\n};\nexport function FaJira (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M490 241.7C417.1 169 320.6 71.8 248.5 0 83 164.9 6 241.7 6 241.7c-7.9 7.9-7.9 20.7 0 28.7C138.8 402.7 67.8 331.9 248.5 512c379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zm-241.5 90l-76-75.7 76-75.7 76 75.7-76 75.7z\"},\"child\":[]}]})(props);\n};\nexport function FaJoget (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M378.1 45C337.6 19.9 292.6 8 248.2 8 165 8 83.8 49.9 36.9 125.9c-71.9 116.6-35.6 269.3 81 341.2s269.3 35.6 341.2-80.9c71.9-116.6 35.6-269.4-81-341.2zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zm-200.8-86.3c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5z\"},\"child\":[]}]})(props);\n};\nexport function FaJoomla (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z\"},\"child\":[]}]})(props);\n};\nexport function FaJs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"},\"child\":[]}]})(props);\n};\nexport function FaJsfiddle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z\"},\"child\":[]}]})(props);\n};\nexport function FaJxl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M412.2 32H35.8C16 32 0 48 0 67.8V444.2C0 464 16 480 35.8 480H412.2c19.8 0 35.8-16 35.8-35.8V67.8C448 48 432 32 412.2 32zM378.6 333.7c0 40.2-32.6 72.8-72.8 72.8H70.2c0-40.2 32.6-72.8 72.8-72.8H378.6zm0-113.9c0 40.2-32.6 72.8-72.8 72.8H70.2c0-40.2 32.6-72.8 72.8-72.8H378.6zm0-113.9c0 40.2-32.6 72.8-72.8 72.8H70.2c0-40.2 32.6-72.8 72.8-72.8H378.6z\"},\"child\":[]}]})(props);\n};\nexport function FaKaggle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5h-69.2c-3.5 0-7 1.8-10.5 5.3L80.9 313.5V7.5q0-7.5-7.5-7.5H21.5Q14 0 14 7.5v497q0 7.5 7.5 7.5h51.9q7.5 0 7.5-7.5v-109l30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3h66.9q5.25 0 6-3z\"},\"child\":[]}]})(props);\n};\nexport function FaKeybase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M286.17 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18zm111.92-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0-47.88-104.13c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.66 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93.54a214 214 0 0 0-46.29 35.54C14 304.66 14 374 14 429.77v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.29 178.29 0 0 1-15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.38-61.76 236.25-38.59 34.2 10.05 67.45.69 84.74-23.84.72-1 1.2-2.16 1.85-3.22a156.09 156.09 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.32c0-38.58-13-77.46-35.91-110.92zM142.37 128.58l-15.7-.93-1.39 21.79 13.13.78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1-11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.35 144.35 0 0 0-7 19.17zm148.42 172.18a10.51 10.51 0 0 1-14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1-11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1-10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.19s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1-1.74 13.44zM187.44 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18z\"},\"child\":[]}]})(props);\n};\nexport function FaKeycdn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160\"},\"child\":[]}]})(props);\n};\nexport function FaKickstarterK (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M356.6 256.2l40.8-40.5c42.2-41.9 42.2-110.3 0-152.1s-111-41.9-153.2 0L229.3 78.4C209.6 50.3 177.1 32 140.2 32C80.5 32 32 80.2 32 139.5V372.5C32 431.9 80.5 480 140.2 480c37.1 0 69.3-18.3 89-46.4l14.9 14.7c42.2 41.9 111 41.9 153.2 0s42.2-110.3 0-152.1l-40.8-40z\"},\"child\":[]}]})(props);\n};\nexport function FaKickstarter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM320.8 233l-23.3 23.1L320.8 279c24.1 23.9 24.1 63 0 86.9s-63.4 23.9-87.6 0l-8.5-8.4c-11.3 16-29.7 26.5-50.9 26.5c-34.1 0-61.9-27.5-61.9-61.4l0-133.2c0-33.8 27.7-61.4 61.9-61.4c21.1 0 39.6 10.5 50.9 26.5l8.5-8.4c24.1-23.9 63.4-23.9 87.6 0s24.1 63 0 86.9z\"},\"child\":[]}]})(props);\n};\nexport function FaKorvue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 446 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z\"},\"child\":[]}]})(props);\n};\nexport function FaLaravel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504.4,115.83a5.72,5.72,0,0,0-.28-.68,8.52,8.52,0,0,0-.53-1.25,6,6,0,0,0-.54-.71,9.36,9.36,0,0,0-.72-.94c-.23-.22-.52-.4-.77-.6a8.84,8.84,0,0,0-.9-.68L404.4,55.55a8,8,0,0,0-8,0L300.12,111h0a8.07,8.07,0,0,0-.88.69,7.68,7.68,0,0,0-.78.6,8.23,8.23,0,0,0-.72.93c-.17.24-.39.45-.54.71a9.7,9.7,0,0,0-.52,1.25c-.08.23-.21.44-.28.68a8.08,8.08,0,0,0-.28,2.08V223.18l-80.22,46.19V63.44a7.8,7.8,0,0,0-.28-2.09c-.06-.24-.2-.45-.28-.68a8.35,8.35,0,0,0-.52-1.24c-.14-.26-.37-.47-.54-.72a9.36,9.36,0,0,0-.72-.94,9.46,9.46,0,0,0-.78-.6,9.8,9.8,0,0,0-.88-.68h0L115.61,1.07a8,8,0,0,0-8,0L11.34,56.49h0a6.52,6.52,0,0,0-.88.69,7.81,7.81,0,0,0-.79.6,8.15,8.15,0,0,0-.71.93c-.18.25-.4.46-.55.72a7.88,7.88,0,0,0-.51,1.24,6.46,6.46,0,0,0-.29.67,8.18,8.18,0,0,0-.28,2.1v329.7a8,8,0,0,0,4,6.95l192.5,110.84a8.83,8.83,0,0,0,1.33.54c.21.08.41.2.63.26a7.92,7.92,0,0,0,4.1,0c.2-.05.37-.16.55-.22a8.6,8.6,0,0,0,1.4-.58L404.4,400.09a8,8,0,0,0,4-6.95V287.88l92.24-53.11a8,8,0,0,0,4-7V117.92A8.63,8.63,0,0,0,504.4,115.83ZM111.6,17.28h0l80.19,46.15-80.2,46.18L31.41,63.44Zm88.25,60V278.6l-46.53,26.79-33.69,19.4V123.5l46.53-26.79Zm0,412.78L23.37,388.5V77.32L57.06,96.7l46.52,26.8V338.68a6.94,6.94,0,0,0,.12.9,8,8,0,0,0,.16,1.18h0a5.92,5.92,0,0,0,.38.9,6.38,6.38,0,0,0,.42,1v0a8.54,8.54,0,0,0,.6.78,7.62,7.62,0,0,0,.66.84l0,0c.23.22.52.38.77.58a8.93,8.93,0,0,0,.86.66l0,0,0,0,92.19,52.18Zm8-106.17-80.06-45.32,84.09-48.41,92.26-53.11,80.13,46.13-58.8,33.56Zm184.52,4.57L215.88,490.11V397.8L346.6,323.2l45.77-26.15Zm0-119.13L358.68,250l-46.53-26.79V131.79l33.69,19.4L392.37,178Zm8-105.28-80.2-46.17,80.2-46.16,80.18,46.15Zm8,105.28V178L455,151.19l33.68-19.4v91.39h0Z\"},\"child\":[]}]})(props);\n};\nexport function FaLastfm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z\"},\"child\":[]}]})(props);\n};\nexport function FaLeanpub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z\"},\"child\":[]}]})(props);\n};\nexport function FaLess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z\"},\"child\":[]}]})(props);\n};\nexport function FaLetterboxd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M521.3 128C586.9 128 640 181.1 640 246.6s-53.1 118.6-118.7 118.6c-42.5 0-79.7-22.3-100.7-55.8c11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l0 0 .8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zM320 128c42.5 0 79.7 22.3 100.7 55.8c-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l0 0-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0c-42.5 0-79.7-22.3-100.7-55.8c11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l0 0 .8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zm-201.3 0c42.5 0 79.7 22.3 100.7 55.8c-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l0 0-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0C53.1 365.1 0 312.1 0 246.6S53.1 128 118.7 128z\"},\"child\":[]}]})(props);\n};\nexport function FaLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M311 196.8v81.3c0 2.1-1.6 3.7-3.7 3.7h-13c-1.3 0-2.4-.7-3-1.5l-37.3-50.3v48.2c0 2.1-1.6 3.7-3.7 3.7h-13c-2.1 0-3.7-1.6-3.7-3.7V196.9c0-2.1 1.6-3.7 3.7-3.7h12.9c1.1 0 2.4 .6 3 1.6l37.3 50.3V196.9c0-2.1 1.6-3.7 3.7-3.7h13c2.1-.1 3.8 1.6 3.8 3.5zm-93.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 2.1 1.6 3.7 3.7 3.7h13c2.1 0 3.7-1.6 3.7-3.7V196.8c0-1.9-1.6-3.7-3.7-3.7zm-31.4 68.1H150.3V196.8c0-2.1-1.6-3.7-3.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 1 .3 1.8 1 2.5c.7 .6 1.5 1 2.5 1h52.2c2.1 0 3.7-1.6 3.7-3.7v-13c0-1.9-1.6-3.7-3.5-3.7zm193.7-68.1H327.3c-1.9 0-3.7 1.6-3.7 3.7v81.3c0 1.9 1.6 3.7 3.7 3.7h52.2c2.1 0 3.7-1.6 3.7-3.7V265c0-2.1-1.6-3.7-3.7-3.7H344V247.7h35.5c2.1 0 3.7-1.6 3.7-3.7V230.9c0-2.1-1.6-3.7-3.7-3.7H344V213.5h35.5c2.1 0 3.7-1.6 3.7-3.7v-13c-.1-1.9-1.7-3.7-3.7-3.7zM512 93.4V419.4c-.1 51.2-42.1 92.7-93.4 92.6H92.6C41.4 511.9-.1 469.8 0 418.6V92.6C.1 41.4 42.2-.1 93.4 0H419.4c51.2 .1 92.7 42.1 92.6 93.4zM441.6 233.5c0-83.4-83.7-151.3-186.4-151.3s-186.4 67.9-186.4 151.3c0 74.7 66.3 137.4 155.9 149.3c21.8 4.7 19.3 12.7 14.4 42.1c-.8 4.7-3.8 18.4 16.1 10.1s107.3-63.2 146.5-108.2c27-29.7 39.9-59.8 39.9-93.1z\"},\"child\":[]}]})(props);\n};\nexport function FaLinkedinIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z\"},\"child\":[]}]})(props);\n};\nexport function FaLinkedin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\"},\"child\":[]}]})(props);\n};\nexport function FaLinode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M366.036,186.867l-59.5,36.871-.838,36.871-29.329-19.273-39.384,24.3c2.238,55.211,2.483,59.271,2.51,59.5l-97.2,65.359L127.214,285.748l108.1-62.01L195.09,197.761l-75.417,38.547L98.723,93.015,227.771,43.574,136.432,0,10.737,39.385,38.39,174.3l41.9,32.681L48.445,222.062,69.394,323.457,98.723,351.11,77.774,363.679l16.76,78.769L160.733,512c-10.8-74.842-11.658-78.641-11.725-78.773l77.925-55.3c16.759-12.57,15.083-10.894,15.083-10.894l.838,24.3,33.519,28.491-.838-77.093,46.927-33.519,26.815-18.435-2.514,36.033,25.139,17.6,6.7-74.579,58.657-43.575Z\"},\"child\":[]}]})(props);\n};\nexport function FaLinux (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\"},\"child\":[]}]})(props);\n};\nexport function FaLyft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z\"},\"child\":[]}]})(props);\n};\nexport function FaMagento (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z\"},\"child\":[]}]})(props);\n};\nexport function FaMailchimp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M330.61 243.52a36.15 36.15 0 0 1 9.3 0c1.66-3.83 1.95-10.43.45-17.61-2.23-10.67-5.25-17.14-11.48-16.13s-6.47 8.74-4.24 19.42c1.26 6 3.49 11.14 6 14.32zM277.05 252c4.47 2 7.2 3.26 8.28 2.13 1.89-1.94-3.48-9.39-12.12-13.09a31.44 31.44 0 0 0-30.61 3.68c-3 2.18-5.81 5.22-5.41 7.06.85 3.74 10-2.71 22.6-3.48 7-.44 12.8 1.75 17.26 3.71zm-9 5.13c-9.07 1.42-15 6.53-13.47 10.1.9.34 1.17.81 5.21-.81a37 37 0 0 1 18.72-1.95c2.92.34 4.31.52 4.94-.49 1.46-2.22-5.71-8-15.39-6.85zm54.17 17.1c3.38-6.87-10.9-13.93-14.3-7s10.92 13.88 14.32 6.97zm15.66-20.47c-7.66-.13-7.95 15.8-.26 15.93s7.98-15.81.28-15.96zm-218.79 78.9c-1.32.31-6 1.45-8.47-2.35-5.2-8 11.11-20.38 3-35.77-9.1-17.47-27.82-13.54-35.05-5.54-8.71 9.6-8.72 23.54-5 24.08 4.27.57 4.08-6.47 7.38-11.63a12.83 12.83 0 0 1 17.85-3.72c11.59 7.59 1.37 17.76 2.28 28.62 1.39 16.68 18.42 16.37 21.58 9a2.08 2.08 0 0 0-.2-2.33c.03.89.68-1.3-3.35-.39zm299.72-17.07c-3.35-11.73-2.57-9.22-6.78-20.52 2.45-3.67 15.29-24-3.07-43.25-10.4-10.92-33.9-16.54-41.1-18.54-1.5-11.39 4.65-58.7-21.52-83 20.79-21.55 33.76-45.29 33.73-65.65-.06-39.16-48.15-51-107.42-26.47l-12.55 5.33c-.06-.05-22.71-22.27-23.05-22.57C169.5-18-41.77 216.81 25.78 273.85l14.76 12.51a72.49 72.49 0 0 0-4.1 33.5c3.36 33.4 36 60.42 67.53 60.38 57.73 133.06 267.9 133.28 322.29 3 1.74-4.47 9.11-24.61 9.11-42.38s-10.09-25.27-16.53-25.27zm-316 48.16c-22.82-.61-47.46-21.15-49.91-45.51-6.17-61.31 74.26-75.27 84-12.33 4.54 29.64-4.67 58.49-34.12 57.81zM84.3 249.55C69.14 252.5 55.78 261.09 47.6 273c-4.88-4.07-14-12-15.59-15-13.01-24.85 14.24-73 33.3-100.21C112.42 90.56 186.19 39.68 220.36 48.91c5.55 1.57 23.94 22.89 23.94 22.89s-34.15 18.94-65.8 45.35c-42.66 32.85-74.89 80.59-94.2 132.4zM323.18 350.7s-35.74 5.3-69.51-7.07c6.21-20.16 27 6.1 96.4-13.81 15.29-4.38 35.37-13 51-25.35a102.85 102.85 0 0 1 7.12 24.28c3.66-.66 14.25-.52 11.44 18.1-3.29 19.87-11.73 36-25.93 50.84A106.86 106.86 0 0 1 362.55 421a132.45 132.45 0 0 1-20.34 8.58c-53.51 17.48-108.3-1.74-126-43a66.33 66.33 0 0 1-3.55-9.74c-7.53-27.2-1.14-59.83 18.84-80.37 1.23-1.31 2.48-2.85 2.48-4.79a8.45 8.45 0 0 0-1.92-4.54c-7-10.13-31.19-27.4-26.33-60.83 3.5-24 24.49-40.91 44.07-39.91l5 .29c8.48.5 15.89 1.59 22.88 1.88 11.69.5 22.2-1.19 34.64-11.56 4.2-3.5 7.57-6.54 13.26-7.51a17.45 17.45 0 0 1 13.6 2.24c10 6.64 11.4 22.73 11.92 34.49.29 6.72 1.1 23 1.38 27.63.63 10.67 3.43 12.17 9.11 14 3.19 1.05 6.15 1.83 10.51 3.06 13.21 3.71 21 7.48 26 12.31a16.38 16.38 0 0 1 4.74 9.29c1.56 11.37-8.82 25.4-36.31 38.16-46.71 21.68-93.68 14.45-100.48 13.68-20.15-2.71-31.63 23.32-19.55 41.15 22.64 33.41 122.4 20 151.37-21.35.69-1 .12-1.59-.73-1-41.77 28.58-97.06 38.21-128.46 26-4.77-1.85-14.73-6.44-15.94-16.67 43.6 13.49 71 .74 71 .74s2.03-2.79-.56-2.53zm-68.47-5.7zm-83.4-187.5c16.74-19.35 37.36-36.18 55.83-45.63a.73.73 0 0 1 1 1c-1.46 2.66-4.29 8.34-5.19 12.65a.75.75 0 0 0 1.16.79c11.49-7.83 31.48-16.22 49-17.3a.77.77 0 0 1 .52 1.38 41.86 41.86 0 0 0-7.71 7.74.75.75 0 0 0 .59 1.19c12.31.09 29.66 4.4 41 10.74.76.43.22 1.91-.64 1.72-69.55-15.94-123.08 18.53-134.5 26.83a.76.76 0 0 1-1-1.12z\"},\"child\":[]}]})(props);\n};\nexport function FaMandalorian (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232.27 511.89c-1-3.26-1.69-15.83-1.39-24.58.55-15.89 1-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-1 .4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-1-11.43a92.38 92.38 0 0 0-.34-12.71c-2-13-3.46-27.7-3.25-33.9s.43-7.15 2.06-9.67c3.05-4.71 6.51-14 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74a109.54 109.54 0 0 1 4.42-15.05c2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71s-4.76 4.8-8.29 7.36c-8.37 6.08-11.7 9.39-12.66 12.58s-1 7.23-.16 7.76c.34.21 1.29 2.4 2.11 4.88a28.83 28.83 0 0 1 .72 15.36c-.39 1.77-1 5.47-1.46 8.23s-1 6.46-1.25 8.22a9.85 9.85 0 0 1-1.55 4.26c-1 1-1.14.91-2.05-.53a14.87 14.87 0 0 1-1.44-4.75c-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-1-21a14.24 14.24 0 0 0 1.67-4.61c0-2.39-2.2-5.32-7.41-9.89-7-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3-2.6 9.11-3 22l-.34 12.19 2 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56s.95 22.75 2 24.71c.36.66.51 1.35.34 1.52s.41 2.09 1.29 4.27a38.14 38.14 0 0 1 2.06 9 91 91 0 0 0 1.71 10.37c2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 58-2 61.21-.12 2-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4-4.79-2.83-9.95.7-3 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73s.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57 0-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-11-1.9-23.85-14.55-6.15-6-12.34-12-13.75-13.19-2.81-2.42-2.79-2-.56-9.63l1.35-4.65-1.69-3a32.22 32.22 0 0 0-2.59-4.07c-1.33-1.51-5.5-10.89-6-13.49a4.24 4.24 0 0 1 .87-3.9c2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1 9.41 5 1.34 4.79 1.37 9.79.1 18.55a101.2 101.2 0 0 0-1 11.11c0 4 .19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52a18.67 18.67 0 0 1 4.72 2.85c11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 8 4.54 10 13.39 1.31 5.65 4 11.14 5.46 11.14a9.38 9.38 0 0 0 3.33-1.39c2-1.22 2.25-1.73 2.25-4.18a132.88 132.88 0 0 0-2-17.84c-.37-1.66-.78-4.06-.93-5.35s-.61-3.85-1-5.69c-2.55-11.16-3.65-15.46-4.1-16-1.55-2-4.08-10.2-4.93-15.92-1.64-11.11-4-14.23-12.91-17.39A43.15 43.15 0 0 1 165.24 78c-1.15-1-4-3.22-6.35-5.06s-4.41-3.53-4.6-3.76a22.7 22.7 0 0 0-2.69-2c-6.24-4.22-8.84-7-11.26-12l-2.44-5-.22-13-.22-13 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2 8.53-.19 10.12 0 11.66 1.56s1.36 6.4-.29 8.5a6.66 6.66 0 0 0-1.34 2.32c0 .58-2.61 4.91-5.42 9a30.39 30.39 0 0 0-2.37 6.82c20.44 13.39 21.55 3.77 14.07 29L194 66.92c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-12-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28a45.3 45.3 0 0 1 7.55-1.68 29.57 29.57 0 0 0 6-1.29c3.65-1.11 4.5-1.17 6.35-.4a29.54 29.54 0 0 0 5.82 1.36 18.18 18.18 0 0 1 6 1.91 22.67 22.67 0 0 0 5 2.17c2.51.68 3 .57 7.05-1.67l4.35-2.4L268.32 5c10.44-.4 10.81-.47 15.26-2.68L288.16 0l2.46 1.43c1.76 1 3.14 2.73 4.85 6 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39a35.76 35.76 0 0 0 2.1 5.91 13.55 13.55 0 0 1 1.31 4c.31 4.33 0 5.3-2.41 6.92-2.17 1.47-7 7.91-7 9.34a14.77 14.77 0 0 1-1.07 3c-5 11.51-6.76 13.56-14.26 17-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26a18.33 18.33 0 0 1-4.09 3.71 13.62 13.62 0 0 0-4.38 4.78 5.89 5.89 0 0 1-2.49 2.91 6.88 6.88 0 0 0-2.45 1.71 67.62 67.62 0 0 1-7 5.38c-3.33 2.34-6.87 5-7.87 6A7.27 7.27 0 0 1 224 100a5.76 5.76 0 0 0-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6a36.45 36.45 0 0 0 1.42 5.88c1.32 3.8 1.31 7.86 0 10.57s-.89 6.65 1.35 9.59c2 2.63 2.16 4.56.71 8.84a33.45 33.45 0 0 0-1.06 8.91c0 4.88.22 6.28 1.46 8.38s1.82 2.48 3.24 2.32c2-.23 2.3-1.05 4.71-12.12 2.18-10 3.71-11.92 13.76-17.08 2.94-1.51 7.46-4 10-5.44s6.79-3.69 9.37-4.91a40.09 40.09 0 0 0 15.22-11.67c7.11-8.79 10-16.22 12.85-33.3a18.37 18.37 0 0 1 2.86-7.73 20.39 20.39 0 0 0 2.89-7.31c1-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8-2.18 3.11-6.46 13-8.76 20.26l-2.29 7.22-7 6.49c-3.83 3.57-8 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 10a14.62 14.62 0 0 0 1.59 7.26 42 42 0 0 1 2.09 4.83 9.28 9.28 0 0 0 1.57 2.89c1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12-4.7 12-1.79 0-4.06 9.27-5.07 20.74-.18 2-.62 5.94-1 8.7s-1 10-1.35 16.05c-.77 12.22-.19 18.77 2 23.15 3.41 6.69.52 12.69-11 22.84l-4 3.49.07 5.19a40.81 40.81 0 0 0 1.14 8.87c4.61 16 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15a61.31 61.31 0 0 1 1.08 7c.17 2 .66 5.33 1.08 7.36.47 2.26.78 11 .79 22.74v19.06l-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3-17.66-3-21.3 0-4.23 1-6 5.28-9.13s4.86-3.14 5.48-.72c.28 1.1 1.45 5.62 2.6 10 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-1 7.07-1.17 12.39-1 28.43.17 19.4-.64 35.73-2 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-71-37.58a101 101 0 0 1-1.73-10.79 100.5 100.5 0 0 0-1.73-10.79 37.53 37.53 0 0 1-1-6.49c-.31-3.19-.91-7.46-1.33-9.48-1-4.79-3.35-19.35-3.42-21.07 0-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29 1-1 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83s-.49 9.87-.67 11.71-.61 9.36-.94 16.72c-.79 17.41-1.94 31.29-2.65 32a.62.62 0 0 1-1-.14zm-87.18-266.59c21.07 12.79 17.84 14.15 28.49 17.66 13 4.29 18.87 7.13 23.15 16.87C111.6 233.28 86.25 255 78.55 268c-31 52-6 101.59 62.75 87.21-14.18 29.23-78 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-68 3-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.3 70.64-78.7 91.18-105.29 61.71z\"},\"child\":[]}]})(props);\n};\nexport function FaMarkdown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z\"},\"child\":[]}]})(props);\n};\nexport function FaMastodon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z\"},\"child\":[]}]})(props);\n};\nexport function FaMaxcdn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z\"},\"child\":[]}]})(props);\n};\nexport function FaMdb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.37 160.41L7 352h43.91l5.59-79.83L84.43 352h44.71l25.54-77.43 4.79 77.43H205l-12.79-191.59H146.7L106 277.74 63.67 160.41zm281 0h-47.9V352h47.9s95 .8 94.2-95.79c-.78-94.21-94.18-95.78-94.18-95.78zm-1.2 146.46V204.78s46 4.27 46.8 50.57-46.78 51.54-46.78 51.54zm238.29-74.24a56.16 56.16 0 0 0 8-38.31c-5.34-35.76-55.08-34.32-55.08-34.32h-51.9v191.58H482s87 4.79 87-63.85c0-43.14-33.52-55.08-33.52-55.08zm-51.9-31.94s13.57-1.59 16 9.59c1.43 6.66-4 12-4 12h-12v-21.57zm-.1 109.46l.1-24.92V267h.08s41.58-4.73 41.19 22.43c-.33 25.65-41.35 20.74-41.35 20.74z\"},\"child\":[]}]})(props);\n};\nexport function FaMedapps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMedium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M180.5,74.262C80.813,74.262,0,155.633,0,256S80.819,437.738,180.5,437.738,361,356.373,361,256,280.191,74.262,180.5,74.262Zm288.25,10.646c-49.845,0-90.245,76.619-90.245,171.095s40.406,171.1,90.251,171.1,90.251-76.619,90.251-171.1H559C559,161.5,518.6,84.908,468.752,84.908Zm139.506,17.821c-17.526,0-31.735,68.628-31.735,153.274s14.2,153.274,31.735,153.274S640,340.631,640,256C640,171.351,625.785,102.729,608.258,102.729Z\"},\"child\":[]}]})(props);\n};\nexport function FaMedrt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 544 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z\"},\"child\":[]}]})(props);\n};\nexport function FaMeetup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z\"},\"child\":[]}]})(props);\n};\nexport function FaMegaport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M214.5 209.6v66.2l33.5 33.5 33.3-33.3v-66.4l-33.4-33.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm145.1 414.4L367 441.6l-26-19.2v-65.5l-33.4-33.4-33.4 33.4v65.5L248 441.6l-26.1-19.2v-65.5l-33.4-33.4-33.5 33.4v65.5l-26.1 19.2-26.1-19.2v-87l59.5-59.5V188l59.5-59.5V52.9l26.1-19.2L274 52.9v75.6l59.5 59.5v87.6l59.7 59.7v87.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMendeley (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4.7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1.1-.2.2-.3.4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z\"},\"child\":[]}]})(props);\n};\nexport function FaMeta (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 317.9C640 409.2 600.6 466.4 529.7 466.4C467.1 466.4 433.9 431.8 372.8 329.8L341.4 277.2C333.1 264.7 326.9 253 320.2 242.2C300.1 276 273.1 325.2 273.1 325.2C206.1 441.8 168.5 466.4 116.2 466.4C43.42 466.4 0 409.1 0 320.5C0 177.5 79.78 42.4 183.9 42.4C234.1 42.4 277.7 67.08 328.7 131.9C365.8 81.8 406.8 42.4 459.3 42.4C558.4 42.4 640 168.1 640 317.9H640zM287.4 192.2C244.5 130.1 216.5 111.7 183 111.7C121.1 111.7 69.22 217.8 69.22 321.7C69.22 370.2 87.7 397.4 118.8 397.4C149 397.4 167.8 378.4 222 293.6C222 293.6 246.7 254.5 287.4 192.2V192.2zM531.2 397.4C563.4 397.4 578.1 369.9 578.1 322.5C578.1 198.3 523.8 97.08 454.9 97.08C421.7 97.08 393.8 123 360 175.1C369.4 188.9 379.1 204.1 389.3 220.5L426.8 282.9C485.5 377 500.3 397.4 531.2 397.4L531.2 397.4z\"},\"child\":[]}]})(props);\n};\nexport function FaMicroblog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M399.36,362.23c29.49-34.69,47.1-78.34,47.1-125.79C446.46,123.49,346.86,32,224,32S1.54,123.49,1.54,236.44,101.14,440.87,224,440.87a239.28,239.28,0,0,0,79.44-13.44,7.18,7.18,0,0,1,8.12,2.56c18.58,25.09,47.61,42.74,79.89,49.92a4.42,4.42,0,0,0,5.22-3.43,4.37,4.37,0,0,0-.85-3.62,87,87,0,0,1,3.69-110.69ZM329.52,212.4l-57.3,43.49L293,324.75a6.5,6.5,0,0,1-9.94,7.22L224,290.92,164.94,332a6.51,6.51,0,0,1-9.95-7.22l20.79-68.86-57.3-43.49a6.5,6.5,0,0,1,3.8-11.68l71.88-1.51,23.66-67.92a6.5,6.5,0,0,1,12.28,0l23.66,67.92,71.88,1.51a6.5,6.5,0,0,1,3.88,11.68Z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrosoft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z\"},\"child\":[]}]})(props);\n};\nexport function FaMintbit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M73.2 512V438.9H365.7V365.7h73.2V219.4H512V0H292.6V73.1H146.3v73.2H73.2V438.9H0V512H73.2zm73.1-219.4h73.2v73.1H146.3V292.6zm73.2-73.1h73.1v73.1H219.4V219.4zm73.1 0V146.3h73.2v73.1H292.6zM365.7 73.1h73.2v73.2H365.7V73.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z\"},\"child\":[]}]})(props);\n};\nexport function FaMixcloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M212.98 346.566H179.789V195.114L185.973 173.47H175.262L137.127 346.566H76.1069L37.7323 173.47H27.276L33.1913 195.114V346.566H0V165H65.6506L102.248 338.096H110.747L147.329 165H212.98L212.98 346.566ZM544.459 283.589L458.434 345.655V307.534L531.329 255.776L458.434 204.017V165.896L544.459 228.231H553.721L640 165.896V204.017L566.866 255.776L640 307.549V345.655L553.721 283.589H544.459ZM430.157 272.311H248.113V239.255H430.157V272.311Z\"},\"child\":[]}]})(props);\n};\nexport function FaMixer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M114.57,76.07a45.71,45.71,0,0,0-67.51-6.41c-17.58,16.18-19,43.52-4.75,62.77l91.78,123L41.76,379.58c-14.23,19.25-13.11,46.59,4.74,62.77A45.71,45.71,0,0,0,114,435.94L242.89,262.7a12.14,12.14,0,0,0,0-14.23ZM470.24,379.58,377.91,255.45l91.78-123c14.22-19.25,12.83-46.59-4.75-62.77a45.71,45.71,0,0,0-67.51,6.41l-128,172.12a12.14,12.14,0,0,0,0,14.23L398,435.94a45.71,45.71,0,0,0,67.51,6.41C483.35,426.17,484.47,398.83,470.24,379.58Z\"},\"child\":[]}]})(props);\n};\nexport function FaMizuni (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z\"},\"child\":[]}]})(props);\n};\nexport function FaModx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z\"},\"child\":[]}]})(props);\n};\nexport function FaMonero (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z\"},\"child\":[]}]})(props);\n};\nexport function FaNapster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z\"},\"child\":[]}]})(props);\n};\nexport function FaNeos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M415.44 512h-95.11L212.12 357.46v91.1L125.69 512H28V29.82L68.47 0h108.05l123.74 176.13V63.45L386.69 0h97.69v461.5zM38.77 35.27V496l72-52.88V194l215.5 307.64h84.79l52.35-38.17h-78.27L69 13zm82.54 466.61l80-58.78v-101l-79.76-114.4v220.94L49 501.89h72.34zM80.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L170.91 10.77zM311 191.65l72 102.81V15.93l-72 53v122.72z\"},\"child\":[]}]})(props);\n};\nexport function FaNfcDirectional (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M211.8 488.6C213.4 491.1 213.9 494.2 213.2 497.1C212.6 500 210.8 502.6 208.3 504.2C205.7 505.8 202.7 506.3 199.7 505.7C138.3 491.8 84.1 455.8 47.53 404.5C10.97 353.2-5.395 290.3 1.57 227.7C8.536 165 38.34 107.2 85.29 65.21C132.2 23.2 193-.0131 256 0C257.5 0 258.1 .2931 260.3 .8627C261.7 1.432 262.1 2.267 264 3.319C265.1 4.371 265.9 5.619 266.5 6.993C267 8.367 267.3 9.839 267.3 11.32V112.3L291.8 86.39C292.8 85.31 294 84.44 295.4 83.84C296.7 83.23 298.2 82.9 299.7 82.86C301.2 82.81 302.6 83.06 304 83.59C305.4 84.12 306.7 84.92 307.8 85.94C308.8 86.96 309.7 88.18 310.3 89.54C310.9 90.89 311.3 92.35 311.3 93.84C311.3 95.32 311.1 96.8 310.6 98.18C310 99.57 309.2 100.8 308.2 101.9L264.2 148.5C263.1 149.6 261.9 150.5 260.5 151.1C259 151.7 257.5 152 255.1 152C254.5 152 252.9 151.7 251.5 151.1C250.1 150.5 248.8 149.6 247.8 148.5L203.7 101.9C201.7 99.74 200.6 96.83 200.7 93.84C200.7 90.84 202 87.1 204.2 85.94C206.4 83.88 209.3 82.77 212.3 82.86C215.3 82.94 218.1 84.21 220.2 86.39L244.7 112.4V22.89C188.3 25.64 134.9 48.73 94.23 87.87C53.58 127 28.49 179.6 23.61 235.8C18.73 292 34.38 348.1 67.68 393.7C100.1 439.2 149.7 471.2 204.7 483.6C207.6 484.3 210.2 486.1 211.8 488.6L211.8 488.6zM171.4 126.1C170.6 127.4 169.5 128.5 168.3 129.3C147.8 143.2 131.1 161.9 119.5 183.8C107.9 205.7 101.8 230.1 101.8 254.9C101.8 279.7 107.9 304.1 119.5 325.1C131.1 347.9 147.8 366.6 168.3 380.5C170.8 382.2 172.5 384.8 173 387.8C173.6 390.7 172.1 393.8 171.3 396.2C169.6 398.7 166.1 400.4 164 400.1C161.1 401.5 158 400.9 155.6 399.2C132 383.2 112.8 361.7 99.46 336.5C86.15 311.4 79.19 283.4 79.19 254.9C79.19 226.5 86.15 198.4 99.46 173.3C112.8 148.1 132 126.6 155.6 110.6C156.8 109.8 158.2 109.2 159.6 108.8C161.1 108.5 162.6 108.5 164.1 108.8C165.5 109 166.9 109.6 168.2 110.4C169.5 111.2 170.5 112.3 171.4 113.5C172.2 114.7 172.8 116.1 173.1 117.6C173.4 119.1 173.4 120.6 173.1 122C172.8 123.5 172.3 124.9 171.4 126.1H171.4zM340.9 383.5C341.7 382.3 342.8 381.2 343.1 380.4V380.3C364.4 366.3 381.1 347.6 392.7 325.7C404.2 303.9 410.2 279.5 410.2 254.8C410.2 230.1 404.2 205.7 392.7 183.8C381.1 161.1 364.4 143.3 343.1 129.3C342.8 128.5 341.7 127.4 340.9 126.2C340.1 124.9 339.5 123.5 339.3 122.1C338.1 120.6 339 119.1 339.3 117.7C339.6 116.2 340.2 114.8 341 113.6C341.9 112.4 342.1 111.3 344.2 110.5C345.4 109.7 346.8 109.2 348.3 108.9C349.8 108.6 351.2 108.6 352.7 108.9C354.2 109.2 355.5 109.8 356.8 110.7C380.2 126.7 399.5 148.2 412.7 173.3C426 198.4 432.1 226.4 432.1 254.8C432.1 283.3 426 311.3 412.7 336.4C399.5 361.5 380.2 383 356.8 399C355.5 399.9 354.2 400.5 352.7 400.8C351.2 401.1 349.8 401.1 348.3 400.8C346.8 400.5 345.4 399.1 344.2 399.2C342.1 398.4 341.9 397.3 341 396.1C340.2 394.9 339.6 393.5 339.3 392C339 390.6 338.1 389.1 339.3 387.6C339.5 386.2 340.1 384.8 340.9 383.5V383.5zM312.3 6.307C368.5 19.04 418.7 50.28 455 95.01C485.4 132.6 504.6 178 510.3 226C515.9 274 507.9 322.7 487.1 366.3C466.2 409.9 433.5 446.8 392.6 472.6C351.7 498.3 304.4 512 256 512C254.5 512 253.1 511.7 251.7 511.1C250.3 510.6 249.1 509.7 248 508.7C246.1 507.6 246.1 506.4 245.6 505C245 503.6 244.7 502.2 244.7 500.7V401.5L220.2 427.5C218.1 429.7 215.3 430.1 212.3 431.1C209.3 431.2 206.4 430 204.2 427.1C202 425.9 200.7 423.1 200.7 420.1C200.6 417.1 201.7 414.2 203.7 412L247.8 365.4C249.1 363.2 252.9 362 255.1 362C259.1 362 262 363.2 264.2 365.4L308.2 412C310.3 414.2 311.4 417.1 311.3 420.1C311.2 423.1 309.9 425.9 307.8 427.1C305.6 430 302.7 431.2 299.7 431.1C296.7 430.1 293.8 429.7 291.8 427.5L267.3 401.6V489.1C323.7 486.3 377.1 463.3 417.8 424.1C458.5 384.1 483.6 332.4 488.5 276.2C493.3 219.1 477.7 163.9 444.4 118.3C411.1 72.75 362.4 40.79 307.4 28.36C305.9 28.03 304.6 27.42 303.3 26.57C302.1 25.71 301.1 24.63 300.3 23.37C299.5 22.12 298.1 20.72 298.7 19.26C298.5 17.8 298.5 16.3 298.8 14.85C299.2 13.41 299.8 12.04 300.6 10.82C301.5 9.61 302.6 8.577 303.8 7.784C305.1 6.99 306.5 6.451 307.9 6.198C309.4 5.945 310.9 5.982 312.3 6.307L312.3 6.307zM353.1 256.1C353.1 287.5 335.6 317.2 303.8 339.6C301.7 341.1 299 341.9 296.4 341.6C293.7 341.4 291.2 340.3 289.4 338.4L219.3 268.6C217.1 266.5 215.1 263.6 215.9 260.6C215.9 257.6 217.1 254.7 219.2 252.6C221.4 250.5 224.2 249.3 227.2 249.3C230.2 249.3 233.1 250.5 235.2 252.6L298.3 315.4C319.1 298.3 330.5 277.5 330.5 256.1C330.5 232.2 316.4 209.1 290.8 191C288.3 189.3 286.7 186.7 286.2 183.7C285.7 180.8 286.3 177.7 288.1 175.3C289.8 172.8 292.4 171.2 295.4 170.7C298.3 170.2 301.4 170.8 303.8 172.6C335.6 195 353.1 224.7 353.1 256.1V256.1zM216.7 341.5C213.7 342 210.7 341.3 208.2 339.6C176.5 317.2 158.1 287.5 158.1 256.1C158.1 224.7 176.5 195 208.2 172.6C210.4 171 213.1 170.3 215.7 170.5C218.4 170.8 220.8 171.9 222.7 173.8L292.8 243.6C294.9 245.7 296.1 248.6 296.1 251.6C296.1 254.6 294.1 257.4 292.8 259.6C290.7 261.7 287.8 262.9 284.9 262.9C281.9 262.9 278.1 261.7 276.9 259.6L213.8 196.7C192.9 214 181.6 234.7 181.6 256.1C181.6 279.1 195.7 303.1 221.3 321.1C223.7 322.9 225.4 325.5 225.9 328.5C226.4 331.4 225.7 334.4 224 336.9C222.3 339.3 219.6 341 216.7 341.5L216.7 341.5z\"},\"child\":[]}]})(props);\n};\nexport function FaNfcSymbol (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392.9 32.43C400.6 31.1 408.6 32.89 414.1 37.41C498.2 96.14 544 173.7 544 255.1C544 338.2 498.2 415.9 414.1 474.6C409.3 478.6 402.4 480.5 395.5 479.9C388.5 479.3 382 476.3 377.1 471.4L193.7 288.7C188.1 283.2 185 275.7 184.1 267.8C184.1 260 188.1 252.5 193.6 246.9C199.2 241.4 206.7 238.2 214.5 238.2C222.4 238.2 229.9 241.3 235.4 246.8L400.5 411.2C455.1 366.5 484.8 312 484.8 255.1C484.8 193.5 447.9 132.9 380.9 85.76C374.5 81.24 370.1 74.35 368.8 66.62C367.4 58.89 369.2 50.94 373.8 44.53C378.3 38.12 385.2 33.77 392.9 32.43V32.43zM186.9 479.6C179.2 480.9 171.3 479.1 164.8 474.6C81.67 415.9 35.84 338.2 35.84 255.1C35.84 173.7 81.67 96.14 164.8 37.41C170.5 33.4 177.4 31.53 184.4 32.12C191.3 32.71 197.8 35.72 202.7 40.63L386.1 223.3C391.7 228.8 394.8 236.3 394.8 244.2C394.9 251.1 391.8 259.5 386.2 265.1C380.7 270.6 373.2 273.8 365.3 273.8C357.5 273.8 349.1 270.7 344.4 265.2L179.3 100.7C124.7 145.9 95.03 199.9 95.03 255.1C95.03 318.5 131.9 379.1 198.1 426.2C205.4 430.8 209.7 437.6 211.1 445.4C212.4 453.1 210.6 461.1 206.1 467.5C201.6 473.9 194.7 478.2 186.9 479.6V479.6z\"},\"child\":[]}]})(props);\n};\nexport function FaNimblr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246.6 299.29c15.57 0 27.15 11.46 27.15 27s-11.62 27-27.15 27c-15.7 0-27.15-11.57-27.15-27s11.55-27 27.15-27zM113 326.25c0-15.61 11.68-27 27.15-27s27.15 11.46 27.15 27-11.47 27-27.15 27c-15.44 0-27.15-11.31-27.15-27M191.76 159C157 159 89.45 178.77 59.25 227L14 0v335.48C14 433.13 93.61 512 191.76 512s177.76-78.95 177.76-176.52S290.13 159 191.76 159zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59s59.24-131.59 132.51-131.59 132.51 58.86 132.51 131.54S265 467.07 191.76 467.07z\"},\"child\":[]}]})(props);\n};\nexport function FaNodeJs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z\"},\"child\":[]}]})(props);\n};\nexport function FaNode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z\"},\"child\":[]}]})(props);\n};\nexport function FaNpm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z\"},\"child\":[]}]})(props);\n};\nexport function FaNs8 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M104.324,269.172h26.067V242.994H104.324Zm52.466-26.178-.055-26.178v-.941a39.325,39.325,0,0,0-78.644.941v.166h26.4v-.166a12.98,12.98,0,0,1,25.956,0v26.178Zm52.356,25.846a91.1,91.1,0,0,1-91.1,91.1h-.609a91.1,91.1,0,0,1-91.1-91.1H0v.166A117.33,117.33,0,0,0,117.44,386.28h.775A117.331,117.331,0,0,0,235.49,268.84V242.828H209.146Zm-157.233,0a65.362,65.362,0,0,0,130.723,0H156.292a39.023,39.023,0,0,1-78.035,0V242.883H51.968v-26.62A65.42,65.42,0,0,1,182.8,217.48v25.293h26.344V217.48a91.761,91.761,0,0,0-183.522,0v25.4H51.913Zm418.4-71.173c13.67,0,24.573,6.642,30.052,18.264l.719,1.549,23.245-11.511-.609-1.439c-8.025-19.26-28.5-31.27-53.407-31.27-23.134,0-43.611,11.4-50.972,28.447-.123,26.876-.158,23.9,0,24.85,4.7,11.013,14.555,19.37,28.668,24.241a102.033,102.033,0,0,0,19.813,3.984c5.479.72,10.626,1.384,15.829,3.1,6.364,2.1,10.46,5.257,12.84,9.851v9.851c-3.708,7.527-13.781,12.342-25.791,12.342-14.334,0-25.956-6.918-31.933-19.039l-.72-1.494L415.026,280.9l.553,1.439c7.915,19.426,29.609,32.044,55.289,32.044,23.632,0,44.608-11.4,52.3-28.447l.166-25.9-.166-.664c-4.87-11.014-15.219-19.647-28.944-24.241-7.693-2.712-14.335-3.6-20.7-4.427a83.777,83.777,0,0,1-14.832-2.878c-6.31-1.937-10.4-5.092-12.619-9.63v-8.412C449.45,202.427,458.969,197.667,470.315,197.667ZM287.568,311.344h26.067v-68.4H287.568Zm352.266-53.3c-2.933-6.254-8.3-12.01-15.441-16.714A37.99,37.99,0,0,0,637.4,226l.166-25.347-.166-.664C630.038,184,610.667,173.26,589.25,173.26S548.461,184,541.1,199.992l-.166,25.347.166.664a39.643,39.643,0,0,0,13.006,15.331c-7.2,4.7-12.508,10.46-15.441,16.714l-.166,28.889.166.72c7.582,15.994,27.893,26.731,50.585,26.731s43.057-10.737,50.584-26.731l.166-28.89Zm-73.22-50.806c3.6-6.31,12.563-10.516,22.58-10.516s19.038,4.206,22.636,10.516v13.725c-3.542,6.2-12.563,10.349-22.636,10.349s-19.094-4.15-22.58-10.349Zm47.319,72.169c-3.764,6.641-13.338,10.9-24.683,10.9-11.125,0-20.976-4.372-24.684-10.9V263.25c3.708-6.309,13.5-10.515,24.684-10.515,11.345,0,20.919,4.15,24.683,10.515ZM376.4,265.962l-59.827-89.713h-29v40.623h26.51v.387l62.539,94.085H402.3V176.249H376.4Z\"},\"child\":[]}]})(props);\n};\nexport function FaNutritionix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 400 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z\"},\"child\":[]}]})(props);\n};\nexport function FaOctopusDeploy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M455.6,349.2c-45.891-39.09-36.67-77.877-16.095-128.11C475.16,134.04,415.967,34.14,329.93,8.3,237.04-19.6,134.252,24.341,99.677,117.147a180.862,180.862,0,0,0-10.988,73.544c1.733,29.543,14.717,52.97,24.09,80.3,17.2,50.161-28.1,92.743-66.662,117.582-46.806,30.2-36.319,39.857-8.428,41.858,23.378,1.68,44.478-4.548,65.265-15.045,9.2-4.647,40.687-18.931,45.13-28.588C135.9,413.388,111.122,459.5,126.621,488.9c19.1,36.229,67.112-31.77,76.709-45.812,8.591-12.572,42.963-81.279,63.627-46.926,18.865,31.361,8.6,76.391,35.738,104.622,32.854,34.2,51.155-18.312,51.412-44.221.163-16.411-6.1-95.852,29.9-59.944C405.428,418,436.912,467.8,472.568,463.642c38.736-4.516-22.123-67.967-28.262-78.695,5.393,4.279,53.665,34.128,53.818,9.52C498.234,375.678,468.039,359.8,455.6,349.2Z\"},\"child\":[]}]})(props);\n};\nexport function FaOdnoklassniki (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z\"},\"child\":[]}]})(props);\n};\nexport function FaOdysee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M406.7 463c-42.3 30.8-94.4 49-150.7 49C144.9 512 50.3 441.2 14.9 342.2c2.4 1.7 5.9 3.6 7.9 4.4c16.3 7.4 40.1-5.4 62.9-28.7c6.9-6.9 14.4-12.4 22.8-17.3c18.3-11.9 37.6-20.8 58.4-27.2c0 0 22.3 34.2 43.1 74.8s-22.3 54-27.2 54c-.3 0-.8 0-1.5-.1c-11-.5-70-3-56 51.1c14.9 57.4 97.5 36.6 139.6 8.9s31.7-118.3 31.7-118.3c41.1-6.4 54 37.1 57.9 59.4c.8 4.6 1.1 9.9 1.4 15.5c1.1 21.2 2.3 45.6 35.3 46.4c5.3 0 10.6-.8 15.5-2zm-95.3-23.7c-2-.5-3.5-2.5-3-5c1-2.5 3-3.5 5-3s3.5 3 3 5s-2.5 3.5-5 3zm-207-95.6c1.5-.5 3.5 1 4 3c0 2-1 4-3 4c-1.5 .5-3.5-1-4-3c-.5-1.5 1-3.5 3-4zM451.8 421C489.3 376.4 512 318.8 512 256c0-67.5-26.1-128.9-68.8-174.7c-.1 23.5-6.1 48.2-16.8 69.2c-11.9 20.3-49 58.9-69.8 78.7c-.7 .3-1.1 .9-1.5 1.4c-.2 .2-.3 .4-.5 .6c-5 6.9-4 16.8 3 21.8c21.3 15.8 56.4 45.6 59.4 72.8c3.5 34.9 27.9 75.6 34.2 86.2l0 0c.8 1.3 1.3 2.1 1.4 2.4c0 2.2-.4 4.3-.8 6.5zM390.7 251c-.5 3 1 5.9 4 6.4s5.9-1 6.4-4s-1-5.9-4-6.4c-3-1-5.9 1-6.4 4zm61.4-60.9l-11.4 5.4-3 12.9-5.4-11.4-12.9-3 11.4-5.4 3-12.9 5.4 11.4 12.9 3zM395.5 41.3c-16.2 8.2-22.1 32.8-29 61.4l0 0c-.3 1.4-.7 2.8-1 4.2c-9.5 38.5-30.6 37.6-41.7 37.2c-1.1 0-2-.1-2.9-.1c-5.1 0-6-4-8.9-17.1c-2.6-12.1-6.9-32-17.9-63.6C271.4-2.5 211.4 13.9 165.9 41.1C110.6 74.2 131.5 143 146.1 190.5c.7 2.2 1.4 4.4 2 6.6c-4 4-13.8 7.5-26 11.9c-12.1 4.3-26.6 9.5-40.3 16.9C47.9 243.9 11.5 274.9 2 288.5C.7 277.8 0 267 0 256C0 114.6 114.6 0 256 0c51.4 0 99.4 15.2 139.5 41.3zM58.9 189.6c-1.5-2-4.5-3-6.4-1.5s-3 4.5-1.5 6.4s4.5 3 6.4 1.5c2.5-1.5 3-4.5 1.5-6.4zM327.3 64.9c2-1.5 5-.5 6.4 1.5c1.5 2.5 1 5.4-1.5 6.4c-2 1.5-5 .5-6.4-1.5s-.5-5 1.5-6.4zM95.1 105c-.5 1.5 .5 3 2 3c1.5 .5 3-.5 3-2c.5-1.5-.5-3-2-3s-3 .5-3 2zm84.7-.5c-3.5-43.1 37.1-54 37.1-54c44.1-15.4 56 5.9 66.4 37.6s3 42.6-38.6 58.9s-61.9-4.5-64.9-42.6zm89.6 14.9h1c2.5 0 5-2 5-5c2-6.9 1-14.4-2-20.8c-1.5-2-4-3.5-6.4-2.5c-3 1-4.5 4-3.5 6.9c2 4.5 3 9.9 1.5 14.9c-.5 3 1.5 5.9 4.5 6.4zm-9.9-41.6c-2 0-4-1-5-3s-2-3.5-3-5c-2-2-2-5.4 0-7.4s5.4-2 7.4 0c2 2.5 3.5 5 5 7.4s.5 5.9-2.5 7.4c-.6 0-1 .2-1.3 .3c-.2 .1-.4 .2-.6 .2z\"},\"child\":[]}]})(props);\n};\nexport function FaOldRepublic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z\"},\"child\":[]}]})(props);\n};\nexport function FaOpencart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z\"},\"child\":[]}]})(props);\n};\nexport function FaOpenid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z\"},\"child\":[]}]})(props);\n};\nexport function FaOpensuse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M471.1 102.7s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3c-51.9-1.8-122.8-4.3-223 57.3c-19.4 12.4-73.9 46.1-99.6 109.7C7 277-.1 307 7 335.1c3.3 12.8 8.9 24.9 16.5 35.7c17.4 25 46.6 41.6 78.1 44.4c44.4 3.9 78.1-16 90-53.3c8.2-25.8 0-63.6-31.5-82.9c-25.6-15.7-53.3-12.1-69.2-1.6c-13.9 9.2-21.8 23.5-21.6 39.2c.3 27.8 24.3 42.6 41.5 42.6c5.4 0 10.7-.9 15.8-2.7c6.5-1.8 13.3-6.5 13.3-14.9c0-12.1-11.6-14.8-16.8-13.9c-2.9 .5-4.5 2-11.8 2.4c-2-.2-12-3.1-12-14V316c.2-12.3 13.2-18 25.5-16.9c32.3 2.8 47.7 40.7 28.5 65.7C135 388.5 76.7 388 53.6 344.4c-26-49.2 12.7-111.2 87-98.4c33.2 5.7 83.6 35.5 102.4 104.3h45.9c-5.7-17.6-8.9-68.3 42.7-68.3c56.7 0 63.9 39.9 79.8 68.3H460c-12.8-18.3-21.7-38.7-18.9-55.8c5.6-33.8 39.7-18.4 82.4-17.4c66.5 .4 102.1-27 103.1-28c3.7-3.1 6.5-15.8 7-17.7c1.3-5.1-3.2-2.4-3.2-2.4c-8.7 5.2-30.5 15.2-50.9 15.6c-25.3 .5-76.2-25.4-81.6-28.2c-.3-.4 .1 1.2-11-25.5c88.4 58.3 118.3 40.5 145.2 21.7c.8-.6 4.3-2.9 3.6-5.7c-13.8-48.1-22.4-62.7-34.5-69.6c-37-21.6-125-34.7-129.2-35.3c.1-.1-.9-.3-.9 .7l0 0zm135.6 75.4a37.6 37.6 0 1 1 -75.2-2.6 37.6 37.6 0 1 1 75.2 2.6zm-36.6-27.9a26.3 26.3 0 1 0 -1.7 52.5 26.3 26.3 0 1 0 1.7-52.5zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.6 0 15.6v0z\"},\"child\":[]}]})(props);\n};\nexport function FaOpera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z\"},\"child\":[]}]})(props);\n};\nexport function FaOptinMonster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M572.6 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7.3-6.5.3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6V256c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60C341 49.6 242.9 55.5 166.4 71.7c19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8.9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8.5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4.5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2v19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3.5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1.2-3.7-.7-7.2-1.7-10.7zm-73.8-254c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3.3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1.5-8.1.8-11.6.8-1.9-21.9-6.8-44-14.3-64.6 3.7.3 8.1.3 11.8.3zM47.5 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1.8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53v.3l12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-162.7c41.9 0 76.2 34 76.2 75.9 0 42.2-34.3 76.2-76.2 76.2s-76.2-34-76.2-76.2c0-41.8 34.3-75.9 76.2-75.9zm115.6 174.3c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3.3 26.6.3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1v.3c18.9-.3 38.1-.3 57 0zM278.3 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8v.3c1.1 8.3 3.3 51.2-1.3 53.7zm-106.5-51.1c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6.8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zm-21.6 172.5c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5h.3c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3.3v-.3h.3c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2.8 2.2.8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8.3 1.9.5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3.9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM372.9 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM74.8 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zm215.9-176.2c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM478.8 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5.9-8.4-20.2-23.5-29.1-25.1z\"},\"child\":[]}]})(props);\n};\nexport function FaOrcid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M294.75 188.19h-45.92V342h47.47c67.62 0 83.12-51.34 83.12-76.91 0-41.64-26.54-76.9-84.67-76.9zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-80.79 360.76h-29.84v-207.5h29.84zm-14.92-231.14a19.57 19.57 0 1 1 19.57-19.57 19.64 19.64 0 0 1-19.57 19.57zM300 369h-81V161.26h80.6c76.73 0 110.44 54.83 110.44 103.85C410 318.39 368.38 369 300 369z\"},\"child\":[]}]})(props);\n};\nexport function FaOsi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 266.44C10.3 130.64 105.4 34 221.8 18.34c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7q-26.7-69.45-53.4-139c-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8a71.47 71.47 0 0 0-64.5-82.2c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4q-26.85 69.9-53.7 139.9c-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3q22.35-58.65 45-117.3c1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6a91.64 91.64 0 0 1 45.2 90.4c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6q22.8 58.8 45.2 117.7c1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPadlet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M297.9 0L298 .001C305.6 .1078 312.4 4.72 315.5 11.78L447.5 320.3L447.8 320.2L448 320.6L445.2 330.6L402.3 488.6C398.6 504.8 382.6 514.9 366.5 511.2L298.1 495.6L229.6 511.2C213.5 514.9 197.5 504.8 193.8 488.6L150.9 330.6L148.2 320.6L148.3 320.2L280.4 11.78C283.4 4.797 290.3 .1837 297.9 .0006L297.9 0zM160.1 322.1L291.1 361.2L298 483.7L305.9 362.2L436.5 322.9L436.7 322.8L305.7 347.9L297.1 27.72L291.9 347.9L160.1 322.1zM426 222.6L520.4 181.6H594.2L437.2 429.2L468.8 320.2L426 222.6zM597.5 181.4L638.9 257.6C642.9 265.1 635 273.5 627.3 269.8L579.7 247.1L597.5 181.4zM127.3 318.5L158.7 430L1.61 154.5C-4.292 144.1 7.128 132.5 17.55 138.3L169.4 222.5L127.3 318.5z\"},\"child\":[]}]})(props);\n};\nexport function FaPage4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPagelines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z\"},\"child\":[]}]})(props);\n};\nexport function FaPalfed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z\"},\"child\":[]}]})(props);\n};\nexport function FaPatreon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M489.7 153.8c-.1-65.4-51-119-110.7-138.3C304.8-8.5 207-5 136.1 28.4C50.3 68.9 23.3 157.7 22.3 246.2C21.5 319 28.7 510.6 136.9 512c80.3 1 92.3-102.5 129.5-152.3c26.4-35.5 60.5-45.5 102.4-55.9c72-17.8 121.1-74.7 121-150z\"},\"child\":[]}]})(props);\n};\nexport function FaPaypal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPerbyte (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M305.314,284.578H246.6V383.3h58.711q24.423,0,38.193-13.77t13.77-36.11q0-21.826-14.032-35.335T305.314,284.578ZM149.435,128.7H90.724v98.723h58.711q24.42,0,38.19-13.773t13.77-36.107q0-21.826-14.029-35.338T149.435,128.7ZM366.647,32H81.353A81.445,81.445,0,0,0,0,113.352V398.647A81.445,81.445,0,0,0,81.353,480H366.647A81.445,81.445,0,0,0,448,398.647V113.352A81.445,81.445,0,0,0,366.647,32Zm63.635,366.647a63.706,63.706,0,0,1-63.635,63.635H81.353a63.706,63.706,0,0,1-63.635-63.635V113.352A63.706,63.706,0,0,1,81.353,49.718H366.647a63.706,63.706,0,0,1,63.635,63.634ZM305.314,128.7H246.6v98.723h58.711q24.423,0,38.193-13.773t13.77-36.107q0-21.826-14.032-35.338T305.314,128.7Z\"},\"child\":[]}]})(props);\n};\nexport function FaPeriscope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z\"},\"child\":[]}]})(props);\n};\nexport function FaPhabricator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoenixFramework (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoenixSquadron (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 63.38C142.49 27.25 201.55 7.31 260.51 8.81c29.58-.38 59.11 5.37 86.91 15.33-24.13-4.63-49-6.34-73.38-2.45C231.17 27 191 48.84 162.21 80.87c5.67-1 10.78-3.67 16-5.86 18.14-7.87 37.49-13.26 57.23-14.83 19.74-2.13 39.64-.43 59.28 1.92-14.42 2.79-29.12 4.57-43 9.59-34.43 11.07-65.27 33.16-86.3 62.63-13.8 19.71-23.63 42.86-24.67 67.13-.35 16.49 5.22 34.81 19.83 44a53.27 53.27 0 0 0 37.52 6.74c15.45-2.46 30.07-8.64 43.6-16.33 11.52-6.82 22.67-14.55 32-24.25 3.79-3.22 2.53-8.45 2.62-12.79-2.12-.34-4.38-1.11-6.3.3a203 203 0 0 1-35.82 15.37c-20 6.17-42.16 8.46-62.1.78 12.79 1.73 26.06.31 37.74-5.44 20.23-9.72 36.81-25.2 54.44-38.77a526.57 526.57 0 0 1 88.9-55.31c25.71-12 52.94-22.78 81.57-24.12-15.63 13.72-32.15 26.52-46.78 41.38-14.51 14-27.46 29.5-40.11 45.18-3.52 4.6-8.95 6.94-13.58 10.16a150.7 150.7 0 0 0-51.89 60.1c-9.33 19.68-14.5 41.85-11.77 63.65 1.94 13.69 8.71 27.59 20.9 34.91 12.9 8 29.05 8.07 43.48 5.1 32.8-7.45 61.43-28.89 81-55.84 20.44-27.52 30.52-62.2 29.16-96.35-.52-7.5-1.57-15-1.66-22.49 8 19.48 14.82 39.71 16.65 60.83 2 14.28.75 28.76-1.62 42.9-1.91 11-5.67 21.51-7.78 32.43a165 165 0 0 0 39.34-81.07 183.64 183.64 0 0 0-14.21-104.64c20.78 32 32.34 69.58 35.71 107.48.49 12.73.49 25.51 0 38.23A243.21 243.21 0 0 1 482 371.34c-26.12 47.34-68 85.63-117.19 108-78.29 36.23-174.68 31.32-248-14.68A248.34 248.34 0 0 1 25.36 366 238.34 238.34 0 0 1 0 273.08v-31.34C3.93 172 40.87 105.82 96 63.38m222 80.33a79.13 79.13 0 0 0 16-4.48c5-1.77 9.24-5.94 10.32-11.22-8.96 4.99-17.98 9.92-26.32 15.7z\"},\"child\":[]}]})(props);\n};\nexport function FaPhp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z\"},\"child\":[]}]})(props);\n};\nexport function FaPiedPiperAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9zm135.9 197.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7C548.3 29.3 554 16.1 554.6 2l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3v-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3.9.6-.6zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46.1v27.2l11.8-3.4-2.9-23.8zm-68.7-150.4l24.1 61.2 21-13.8-31.3-50.9zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPiedPiperHat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPiedPiperPp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.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 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPiedPiper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M455.93,23.2C429.23,30,387.79,51.69,341.35,90.66A206,206,0,0,0,240,64C125.13,64,32,157.12,32,272s93.13,208,208,208,208-93.13,208-208a207.25,207.25,0,0,0-58.75-144.81,155.35,155.35,0,0,0-17,27.4A176.16,176.16,0,0,1,417.1,272c0,97.66-79.44,177.11-177.09,177.11a175.81,175.81,0,0,1-87.63-23.4c82.94-107.33,150.79-37.77,184.31-226.65,5.79-32.62,28-94.26,126.23-160.18C471,33.45,465.35,20.8,455.93,23.2ZM125,406.4A176.66,176.66,0,0,1,62.9,272C62.9,174.34,142.35,94.9,240,94.9a174,174,0,0,1,76.63,17.75C250.64,174.76,189.77,265.52,125,406.4Z\"},\"child\":[]}]})(props);\n};\nexport function FaPinterestP (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z\"},\"child\":[]}]})(props);\n};\nexport function FaPinterest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\"},\"child\":[]}]})(props);\n};\nexport function FaPix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M242.4 292.5C247.8 287.1 257.1 287.1 262.5 292.5L339.5 369.5C353.7 383.7 372.6 391.5 392.6 391.5H407.7L310.6 488.6C280.3 518.1 231.1 518.1 200.8 488.6L103.3 391.2H112.6C132.6 391.2 151.5 383.4 165.7 369.2L242.4 292.5zM262.5 218.9C256.1 224.4 247.9 224.5 242.4 218.9L165.7 142.2C151.5 127.1 132.6 120.2 112.6 120.2H103.3L200.7 22.76C231.1-7.586 280.3-7.586 310.6 22.76L407.8 119.9H392.6C372.6 119.9 353.7 127.7 339.5 141.9L262.5 218.9zM112.6 142.7C126.4 142.7 139.1 148.3 149.7 158.1L226.4 234.8C233.6 241.1 243 245.6 252.5 245.6C261.9 245.6 271.3 241.1 278.5 234.8L355.5 157.8C365.3 148.1 378.8 142.5 392.6 142.5H430.3L488.6 200.8C518.9 231.1 518.9 280.3 488.6 310.6L430.3 368.9H392.6C378.8 368.9 365.3 363.3 355.5 353.5L278.5 276.5C264.6 262.6 240.3 262.6 226.4 276.6L149.7 353.2C139.1 363 126.4 368.6 112.6 368.6H80.78L22.76 310.6C-7.586 280.3-7.586 231.1 22.76 200.8L80.78 142.7H112.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPixiv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm171.5 84c41 0 76.3 12.9 101.4 35.2l0 0c25.2 22.2 39.8 54.1 39.8 88.8c.1 35.3-16.6 66.3-42.4 87c-25.9 20.8-60.6 32.4-98.8 32.4c-43.5 0-83.8-16.1-83.8-16.1v51.8c7.4 2.2 19.7 7 11.9 14.8H104.8c-7.7-7.8 3.6-12.4 12.1-14.8V175.5C97.1 190.9 87 204.3 81.8 214.2c6 19.4-5.3 18.5-5.3 18.5L56 199.7s72.7-83.7 179.5-83.7zm-3.6 222.9c30 0 56-11.3 73.9-29.2c17.9-18.1 27.9-41.6 28-70.2c-.1-29.3-9.5-54.6-26.7-73.6c-17.2-18.9-42.7-31.3-75.2-31.4c-26.7-.1-59.8 9-80.2 23.7V323.1c18.6 9.3 46.8 15.9 80.2 15.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaystation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z\"},\"child\":[]}]})(props);\n};\nexport function FaProductHunt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPushed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 432 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPython (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z\"},\"child\":[]}]})(props);\n};\nexport function FaQq (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z\"},\"child\":[]}]})(props);\n};\nexport function FaQuinscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.6 474.6h-1a158.1 158.1 0 0 1 0-316.2c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C501.1 117.5 391.6 8 256.5 8S12 117.5 12 252.6s109.5 244.6 244.5 244.6a237.36 237.36 0 0 0 70.4-10.1c-5.2-3.5-8.9-8.1-13.3-12.5zm-.1-.1l.4.1zm78.4-168.9a99.2 99.2 0 1 0 99.2 99.2 99.18 99.18 0 0 0-99.2-99.2z\"},\"child\":[]}]})(props);\n};\nexport function FaQuora (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRProject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 581 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRaspberryPi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 407 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2.7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6.8C271.6.6 269 5.5 263.5 7.6c-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9.1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6.1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8C21.2 16 15.8 28 22 39.2c-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2C159 504.2 181 512 203 512h1c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80c24.5-15.8 59.8-5.6 78.8 22.8s14.6 64.2-9.9 80zM238.9 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7.8 14.1.6 23.9.8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8.4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2.1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7.9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6.9 2.7 3.6 4.4 6.7 5.8-15.4.9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zm-34.4 114.6c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zm-123-12.8c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8.7 8.3.1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6.4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3.4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6.2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM38.2 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zm-26.4-119.7c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM205 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9.5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54-32.6.2-59.2-23.8-59.4-53.4v-.6c-.2-29.7 26.2-53.8 58.8-54 32.6-.2 59.2 23.8 59.4 53.4v.6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRavelry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M498.252,234.223c-1.208-10.34-1.7-20.826-3.746-31a310.306,310.306,0,0,0-9.622-36.6,184.068,184.068,0,0,0-30.874-57.5,251.154,251.154,0,0,0-18.818-21.689,237.362,237.362,0,0,0-47.113-36.116A240.8,240.8,0,0,0,331.356,26.65c-11.018-3.1-22.272-5.431-33.515-7.615-6.78-1.314-13.749-1.667-20.627-2.482-.316-.036-.6-.358-.9-.553q-16.143.009-32.288.006c-2.41.389-4.808.925-7.236,1.15a179.331,179.331,0,0,0-34.256,7.1,221.5,221.5,0,0,0-39.768,16.355,281.385,281.385,0,0,0-38.08,24.158c-6.167,4.61-12.268,9.36-17.974,14.518C96.539,88.494,86.34,97.72,76.785,107.555a243.878,243.878,0,0,0-33.648,43.95,206.488,206.488,0,0,0-20.494,44.6,198.2,198.2,0,0,0-7.691,34.759A201.13,201.13,0,0,0,13.4,266.385a299.716,299.716,0,0,0,4.425,40.24,226.865,226.865,0,0,0,16.73,53.3,210.543,210.543,0,0,0,24,39.528,213.589,213.589,0,0,0,26.358,28.416A251.313,251.313,0,0,0,126.7,458.455a287.831,287.831,0,0,0,55.9,25.277,269.5,269.5,0,0,0,40.641,9.835c6.071,1.01,12.275,1.253,18.412,1.873a4.149,4.149,0,0,1,1.19.56h32.289c2.507-.389,5-.937,7.527-1.143,16.336-1.332,32.107-5.335,47.489-10.717A219.992,219.992,0,0,0,379.1,460.322c9.749-6.447,19.395-13.077,28.737-20.1,5.785-4.348,10.988-9.5,16.3-14.457,3.964-3.7,7.764-7.578,11.51-11.5a232.162,232.162,0,0,0,31.427-41.639c9.542-16.045,17.355-32.905,22.3-50.926,2.859-10.413,4.947-21.045,7.017-31.652,1.032-5.279,1.251-10.723,1.87-16.087.036-.317.358-.6.552-.9V236.005A9.757,9.757,0,0,1,498.252,234.223Zm-161.117-1.15s-16.572-2.98-28.47-2.98c-27.2,0-33.57,14.9-33.57,37.04V360.8H201.582V170.062H275.1v31.931c8.924-26.822,26.771-36.189,62.04-36.189Z\"},\"child\":[]}]})(props);\n};\nexport function FaReact (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zm-30.3-120.3c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zm-149.7-15c25.3 0 45.8-20.5 45.8-45.8s-20.5-45.8-45.8-45.8c-25.3 0-45.8 20.5-45.8 45.8s20.5 45.8 45.8 45.8z\"},\"child\":[]}]})(props);\n};\nexport function FaReacteurope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M250.6 211.74l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm-91.3 50.5h-3.4c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1v-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5h3.4c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1h-.2c-10.1 0-16.8 4.2-16.8 14.1V276c0 10.4 6.7 14.1 16.8 14.1h.2c10.1 0 16.8-3.8 16.8-14.1 0-9.86 1.1-13.76-3.8-13.76zm-80.7 17.4h-14.7v-19.3H139c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-11.4v-18.3H142c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-21.7c-2.4-.1-3.7 1.3-3.7 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h21.9c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4v-11.9c0-10.1-6.7-14.1-16.8-14.1H77.4c-2.5 0-3.8 1.3-3.8 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5 0 3.8-1.3 3.8-3.8v-22.9h5.6l7.4 23.5a4.1 4.1 0 0 0 4.3 3.2h3.3c2.8 0 4-1.8 3.2-4.4zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1h-5.8v-20.9h5.8c3.6 0 6.1 1.3 6.1 6.1zM176 226a3.82 3.82 0 0 0-4.2-3.4h-6.9a3.68 3.68 0 0 0-4 3.4l-11 59.2c-.5 2.7.9 4.1 3.4 4.1h3a3.74 3.74 0 0 0 4.1-3.5l1.8-11.3h12.2l1.8 11.3a3.74 3.74 0 0 0 4.1 3.5h3.5c2.6 0 3.9-1.4 3.4-4.1zm-12.3 39.3l4.7-29.7 4.7 29.7zm89.3 20.2v-53.2h7.5c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-25.8c-2.5 0-3.8 1.3-3.8 3.8v2.1c0 2.5 1.3 3.8 3.8 3.8h7.3v53.2c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5.04 3.8-1.3 3.8-3.76zm248-.8h-19.4V258h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9H501a1.81 1.81 0 0 0 2-1.9v-.8a1.84 1.84 0 0 0-2-1.96zm-93.1-62.9h-.8c-10.1 0-15.3 4.7-15.3 14.1V276c0 9.3 5.2 14.1 15.3 14.1h.8c10.1 0 15.3-4.8 15.3-14.1v-40.1c0-9.36-5.2-14.06-15.3-14.06zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1v-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3v-9.7c0-9.4-5.2-14.1-15.3-14.1h-13.7a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.9h11.6l10.4 27.2a2.32 2.32 0 0 0 2.3 1.5h1.5c1.4 0 2-1 1.5-2.3zm-6.4-3.9H355v-28.5h10.2c7.5 0 10.5 3.1 10.5 11.1v6.4c0 7.84-3 11.04-10.5 11.04zm85.9-33.1h-13.7a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.1h10.6c10.1 0 15.3-4.8 15.3-14.1v-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1h-10.2v-29.2h10.2c7.5-.1 10.5 3.1 10.5 11zM259.5 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm227.6-136.1a364.42 364.42 0 0 0-35.6-11.3c19.6-78 11.6-134.7-22.3-153.9C394.7-12.66 343.3 11 291 61.94q5.1 4.95 10.2 10.2c82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8a587.83 587.83 0 0 0-84.6-13C281.1 43.64 212.4 2 170.8 2 140 2 127 23 123.2 29.74c-18.1 32-13.3 84.2.1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2q-5.1-4.95-10.2-10.2c-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3zM135.9 36.84c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2a714 714 0 0 0-93.9.9 547.76 547.76 0 0 1 42.2-52.4Q277.3 86 272.2 81a598.25 598.25 0 0 0-50.7 64.2 569.69 569.69 0 0 0-84.4 14.6c-.2-1.4-24.3-82.2-1.2-123zm304.8 438.3c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2a695.38 695.38 0 0 0 93.9-.9 547.76 547.76 0 0 1-42.2 52.4q5.1 5.25 10.2 10.2a588.47 588.47 0 0 0 50.7-64.2c47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4a12.67 12.67 0 0 1-10.7-5.7l-.1.1a19.61 19.61 0 0 1-5.4 3.6c5.7 14.3 10.6 28.4 14.7 42.2a535.3 535.3 0 0 1-72 13c3.5-5.3 17.2-26.2 32.2-54.2a24.6 24.6 0 0 1-6-3.2c-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2a711.91 711.91 0 0 1-112.4 1c-7.9-11.2-21.5-31.1-36.8-57.8a21 21 0 0 1-3-1.5c-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6a548.81 548.81 0 0 1-72.2-11.7q5.85-21 14.1-42.9c-3.2 0-5.4.2-8.4-1a17.58 17.58 0 0 1-6.9 1c-4.9 13.4-9.1 26.5-12.7 39.4C-31.7 297-12.1 216 126.7 175.64c3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3a12 12 0 0 1 2.3-2.2c-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3a14.22 14.22 0 0 1 6.4 8 23.42 23.42 0 0 1 10.2-8.4c6.5-11.7 17.9-31.9 34.8-56.9a711.72 711.72 0 0 1 112.4-1c31.5 44.6 28.9 48.1 42.5 64.5a21.42 21.42 0 0 1 10.4-7.4c-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2a20.74 20.74 0 0 1 6.8 4.3l.1.1a12.72 12.72 0 0 1 8.9-5.6c4.9-13.4 9.2-26.6 12.8-39.5a359.71 359.71 0 0 1 34.5 11c106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114h-1.2a1.74 1.74 0 0 0-1.9 1.9v49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1v-49.8a1.69 1.69 0 0 0-1.9-1.9H309a1.81 1.81 0 0 0-2 1.9v51.5c0 9.6 5 14.1 15.1 14.1h.4c10.1 0 15.1-4.6 15.1-14.1v-51.5a2 2 0 0 0-2.2-1.9zM321.7 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm5.1-30.8h-19.4v-26.7h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h22.5a1.77 1.77 0 0 0 2-1.9v-.8a1.83 1.83 0 0 0-2-2.06zm-7.4-99.4L286 192l-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1z\"},\"child\":[]}]})(props);\n};\nexport function FaReadme (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z\"},\"child\":[]}]})(props);\n};\nexport function FaRebel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z\"},\"child\":[]}]})(props);\n};\nexport function FaRedRiver (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRedditAlien (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M373 138.6c-25.2 0-46.3-17.5-51.9-41l0 0c-30.6 4.3-54.2 30.7-54.2 62.4l0 .2c47.4 1.8 90.6 15.1 124.9 36.3c12.6-9.7 28.4-15.5 45.5-15.5c41.3 0 74.7 33.4 74.7 74.7c0 29.8-17.4 55.5-42.7 67.5c-2.4 86.8-97 156.6-213.2 156.6S45.5 410.1 43 323.4C17.6 311.5 0 285.7 0 255.7c0-41.3 33.4-74.7 74.7-74.7c17.2 0 33 5.8 45.7 15.6c34-21.1 76.8-34.4 123.7-36.4l0-.3c0-44.3 33.7-80.9 76.8-85.5C325.8 50.2 347.2 32 373 32c29.4 0 53.3 23.9 53.3 53.3s-23.9 53.3-53.3 53.3zM157.5 255.3c-20.9 0-38.9 20.8-40.2 47.9s17.1 38.1 38 38.1s36.6-9.8 37.8-36.9s-14.7-49.1-35.7-49.1zM395 303.1c-1.2-27.1-19.2-47.9-40.2-47.9s-36.9 22-35.7 49.1c1.2 27.1 16.9 36.9 37.8 36.9s39.3-11 38-38.1zm-60.1 70.8c1.5-3.6-1-7.7-4.9-8.1c-23-2.3-47.9-3.6-73.8-3.6s-50.8 1.3-73.8 3.6c-3.9 .4-6.4 4.5-4.9 8.1c12.9 30.8 43.3 52.4 78.7 52.4s65.8-21.6 78.7-52.4z\"},\"child\":[]}]})(props);\n};\nexport function FaReddit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256C0 114.6 114.6 0 256 0S512 114.6 512 256s-114.6 256-256 256L37.1 512c-13.7 0-20.5-16.5-10.9-26.2L75 437C28.7 390.7 0 326.7 0 256zM349.6 153.6c23.6 0 42.7-19.1 42.7-42.7s-19.1-42.7-42.7-42.7c-20.6 0-37.8 14.6-41.8 34c-34.5 3.7-61.4 33-61.4 68.4l0 .2c-37.5 1.6-71.8 12.3-99 29.1c-10.1-7.8-22.8-12.5-36.5-12.5c-33 0-59.8 26.8-59.8 59.8c0 24 14.1 44.6 34.4 54.1c2 69.4 77.6 125.2 170.6 125.2s168.7-55.9 170.6-125.3c20.2-9.6 34.1-30.2 34.1-54c0-33-26.8-59.8-59.8-59.8c-13.7 0-26.3 4.6-36.4 12.4c-27.4-17-62.1-27.7-100-29.1l0-.2c0-25.4 18.9-46.5 43.4-49.9l0 0c4.4 18.8 21.3 32.8 41.5 32.8zM177.1 246.9c16.7 0 29.5 17.6 28.5 39.3s-13.5 29.6-30.3 29.6s-31.4-8.8-30.4-30.5s15.4-38.3 32.1-38.3zm190.1 38.3c1 21.7-13.7 30.5-30.4 30.5s-29.3-7.9-30.3-29.6c-1-21.7 11.8-39.3 28.5-39.3s31.2 16.6 32.1 38.3zm-48.1 56.7c-10.3 24.6-34.6 41.9-63 41.9s-52.7-17.3-63-41.9c-1.2-2.9 .8-6.2 3.9-6.5c18.4-1.9 38.3-2.9 59.1-2.9s40.7 1 59.1 2.9c3.1 .3 5.1 3.6 3.9 6.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRedhat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M341.52 285.56c33.65 0 82.34-6.94 82.34-47 .22-6.74.86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.11 228.47 106.11M429 254.84c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.74.08-235.91-73.65-235.91-122.33a49.55 49.55 0 0 1 4.06-19.72C58.56 200.86 0 208.93 0 260.63c0 84.67 200.63 189 359.49 189 121.79 0 152.51-55.08 152.51-98.58 0-34.21-29.59-73.05-82.93-96.24\"},\"child\":[]}]})(props);\n};\nexport function FaRenren (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z\"},\"child\":[]}]})(props);\n};\nexport function FaReplyd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z\"},\"child\":[]}]})(props);\n};\nexport function FaResearchgate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z\"},\"child\":[]}]})(props);\n};\nexport function FaResolving (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRev (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M289.67 274.89a65.57 65.57 0 1 1-65.56-65.56 65.64 65.64 0 0 1 65.56 65.56zm139.55-5.05h-.13a204.69 204.69 0 0 0-74.32-153l-45.38 26.2a157.07 157.07 0 0 1 71.81 131.84C381.2 361.5 310.73 432 224.11 432S67 361.5 67 274.88c0-81.88 63-149.27 143-156.43v39.12l108.77-62.79L210 32v38.32c-106.7 7.25-191 96-191 204.57 0 111.59 89.12 202.29 200.06 205v.11h210.16V269.84z\"},\"child\":[]}]})(props);\n};\nexport function FaRocketchat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M284.046,224.8a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,284.046,224.8Zm-110.45,0a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,173.6,224.8Zm220.923,0a34.114,34.114,0,1,0,34.317,34.113A34.215,34.215,0,0,0,394.519,224.8Zm153.807-55.319c-15.535-24.172-37.31-45.57-64.681-63.618-52.886-34.817-122.374-54-195.666-54a405.975,405.975,0,0,0-72.032,6.357,238.524,238.524,0,0,0-49.51-36.588C99.684-11.7,40.859.711,11.135,11.421A14.291,14.291,0,0,0,5.58,34.782C26.542,56.458,61.222,99.3,52.7,138.252c-33.142,33.9-51.112,74.776-51.112,117.337,0,43.372,17.97,84.248,51.112,118.148,8.526,38.956-26.154,81.816-47.116,103.491a14.284,14.284,0,0,0,5.555,23.34c29.724,10.709,88.549,23.147,155.324-10.2a238.679,238.679,0,0,0,49.51-36.589A405.972,405.972,0,0,0,288,460.14c73.313,0,142.8-19.159,195.667-53.975,27.371-18.049,49.145-39.426,64.679-63.619,17.309-26.923,26.07-55.916,26.07-86.125C574.394,225.4,565.634,196.43,548.326,169.485ZM284.987,409.9a345.65,345.65,0,0,1-89.446-11.5l-20.129,19.393a184.366,184.366,0,0,1-37.138,27.585,145.767,145.767,0,0,1-52.522,14.87c.983-1.771,1.881-3.563,2.842-5.356q30.258-55.68,16.325-100.078c-32.992-25.962-52.778-59.2-52.778-95.4,0-83.1,104.254-150.469,232.846-150.469s232.867,67.373,232.867,150.469C517.854,342.525,413.6,409.9,284.987,409.9Z\"},\"child\":[]}]})(props);\n};\nexport function FaRockrms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRust (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M508.52,249.75,486.7,236.24c-.17-2-.34-3.93-.55-5.88l18.72-17.5a7.35,7.35,0,0,0-2.44-12.25l-24-9c-.54-1.88-1.08-3.78-1.67-5.64l15-20.83a7.35,7.35,0,0,0-4.79-11.54l-25.42-4.15c-.9-1.73-1.79-3.45-2.73-5.15l10.68-23.42a7.35,7.35,0,0,0-6.95-10.39l-25.82.91q-1.79-2.22-3.61-4.4L439,81.84A7.36,7.36,0,0,0,430.16,73L405,78.93q-2.17-1.83-4.4-3.61l.91-25.82a7.35,7.35,0,0,0-10.39-7L367.7,53.23c-1.7-.94-3.43-1.84-5.15-2.73L358.4,25.08a7.35,7.35,0,0,0-11.54-4.79L326,35.26c-1.86-.59-3.75-1.13-5.64-1.67l-9-24a7.35,7.35,0,0,0-12.25-2.44l-17.5,18.72c-1.95-.21-3.91-.38-5.88-.55L262.25,3.48a7.35,7.35,0,0,0-12.5,0L236.24,25.3c-2,.17-3.93.34-5.88.55L212.86,7.13a7.35,7.35,0,0,0-12.25,2.44l-9,24c-1.89.55-3.79,1.08-5.66,1.68l-20.82-15a7.35,7.35,0,0,0-11.54,4.79l-4.15,25.41c-1.73.9-3.45,1.79-5.16,2.73L120.88,42.55a7.35,7.35,0,0,0-10.39,7l.92,25.81c-1.49,1.19-3,2.39-4.42,3.61L81.84,73A7.36,7.36,0,0,0,73,81.84L78.93,107c-1.23,1.45-2.43,2.93-3.62,4.41l-25.81-.91a7.42,7.42,0,0,0-6.37,3.26,7.35,7.35,0,0,0-.57,7.13l10.66,23.41c-.94,1.7-1.83,3.43-2.73,5.16L25.08,153.6a7.35,7.35,0,0,0-4.79,11.54l15,20.82c-.59,1.87-1.13,3.77-1.68,5.66l-24,9a7.35,7.35,0,0,0-2.44,12.25l18.72,17.5c-.21,1.95-.38,3.91-.55,5.88L3.48,249.75a7.35,7.35,0,0,0,0,12.5L25.3,275.76c.17,2,.34,3.92.55,5.87L7.13,299.13a7.35,7.35,0,0,0,2.44,12.25l24,9c.55,1.89,1.08,3.78,1.68,5.65l-15,20.83a7.35,7.35,0,0,0,4.79,11.54l25.42,4.15c.9,1.72,1.79,3.45,2.73,5.14L42.56,391.12a7.35,7.35,0,0,0,.57,7.13,7.13,7.13,0,0,0,6.37,3.26l25.83-.91q1.77,2.22,3.6,4.4L73,430.16A7.36,7.36,0,0,0,81.84,439L107,433.07q2.18,1.83,4.41,3.61l-.92,25.82a7.35,7.35,0,0,0,10.39,6.95l23.43-10.68c1.69.94,3.42,1.83,5.14,2.73l4.15,25.42a7.34,7.34,0,0,0,11.54,4.78l20.83-15c1.86.6,3.76,1.13,5.65,1.68l9,24a7.36,7.36,0,0,0,12.25,2.44l17.5-18.72c1.95.21,3.92.38,5.88.55l13.51,21.82a7.35,7.35,0,0,0,12.5,0l13.51-21.82c2-.17,3.93-.34,5.88-.56l17.5,18.73a7.36,7.36,0,0,0,12.25-2.44l9-24c1.89-.55,3.78-1.08,5.65-1.68l20.82,15a7.34,7.34,0,0,0,11.54-4.78l4.15-25.42c1.72-.9,3.45-1.79,5.15-2.73l23.42,10.68a7.35,7.35,0,0,0,10.39-6.95l-.91-25.82q2.22-1.79,4.4-3.61L430.16,439a7.36,7.36,0,0,0,8.84-8.84L433.07,405q1.83-2.17,3.61-4.4l25.82.91a7.23,7.23,0,0,0,6.37-3.26,7.35,7.35,0,0,0,.58-7.13L458.77,367.7c.94-1.7,1.83-3.43,2.73-5.15l25.42-4.15a7.35,7.35,0,0,0,4.79-11.54l-15-20.83c.59-1.87,1.13-3.76,1.67-5.65l24-9a7.35,7.35,0,0,0,2.44-12.25l-18.72-17.5c.21-1.95.38-3.91.55-5.87l21.82-13.51a7.35,7.35,0,0,0,0-12.5Zm-151,129.08A13.91,13.91,0,0,0,341,389.51l-7.64,35.67A187.51,187.51,0,0,1,177,424.44l-7.64-35.66a13.87,13.87,0,0,0-16.46-10.68l-31.51,6.76a187.38,187.38,0,0,1-16.26-19.21H258.3c1.72,0,2.89-.29,2.89-1.91V309.55c0-1.57-1.17-1.91-2.89-1.91H213.47l.05-34.35H262c4.41,0,23.66,1.28,29.79,25.87,1.91,7.55,6.17,32.14,9.06,40,2.89,8.82,14.6,26.46,27.1,26.46H407a187.3,187.3,0,0,1-17.34,20.09Zm25.77,34.49A15.24,15.24,0,1,1,368,398.08h.44A15.23,15.23,0,0,1,383.24,413.32Zm-225.62-.68a15.24,15.24,0,1,1-15.25-15.25h.45A15.25,15.25,0,0,1,157.62,412.64ZM69.57,234.15l32.83-14.6a13.88,13.88,0,0,0,7.06-18.33L102.69,186h26.56V305.73H75.65A187.65,187.65,0,0,1,69.57,234.15ZM58.31,198.09a15.24,15.24,0,0,1,15.23-15.25H74a15.24,15.24,0,1,1-15.67,15.24Zm155.16,24.49.05-35.32h63.26c3.28,0,23.07,3.77,23.07,18.62,0,12.29-15.19,16.7-27.68,16.7ZM399,306.71c-9.8,1.13-20.63-4.12-22-10.09-5.78-32.49-15.39-39.4-30.57-51.4,18.86-11.95,38.46-29.64,38.46-53.26,0-25.52-17.49-41.59-29.4-49.48-16.76-11-35.28-13.23-40.27-13.23H116.32A187.49,187.49,0,0,1,221.21,70.06l23.47,24.6a13.82,13.82,0,0,0,19.6.44l26.26-25a187.51,187.51,0,0,1,128.37,91.43l-18,40.57A14,14,0,0,0,408,220.43l34.59,15.33a187.12,187.12,0,0,1,.4,32.54H423.71c-1.91,0-2.69,1.27-2.69,3.13v8.82C421,301,409.31,305.58,399,306.71ZM240,60.21A15.24,15.24,0,0,1,255.21,45h.45A15.24,15.24,0,1,1,240,60.21ZM436.84,214a15.24,15.24,0,1,1,0-30.48h.44a15.24,15.24,0,0,1-.44,30.48Z\"},\"child\":[]}]})(props);\n};\nexport function FaSafari (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M274.69,274.69l-37.38-37.38L166,346ZM256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8ZM411.85,182.79l14.78-6.13A8,8,0,0,1,437.08,181h0a8,8,0,0,1-4.33,10.46L418,197.57a8,8,0,0,1-10.45-4.33h0A8,8,0,0,1,411.85,182.79ZM314.43,94l6.12-14.78A8,8,0,0,1,331,74.92h0a8,8,0,0,1,4.33,10.45l-6.13,14.78a8,8,0,0,1-10.45,4.33h0A8,8,0,0,1,314.43,94ZM256,60h0a8,8,0,0,1,8,8V84a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V68A8,8,0,0,1,256,60ZM181,74.92a8,8,0,0,1,10.46,4.33L197.57,94a8,8,0,1,1-14.78,6.12l-6.13-14.78A8,8,0,0,1,181,74.92Zm-63.58,42.49h0a8,8,0,0,1,11.31,0L140,128.72A8,8,0,0,1,140,140h0a8,8,0,0,1-11.31,0l-11.31-11.31A8,8,0,0,1,117.41,117.41ZM60,256h0a8,8,0,0,1,8-8H84a8,8,0,0,1,8,8h0a8,8,0,0,1-8,8H68A8,8,0,0,1,60,256Zm40.15,73.21-14.78,6.13A8,8,0,0,1,74.92,331h0a8,8,0,0,1,4.33-10.46L94,314.43a8,8,0,0,1,10.45,4.33h0A8,8,0,0,1,100.15,329.21Zm4.33-136h0A8,8,0,0,1,94,197.57l-14.78-6.12A8,8,0,0,1,74.92,181h0a8,8,0,0,1,10.45-4.33l14.78,6.13A8,8,0,0,1,104.48,193.24ZM197.57,418l-6.12,14.78a8,8,0,0,1-14.79-6.12l6.13-14.78A8,8,0,1,1,197.57,418ZM264,444a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V428a8,8,0,0,1,8-8h0a8,8,0,0,1,8,8Zm67-6.92h0a8,8,0,0,1-10.46-4.33L314.43,418a8,8,0,0,1,4.33-10.45h0a8,8,0,0,1,10.45,4.33l6.13,14.78A8,8,0,0,1,331,437.08Zm63.58-42.49h0a8,8,0,0,1-11.31,0L372,383.28A8,8,0,0,1,372,372h0a8,8,0,0,1,11.31,0l11.31,11.31A8,8,0,0,1,394.59,394.59ZM286.25,286.25,110.34,401.66,225.75,225.75,401.66,110.34ZM437.08,331h0a8,8,0,0,1-10.45,4.33l-14.78-6.13a8,8,0,0,1-4.33-10.45h0A8,8,0,0,1,418,314.43l14.78,6.12A8,8,0,0,1,437.08,331ZM444,264H428a8,8,0,0,1-8-8h0a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8h0A8,8,0,0,1,444,264Z\"},\"child\":[]}]})(props);\n};\nexport function FaSalesforce (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248.89 245.64h-26.35c.69-5.16 3.32-14.12 13.64-14.12 6.75 0 11.97 3.82 12.71 14.12zm136.66-13.88c-.47 0-14.11-1.77-14.11 20s13.63 20 14.11 20c13 0 14.11-13.54 14.11-20 0-21.76-13.66-20-14.11-20zm-243.22 23.76a8.63 8.63 0 0 0-3.29 7.29c0 4.78 2.08 6.05 3.29 7.05 4.7 3.7 15.07 2.12 20.93.95v-16.94c-5.32-1.07-16.73-1.96-20.93 1.65zM640 232c0 87.58-80 154.39-165.36 136.43-18.37 33-70.73 70.75-132.2 41.63-41.16 96.05-177.89 92.18-213.81-5.17C8.91 428.78-50.19 266.52 53.36 205.61 18.61 126.18 76 32 167.67 32a124.24 124.24 0 0 1 98.56 48.7c20.7-21.4 49.4-34.81 81.15-34.81 42.34 0 79 23.52 98.8 58.57C539 63.78 640 132.69 640 232zm-519.55 31.8c0-11.76-11.69-15.17-17.87-17.17-5.27-2.11-13.41-3.51-13.41-8.94 0-9.46 17-6.66 25.17-2.12 0 0 1.17.71 1.64-.47.24-.7 2.36-6.58 2.59-7.29a1.13 1.13 0 0 0-.7-1.41c-12.33-7.63-40.7-8.51-40.7 12.7 0 12.46 11.49 15.44 17.88 17.17 4.72 1.58 13.17 3 13.17 8.7 0 4-3.53 7.06-9.17 7.06a31.76 31.76 0 0 1-19-6.35c-.47-.23-1.42-.71-1.65.71l-2.4 7.47c-.47.94.23 1.18.23 1.41 1.75 1.4 10.3 6.59 22.82 6.59 13.17 0 21.4-7.06 21.4-18.11zm32-42.58c-10.13 0-18.66 3.17-21.4 5.18a1 1 0 0 0-.24 1.41l2.59 7.06a1 1 0 0 0 1.18.7c.65 0 6.8-4 16.93-4 4 0 7.06.71 9.18 2.36 3.6 2.8 3.06 8.29 3.06 10.58-4.79-.3-19.11-3.44-29.41 3.76a16.92 16.92 0 0 0-7.34 14.54c0 5.9 1.51 10.4 6.59 14.35 12.24 8.16 36.28 2 38.1 1.41 1.58-.32 3.53-.66 3.53-1.88v-33.88c.04-4.61.32-21.64-22.78-21.64zM199 200.24a1.11 1.11 0 0 0-1.18-1.18H188a1.11 1.11 0 0 0-1.17 1.18v79a1.11 1.11 0 0 0 1.17 1.18h9.88a1.11 1.11 0 0 0 1.18-1.18zm55.75 28.93c-2.1-2.31-6.79-7.53-17.65-7.53-3.51 0-14.16.23-20.7 8.94-6.35 7.63-6.58 18.11-6.58 21.41 0 3.12.15 14.26 7.06 21.17 2.64 2.91 9.06 8.23 22.81 8.23 10.82 0 16.47-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.35-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.94-16.7h37.17a1.23 1.23 0 0 0 1.17-.94c-.29 0 2.07-14.7-6.09-24.23zm36.69 52.69c13.17 0 21.41-7.06 21.41-18.11 0-11.76-11.7-15.17-17.88-17.17-4.14-1.66-13.41-3.38-13.41-8.94 0-3.76 3.29-6.35 8.47-6.35a38.11 38.11 0 0 1 16.7 4.23s1.18.71 1.65-.47c.23-.7 2.35-6.58 2.58-7.29a1.13 1.13 0 0 0-.7-1.41c-7.91-4.9-16.74-4.94-20.23-4.94-12 0-20.46 7.29-20.46 17.64 0 12.46 11.48 15.44 17.87 17.17 6.11 2 13.17 3.26 13.17 8.7 0 4-3.52 7.06-9.17 7.06a31.8 31.8 0 0 1-19-6.35 1 1 0 0 0-1.65.71l-2.35 7.52c-.47.94.23 1.18.23 1.41 1.72 1.4 10.33 6.59 22.79 6.59zM357.09 224c0-.71-.24-1.18-1.18-1.18h-11.76c0-.14.94-8.94 4.47-12.47 4.16-4.15 11.76-1.64 12-1.64 1.17.47 1.41 0 1.64-.47l2.83-7.77c.7-.94 0-1.17-.24-1.41-5.09-2-17.35-2.87-24.46 4.24-5.48 5.48-7 13.92-8 19.52h-8.47a1.28 1.28 0 0 0-1.17 1.18l-1.42 7.76c0 .7.24 1.17 1.18 1.17h8.23c-8.51 47.9-8.75 50.21-10.35 55.52-1.08 3.62-3.29 6.9-5.88 7.76-.09 0-3.88 1.68-9.64-.24 0 0-.94-.47-1.41.71-.24.71-2.59 6.82-2.83 7.53s0 1.41.47 1.41c5.11 2 13 1.77 17.88 0 6.28-2.28 9.72-7.89 11.53-12.94 2.75-7.71 2.81-9.79 11.76-59.74h12.23a1.29 1.29 0 0 0 1.18-1.18zm53.39 16c-.56-1.68-5.1-18.11-25.17-18.11-15.25 0-23 10-25.16 18.11-1 3-3.18 14 0 23.52.09.3 4.41 18.12 25.16 18.12 14.95 0 22.9-9.61 25.17-18.12 3.21-9.61 1.01-20.52 0-23.52zm45.4-16.7c-5-1.65-16.62-1.9-22.11 5.41v-4.47a1.11 1.11 0 0 0-1.18-1.17h-9.4a1.11 1.11 0 0 0-1.18 1.17v55.28a1.12 1.12 0 0 0 1.18 1.18h9.64a1.12 1.12 0 0 0 1.18-1.18v-27.77c0-2.91.05-11.37 4.46-15.05 4.9-4.9 12-3.36 13.41-3.06a1.57 1.57 0 0 0 1.41-.94 74 74 0 0 0 3.06-8 1.16 1.16 0 0 0-.47-1.41zm46.81 54.1l-2.12-7.29c-.47-1.18-1.41-.71-1.41-.71-4.23 1.82-10.15 1.89-11.29 1.89-4.64 0-17.17-1.13-17.17-19.76 0-6.23 1.85-19.76 16.47-19.76a34.85 34.85 0 0 1 11.52 1.65s.94.47 1.18-.71c.94-2.59 1.64-4.47 2.59-7.53.23-.94-.47-1.17-.71-1.17-11.59-3.87-22.34-2.53-27.76 0-1.59.74-16.23 6.49-16.23 27.52 0 2.9-.58 30.11 28.94 30.11a44.45 44.45 0 0 0 15.52-2.83 1.3 1.3 0 0 0 .47-1.42zm53.87-39.52c-.8-3-5.37-16.23-22.35-16.23-16 0-23.52 10.11-25.64 18.59a38.58 38.58 0 0 0-1.65 11.76c0 25.87 18.84 29.4 29.88 29.4 10.82 0 16.46-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.36-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.93-16.7h37.16a1.25 1.25 0 0 0 1.18-.94c-.24-.01.94-7.07-1.41-15.54zm-23.29-6.35c-10.33 0-13 9-13.64 14.12H546c-.88-11.92-7.62-14.13-12.73-14.13z\"},\"child\":[]}]})(props);\n};\nexport function FaSass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M301.84 378.92c-.3.6-.6 1.08 0 0zm249.13-87a131.16 131.16 0 0 0-58 13.5c-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.29 5.9a122.83 122.83 0 0 0-5.3 19.1c-2.3 11.7-25.79 53.5-39.09 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.29-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.89 77.3-42.08 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4.8-.7 1.3-.9 1.7.3-.5.5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.39-42.4c-18.4 0-44 20.2-56.58 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.79-38.2-101.87-65.2-99.07-116.5 1-18.7 7.5-67.8 127.07-127.4 98-48.8 176.35-35.4 189.84-5.6 19.4 42.5-41.89 121.6-143.66 133-38.79 4.3-59.18-10.7-64.28-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.79 28.9 18.7 6.1 64.18 9.5 119.17-11.8 61.78-23.8 109.87-90.1 95.77-145.6C386.52 18.32 293-.18 204.57 31.22c-52.69 18.7-109.67 48.1-150.66 86.4-48.69 45.6-56.48 85.3-53.28 101.9 11.39 58.9 92.57 97.3 125.06 125.7-1.6.9-3.1 1.7-4.5 2.5-16.29 8.1-78.18 40.5-93.67 74.7-17.5 38.8 2.9 66.6 16.29 70.4 41.79 11.6 84.58-9.3 107.57-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.29-4.9 16.39-9.4 23.49-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.49 5 15.39 5 13.8 0 20-11.4 26.89-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.39 0 18.79-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.59-46 16.2-31.8 31.69-71.5 31.69-71.5a201.24 201.24 0 0 0 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2a.31.31 0 0 0 .1.2c-3 4-6.4 8.3-9.9 12.5-12.79 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.69 2.5 11.5-.8 19.6-3.6 23.5-5.4a82.2 82.2 0 0 0 20.19-10.6c12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5C434.8 301.72 450.1 270 450.1 270a201.24 201.24 0 0 0 6.2 25.8c2.4 8.1 7.09 17 11.39 25.7-18.59 15.1-30.09 32.6-34.09 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5a79.46 79.46 0 0 0 21.59-11.1c12.5-9.2 24.59-22.1 23.79-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.09-10.2 62.09-7.2 55.68 6.5 66.58 41.3 64.48 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.19-11.8 30.29-38.7 1.6-34-31.09-71.4-89-71.1zm-429.18 144.7c-18.39 20.1-44.19 27.7-55.28 21.3C54.61 451 59.31 421.42 82 400c13.8-13 31.59-25 43.39-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.29 30.4.3 57.2-19.1 78.3zm134.36-91.4c-6.4 15.7-19.89 55.7-28.09 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.09-11.3 21.19-14.9 23.79-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.89-13.9 0 .5.1 1 .1 1.6-.13 17.9-17.32 30-25.12 34.8zm85.58-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.59-15.3 19-24.5a36.18 36.18 0 0 1 1.9 10.8c-.1 22.5-16.2 30.9-25.89 34.4z\"},\"child\":[]}]})(props);\n};\nexport function FaSchlix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z\"},\"child\":[]}]})(props);\n};\nexport function FaScreenpal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M233.5 22.49C233.5 10.07 243.6 0 256 0C268.4 0 278.5 10.07 278.5 22.49C278.5 34.91 268.4 44.98 256 44.98C243.6 44.98 233.5 34.91 233.5 22.49zM313.4 259C313.4 290.7 287.7 316.4 256 316.4C224.3 316.4 198.6 290.7 198.6 259C198.6 227.3 224.3 201.6 256 201.6C287.7 201.6 313.4 227.3 313.4 259zM337.2 350C359.5 330.1 373.7 302.7 377.1 273H496.6C493.1 334.4 466.2 392.2 421.4 434.4C376.7 476.6 317.5 500.2 256 500.2C194.5 500.2 135.3 476.6 90.56 434.4C45.83 392.2 18.94 334.4 15.39 273H135.1C138.5 302.7 152.7 330.1 175 350C197.3 369.9 226.2 380.9 256.1 380.9C285.1 380.9 314.8 369.9 337.2 350zM73.14 140.3C73.54 152.7 63.81 163.1 51.39 163.5C38.97 163.9 28.59 154.2 28.18 141.8C27.78 129.3 37.52 118.9 49.94 118.5C62.35 118.1 72.74 127.9 73.14 140.3zM438.9 141C438.9 128.6 448.9 118.5 461.4 118.5C473.8 118.5 483.8 128.6 483.8 141C483.8 153.5 473.8 163.5 461.4 163.5C448.9 163.5 438.9 153.5 438.9 141zM317.9 95.27C300.6 109.1 278.7 118.1 256 118.1C233.3 118.1 211.4 109.1 194.1 95.27C176.8 80.55 165.3 60.18 161.7 37.78C176.8 31.37 192.5 26.52 208.6 23.31C208.6 35.88 213.6 47.93 222.5 56.82C231.4 65.7 243.4 70.7 256 70.7C268.6 70.7 280.6 65.7 289.5 56.82C298.4 47.93 303.4 35.88 303.4 23.31C319.5 26.52 335.2 31.37 350.3 37.78C346.7 60.18 335.2 80.55 317.9 95.27H317.9zM82.78 231C61.42 238.6 38.06 238.4 16.86 230.4C18.82 214.1 22.46 198.1 27.71 182.5C33.1 185.6 39.05 187.6 45.22 188.5C51.39 189.3 57.67 188.9 63.68 187.3C69.69 185.6 75.33 182.9 80.27 179.1C85.21 175.3 89.36 170.6 92.47 165.2C95.58 159.8 97.61 153.8 98.42 147.7C99.23 141.5 98.83 135.2 97.22 129.2C95.61 123.2 92.83 117.6 89.04 112.6C85.25 107.7 80.53 103.5 75.14 100.4C85.96 88.11 98.01 76.94 111.1 67.07C128.7 81.42 140.6 101.6 144.7 123.9C148.8 146.2 144.8 169.3 133.5 188.9C122.1 208.5 104.1 223.4 82.78 231V231zM429.2 231.1C407.9 223.5 389.9 208.5 378.5 188.9C367.2 169.3 363.3 146.2 367.4 123.9C371.5 101.7 383.4 81.54 400.9 67.19C414 77.04 426.1 88.21 436.9 100.5C426.2 106.9 418.5 117.2 415.4 129.3C412.2 141.3 413.1 154.1 420.2 164.9C426.4 175.7 436.6 183.6 448.6 186.9C460.6 190.2 473.5 188.6 484.3 182.6C489.6 198.1 493.2 214.2 495.2 230.4C473.1 238.5 450.6 238.7 429.2 231.1L429.2 231.1z\"},\"child\":[]}]})(props);\n};\nexport function FaScribd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSearchengin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 460 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z\"},\"child\":[]}]})(props);\n};\nexport function FaSellcast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z\"},\"child\":[]}]})(props);\n};\nexport function FaSellsy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z\"},\"child\":[]}]})(props);\n};\nexport function FaServicestack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z\"},\"child\":[]}]})(props);\n};\nexport function FaShirtsinbulk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4zM60.4 392.8L91 406.2l4.4-9.6-30.6-13.7zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9zM170 46.6h-33.5v10.5H170zm-47.2 0H89.2v10.5h33.5zm-47.3 0H42.3v10.5h33.3zm141.5 0h-33.2v10.5H217zm94.5 0H278v10.5h33.5zm47.3 0h-33.5v10.5h33.5zm-94.6 0H231v10.5h33.2zm141.5 0h-33.3v10.5h33.3zM52.8 351.1H42v33.5h10.8zm70-215.9H89.2v10.5h33.5zm-70 10.6h22.8v-10.5H42v33.5h10.8zm168.9 228.6c50.5 0 91.3-40.8 91.3-91.3 0-50.2-40.8-91.3-91.3-91.3-50.2 0-91.3 41.1-91.3 91.3 0 50.5 41.1 91.3 91.3 91.3zm-48.2-111.1c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9h-.9c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4h.9c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4H42V212h10.8zm342.4 206.2H406v-33.5h-10.8zM52.8 307.9H42v33.5h10.8zM0 3.7v406l221.7 98.6L448 409.7V3.7zm418.8 387.1L222 476.5 29.2 390.8V120.7h389.7v270.1zm0-299.3H29.2V32.9h389.7v58.6zm-366 130.1H42v33.5h10.8zm0 43.2H42v33.5h10.8zM170 135.2h-33.5v10.5H170zm225.2 163.1H406v-33.5h-10.8zm0-43.2H406v-33.5h-10.8zM217 135.2h-33.2v10.5H217zM395.2 212H406v-33.5h-10.8zm0 129.5H406V308h-10.8zm-131-206.3H231v10.5h33.2zm47.3 0H278v10.5h33.5zm83.7 33.6H406v-33.5h-33.5v10.5h22.8zm-36.4-33.6h-33.5v10.5h33.5z\"},\"child\":[]}]})(props);\n};\nexport function FaShoelace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M404.9 331c2.2-1.1 4.4-2.3 6.5-3.7l8.3-4.8c1.5-1.1 4.4-3.4 8.7-6.7l.5-.5c3.4-3.4 7.2-5 11.3-4.9c1.8 0 3.9 .5 6.4 1.5l31-27.5c.9-.7 1.7-1.3 2.6-1.8h.2c3.3-1.9 6-1.8 8.2 .4c3.9 2.1 4.2 5.6 .9 10.6L456.9 322c.2 .5 .4 1 .4 1.5c.5 2.2 .3 4.4-.5 6.6c-.7 1.5-1.8 2.9-3.1 4.2c-1.4 1.4-2.7 2.8-4.2 4.2l-18.8 13.7c-1.7 1.2-3.4 2.3-5.1 3.3c-2.1 1.3-4.3 2.5-6.6 3.6c-1 .4-1.9 .9-2.9 1.3c-5.9 2.5-11.9 4.2-18.2 5c-2.9 24.5-11.3 47.1-25.1 67.8c-17.5 25.7-41.4 45.4-71.8 58.8c-30.2 13.5-63 20.2-98.2 20.2c-48.6-.5-88-11.4-118.2-32.8C49.5 454.4 32 421.5 32 380.3v-5.6c1.2-28.1 9.5-54.6 24.8-79.8c15.1-24.9 37.1-41.7 66.1-50.5c14.9-4.4 29.9-6.6 45-6.6c15.5 0 31.6 2.9 48.1 8.6s35.2 15.5 55.9 29.5L326 312.2c15.1 9.8 28.8 16.5 41.2 20c-2.6-25.1-11.7-46.6-27.3-64.5c-15.7-18.1-35.6-31.3-59.9-39.7l-23.3-8c-21.4-7.5-37.3-14.9-47.7-22.2c-28.2-19.1-43.8-45.2-47-78.5l-.5-9.8c0-32.1 13-58.9 39-80.5C223.5 9.7 251.1 0 283 0c24 0 45.6 6.9 64.7 20.8c19.2 14 30.1 33.8 32.6 59.4l.5 10c0 18.6-4.8 34.5-14.4 47.7c-9.8 13.2-18.5 19.9-26 19.9c-1.6-.1-3.1-.3-4.5-.6l-34 32c-5.5 3-9.2 2.5-11.1-1.6c-1.9-2.2-1.8-4.9 .5-8.2l.2-.2c.5-.7 1.2-1.5 2-2.4l31.6-30c-.4-1.5-.6-3.1-.6-4.8c0-4.1 1.6-7.6 4.9-10.4c13.8-12.4 20.8-26.7 20.8-42.8c0-16-6.1-29.5-18.2-40.4s-28.7-16.5-49.7-16.8c-26.2 0-47.8 7.9-64.7 23.7S192.3 89.9 192.3 112c0 17.8 6.9 33.9 20.6 48.3c13.6 14.2 34.6 25.4 63 33.5c39.8 11.5 70.2 31 91.3 58.3c18.7 24.2 29.1 51.3 31.3 81.4c2.2-.7 4.3-1.5 6.5-2.6zM294.1 178.7c0 1.1 .6 1.6 1.8 1.6c.1 0 9.7-8.9 28.8-26.6c0-2.4-5.1 .9-15.3 10c-10.2 9.2-15.3 14.2-15.3 14.9zm8 6.4c0-1-.5-1.5-1.5-1.5c-1.1 0-2.1 .5-2.9 1.6c-1.9-.1-3.3 .1-4.2 .7c-.4 .2-.5 .5-.5 .7c0 .7 .5 1.3 1.5 1.6h3.3c2.9-1.1 4.4-2.2 4.4-3.3zm22.6-19.9c0-2.8-1.6-2.8-4.9 0c-1.6 1.5-3.6 3.5-6 6.2c-.8 .6-2.6 2.2-5.3 4.9c-2.8 2.9-4.2 4.7-4.2 5.3l.2 1.3c.7 .2 1.2 .4 1.5 .4c.1 0 3.3-2.9 9.5-8.7s9.3-8.9 9.3-9.3zm159.7 120l-30.6 27c1.8 1 3.2 2.4 4 4.2l30.2-27c.2-1.2 .1-2.2-.5-2.9c-.6-.5-1.6-.9-3.1-1.3zm-1.6-.9l-.7-.7-27 21.9 1.6 2 26-23.1zM366.6 363.9c-8-2.1-15.4-4.6-22.2-7.5c-15.3-6.2-34.3-17-57-32.4L250 298.7c-15.8-10.1-30.2-17.6-43.2-22.6c-13.1-4.9-26-7.3-38.6-7.3h-5.5c-32.2 1.7-57.2 13.8-75 36.2c-16.6 20.8-25 45.3-25 73.6c0 31.8 12.8 56.7 38.2 74.7c25.4 18.1 60.2 27.1 104.4 27.1c34.7 0 64-6.2 87.8-18.6c23.7-12.4 42.1-28.8 55.2-49.2c9.8-15.5 15.9-31.8 18.2-48.8z\"},\"child\":[]}]})(props);\n};\nexport function FaShopify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M388.32,104.1a4.66,4.66,0,0,0-4.4-4c-2,0-37.23-.8-37.23-.8s-21.61-20.82-29.62-28.83V503.2L442.76,472S388.72,106.5,388.32,104.1ZM288.65,70.47a116.67,116.67,0,0,0-7.21-17.61C271,32.85,255.42,22,237,22a15,15,0,0,0-4,.4c-.4-.8-1.2-1.2-1.6-2C223.4,11.63,213,7.63,200.58,8c-24,.8-48,18-67.25,48.83-13.61,21.62-24,48.84-26.82,70.06-27.62,8.4-46.83,14.41-47.23,14.81-14,4.4-14.41,4.8-16,18-1.2,10-38,291.82-38,291.82L307.86,504V65.67a41.66,41.66,0,0,0-4.4.4S297.86,67.67,288.65,70.47ZM233.41,87.69c-16,4.8-33.63,10.4-50.84,15.61,4.8-18.82,14.41-37.63,25.62-50,4.4-4.4,10.41-9.61,17.21-12.81C232.21,54.86,233.81,74.48,233.41,87.69ZM200.58,24.44A27.49,27.49,0,0,1,215,28c-6.4,3.2-12.81,8.41-18.81,14.41-15.21,16.42-26.82,42-31.62,66.45-14.42,4.41-28.83,8.81-42,12.81C131.33,83.28,163.75,25.24,200.58,24.44ZM154.15,244.61c1.6,25.61,69.25,31.22,73.25,91.66,2.8,47.64-25.22,80.06-65.65,82.47-48.83,3.2-75.65-25.62-75.65-25.62l10.4-44s26.82,20.42,48.44,18.82c14-.8,19.22-12.41,18.81-20.42-2-33.62-57.24-31.62-60.84-86.86-3.2-46.44,27.22-93.27,94.47-97.68,26-1.6,39.23,4.81,39.23,4.81L221.4,225.39s-17.21-8-37.63-6.4C154.15,221,153.75,239.8,154.15,244.61ZM249.42,82.88c0-12-1.6-29.22-7.21-43.63,18.42,3.6,27.22,24,31.23,36.43Q262.63,78.68,249.42,82.88Z\"},\"child\":[]}]})(props);\n};\nexport function FaShopware (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.5 455.41A246.17 246.17 0 0 1 256 504C118.81 504 8 393 8 256 8 118.81 119 8 256 8a247.39 247.39 0 0 1 165.7 63.5 3.57 3.57 0 0 1-2.86 6.18A418.62 418.62 0 0 0 362.13 74c-129.36 0-222.4 53.47-222.4 155.35 0 109 92.13 145.88 176.83 178.73 33.64 13 65.4 25.36 87 41.59a3.58 3.58 0 0 1 0 5.72zM503 233.09a3.64 3.64 0 0 0-1.27-2.44c-51.76-43-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93a3.57 3.57 0 0 0 5-1.82A249 249 0 0 0 503 233.09z\"},\"child\":[]}]})(props);\n};\nexport function FaSignalMessenger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M194.6 7.5l5.8 23.3C177.7 36.3 156 45.3 136 57.4L123.7 36.8c22-13.3 45.9-23.2 70.9-29.3zm122.9 0l-5.8 23.3C334.3 36.3 356 45.3 376 57.4l12.4-20.6c-22-13.3-46-23.2-71-29.3zM36.8 123.7c-13.3 22-23.2 45.9-29.3 70.9l23.3 5.8C36.3 177.7 45.3 156 57.4 136L36.8 123.7zM24 256c0-11.6 .9-23.3 2.6-34.8L2.9 217.6c-3.8 25.4-3.8 51.3 0 76.7l23.7-3.6C24.9 279.3 24 267.6 24 256zM388.3 475.2L376 454.6c-20 12.1-41.6 21-64.2 26.6l5.8 23.3c24.9-6.2 48.8-16 70.8-29.3zM488 256c0 11.6-.9 23.3-2.6 34.8l23.7 3.6c3.8-25.4 3.8-51.3 0-76.7l-23.7 3.6c1.7 11.5 2.6 23.1 2.6 34.8zm16.5 61.4l-23.3-5.8c-5.6 22.7-14.5 44.3-26.6 64.3l20.6 12.4c13.3-22 23.2-46 29.3-71zm-213.8 168c-23 3.5-46.5 3.5-69.5 0l-3.6 23.7c25.4 3.8 51.3 3.8 76.7 0l-3.6-23.7zm152-91.8c-13.8 18.7-30.4 35.3-49.2 49.1l14.2 19.3c20.7-15.2 39-33.4 54.2-54.1l-19.3-14.4zM393.6 69.2c18.8 13.8 35.3 30.4 49.2 49.2L462.1 104C446.9 83.4 428.6 65.1 408 49.9L393.6 69.2zM69.2 118.4c13.8-18.8 30.4-35.3 49.2-49.2L104 49.9C83.4 65.1 65.1 83.4 49.9 104l19.3 14.4zm406 5.3L454.6 136c12.1 20 21 41.6 26.6 64.2l23.3-5.8c-6.2-24.9-16-48.8-29.3-70.8zm-254-97.1c23-3.5 46.5-3.5 69.5 0l3.6-23.7C268.9-1 243.1-1 217.6 2.9l3.6 23.7zM81.6 468.4L32 480l11.6-49.6L20.2 425 8.6 474.5c-.9 4-.8 8.1 .3 12.1s3.2 7.5 6.1 10.4s6.5 5 10.4 6.1s8.1 1.2 12.1 .3L87 492l-5.4-23.6zM25.2 403.6L48.6 409l8-34.4c-11.7-19.6-20.4-40.8-25.8-63L7.5 317.4c5.2 21.2 13.2 41.7 23.6 60.8l-5.9 25.3zm112 52l-34.4 8 5.4 23.4 25.3-5.9c19.2 10.4 39.6 18.4 60.8 23.6l5.8-23.3c-22.1-5.5-43.3-14.3-62.8-26l-.2 .2zM256 48c-37.2 0-73.6 10-105.6 28.9s-58.4 46-76.3 78.6s-26.9 69.3-25.8 106.4s12 73.3 31.8 104.8L60 452l85.3-20c27.3 17.2 58.2 27.8 90.3 31s64.5-1.1 94.6-12.6s57.2-29.8 79-53.6s37.8-52.2 46.8-83.2s10.5-63.6 4.7-95.3s-19-61.6-38.4-87.4s-44.5-46.7-73.4-61S288.3 48 256 48z\"},\"child\":[]}]})(props);\n};\nexport function FaSimplybuilt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSistrix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSith (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z\"},\"child\":[]}]})(props);\n};\nexport function FaSitrox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M212.439 0.00846128V0H448V128H64C64 57.6008 141.755 0.475338 212.439 0.00846128ZM237.256 192V192.007C307.135 192.475 384 249.6 384 320H210.809V319.995C140.915 319.563 64 262.424 64 192H237.256ZM235.565 511.993C306.251 511.521 384 454.399 384 384H0V512H235.565V511.993Z\"},\"child\":[]}]})(props);\n};\nexport function FaSketch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M27.5 162.2L9 187.1h90.5l6.9-130.7-78.9 105.8zM396.3 45.7L267.7 32l135.7 147.2-7.1-133.5zM112.2 218.3l-11.2-22H9.9L234.8 458zm2-31.2h284l-81.5-88.5L256.3 33zm297.3 9.1L277.6 458l224.8-261.7h-90.9zM415.4 69L406 56.4l.9 17.3 6.1 113.4h90.3zM113.5 93.5l-4.6 85.6L244.7 32 116.1 45.7zm287.7 102.7h-290l42.4 82.9L256.3 480l144.9-283.8z\"},\"child\":[]}]})(props);\n};\nexport function FaSkyatlas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z\"},\"child\":[]}]})(props);\n};\nexport function FaSkype (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z\"},\"child\":[]}]})(props);\n};\nexport function FaSlack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z\"},\"child\":[]}]})(props);\n};\nexport function FaSlideshare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M187.7 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7.1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3V49.7c0-27.4-20.6-49.7-46-49.7H76.6c-25.4 0-46 22.3-46 49.7V248c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72C58.3 525.1 252 555.7 248.9 457.5c0-.7.3-56.6.3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7.3 92.8.3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28V72.3c0-34.9 8.9-45.7 40.6-45.7h317.7c30.3 0 40.9 12.9 40.9 45.7v190.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSnapchat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496.926,366.6c-3.373-9.176-9.8-14.086-17.112-18.153-1.376-.806-2.641-1.451-3.72-1.947-2.182-1.128-4.414-2.22-6.634-3.373-22.8-12.09-40.609-27.341-52.959-45.42a102.889,102.889,0,0,1-9.089-16.12c-1.054-3.013-1-4.724-.248-6.287a10.221,10.221,0,0,1,2.914-3.038c3.918-2.591,7.96-5.22,10.7-6.993,4.885-3.162,8.754-5.667,11.246-7.44,9.362-6.547,15.909-13.5,20-21.278a42.371,42.371,0,0,0,2.1-35.191c-6.2-16.318-21.613-26.449-40.287-26.449a55.543,55.543,0,0,0-11.718,1.24c-1.029.224-2.059.459-3.063.72.174-11.16-.074-22.94-1.066-34.534-3.522-40.758-17.794-62.123-32.674-79.16A130.167,130.167,0,0,0,332.1,36.443C309.515,23.547,283.91,17,256,17S202.6,23.547,180,36.443a129.735,129.735,0,0,0-33.281,26.783c-14.88,17.038-29.152,38.44-32.673,79.161-.992,11.594-1.24,23.435-1.079,34.533-1-.26-2.021-.5-3.051-.719a55.461,55.461,0,0,0-11.717-1.24c-18.687,0-34.125,10.131-40.3,26.449a42.423,42.423,0,0,0,2.046,35.228c4.105,7.774,10.652,14.731,20.014,21.278,2.48,1.736,6.361,4.24,11.246,7.44,2.641,1.711,6.5,4.216,10.28,6.72a11.054,11.054,0,0,1,3.3,3.311c.794,1.624.818,3.373-.36,6.6a102.02,102.02,0,0,1-8.94,15.785c-12.077,17.669-29.363,32.648-51.434,44.639C32.355,348.608,20.2,352.75,15.069,366.7c-3.868,10.528-1.339,22.506,8.494,32.6a49.137,49.137,0,0,0,12.4,9.387,134.337,134.337,0,0,0,30.342,12.139,20.024,20.024,0,0,1,6.126,2.741c3.583,3.137,3.075,7.861,7.849,14.78a34.468,34.468,0,0,0,8.977,9.127c10.019,6.919,21.278,7.353,33.207,7.811,10.776.41,22.989.881,36.939,5.481,5.778,1.91,11.78,5.605,18.736,9.92C194.842,480.951,217.707,495,255.973,495s61.292-14.123,78.118-24.428c6.907-4.24,12.872-7.9,18.489-9.758,13.949-4.613,26.163-5.072,36.939-5.481,11.928-.459,23.187-.893,33.206-7.812a34.584,34.584,0,0,0,10.218-11.16c3.434-5.84,3.348-9.919,6.572-12.771a18.971,18.971,0,0,1,5.753-2.629A134.893,134.893,0,0,0,476.02,408.71a48.344,48.344,0,0,0,13.019-10.193l.124-.149C498.389,388.5,500.708,376.867,496.926,366.6Zm-34.013,18.277c-20.745,11.458-34.533,10.23-45.259,17.137-9.114,5.865-3.72,18.513-10.342,23.076-8.134,5.617-32.177-.4-63.239,9.858-25.618,8.469-41.961,32.822-88.038,32.822s-62.036-24.3-88.076-32.884c-31-10.255-55.092-4.241-63.239-9.858-6.609-4.563-1.24-17.211-10.341-23.076-10.739-6.907-24.527-5.679-45.26-17.075-13.206-7.291-5.716-11.8-1.314-13.937,75.143-36.381,87.133-92.552,87.666-96.719.645-5.046,1.364-9.014-4.191-14.148-5.369-4.96-29.189-19.7-35.8-24.316-10.937-7.638-15.748-15.264-12.2-24.638,2.48-6.485,8.531-8.928,14.879-8.928a27.643,27.643,0,0,1,5.965.67c12,2.6,23.659,8.617,30.392,10.242a10.749,10.749,0,0,0,2.48.335c3.6,0,4.86-1.811,4.612-5.927-.768-13.132-2.628-38.725-.558-62.644,2.84-32.909,13.442-49.215,26.04-63.636,6.051-6.932,34.484-36.976,88.857-36.976s82.88,29.92,88.931,36.827c12.611,14.421,23.225,30.727,26.04,63.636,2.071,23.919.285,49.525-.558,62.644-.285,4.327,1.017,5.927,4.613,5.927a10.648,10.648,0,0,0,2.48-.335c6.745-1.624,18.4-7.638,30.4-10.242a27.641,27.641,0,0,1,5.964-.67c6.386,0,12.4,2.48,14.88,8.928,3.546,9.374-1.24,17-12.189,24.639-6.609,4.612-30.429,19.343-35.8,24.315-5.568,5.134-4.836,9.1-4.191,14.149.533,4.228,12.511,60.4,87.666,96.718C468.629,373.011,476.119,377.524,462.913,384.877Z\"},\"child\":[]}]})(props);\n};\nexport function FaSoundcloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M639.8 298.6c-1.3 23.1-11.5 44.8-28.4 60.5s-39.2 24.4-62.3 24.1h-218c-4.8 0-9.4-2-12.8-5.4s-5.3-8-5.3-12.8V130.2c-.2-4 .9-8 3.1-11.4s5.3-6.1 9-7.7c0 0 20.1-13.9 62.3-13.9c25.8 0 51.1 6.9 73.3 20.1c17.3 10.2 32.3 23.8 44.1 40.1s20 34.8 24.2 54.4c7.5-2.1 15.3-3.2 23.1-3.2c11.7-.1 23.3 2.2 34.2 6.7S606.8 226.6 615 235s14.6 18.3 18.9 29.3s6.3 22.6 5.9 34.3zm-354-153.5c.1-1 0-2-.3-2.9s-.8-1.8-1.5-2.6s-1.5-1.3-2.4-1.7s-1.9-.6-2.9-.6s-2 .2-2.9 .6s-1.7 1-2.4 1.7s-1.2 1.6-1.5 2.6s-.4 1.9-.3 2.9c-6 78.9-10.6 152.9 0 231.6c.2 1.7 1 3.3 2.3 4.5s3 1.8 4.7 1.8s3.4-.6 4.7-1.8s2.1-2.8 2.3-4.5c11.3-79.4 6.6-152 0-231.6zm-44 27.3c-.2-1.8-1.1-3.5-2.4-4.7s-3.1-1.9-5-1.9s-3.6 .7-5 1.9s-2.2 2.9-2.4 4.7c-7.9 67.9-7.9 136.5 0 204.4c.3 1.8 1.2 3.4 2.5 4.5s3.1 1.8 4.8 1.8s3.5-.6 4.8-1.8s2.2-2.8 2.5-4.5c8.8-67.8 8.8-136.5 .1-204.4zm-44.3-6.9c-.2-1.8-1-3.4-2.3-4.6s-3-1.8-4.8-1.8s-3.5 .7-4.8 1.8s-2.1 2.8-2.3 4.6c-6.7 72-10.2 139.3 0 211.1c0 1.9 .7 3.7 2.1 5s3.1 2.1 5 2.1s3.7-.7 5-2.1s2.1-3.1 2.1-5c10.5-72.8 7.3-138.2 .1-211.1zm-44 20.6c0-1.9-.8-3.8-2.1-5.2s-3.2-2.1-5.2-2.1s-3.8 .8-5.2 2.1s-2.1 3.2-2.1 5.2c-8.1 63.3-8.1 127.5 0 190.8c.2 1.8 1 3.4 2.4 4.6s3.1 1.9 4.8 1.9s3.5-.7 4.8-1.9s2.2-2.8 2.4-4.6c8.8-63.3 8.9-127.5 .3-190.8zM109 233.7c0-1.9-.8-3.8-2.1-5.1s-3.2-2.1-5.1-2.1s-3.8 .8-5.1 2.1s-2.1 3.2-2.1 5.1c-10.5 49.2-5.5 93.9 .4 143.6c.3 1.6 1.1 3.1 2.3 4.2s2.8 1.7 4.5 1.7s3.2-.6 4.5-1.7s2.1-2.5 2.3-4.2c6.6-50.4 11.6-94.1 .4-143.6zm-44.1-7.5c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9s-3.6 .7-5 1.9s-2.2 2.9-2.4 4.8c-9.3 50.2-6.2 94.4 .3 144.5c.7 7.6 13.6 7.5 14.4 0c7.2-50.9 10.5-93.8 .3-144.5zM20.3 250.8c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9s-3.6 .7-5 1.9s-2.3 2.9-2.4 4.8c-8.5 33.7-5.9 61.6 .6 95.4c.2 1.7 1 3.3 2.3 4.4s2.9 1.8 4.7 1.8s3.4-.6 4.7-1.8s2.1-2.7 2.3-4.4c7.5-34.5 11.2-61.8 .4-95.4z\"},\"child\":[]}]})(props);\n};\nexport function FaSourcetree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M427.2 203c0-112.1-90.9-203-203-203C112.1-.2 21.2 90.6 21 202.6A202.86 202.86 0 0 0 161.5 396v101.7a14.3 14.3 0 0 0 14.3 14.3h96.4a14.3 14.3 0 0 0 14.3-14.3V396.1A203.18 203.18 0 0 0 427.2 203zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSpaceAwesome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 256H128V512H0V352H32V320H64V288H96V256zM512 352V512H384V256H416V288H448V320H480V352H512zM320 64H352V448H320V416H192V448H160V64H192V32H224V0H288V32H320V64zM288 128H224V192H288V128z\"},\"child\":[]}]})(props);\n};\nexport function FaSpeakap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 391.78C-15.41 303.59-8 167.42 80.64 87.64s224.8-73 304.21 15.24 72 224.36-16.64 304.14c-18.74 16.87 64 43.09 42 52.26-82.06 34.21-253.91 35-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 80-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 86 52.26-.37 21.28-26.42 25.81-38.59 25.6-3-.05-30.23-.46-47.61-24.62l-40 42.61c28.16 27 59 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-85-19.45-84.43-49.75.41-23.25 31-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z\"},\"child\":[]}]})(props);\n};\nexport function FaSpeakerDeck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M213.86 296H100a100 100 0 0 1 0-200h132.84a40 40 0 0 1 0 80H98c-26.47 0-26.45 40 0 40h113.82a100 100 0 0 1 0 200H40a40 40 0 0 1 0-80h173.86c26.48 0 26.46-40 0-40zM298 416a120.21 120.21 0 0 0 51.11-80h64.55a19.83 19.83 0 0 0 19.66-20V196a19.83 19.83 0 0 0-19.66-20H296.42a60.77 60.77 0 0 0 0-80h136.93c43.44 0 78.65 35.82 78.65 80v160c0 44.18-35.21 80-78.65 80z\"},\"child\":[]}]})(props);\n};\nexport function FaSpotify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareBehance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M155.3 318.4c17.2 0 31.2-6.1 31.2-25.4c0-19.7-11.7-27.4-30.3-27.5h-46v52.9h45.1zm-5.4-129.6H110.3v44.8H153c15.1 0 25.8-6.6 25.8-22.9c0-17.7-13.7-21.9-28.9-21.9zm129.5 74.8h62.2c-1.7-18.5-11.3-29.7-30.5-29.7c-18.3 0-30.5 11.4-31.7 29.7zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM349.5 185H271.7V166.1h77.8V185zM193.7 243.7c23.6 6.7 35 27.5 35 51.6c0 39-32.7 55.7-67.6 55.9H68v-192h90.5c32.9 0 61.4 9.3 61.4 47.5c0 19.3-9 28.8-26.2 37zm118.7-38.6c43.5 0 67.6 34.3 67.6 75.4c0 1.6-.1 3.3-.2 5c0 .8-.1 1.5-.1 2.2H279.5c0 22.2 11.7 35.3 34.1 35.3c11.6 0 26.5-6.2 30.2-18.1h33.7c-10.4 31.9-31.9 46.8-65.1 46.8c-43.8 0-71.1-29.7-71.1-73c0-41.8 28.7-73.6 71.1-73.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareDribbble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M165.9 132.5c-38.3 18-66.8 53.3-75.7 95.7c6.1 .1 62.4 .3 126.4-16.7c-22.7-40.2-47.1-74.1-50.7-79zm26.1-9.1c3.8 5.1 28.6 38.9 51 80c48.6-18.3 69.1-45.9 71.6-49.4C281 124.2 235.3 112.9 192 123.4zM277.4 382c-2-12-10-53.8-29.2-103.6c-55.1 18.8-93.8 56.4-108.1 85.6c40.5 31.6 93.3 36.7 137.3 18zM227.8 232.6C159.6 253 93.4 252.2 87.4 252c0 .7 0 1.4 0 2.1s0 1.4 0 2.1c0 35.1 13.3 67.1 35.1 91.4c22.2-37.9 67.1-77.9 116.5-91.8c-3.4-7.8-7.2-15.5-11.1-23.2zm72.5 136.9c30.7-20.7 52.5-53.6 58.6-91.6c-4.6-1.5-42.3-12.7-85.1-5.8c17.9 49.1 25.1 89.1 26.5 97.4zm-34.8-119c45.5-5.7 90.7 3.4 95.2 4.4c-.3-32.3-11.8-61.9-30.9-85.1c-2.9 3.9-25.8 33.2-76.3 53.9c4.8 9.8 8.3 17.8 12 26.8zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM224 416a160 160 0 1 1 0-320 160 160 0 1 1 0 320z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64h98.2V334.2H109.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H255V480H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareFontAwesomeStroke (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm154 58c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2c0 1.8-.4 3.7-1.1 5.4L312 264l30.9 69.4c.8 1.7 1.1 3.5 1.1 5.4c0 7.3-5.9 13.2-13.2 13.2L144 352l0 32-32 0 0-32 0-176 0-1.5c-6.1-4.8-10-12.2-10-20.5c0-14.4 11.6-26 26-26s26 11.6 26 26z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareFontAwesome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm90 122c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2c0 1.8-.4 3.7-1.1 5.4L312 264l30.9 69.4c.7 1.7 1.1 3.5 1.1 5.4c0 7.3-5.9 13.2-13.2 13.2L144 352l0 32-32 0 0-32 0-176 0-1.5c-6.1-4.8-10-12.2-10-20.5c0-14.4 11.6-26 26-26s26 11.6 26 26z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareGit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120.8 335.5c-5.9-.4-12.6-.8-20.2-1.3c-3.3 4.1-6.6 8.4-6.6 13.5c0 18.5 65.5 18.5 65.5-1.5c0-8.3-7.4-8.7-38.8-10.7zm7.8-117.9c-32.3 0-33.7 44.5-.7 44.5c32.5 0 31.7-44.5 .7-44.5zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM243.9 172.2c-14.5 0-22.9-8.4-22.9-22.9c0-14.5 8.4-22.3 22.9-22.3c14.7 0 23.1 7.8 23.1 22.3s-8.4 22.9-23.1 22.9zM149.6 195h49.5l0 21.6-23.4 1.8c4.6 5.8 9.4 14 9.4 25.7c0 48.7-57.2 47.2-74.2 42.4l-8.4 13.4c5 .3 9.8 .6 14.3 .8c56.3 3.2 80.5 4.6 80.5 38.5c0 29.2-25.7 45.7-69.9 45.7c-46 0-63.5-11.6-63.5-31.7c0-11.4 5.1-17.5 14-25.9c-8.4-3.5-11.2-9.9-11.2-16.8c0-9.6 7.4-16.3 23-30.6l.2-.2c-12.4-6.1-21.8-19.3-21.8-38.1c0-51.6 56.6-53.3 81.6-46.8zM270.5 303.1l13 1.8 0 20.1H211.1V304.9c2.7-.4 5-.7 6.9-.9c9.9-1.2 10.1-1.3 10.1-6V223.3c0-4.4-.9-4.7-10.1-7.8c-1.9-.7-4.2-1.4-6.9-2.4l2.8-20.6h52.6V298c0 4.1 .2 4.6 4.1 5.1zm106.6-10.4L384 315c-10.9 5.4-26.9 10.2-41.4 10.2c-30.2 0-41.7-12.2-41.7-40.9V217.7c0-.8 0-1.4-.2-1.8c-.8-1.2-4.2-.7-19.6-.7V192.6c22.3-2.5 31.2-13.7 34-41.4h24.2c0 33.3-.6 38 .7 38.6c.3 .1 .7 0 1.3 0h35.8v25.4H339.3v60.7c0 .2 0 .5 0 .9c-.2 6.3-.9 30.4 37.9 15.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareGithub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM265.8 407.7c0-1.8 0-6 .1-11.6c.1-11.4 .1-28.8 .1-43.7c0-15.6-5.2-25.5-11.3-30.7c37-4.1 76-9.2 76-73.1c0-18.2-6.5-27.3-17.1-39c1.7-4.3 7.4-22-1.7-45c-13.9-4.3-45.7 17.9-45.7 17.9c-13.2-3.7-27.5-5.6-41.6-5.6s-28.4 1.9-41.6 5.6c0 0-31.8-22.2-45.7-17.9c-9.1 22.9-3.5 40.6-1.7 45c-10.6 11.7-15.6 20.8-15.6 39c0 63.6 37.3 69 74.3 73.1c-4.8 4.3-9.1 11.7-10.6 22.3c-9.5 4.3-33.8 11.7-48.3-13.9c-9.1-15.8-25.5-17.1-25.5-17.1c-16.2-.2-1.1 10.2-1.1 10.2c10.8 5 18.4 24.2 18.4 24.2c9.7 29.7 56.1 19.7 56.1 19.7c0 9 .1 21.7 .1 30.6c0 4.8 .1 8.6 .1 10c0 4.3-3 9.5-11.5 8C106 393.6 59.8 330.8 59.8 257.4c0-91.8 70.2-161.5 162-161.5s166.2 69.7 166.2 161.5c.1 73.4-44.7 136.3-110.7 158.3c-8.4 1.5-11.5-3.7-11.5-8zm-90.5-54.8c-.2-1.5 1.1-2.8 3-3.2c1.9-.2 3.7 .6 3.9 1.9c.3 1.3-1 2.6-3 3c-1.9 .4-3.7-.4-3.9-1.7zm-9.1 3.2c-2.2 .2-3.7-.9-3.7-2.4c0-1.3 1.5-2.4 3.5-2.4c1.9-.2 3.7 .9 3.7 2.4c0 1.3-1.5 2.4-3.5 2.4zm-14.3-2.2c-1.9-.4-3.2-1.9-2.8-3.2s2.4-1.9 4.1-1.5c2 .6 3.3 2.1 2.8 3.4c-.4 1.3-2.4 1.9-4.1 1.3zm-12.5-7.3c-1.5-1.3-1.9-3.2-.9-4.1c.9-1.1 2.8-.9 4.3 .6c1.3 1.3 1.8 3.3 .9 4.1c-.9 1.1-2.8 .9-4.3-.6zm-8.5-10c-1.1-1.5-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3c1.1 1.5 1.1 3.3 0 4.1c-.9 .6-2.6 0-3.7-1.5zm-6.3-8.8c-1.1-1.3-1.3-2.8-.4-3.5c.9-.9 2.4-.4 3.5 .6c1.1 1.3 1.3 2.8 .4 3.5c-.9 .9-2.4 .4-3.5-.6zm-6-6.4c-1.3-.6-1.9-1.7-1.5-2.6c.4-.6 1.5-.9 2.8-.4c1.3 .7 1.9 1.8 1.5 2.6c-.4 .9-1.7 1.1-2.8 .4z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareGitlab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96zm337.5 12.5l44.6 116.4 .4 1.2c5.6 16.8 7.2 35.2 2.3 52.5c-5 17.2-15.4 32.4-29.8 43.3l-.2 .1-68.4 51.2-54.1 40.9c-.5 .2-1.1 .5-1.7 .8c-2 1-4.4 2-6.7 2c-3 0-6.8-1.8-8.3-2.8l-54.2-40.9L93.5 322.3l-.4-.3-.2-.1c-14.3-10.8-24.8-26-29.7-43.3s-4.2-35.7 2.2-52.5l.5-1.2 44.7-116.4c.9-2.3 2.5-4.3 4.5-5.6c1.6-1 3.4-1.6 5.2-1.8c1.3-.7 2.1-.4 3.4 .1c.6 .2 1.2 .5 2 .7c1 .4 1.6 .9 2.4 1.5c.6 .4 1.2 1 2.1 1.5c1.2 1.4 2.2 3 2.7 4.8l29.2 92.2H285l30.2-92.2c.5-1.8 1.4-3.4 2.6-4.8s2.8-2.4 4.5-3.1c1.7-.6 3.6-.9 5.4-.7s3.6 .8 5.2 1.8c2 1.3 3.7 3.3 4.6 5.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareGooglePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM64 256c0-55.3 44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4c-34.1 0-61.9 28.2-61.9 63.2c0 34.9 27.8 63.2 61.9 63.2c39.6 0 54.4-28.5 56.8-43.1H164V241.8h94.4c1 5 1.6 10.1 1.6 16.6c0 57.1-38.3 97.6-96 97.6c-55.3 0-100-44.7-100-100zm291 18.2v29H325.8v-29h-29V245h29V216H355v29h29v29.2H355z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareHackerNews (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM21 229.2c0 0 .1-.1 .1-.2s.1-.2 .2-.2c0 .1 0 .3-.1 .4H21zM239.2 384H207.8V281.3L128 128h37.3c41.5 77.7 48.1 95.8 54.1 112c1.6 4.3 3.1 8.5 5.2 13.6c3.2-7 5.1-11.9 7.1-17.3c5.9-15.3 12.8-33.2 53.5-108.3H320L239.2 283.1V384z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareInstagram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M194.4 211.7a53.3 53.3 0 1 0 59.3 88.7 53.3 53.3 0 1 0 -59.3-88.7zm142.3-68.4c-5.2-5.2-11.5-9.3-18.4-12c-18.1-7.1-57.6-6.8-83.1-6.5c-4.1 0-7.9 .1-11.2 .1c-3.3 0-7.2 0-11.4-.1c-25.5-.3-64.8-.7-82.9 6.5c-6.9 2.7-13.1 6.8-18.4 12s-9.3 11.5-12 18.4c-7.1 18.1-6.7 57.7-6.5 83.2c0 4.1 .1 7.9 .1 11.1s0 7-.1 11.1c-.2 25.5-.6 65.1 6.5 83.2c2.7 6.9 6.8 13.1 12 18.4s11.5 9.3 18.4 12c18.1 7.1 57.6 6.8 83.1 6.5c4.1 0 7.9-.1 11.2-.1c3.3 0 7.2 0 11.4 .1c25.5 .3 64.8 .7 82.9-6.5c6.9-2.7 13.1-6.8 18.4-12s9.3-11.5 12-18.4c7.2-18 6.8-57.4 6.5-83c0-4.2-.1-8.1-.1-11.4s0-7.1 .1-11.4c.3-25.5 .7-64.9-6.5-83l0 0c-2.7-6.9-6.8-13.1-12-18.4zm-67.1 44.5A82 82 0 1 1 178.4 324.2a82 82 0 1 1 91.1-136.4zm29.2-1.3c-3.1-2.1-5.6-5.1-7.1-8.6s-1.8-7.3-1.1-11.1s2.6-7.1 5.2-9.8s6.1-4.5 9.8-5.2s7.6-.4 11.1 1.1s6.5 3.9 8.6 7s3.2 6.8 3.2 10.6c0 2.5-.5 5-1.4 7.3s-2.4 4.4-4.1 6.2s-3.9 3.2-6.2 4.2s-4.8 1.5-7.3 1.5l0 0c-3.8 0-7.5-1.1-10.6-3.2zM448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM357 389c-18.7 18.7-41.4 24.6-67 25.9c-26.4 1.5-105.6 1.5-132 0c-25.6-1.3-48.3-7.2-67-25.9s-24.6-41.4-25.8-67c-1.5-26.4-1.5-105.6 0-132c1.3-25.6 7.1-48.3 25.8-67s41.5-24.6 67-25.8c26.4-1.5 105.6-1.5 132 0c25.6 1.3 48.3 7.1 67 25.8s24.6 41.4 25.8 67c1.5 26.3 1.5 105.4 0 131.9c-1.3 25.6-7.1 48.3-25.8 67z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareJs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM180.9 444.9c-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6c13.8 0 22.6-5.4 22.6-26.5V237.7h42.1V381.4c0 43.6-25.6 63.5-62.9 63.5zm85.8-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6c17.4 0 28.6-8.7 28.6-20.8c0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5c0-31.6 24.1-55.6 61.6-55.6c26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18c-12.3 0-20.1 7.8-20.1 18c0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2c0 37.8-29.8 58.6-69.7 58.6c-39.1 0-64.4-18.6-76.7-43z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareLastfm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM210.7 280.8c-1.8-5.5-3.4-10.8-5-15.9c-12.9-41.9-21-68.4-58-68.4c-22.4 0-45.1 16.1-45.1 61.2c0 35.2 18 57.2 43.3 57.2c28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8c0-57.9 28.6-92 82.5-92c67.9 0 79.3 35.3 96.4 88.4c1.4 4.4 2.9 8.9 4.4 13.5c8.8 26.8 24.2 46.2 61.2 46.2c24.9 0 38.1-5.5 38.1-19.1c0-17.5-16.9-21.2-40-26.4c-3.2-.7-6.5-1.4-9.9-2.2c-30.4-7.3-42.5-23.1-42.5-48c0-40 32.3-52.4 65.2-52.4c37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4c-16.1 0-26 7.3-26 19.8c0 11 4.8 17.6 20.9 21.3c2.2 .5 4.5 1 6.7 1.4c31.1 6.5 65.1 13.7 65.1 56.1c.1 36.7-30.7 50.6-76.1 50.6c-63.4 0-85.4-28.6-97.1-64.1z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareLetterboxd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM105.1 187C66.4 187 35 218.3 35 257s31.4 70 70.1 70c24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5c0-13.6 3.9-26.3 10.6-37.1c-12.4-19.8-34.4-32.9-59.5-32.9zM224 187c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5c0 13.6-3.9 26.3-10.6 37.1C176.9 313.8 198.9 327 224 327c24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5c0-13.6 3.9-26.3 10.6-37.1C271.1 200.2 249.1 187 224 187zm118.9 0c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5c0 13.6-3.9 26.3-10.6 37.1c12.4 19.8 34.4 32.9 59.5 32.9c38.7 0 70.1-31.3 70.1-70s-31.4-70-70.1-70z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareOdnoklassniki (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 137.1a39.9 39.9 0 1 0 0 79.7 39.9 39.9 0 1 0 0-79.7zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM224 95.9A81 81 0 1 1 224 258a81 81 0 1 1 0-162.1zm59.3 168.3c16.8-13.2 29.5-5.5 34.1 3.6c7.8 16-1.1 23.7-21.5 37c-17.1 10.9-40.7 15.2-56.2 16.8l13 12.9 47.7 47.7c17.4 17.9-11 45.8-28.6 28.6c-12-12.2-29.5-29.7-47.7-47.9l0 0-47.7 47.9c-17.7 17.2-46-11-28.4-28.6c3.7-3.7 7.9-7.9 12.5-12.5c10.4-10.4 22.6-22.7 35.2-35.2l12.9-12.9c-15.4-1.6-39.3-5.7-56.6-16.8c-20.3-13.3-29.3-20.9-21.4-37c4.6-9.1 17.3-16.8 34.1-3.6c0 0 22.7 18 59.3 18s59.3-18 59.3-18z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarePiedPiper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarePinterest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64h72.6l-2.2-.8c-5.4-48.1-3.1-57.5 15.7-134.7c3.9-16 8.5-35 13.9-57.9c0 0-7.3-14.8-7.3-36.5c0-70.7 75.5-78 75.5-25c0 13.5-5.4 31.1-11.2 49.8c-3.3 10.6-6.6 21.5-9.1 32c-5.7 24.5 12.3 44.4 36.4 44.4c43.7 0 77.2-46 77.2-112.4c0-58.8-42.3-99.9-102.6-99.9C153 139 112 191.4 112 245.6c0 21.1 8.2 43.7 18.3 56c2 2.4 2.3 4.5 1.7 7c-1.1 4.7-3.1 12.9-4.7 19.2c-1 4-1.8 7.3-2.1 8.6c-1.1 4.5-3.5 5.5-8.2 3.3c-30.6-14.3-49.8-59.1-49.8-95.1C67.2 167.1 123.4 96 229.4 96c85.2 0 151.4 60.7 151.4 141.8c0 84.6-53.3 152.7-127.4 152.7c-24.9 0-48.3-12.9-56.3-28.2c0 0-12.3 46.9-15.3 58.4c-5 19.3-17.6 42.9-27.4 59.3H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareReddit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32zM305.9 166.4c20.6 0 37.3-16.7 37.3-37.3s-16.7-37.3-37.3-37.3c-18 0-33.1 12.8-36.6 29.8c-30.2 3.2-53.8 28.8-53.8 59.9l0 .2c-32.8 1.4-62.8 10.7-86.6 25.5c-8.8-6.8-19.9-10.9-32-10.9c-28.9 0-52.3 23.4-52.3 52.3c0 21 12.3 39 30.1 47.4c1.7 60.7 67.9 109.6 149.3 109.6s147.6-48.9 149.3-109.7c17.7-8.4 29.9-26.4 29.9-47.3c0-28.9-23.4-52.3-52.3-52.3c-12 0-23 4-31.9 10.8c-24-14.9-54.3-24.2-87.5-25.4l0-.1c0-22.2 16.5-40.7 37.9-43.7l0 0c3.9 16.5 18.7 28.7 36.3 28.7zM155 248.1c14.6 0 25.8 15.4 25 34.4s-11.8 25.9-26.5 25.9s-27.5-7.7-26.6-26.7s13.5-33.5 28.1-33.5zm166.4 33.5c.9 19-12 26.7-26.6 26.7s-25.6-6.9-26.5-25.9c-.9-19 10.3-34.4 25-34.4s27.3 14.6 28.1 33.5zm-42.1 49.6c-9 21.5-30.3 36.7-55.1 36.7s-46.1-15.1-55.1-36.7c-1.1-2.6 .7-5.4 3.4-5.7c16.1-1.6 33.5-2.5 51.7-2.5s35.6 .9 51.7 2.5c2.7 .3 4.5 3.1 3.4 5.7z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareSnapchat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"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,32Zm-3.907,319.309-.083.1a32.364,32.364,0,0,1-8.717,6.823,90.26,90.26,0,0,1-20.586,8.2,12.694,12.694,0,0,0-3.852,1.76c-2.158,1.909-2.1,4.64-4.4,8.55a23.137,23.137,0,0,1-6.84,7.471c-6.707,4.632-14.244,4.923-22.23,5.23-7.214.274-15.39.581-24.729,3.669-3.761,1.245-7.753,3.694-12.377,6.533-11.265,6.9-26.68,16.353-52.3,16.353s-40.925-9.4-52.106-16.279c-4.657-2.888-8.675-5.362-12.543-6.64-9.339-3.08-17.516-3.4-24.729-3.67-7.986-.307-15.523-.6-22.231-5.229a23.085,23.085,0,0,1-6.01-6.11c-3.2-4.632-2.855-7.8-5.254-9.895a13.428,13.428,0,0,0-4.1-1.834,89.986,89.986,0,0,1-20.313-8.127,32.905,32.905,0,0,1-8.3-6.284c-6.583-6.757-8.276-14.776-5.686-21.824,3.436-9.338,11.571-12.111,19.4-16.262,14.776-8.027,26.348-18.055,34.433-29.884a68.236,68.236,0,0,0,5.985-10.567c.789-2.158.772-3.329.241-4.416a7.386,7.386,0,0,0-2.208-2.217c-2.532-1.676-5.113-3.353-6.882-4.5-3.27-2.141-5.868-3.818-7.529-4.98-6.267-4.383-10.65-9.04-13.4-14.245a28.4,28.4,0,0,1-1.369-23.584c4.134-10.924,14.469-17.706,26.978-17.706a37.141,37.141,0,0,1,7.845.83c.689.15,1.37.307,2.042.482-.108-7.43.058-15.357.722-23.119,2.358-27.261,11.912-41.589,21.874-52.994a86.836,86.836,0,0,1,22.28-17.931C188.254,100.383,205.312,96,224,96s35.828,4.383,50.944,13.016a87.169,87.169,0,0,1,22.239,17.9c9.961,11.406,19.516,25.709,21.874,52.995a231.194,231.194,0,0,1,.713,23.118c.673-.174,1.362-.332,2.051-.481a37.131,37.131,0,0,1,7.844-.83c12.5,0,22.82,6.782,26.971,17.706a28.37,28.37,0,0,1-1.4,23.559c-2.74,5.2-7.123,9.861-13.39,14.244-1.668,1.187-4.258,2.864-7.529,4.981-1.835,1.187-4.541,2.947-7.164,4.682a6.856,6.856,0,0,0-1.951,2.034c-.506,1.046-.539,2.191.166,4.208a69.015,69.015,0,0,0,6.085,10.792c8.268,12.1,20.188,22.313,35.454,30.407,1.486.772,2.98,1.5,4.441,2.258.722.332,1.569.763,2.491,1.3,4.9,2.723,9.2,6.01,11.455,12.153C387.821,336.915,386.269,344.7,380.093,351.309Zm-16.719-18.461c-50.313-24.314-58.332-61.918-58.689-64.749-.431-3.379-.921-6.035,2.806-9.472,3.594-3.328,19.541-13.19,23.965-16.278,7.33-5.114,10.534-10.219,8.16-16.495-1.66-4.316-5.686-5.976-9.961-5.976a18.5,18.5,0,0,0-3.993.448c-8.035,1.743-15.838,5.769-20.354,6.857a7.1,7.1,0,0,1-1.66.224c-2.408,0-3.279-1.071-3.088-3.968.564-8.783,1.759-25.925.373-41.937-1.884-22.032-8.99-32.948-17.432-42.6-4.051-4.624-23.135-24.654-59.536-24.654S168.53,134.359,164.479,139c-8.434,9.654-15.531,20.57-17.432,42.6-1.386,16.013-.141,33.147.373,41.937.166,2.756-.68,3.968-3.088,3.968a7.1,7.1,0,0,1-1.66-.224c-4.507-1.087-12.31-5.113-20.346-6.856a18.494,18.494,0,0,0-3.993-.449c-4.25,0-8.3,1.636-9.961,5.977-2.374,6.276.847,11.381,8.168,16.494,4.425,3.088,20.371,12.958,23.966,16.279,3.719,3.437,3.237,6.093,2.805,9.471-.356,2.79-8.384,40.394-58.689,64.749-2.946,1.428-7.96,4.45.88,9.331,13.88,7.628,23.111,6.807,30.3,11.43,6.093,3.927,2.5,12.394,6.923,15.449,5.454,3.76,21.583-.266,42.335,6.6,17.433,5.744,28.116,22.015,58.963,22.015s41.788-16.3,58.938-21.973c20.795-6.865,36.89-2.839,42.336-6.6,4.433-3.055.822-11.522,6.923-15.448,7.181-4.624,16.411-3.8,30.3-11.472C371.36,337.355,366.346,334.333,363.374,332.848Z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareSteam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M165.6 309.1c18.6 7.7 27.3 28.9 19.6 47.4s-29 27.2-47.6 19.4l-28.5-11.8c5 10.6 13.8 19.4 25.4 24.2c25.2 10.5 54.1-1.4 64.6-26.5c5.1-12.1 5.1-25.5 .1-37.7c-5.1-12.1-14.5-21.6-26.7-26.7c-12.1-5-25-4.8-36.4-.5l29.5 12.2zM448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V240.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8c-31.8 0-58.5-22.7-64.5-52.7L0 319.2V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM241.9 196.2a58.4 58.4 0 1 0 116.8 0 58.4 58.4 0 1 0 -116.8 0zm14.6-.1a43.9 43.9 0 1 1 87.8 0 43.9 43.9 0 1 1 -87.8 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareThreads (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM294.2 244.3c19.5 9.3 33.7 23.5 41.2 40.9c10.4 24.3 11.4 63.9-20.2 95.4c-24.2 24.1-53.5 35-95.1 35.3h-.2c-46.8-.3-82.8-16.1-106.9-46.8C91.5 341.8 80.4 303.7 80 256v-.1-.1c.4-47.7 11.5-85.7 33-113.1c24.2-30.7 60.2-46.5 106.9-46.8h.2c46.9 .3 83.3 16 108.2 46.6c12.3 15.1 21.3 33.3 27 54.4l-26.9 7.2c-4.7-17.2-11.9-31.9-21.4-43.6c-19.4-23.9-48.7-36.1-87-36.4c-38 .3-66.8 12.5-85.5 36.2c-17.5 22.3-26.6 54.4-26.9 95.5c.3 41.1 9.4 73.3 26.9 95.5c18.7 23.8 47.4 36 85.5 36.2c34.3-.3 56.9-8.4 75.8-27.3c21.5-21.5 21.1-47.9 14.2-64c-4-9.4-11.4-17.3-21.3-23.3c-2.4 18-7.9 32.2-16.5 43.2c-11.4 14.5-27.7 22.4-48.4 23.5c-15.7 .9-30.8-2.9-42.6-10.7c-13.9-9.2-22-23.2-22.9-39.5c-1.7-32.2 23.8-55.3 63.5-57.6c14.1-.8 27.3-.2 39.5 1.9c-1.6-9.9-4.9-17.7-9.8-23.4c-6.7-7.8-17.1-11.8-30.8-11.9h-.4c-11 0-26 3.1-35.6 17.6l-23-15.8c12.8-19.4 33.6-30.1 58.5-30.1h.6c41.8 .3 66.6 26.3 69.1 71.8c1.4 .6 2.8 1.2 4.2 1.9l.1 .5zm-71.8 67.5c17-.9 36.4-7.6 39.7-48.8c-8.8-1.9-18.6-2.9-29-2.9c-3.2 0-6.4 .1-9.6 .3c-28.6 1.6-38.1 15.5-37.4 27.9c.9 16.7 19 24.5 36.4 23.6l-.1-.1z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareTumblr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM256.8 416c-75.5 0-91.9-55.5-91.9-87.9v-90H135.2c-3.4 0-6.2-2.8-6.2-6.2V189.4c0-4.5 2.8-8.5 7.1-10c38.8-13.7 50.9-47.5 52.7-73.2c.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2H249.1V321c0 21.4 14.8 33.5 42.5 22.4c3-1.2 5.6-2 8-1.4c2.2 .5 3.6 2.1 4.6 4.9L318 387.1c1 3.2 2 6.7-.3 9.1c-8.5 9.1-31.2 19.8-60.9 19.8z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM351.3 199.3v0c0 86.7-66 186.6-186.6 186.6c-37.2 0-71.7-10.8-100.7-29.4c5.3 .6 10.4 .8 15.8 .8c30.7 0 58.9-10.4 81.4-28c-28.8-.6-53-19.5-61.3-45.5c10.1 1.5 19.2 1.5 29.6-1.2c-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3c-9-6-16.4-14.1-21.5-23.6s-7.8-20.2-7.7-31c0-12.2 3.2-23.4 8.9-33.1c32.3 39.8 80.8 65.8 135.2 68.6c-9.3-44.5 24-80.6 64-80.6c18.9 0 35.9 7.9 47.9 20.7c14.8-2.8 29-8.3 41.6-15.8c-4.9 15.2-15.2 28-28.8 36.1c13.2-1.4 26-5.1 37.8-10.2c-8.9 13.1-20.1 24.7-32.9 34c.2 2.8 .2 5.7 .2 8.5z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareUpwork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M56 32l336 0c30.9 0 56 25.1 56 56l0 336c0 30.9-25.1 56-56 56L56 480c-30.9 0-56-25.1-56-56L0 88C0 57.1 25.1 32 56 32zM270.9 274.2c6.6-52.9 25.9-69.5 51.4-69.5c25.3 0 44.9 20.2 44.9 49.7s-19.7 49.7-44.9 49.7c-27.9 0-46.3-21.5-51.4-29.9zm-26.7-41.8c-8.2-15.5-14.3-36.3-19.2-55.6l-29.7 0-33.2 0 0 78.1c0 28.4-12.9 49.4-38.2 49.4s-39.8-20.9-39.8-49.3l.3-78.1-36.2 0 0 78.1c0 22.8 7.4 43.5 20.9 58.2c13.9 15.2 32.8 23.2 54.8 23.2c43.7 0 74.2-33.5 74.2-81.5l0-52.5c4.6 17.3 15.4 50.5 36.2 79.7L215 392.6l36.8 0 12.8-78.4c4.2 3.5 8.7 6.6 13.4 9.4c12.3 7.8 26.4 12.2 40.9 12.6l.1 0c.5 0 1.1 0 1.6 0c.6 0 1.1 0 1.7 0c45.1 0 80.9-34.9 80.9-81.9s-35.9-82.2-80.9-82.2c-45.4 0-70.9 29.7-78.1 60.1z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareViadeo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM118.3 381.2c-68-73.6-19.8-196.1 81.2-196.1c13.3 0 26.6 2.1 39.1 6.7c-4.3 8.4-7.3 17.6-8.4 27.1c-9.7-4.1-20.2-6-30.7-6c-48.8 0-84.6 41.7-84.6 88.9c0 43 28.5 78.7 69.5 85.9c61.5-24 72.9-117.6 72.9-175v0c0-7.3 0-14.8-.6-22.1c-11.2-32.9-26.6-64.6-44.2-94.5c27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70c0 54.1-21.9 99-68.3 128.2l-2.4 .2c50 1 86.2-38.6 86.2-87.2c0-12.2-2.1-24.3-6.9-35.7c9.5-1.9 18.5-5.6 26.4-10.5c15.3 36.6 12.6 87.3-22.8 125.6c-42.4 46.2-120 46.6-162.4 0zM274.6 217.6c21.9-12 49.6-30.7 62.3-53c1.5-3 4.1-8.6 4.5-12c-12.5 27.9-44.2 49.8-73.9 56.7c-4.7-7.3-7.5-15.5-7.5-24.3c0-10.3 5.2-24.1 12.9-31.6c8.3-7.9 18-10.9 27.9-14.1c16-5.1 32.5-10.3 44.5-35.9c32.5 46.2 13.1 130.3-36.3 130.3c-13.3 0-25.1-7.1-34.4-16.1z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareVimeo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM318.5 309.5C275 366 238.2 394.3 208.1 394.3c-18.7 0-34.4-17.2-47.3-51.6c-3.8-13.9-7.3-26.9-10.5-39c-18.2-68.3-28.6-107.4-46.2-107.4c-2.4 0-10.8 5-25.1 15.1L64 192c7-6.1 13.9-12.4 20.6-18.5c29.1-26.3 55.6-50.3 73.5-51.9c24.9-2.4 40.2 14.6 46 51.1c20.5 129.6 29.6 149.2 66.8 90.5c13.4-21.2 20.6-37.2 21.5-48.3c3.4-32.8-25.6-30.6-45.2-22.2c15.7-51.5 45.8-76.5 90.1-75.1c32.9 1 48.4 22.4 46.5 64c-1.4 31.1-23.2 73.8-65.3 127.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareWebAwesomeStroke (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm235 81.6L288 224l52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6c0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224C74.3 223.6 64 213 64 200c0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224l53.1-46.4c-8.9-4.1-15-13.1-15-23.6c0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareWebAwesome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM235 177.6L288 224l52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6c0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224C74.3 223.6 64 213 64 200c0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224l53.1-46.4c-8.9-4.1-15-13.1-15-23.6c0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareWhatsapp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M92.1 254.6c0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6L152 365.2l4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8c0-35.2-15.2-68.3-40.1-93.2c-25-25-58-38.7-93.2-38.7c-72.7 0-131.8 59.1-131.9 131.8zM274.8 330c-12.6 1.9-22.4 .9-47.5-9.9c-36.8-15.9-61.8-51.5-66.9-58.7c-.4-.6-.7-.9-.8-1.1c-2-2.6-16.2-21.5-16.2-41c0-18.4 9-27.9 13.2-32.3c.3-.3 .5-.5 .7-.8c3.6-4 7.9-5 10.6-5c2.6 0 5.3 0 7.6 .1c.3 0 .5 0 .8 0c2.3 0 5.2 0 8.1 6.8c1.2 2.9 3 7.3 4.9 11.8c3.3 8 6.7 16.3 7.3 17.6c1 2 1.7 4.3 .3 6.9c-3.4 6.8-6.9 10.4-9.3 13c-3.1 3.2-4.5 4.7-2.3 8.6c15.3 26.3 30.6 35.4 53.9 47.1c4 2 6.3 1.7 8.6-1c2.3-2.6 9.9-11.6 12.5-15.5c2.6-4 5.3-3.3 8.9-2s23.1 10.9 27.1 12.9c.8 .4 1.5 .7 2.1 1c2.8 1.4 4.7 2.3 5.5 3.6c.9 1.9 .9 9.9-2.4 19.1c-3.3 9.3-19.1 17.7-26.7 18.8zM448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM148.1 393.9L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5c29.9 30 47.9 69.8 47.9 112.2c0 87.4-72.7 158.5-160.1 158.5c-26.6 0-52.7-6.7-75.8-19.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareXTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm297.1 84L257.3 234.6 379.4 396H283.8L209 298.1 123.3 396H75.8l111-126.9L69.7 116h98l67.7 89.5L313.6 116h47.5zM323.3 367.6L153.4 142.9H125.1L296.9 367.6h26.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareXing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM93.8 320.2c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6 .2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2c-3.5 6.2-7.7 9.1-12.6 9.1H93.8zm163.5-33.4v.2l65.5 119c2.8 5.1 .1 10.1-6 10.1H270.2c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c1.8-3.2 22.9-40.4 63.3-111.6c11.7-20.7 25.1-44.3 40.1-70.8c3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10L257.3 286.8z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareYoutube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M282 256.2l-95.2-54.1V310.3L282 256.2zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zm14.4 136.1c7.6 28.6 7.6 88.2 7.6 88.2s0 59.6-7.6 88.1c-4.2 15.8-16.5 27.7-32.2 31.9C337.9 384 224 384 224 384s-113.9 0-142.2-7.6c-15.7-4.2-28-16.1-32.2-31.9C42 315.9 42 256.3 42 256.3s0-59.7 7.6-88.2c4.2-15.8 16.5-28.2 32.2-32.4C110.1 128 224 128 224 128s113.9 0 142.2 7.7c15.7 4.2 28 16.6 32.2 32.4z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarespace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z\"},\"child\":[]}]})(props);\n};\nexport function FaStackExchange (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z\"},\"child\":[]}]})(props);\n};\nexport function FaStackOverflow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z\"},\"child\":[]}]})(props);\n};\nexport function FaStackpath (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M244.6 232.4c0 8.5-4.26 20.49-21.34 20.49h-19.61v-41.47h19.61c17.13 0 21.34 12.36 21.34 20.98zM448 32v448H0V32zM151.3 287.84c0-21.24-12.12-34.54-46.72-44.85-20.57-7.41-26-10.91-26-18.63s7-14.61 20.41-14.61c14.09 0 20.79 8.45 20.79 18.35h30.7l.19-.57c.5-19.57-15.06-41.65-51.12-41.65-23.37 0-52.55 10.75-52.55 38.29 0 19.4 9.25 31.29 50.74 44.37 17.26 6.15 21.91 10.4 21.91 19.48 0 15.2-19.13 14.23-19.47 14.23-20.4 0-25.65-9.1-25.65-21.9h-30.8l-.18.56c-.68 31.32 28.38 45.22 56.63 45.22 29.98 0 51.12-13.55 51.12-38.29zm125.38-55.63c0-25.3-18.43-45.46-53.42-45.46h-51.78v138.18h32.17v-47.36h19.61c30.25 0 53.42-15.95 53.42-45.36zM297.94 325L347 186.78h-31.09L268 325zm106.52-138.22h-31.09L325.46 325h29.94z\"},\"child\":[]}]})(props);\n};\nexport function FaStaylinked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 440 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M382.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L144.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L63.2 268c-3.5-3.5-9.7-3.7-13.9-.5L3.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L211 510.7s7.4 6.8 17.3-.8l198-163.9c4-3.2 4.4-8.7.7-12.2zm54.5-83.4L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2z\"},\"child\":[]}]})(props);\n};\nexport function FaSteamSymbol (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z\"},\"child\":[]}]})(props);\n};\nexport function FaSteam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z\"},\"child\":[]}]})(props);\n};\nexport function FaStickerMule (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M561.7 199.6c-1.3.3.3 0 0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3.5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8.4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5.5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5.5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4.5 1 1 2 1.5 3.5.5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5.5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5.3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6.5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3.8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z\"},\"child\":[]}]})(props);\n};\nexport function FaStrava (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z\"},\"child\":[]}]})(props);\n};\nexport function FaStripeS (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M155.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C298.3 7.2 251.1 0 203.8 0 88.1 0 11 60.4 11 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5a396.09 396.09 0 0 0 156 32.4c118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z\"},\"child\":[]}]})(props);\n};\nexport function FaStripe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9v-33.8c-5.7 2.3-33.7 10.5-33.7-15.7V221h33.7v-37.8h-33.7zm89.1 51.6l-2.7-13.1H213v153.2h44.3V233.3c10.5-13.8 28.2-11.1 33.9-9.3v-40.8c-6-2.1-26.7-6-37.1 13.1zm92.3-72.3l-44.6 9.5v36.2l44.6-9.5zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4v-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2v40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7zm-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8zm-126.7 33.7h44.6V183.2h-44.6z\"},\"child\":[]}]})(props);\n};\nexport function FaStubber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M136.5 294.2l58.8 22.9c9.1-36.8 25.4-61.1 55-61.1c49.4 0 71.4 63.6 142.4 63.6c15.6 0 35.9-2.8 55.3-13.3V368c0 61.8-50.4 112-112.3 112H0l41.8-56L0 368l41.7-56L0 256.1l41.8-56L0 144.1 41.8 88 0 32H335.7C397.6 32 448 82.3 448 144.1v51.3c-9.2 36.3-25.9 60.6-55 60.6c-49.6 0-71.6-63.5-142.4-63.5c-35.9 0-95.2 14.6-114.1 101.6h0z\"},\"child\":[]}]})(props);\n};\nexport function FaStudiovinari (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z\"},\"child\":[]}]})(props);\n};\nexport function FaStumbleuponCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z\"},\"child\":[]}]})(props);\n};\nexport function FaStumbleupon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSuperpowers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z\"},\"child\":[]}]})(props);\n};\nexport function FaSupple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z\"},\"child\":[]}]})(props);\n};\nexport function FaSuse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M593.1 192.6A10.4 10.4 0 1 1 604.5 210a10.4 10.4 0 1 1 -11.4-17.4zm-47.1 12.2a38.5 38.5 0 1 1 75-17.6 38.5 38.5 0 1 1 -75 17.6zM433.7 336.7c3.2 4.6 5.8 9 7.3 13.4c1 3.1 2.4 7.3 5.5 8.9c.2 .1 .3 .2 .5 .2c5.7 2.1 20.3 1.7 20.3 1.7h26.8c2.3 0 22.4 0 21.9-2.3c-2.4-10.8-14.9-12.7-24.4-18.3c-8.7-5.2-17-11.1-20.8-21.3c-2-5.2-.8-17.4 2.6-21.8c2.5-3.2 6.1-5.3 10-6.2c4.3-.9 8.8-.1 13.1 .3c5.3 .5 10.6 1.5 15.9 2.2c10.3 1.3 20.6 1.9 31 1.6c17.1-.5 34.2-3.2 50.4-8.7c11.3-3.8 22.4-8.9 32-16.1c10.9-8.1 8.1-7.4-3-6.2c-13.3 1.4-26.6 1.6-39.9 .8c-12.4-.7-24.7-2.2-35.9-7.9c-8.8-4.6-16.4-9.1-23.4-16.2c-1-1.1-1.7-4.2 .2-6.2c1.9-1.9 5.8-.8 7 .2c12.2 10.2 30.5 18.6 49.3 19.5c10.2 .5 20.1 .7 30.4 .3c5.1-.2 12.8-.2 17.9-.3c2.6 0 9.8 .7 11.2-2.1c.4-.8 .4-1.8 .3-2.7c-1.5-40.9-4.5-86.9-47.3-106.5c-31.9-14.6-79.7-37.2-99.9-46.6c-4.7-2.2-10.2 1.3-10.2 6.5c0 13.6 .7 33.3 .7 51.1c-9.7-9.9-26-16.1-38.4-21.8c-14.1-6.5-28.7-12-43.5-16.6c-29.8-9.2-60.7-14.9-91.7-18c-35.2-3.5-71-1.8-105.7 5.3C147 115.1 90.8 142.6 48.2 182.7C22.1 207.3 1.6 242.4 .2 277.9c-2 50.3 12.1 77.3 38 105.2c41.3 44.4 130.2 50.6 166.2-2c16.2-23.7 19.7-55.8 8-82c-11.8-26.2-38.8-45.1-67.4-46c-22.2-.7-45.9 10.6-54.5 31.1c-6.5 15.7-2.8 35.1 9 47.3c4.6 4.8 10.9 8.7 17.7 7.1c4-.9 7.4-3.9 8-8c.9-6-4.4-9.9-7.6-14.5c-5.8-8.3-4.7-20.9 2.7-27.9c6.2-6 15.3-7.8 23.9-7.7c8 0 16.2 1.4 23.1 5.5c9.7 5.7 16.2 16.2 18.4 27.2c6.7 33-20.2 59.9-56.6 62c-18.6 1.1-37.6-3.8-52.1-15.5C40.1 329.9 31.1 269.4 73.2 237c40-30.7 90.4-22.8 120.2-6.8c23.8 12.8 41.5 33.6 55 56.7c6.7 11.6 12.5 23.7 17.8 36.1c5.1 11.8 9.9 23.8 20.2 32.5c6.8 5.8 15.2 5.6 24.1 5.6h50.8c6.9 0 5.2-4.6 2.2-7.7c-6.7-6.9-16.4-8.4-25.4-10.9c-20.5-5.6-18.4-32.8-12.7-32.8c18.3 0 18.9 .6 34.9 .3c23.2-.3 30.2-1.7 48.3 5c9.7 3.6 19 13.1 25.1 21.7z\"},\"child\":[]}]})(props);\n};\nexport function FaSwift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 156.09c0-4.51-.08-9-.2-13.52a196.31 196.31 0 0 0-2.58-29.42 99.62 99.62 0 0 0-9.22-28A94.08 94.08 0 0 0 394.84 44a99.17 99.17 0 0 0-28-9.22 195 195 0 0 0-29.43-2.59c-4.51-.12-9-.17-13.52-.2H124.14c-4.51 0-9 .08-13.52.2-2.45.07-4.91.15-7.37.27a171.68 171.68 0 0 0-22.06 2.32 103.06 103.06 0 0 0-21.21 6.1q-3.46 1.45-6.81 3.12a94.66 94.66 0 0 0-18.39 12.32c-1.88 1.61-3.69 3.28-5.43 5A93.86 93.86 0 0 0 12 85.17a99.45 99.45 0 0 0-9.22 28 196.31 196.31 0 0 0-2.54 29.4c-.13 4.51-.18 9-.21 13.52v199.83c0 4.51.08 9 .21 13.51a196.08 196.08 0 0 0 2.58 29.42 99.3 99.3 0 0 0 9.22 28A94.31 94.31 0 0 0 53.17 468a99.47 99.47 0 0 0 28 9.21 195 195 0 0 0 29.43 2.59c4.5.12 9 .17 13.52.2H323.91c4.51 0 9-.08 13.52-.2a196.59 196.59 0 0 0 29.44-2.59 99.57 99.57 0 0 0 28-9.21A94.22 94.22 0 0 0 436 426.84a99.3 99.3 0 0 0 9.22-28 194.79 194.79 0 0 0 2.59-29.42c.12-4.5.17-9 .2-13.51V172.14c-.01-5.35-.01-10.7-.01-16.05zm-69.88 241c-20-38.93-57.23-29.27-76.31-19.47-1.72 1-3.48 2-5.25 3l-.42.25c-39.5 21-92.53 22.54-145.85-.38A234.64 234.64 0 0 1 45 290.12a230.63 230.63 0 0 0 39.17 23.37c56.36 26.4 113 24.49 153 0-57-43.85-104.6-101-141.09-147.22a197.09 197.09 0 0 1-18.78-25.9c43.7 40 112.7 90.22 137.48 104.12-52.57-55.49-98.89-123.94-96.72-121.74 82.79 83.42 159.18 130.59 159.18 130.59 2.88 1.58 5 2.85 6.73 4a127.44 127.44 0 0 0 4.16-12.47c13.22-48.33-1.66-103.58-35.31-149.2C329.61 141.75 375 229.34 356.4 303.42c-.44 1.73-.95 3.4-1.44 5.09 38.52 47.4 28.04 98.17 23.13 88.59z\"},\"child\":[]}]})(props);\n};\nexport function FaSymfony (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm133.74 143.54c-11.47.41-19.4-6.45-19.77-16.87-.27-9.18 6.68-13.44 6.53-18.85-.23-6.55-10.16-6.82-12.87-6.67-39.78 1.29-48.59 57-58.89 113.85 21.43 3.15 36.65-.72 45.14-6.22 12-7.75-3.34-15.72-1.42-24.56 4-18.16 32.55-19 32 5.3-.36 17.86-25.92 41.81-77.6 35.7-10.76 59.52-18.35 115-58.2 161.72-29 34.46-58.4 39.82-71.58 40.26-24.65.85-41-12.31-41.58-29.84-.56-17 14.45-26.26 24.31-26.59 21.89-.75 30.12 25.67 14.88 34-12.09 9.71.11 12.61 2.05 12.55 10.42-.36 17.34-5.51 22.18-9 24-20 33.24-54.86 45.35-118.35 8.19-49.66 17-78 18.23-82-16.93-12.75-27.08-28.55-49.85-34.72-15.61-4.23-25.12-.63-31.81 7.83-7.92 10-5.29 23 2.37 30.7l12.63 14c15.51 17.93 24 31.87 20.8 50.62-5.06 29.93-40.72 52.9-82.88 39.94-36-11.11-42.7-36.56-38.38-50.62 7.51-24.15 42.36-11.72 34.62 13.6-2.79 8.6-4.92 8.68-6.28 13.07-4.56 14.77 41.85 28.4 51-1.39 4.47-14.52-5.3-21.71-22.25-39.85-28.47-31.75-16-65.49 2.95-79.67C204.23 140.13 251.94 197 262 205.29c37.17-109 100.53-105.46 102.43-105.53 25.16-.81 44.19 10.59 44.83 28.65.25 7.69-4.17 22.59-19.52 23.13z\"},\"child\":[]}]})(props);\n};\nexport function FaTeamspeak (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152.8 37.2c-32.2 38.1-56.1 82.6-69.9 130.5c0 .2-.1 .3-.1 .5C43.5 184.4 16 223 16 268c0 59.6 48.4 108 108 108s108-48.4 108-108c0-53.5-38.9-97.9-90-106.5c15.7-41.8 40.4-79.6 72.3-110.7c1.8-1.6 4-2.6 6.3-3.1c37.2-11.5 76.7-13.3 114.8-5.2C454.7 67.6 534 180.7 517.1 301.3c-8.4 62.6-38.6 112.7-87.7 151.4c-50.1 39.7-107.5 54.3-170.2 52.2l-24-1c12.4 2.8 25 4.9 37.6 6.3c40.7 4.2 81.4 2.1 120.1-12.5c94-35.5 149.3-102.3 162.9-202.5c4.8-52.6-5.8-105.4-30.8-152C454.6 11.3 290.8-38.4 159 32c-2.4 1.4-4.5 3.1-6.3 5.2zM309.4 433.9c-2.1 11.5-4.2 21.9-14.6 31.3c53.2-1 123.2-29.2 161.8-97.1c39.7-69.9 37.6-139.9-6.3-207.8C413.8 105 360.5 77.9 293.7 73.7c1.5 2.3 3.2 4.4 5.2 6.3l5.2 6.3c25.1 31.3 37.6 67.9 42.8 107.5c2.1 15.7-1 30.3-13.6 41.8c-4.2 3.1-5.2 6.3-4.2 10.4l7.3 17.7L365.7 318c5.2 11.5 4.2 19.8-6.3 28.2c-3.2 2.5-6.7 4.6-10.4 6.3l-18.8 8.4 3.1 13.6c3.1 6.3 1 12.5-3.1 17.7c-2.5 2.4-3.8 5.9-3.1 9.4c2.1 11.5-2.1 19.8-12.5 25.1c-2.1 1-4.2 5.2-5.2 7.3zm-133.6-3.1c16.7 11.5 34.5 20.9 53.2 26.1c24 5.2 41.8-6.3 44.9-30.3c1-8.4 5.2-14.6 12.5-17.7c7.3-4.2 8.4-7.3 2.1-13.6l-9.4-8.4 13.6-4.2c6.3-2.1 7.3-5.2 5.2-11.5c-1.4-3-2.4-6.2-3.1-9.4c-3.1-14.6-2.1-15.7 11.5-18.8c8.4-3.1 15.7-6.3 21.9-12.5c3.1-2.1 3.1-4.2 1-8.4l-16.7-30.3c-1-1.9-2.1-3.8-3.1-5.7c-6.4-11.7-13-23.6-15.7-37.1c-2.1-9.4-1-17.7 8.4-24c5.2-4.2 8.4-9.4 8.4-16.7c-.4-10.1-1.5-20.3-3.1-30.3c-6.3-37.6-23-68.9-51.2-95c-5.2-4.2-9.4-6.3-16.7-4.2L203.9 91.5c2 1.2 4 2.4 6 3.6l0 0c6.3 3.7 12.2 7.3 17 12.1c30.3 26.1 41.8 61.6 45.9 100.2c1 8.4 0 16.7-7.3 21.9c-8.4 5.2-10.4 12.5-7.3 20.9c4.9 13.2 10.4 26 16.7 38.6L291.6 318c-6.3 8.4-13.6 11.5-21.9 14.6c-12.5 3.1-14.6 7.3-10.4 20.9c.6 1.5 1.4 2.8 2.1 4.2c2.1 5.2 1 8.4-4.2 10.4l-12.5 3.1 5.2 4.2 4.2 4.2c4.2 5.2 4.2 8.4-2.1 10.4c-7.3 4.2-11.5 9.4-11.5 17.7c0 12.5-7.3 19.8-18.8 24c-3.8 1-7.6 1.5-11.5 1l-34.5-2.1z\"},\"child\":[]}]})(props);\n};\nexport function FaTelegram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248,8C111.033,8,0,119.033,0,256S111.033,504,248,504,496,392.967,496,256,384.967,8,248,8ZM362.952,176.66c-3.732,39.215-19.881,134.378-28.1,178.3-3.476,18.584-10.322,24.816-16.948,25.425-14.4,1.326-25.338-9.517-39.287-18.661-21.827-14.308-34.158-23.215-55.346-37.177-24.485-16.135-8.612-25,5.342-39.5,3.652-3.793,67.107-61.51,68.335-66.746.153-.655.3-3.1-1.154-4.384s-3.59-.849-5.135-.5q-3.283.746-104.608,69.142-14.845,10.194-26.894,9.934c-8.855-.191-25.888-5.006-38.551-9.123-15.531-5.048-27.875-7.717-26.8-16.291q.84-6.7,18.45-13.7,108.446-47.248,144.628-62.3c68.872-28.647,83.183-33.623,92.511-33.789,2.052-.034,6.639.474,9.61,2.885a10.452,10.452,0,0,1,3.53,6.716A43.765,43.765,0,0,1,362.952,176.66Z\"},\"child\":[]}]})(props);\n};\nexport function FaTencentWeibo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z\"},\"child\":[]}]})(props);\n};\nexport function FaTheRedYeti (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488.23 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9a122.2 122.2 0 0 0-25.3 16.5c-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5.5a239.36 239.36 0 0 0-68.4-13.3c-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2L182 0c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27a35.12 35.12 0 0 0-.5 25.3c3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0h-3.7l33 14.3a194.26 194.26 0 0 0-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8a200.18 200.18 0 0 0-27.8 40.3c-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7.7 3.4 1.2 5.2 0 25.5.4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5A181.84 181.84 0 0 0 495 255a44.74 44.74 0 0 0-6.8-13.3zM398 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4a242.44 242.44 0 0 1-27 0c12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9a56.38 56.38 0 0 1-1.7-15.2c5.4.5 8.8 3.4 9.3 10.1.5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8.9-.7 14.8h-2.5a62.32 62.32 0 0 0-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2zM91 143.1l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5.5 20.9 1.2a52.35 52.35 0 0 0 16 2.5l.5-1.7-8.4-35.8 13.5 29a42.89 42.89 0 0 0 5.9-14.3c1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3a234.68 234.68 0 0 0-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5C190.4 39.9 214 34 239.8 34.5l21.1.5c-11.8 13.5-27.8 21.9-48.5 24.8a201.26 201.26 0 0 1-23.4 2.9l-.2-.5-2.5-1.2a20.75 20.75 0 0 0-14 2c-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7.5 1.2c2 .2 3.9.5 6.2.7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4h1.2a39.4 39.4 0 0 1 25.3-15.2v-3c6.4.5 13 1 19.4 1.2 6.4 0 8.4.5 5.4 1.2a189.6 189.6 0 0 1 20.7 13.5c13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6a141.13 141.13 0 0 1-3 28.3 209.91 209.91 0 0 1-16 46l2.5.5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2.2-.2.2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.27-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1L149 225c-8.8-3-18.2-3-28.3.5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zm276.5 330c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3a262.57 262.57 0 0 0 35.4 24.8c3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1a80.25 80.25 0 0 1 20.7 26.6c-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2.7 89.5zm115.3-214.4l-2.5.5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2h-1.2l-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2a214.82 214.82 0 0 1-93.2-6.4c-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4l-2.5-16.4-22.27 22.3c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2a18.5 18.5 0 0 1 3.7-1.7c.6-3.2.4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7.5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6v-.5l1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8v-2l-5.4-4.2h10.1l5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5a184 184 0 0 1 33 4.2l-23.6 2.5-1.2 3 26.6 23.1a254.21 254.21 0 0 1 27 32c-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5zm-6.1-71.3l-3.9 13-14.3-11.8zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2a50.22 50.22 0 0 0 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7a39.57 39.57 0 0 0-14.27-13.8zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6v-4.7l-1.2.5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5.5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6.3 9.3-1.1 9.3-14.8h-.5c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2a7.51 7.51 0 0 0 5.43 4.2zM216 82.9l-2.5.5.5 3a48.94 48.94 0 0 1 26.1 5.9c-2.5-5.5-10-14.3-28.3-14.3l.5 2.5zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7a42.67 42.67 0 0 0 14.8-28.3c1.7-16-1.2-29.5-8.8-41.3l13-7.6a2.26 2.26 0 0 0-.5-1.7 14.21 14.21 0 0 0-13.5 1.7c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5a99.61 99.61 0 0 0-2.9 23.6c-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3a72.14 72.14 0 0 1 3 25.3c-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6a39.21 39.21 0 0 1-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9.5.5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6a83.47 83.47 0 0 0 1.7 33.7c.1.5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2.5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6h2.5l-11.8-7.6-7.1.5c-5.9 1.2-12.3 4.2-19.4 8.4z\"},\"child\":[]}]})(props);\n};\nexport function FaThemeco (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M202.9 8.43c9.9-5.73 26-5.82 35.95-.21L430 115.85c10 5.6 18 19.44 18 30.86V364c0 11.44-8.06 25.29-18 31L238.81 503.74c-9.93 5.66-26 5.57-35.85-.21L17.86 395.12C8 389.34 0 375.38 0 364V146.71c0-11.44 8-25.36 17.91-31.08zm-77.4 199.83c-15.94 0-31.89.14-47.83.14v101.45H96.8V280h28.7c49.71 0 49.56-71.74 0-71.74zm140.14 100.29l-30.73-34.64c37-7.51 34.8-65.23-10.87-65.51-16.09 0-32.17-.14-48.26-.14v101.59h19.13v-33.91h18.41l29.56 33.91h22.76zm-41.59-82.32c23.34 0 23.26 32.46 0 32.46h-29.13v-32.46zm-95.56-1.6c21.18 0 21.11 38.85 0 38.85H96.18v-38.84zm192.65-18.25c-68.46 0-71 105.8 0 105.8 69.48-.01 69.41-105.8 0-105.8zm0 17.39c44.12 0 44.8 70.86 0 70.86s-44.43-70.86 0-70.86z\"},\"child\":[]}]})(props);\n};\nexport function FaThemeisle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z\"},\"child\":[]}]})(props);\n};\nexport function FaThinkPeaks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M465.4 409.4l87.1-150.2-32-.3-55.1 95L259.2 0 23 407.4l32 .3L259.2 55.6zm-355.3-44.1h32.1l117.4-202.5L463 511.9l32.5.1-235.8-404.6z\"},\"child\":[]}]})(props);\n};\nexport function FaThreads (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M331.5 235.7c2.2 .9 4.2 1.9 6.3 2.8c29.2 14.1 50.6 35.2 61.8 61.4c15.7 36.5 17.2 95.8-30.3 143.2c-36.2 36.2-80.3 52.5-142.6 53h-.3c-70.2-.5-124.1-24.1-160.4-70.2c-32.3-41-48.9-98.1-49.5-169.6V256v-.2C17 184.3 33.6 127.2 65.9 86.2C102.2 40.1 156.2 16.5 226.4 16h.3c70.3 .5 124.9 24 162.3 69.9c18.4 22.7 32 50 40.6 81.7l-40.4 10.8c-7.1-25.8-17.8-47.8-32.2-65.4c-29.2-35.8-73-54.2-130.5-54.6c-57 .5-100.1 18.8-128.2 54.4C72.1 146.1 58.5 194.3 58 256c.5 61.7 14.1 109.9 40.3 143.3c28 35.6 71.2 53.9 128.2 54.4c51.4-.4 85.4-12.6 113.7-40.9c32.3-32.2 31.7-71.8 21.4-95.9c-6.1-14.2-17.1-26-31.9-34.9c-3.7 26.9-11.8 48.3-24.7 64.8c-17.1 21.8-41.4 33.6-72.7 35.3c-23.6 1.3-46.3-4.4-63.9-16c-20.8-13.8-33-34.8-34.3-59.3c-2.5-48.3 35.7-83 95.2-86.4c21.1-1.2 40.9-.3 59.2 2.8c-2.4-14.8-7.3-26.6-14.6-35.2c-10-11.7-25.6-17.7-46.2-17.8H227c-16.6 0-39 4.6-53.3 26.3l-34.4-23.6c19.2-29.1 50.3-45.1 87.8-45.1h.8c62.6 .4 99.9 39.5 103.7 107.7l-.2 .2zm-156 68.8c1.3 25.1 28.4 36.8 54.6 35.3c25.6-1.4 54.6-11.4 59.5-73.2c-13.2-2.9-27.8-4.4-43.4-4.4c-4.8 0-9.6 .1-14.4 .4c-42.9 2.4-57.2 23.2-56.2 41.8l-.1 .1z\"},\"child\":[]}]})(props);\n};\nexport function FaTiktok (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z\"},\"child\":[]}]})(props);\n};\nexport function FaTradeFederation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8.8c-137 0-248 111-248 248s111 248 248 248 248-111 248-248-111-248-248-248zm0 482.8c-129.7 0-234.8-105.1-234.8-234.8S118.3 22 248 22s234.8 105.1 234.8 234.8S377.7 491.6 248 491.6zm155.1-328.5v-46.8H209.3V198H54.2l36.7 46h117.7v196.8h48.8V245h83.3v-47h-83.3v-34.8h145.7zm-73.3 45.1v23.9h-82.9v197.4h-26.8V232.1H96.3l-20.1-23.9h143.9v-80.6h171.8V152h-145v56.2zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3zm165.4 145.2l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17zM248 29.9c-125.3 0-226.9 101.6-226.9 226.9S122.7 483.7 248 483.7s226.9-101.6 226.9-226.9S373.3 29.9 248 29.9zM342.6 196v51h-83.3v195.7h-52.7V245.9H89.9l-40-49.9h157.4v-81.6h197.8v50.7H259.4V196zM248 43.2c60.3 0 114.8 25 153.6 65.2H202.5V190H45.1C73.1 104.8 153.4 43.2 248 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1L87.1 252h114.7v196.8h64.6V253h83.3v-62.7h-83.2v-19.2h145.6v-50.8c30.8 37 49.3 84.6 49.3 136.5.1 117.9-95.5 213.5-213.4 213.5zM178.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1z\"},\"child\":[]}]})(props);\n};\nexport function FaTrello (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392.3 32H56.1C25.1 32 0 57.1 0 88c-.1 0 0-4 0 336 0 30.9 25.1 56 56 56h336.2c30.8-.2 55.7-25.2 55.7-56V88c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6H87.4c-14.8.1-26.9-11.8-27-26.6V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v254.2zm193.1-112c0 14.8-12 26.9-26.9 26.9h-81c-14.8 0-26.9-12-26.9-26.9V117.2c0-14.8 12-26.9 26.8-26.9h81.1c14.8 0 26.9 12 26.9 26.9v142.1z\"},\"child\":[]}]})(props);\n};\nexport function FaTumblr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z\"},\"child\":[]}]})(props);\n};\nexport function FaTwitch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M391.17,103.47H352.54v109.7h38.63ZM285,103H246.37V212.75H285ZM120.83,0,24.31,91.42V420.58H140.14V512l96.53-91.42h77.25L487.69,256V0ZM449.07,237.75l-77.22,73.12H294.61l-67.6,64v-64H140.14V36.58H449.07Z\"},\"child\":[]}]})(props);\n};\nexport function FaTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"},\"child\":[]}]})(props);\n};\nexport function FaTypo3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C7 246 113.8 480 191.1 480c36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z\"},\"child\":[]}]})(props);\n};\nexport function FaUber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z\"},\"child\":[]}]})(props);\n};\nexport function FaUbuntu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M469.2 75A75.6 75.6 0 1 0 317.9 75a75.6 75.6 0 1 0 151.2 0zM154.2 240.7A75.6 75.6 0 1 0 3 240.7a75.6 75.6 0 1 0 151.2 0zM57 346C75.6 392.9 108 433 150 461.1s91.5 42.6 142 41.7c-14.7-18.6-22.9-41.5-23.2-65.2c-6.8-.9-13.3-2.1-19.5-3.4c-26.8-5.7-51.9-17.3-73.6-34s-39.3-38.1-51.7-62.5c-20.9 9.9-44.5 12.8-67.1 8.2zm395.1 89.8a75.6 75.6 0 1 0 -151.2 0 75.6 75.6 0 1 0 151.2 0zM444 351.6c18.5 14.8 31.6 35.2 37.2 58.2c33.3-41.3 52.6-92.2 54.8-145.2s-12.5-105.4-42.2-149.4c-8.6 21.5-24 39.6-43.8 51.6c15.4 28.6 22.9 60.8 21.9 93.2s-10.7 64-28 91.6zM101.1 135.4c12.4 2.7 24.3 7.5 35.1 14.3c16.6-24.2 38.9-44.1 64.8-58S255.8 70.4 285.2 70c.2-5.9 .9-11.9 2-17.7c3.6-16.7 11.1-32.3 21.8-45.5c-47.7-3.8-95.4 6-137.6 28.5S94.3 91.7 70.8 133.4c2.7-.2 5.3-.3 8-.3c7.5 0 15 .8 22.4 2.3z\"},\"child\":[]}]})(props);\n};\nexport function FaUikit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z\"},\"child\":[]}]})(props);\n};\nexport function FaUmbraco (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 510 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.35 8C118.36 7.83 7.14 118.72 7 255.68c-.07 137 111 248.2 248 248.27 136.85 0 247.82-110.7 248-247.67S392.34 8.17 255.35 8zm145 266q-1.14 40.68-14 65t-43.51 35q-30.61 10.7-85.45 10.47h-4.6q-54.78.22-85.44-10.47t-43.52-35q-12.85-24.36-14-65a224.81 224.81 0 0 1 0-30.71 418.37 418.37 0 0 1 3.6-43.88c1.88-13.39 3.57-22.58 5.4-32 1-4.88 1.28-6.42 1.82-8.45a5.09 5.09 0 0 1 4.9-3.89h.69l32 5a5.07 5.07 0 0 1 4.16 5 5 5 0 0 1 0 .77l-1.7 8.78q-2.41 13.25-4.84 33.68a380.62 380.62 0 0 0-2.64 42.15q-.28 40.43 8.13 59.83a43.87 43.87 0 0 0 31.31 25.18A243 243 0 0 0 250 340.6h10.25a242.64 242.64 0 0 0 57.27-5.16 43.86 43.86 0 0 0 31.15-25.23q8.53-19.42 8.13-59.78a388 388 0 0 0-2.6-42.15q-2.48-20.38-4.89-33.68l-1.69-8.78a5 5 0 0 1 0-.77 5 5 0 0 1 4.2-5l32-5h.82a5 5 0 0 1 4.9 3.89c.55 2.05.81 3.57 1.83 8.45 1.82 9.62 3.52 18.78 5.39 32a415.71 415.71 0 0 1 3.61 43.88 228.06 228.06 0 0 1-.04 30.73z\"},\"child\":[]}]})(props);\n};\nexport function FaUncharted (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M171.73,232.813A5.381,5.381,0,0,0,176.7,229.5,48.081,48.081,0,0,1,191.6,204.244c1.243-.828,1.657-2.484,1.657-4.141a4.22,4.22,0,0,0-2.071-3.312L74.429,128.473,148.958,85a9.941,9.941,0,0,0,4.968-8.281,9.108,9.108,0,0,0-4.968-8.281L126.6,55.6a9.748,9.748,0,0,0-9.523,0l-100.2,57.966a9.943,9.943,0,0,0-4.969,8.281V236.954a9.109,9.109,0,0,0,4.969,8.281L39.235,258.07a8.829,8.829,0,0,0,4.968,1.242,9.4,9.4,0,0,0,6.625-2.484,10.8,10.8,0,0,0,2.9-7.039V164.5L169.66,232.4A4.5,4.5,0,0,0,171.73,232.813ZM323.272,377.73a12.478,12.478,0,0,0-4.969,1.242l-74.528,43.062V287.882c0-2.9-2.9-5.8-6.211-4.555a53.036,53.036,0,0,1-28.984.414,4.86,4.86,0,0,0-6.21,4.555V421.619l-74.529-43.061a8.83,8.83,0,0,0-4.969-1.242,9.631,9.631,0,0,0-9.523,9.523v26.085a9.107,9.107,0,0,0,4.969,8.281l100.2,57.553A8.829,8.829,0,0,0,223.486,480a11.027,11.027,0,0,0,4.969-1.242l100.2-57.553a9.941,9.941,0,0,0,4.968-8.281V386.839C332.8,382.285,328.24,377.73,323.272,377.73ZM286.007,78a23,23,0,1,0-23-23A23,23,0,0,0,286.007,78Zm63.627-10.086a23,23,0,1,0,23,23A23,23,0,0,0,349.634,67.914ZM412.816,151.6a23,23,0,1,0-23-23A23,23,0,0,0,412.816,151.6Zm-63.182-9.2a23,23,0,1,0,23,23A23,23,0,0,0,349.634,142.4Zm-63.627,83.244a23,23,0,1,0-23-23A23,23,0,0,0,286.007,225.648Zm-62.074,36.358a23,23,0,1,0-23-23A23,23,0,0,0,223.933,262.006Zm188.883-82.358a23,23,0,1,0,23,23A23,23,0,0,0,412.816,179.648Zm0,72.272a23,23,0,1,0,23,23A23,23,0,0,0,412.816,251.92Z\"},\"child\":[]}]})(props);\n};\nexport function FaUniregistry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480zm-89.1-193.1v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4zm20.5 57H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3H0v17.3h102.9zm0-173.2H0v4.9h102.9zm0-34.7H0v2.5h102.9zm0 69.3H0v7.4h102.9zm0 104H0v14.8h102.9zm0-69.3H0v9.9h102.9zm0 34.6H0V183h102.9zm166.2 160.9h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7H384V136H281.1zm0 37.2H384v-12.4H281.1zm0-74.3H384v-7.4H281.1zm0-76.7v2.5H384V32zm-203 410.9h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7zm203-371.3H384v-4.9H281.1zm0 148.5H384v-14.8H281.1zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1zm0-29.7H384v-17.3H281.1z\"},\"child\":[]}]})(props);\n};\nexport function FaUnity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M243.583 91.6027L323.695 138.384C326.575 140.026 326.68 144.583 323.695 146.225L228.503 201.854C225.623 203.55 222.22 203.444 219.549 201.854L124.357 146.225C121.425 144.636 121.373 139.973 124.357 138.384L204.417 91.6027V0L0 119.417V358.252L78.3843 312.477V218.914C78.3319 215.576 82.2066 213.192 85.0865 214.993L180.279 270.622C183.159 272.318 184.782 275.338 184.782 278.464V389.669C184.834 393.007 180.959 395.391 178.079 393.589L97.9673 346.808L19.583 392.583L224 512L428.417 392.583L350.033 346.808L269.921 393.589C267.093 395.338 263.114 393.06 263.218 389.669V278.464C263.218 275.126 265.051 272.159 267.721 270.622L362.914 214.993C365.741 213.245 369.72 215.47 369.616 218.914V312.477L448 358.252V119.417L243.583 0V91.6027Z\"},\"child\":[]}]})(props);\n};\nexport function FaUnsplash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448,230.17V480H0V230.17H141.13V355.09H306.87V230.17ZM306.87,32H141.13V156.91H306.87Z\"},\"child\":[]}]})(props);\n};\nexport function FaUntappd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z\"},\"child\":[]}]})(props);\n};\nexport function FaUps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M103.2 303c-5.2 3.6-32.6 13.1-32.6-19V180H37.9v102.6c0 74.9 80.2 51.1 97.9 39V180h-32.6zM4 74.82v220.9c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1V74.82c-116.3-61.6-281.8-49.6-375.4 0zm358.1 220.9c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3v-126.4c102.3-93.8 231.6-100 340.9-89.8zm-209.6-107.4v212.8h32.7v-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.92-104.4-65.6zm32.7 117.3v-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4.6 23.5-30.4 23-50.8 4.9v30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2.6-20.3 30.6-20.5 48.5-2.2v-28.4c-28.5-22-79.9-9.2-79.7 31.9z\"},\"child\":[]}]})(props);\n};\nexport function FaUpwork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 641 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M494.7 295.6c-50.3 0-83.5-38.9-92.8-53.9c11.9-95.3 46.8-125.4 92.8-125.4c45.5 0 80.9 36.4 80.9 89.7s-35.4 89.7-80.9 89.7zm0-237.8c-81.9 0-127.8 53.4-141 108.4c-14.9-28-25.9-65.5-34.5-100.3H206v141c0 51.1-23.3 89-68.8 89s-71.6-37.8-71.6-89l.5-141H.8v141c0 41.1 13.3 78.4 37.6 105.1c25 27.5 59.2 41.8 98.8 41.8c78.8 0 133.8-60.4 133.8-146.9V112.1c8.2 31.2 27.8 91.1 65.3 143.6l-35 199.4h66.4l23.1-141.3c7.6 6.3 15.7 12 24.2 17c22.2 14 47.7 21.9 73.9 22.8c0 0 4 .2 6.1 .2c81.2 0 145.9-62.9 145.9-147.8s-64.8-148.1-146-148.1z\"},\"child\":[]}]})(props);\n};\nexport function FaUsb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z\"},\"child\":[]}]})(props);\n};\nexport function FaUsps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M460.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8h-27c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8.1zm-112.1 22.6c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3h196.6c-2.7-28.2-152.9-22.6-337.9-22.6L27 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM94.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2h423.1L549 96z\"},\"child\":[]}]})(props);\n};\nexport function FaUssunnah (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 482 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M481.9 268.1A240.9 240.9 0 1 1 .1 268a240.9 240.9 0 1 1 481.9 0zM24.5 268a216.5 216.5 0 1 0 432.9 0A216.5 216.5 0 1 0 24.5 268zm385.9 63.3c-12.7 0-21.6-1.9-26.7-5.9c-5.5-4.3-8.2-12.3-8.2-23.8V205.1c0-6.5-5.2-20.2-15.7-41.2c7 0 17-9.1 30-27.2V284.5c0 11 2.4 19.4 7 25.3c3.7 4.7 10.1 8.9 19 12.6c1.2 .4 2.6 .9 4.1 1.4c2.9 .9 6.3 2.1 10.3 3.5c-1.8 2.7-8.3 4-19.9 4zm-219 0c-1.3 2.4-3.6 5.5-6.8 9.4l-18.5 22.5c-1-6.1-4-13-9.3-20.6s-9.7-11.4-13.4-11.4h-8.3H53.6c3.3-5.3 4.9-8.8 4.9-10.8c0-2-.8-5.3-2.4-9.7c-1.5-4.4-2.4-8.5-2.4-12.4c0-7.4 2.1-13.9 6.3-19.3L80 253.4l-7.1-17.7L89 215.9l6.7 16.8 8-10.3c-1.8 6.4-2.6 12.3-2.6 17.7c0 4.2 2.8 13.3 8.3 27.3l16.2 40.7H135h8 .3c2.8 .4 7.7 5 14.6 13.9c1.8 2.4 4.3 5.8 7.7 10.2c1.4 1.9 2.9 3.9 4.6 6.1c1.3-2.3 2-4.6 2-7.1c0-2-1.3-6.6-4-13.4L163 304.1c-4-10.6-6.1-17.7-6.1-21.3c0-6.3 1.9-12.3 5.8-17.9c.5-.6 1-1.3 1.5-1.9c4.4-5.6 8.8-11.1 13.3-16.5c-1.1 4.6-1.7 8.7-1.7 12c0 3.7 1.7 9.9 5.1 18.8l7.9 20.4c1.9 4.7 3 8.2 3.7 10.3h17.6 8.3l-.9-2.6c-1.4-3.9-4-7-7.7-9.3l15.6-20.1 12.3 32h13.4L245 292.2c-1.5-3.9-4-7-7.7-9.3L253 262.8 270.3 308h13.4l-11.4-29.4c-1.5-3.9-4-7-7.7-9.3l15.6-20L302.6 308h10.3 8.3 7.6c1.5 0 3-1.1 4.5-3.1s2.2-4.1 2.2-6.3V205.1c0-6.5-4.5-20.3-13.7-41.2c5.4 0 14.1-9.1 26.2-27.2V300.2c0 7.2 .6 12 1.7 14.6c1.6 3.4 5.3 6.2 11.1 8.2c-3.9 5.6-8.7 8.5-14.5 8.5H321.1h-8.3H210.5h-19zM93.4 287.3c-2.7-6.7-4-11.7-4-15c-.6 1.2-2.4 3.7-5.4 7.6c-1.4 1.9-2.2 3.7-2.2 5.3c0 2.6 .8 5.7 2.2 9.3l5.6 13.9h0c5 0 9 0 11.9-.1l-8.2-20.9zm13.5-72.4c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3zm-27.6 0c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3zm87 27.5c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3z\"},\"child\":[]}]})(props);\n};\nexport function FaVaadin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z\"},\"child\":[]}]})(props);\n};\nexport function FaViacoin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z\"},\"child\":[]}]})(props);\n};\nexport function FaViadeo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z\"},\"child\":[]}]})(props);\n};\nexport function FaViber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z\"},\"child\":[]}]})(props);\n};\nexport function FaVimeoV (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z\"},\"child\":[]}]})(props);\n};\nexport function FaVimeo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z\"},\"child\":[]}]})(props);\n};\nexport function FaVine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z\"},\"child\":[]}]})(props);\n};\nexport function FaVk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M31.4907 63.4907C0 94.9813 0 145.671 0 247.04V264.96C0 366.329 0 417.019 31.4907 448.509C62.9813 480 113.671 480 215.04 480H232.96C334.329 480 385.019 480 416.509 448.509C448 417.019 448 366.329 448 264.96V247.04C448 145.671 448 94.9813 416.509 63.4907C385.019 32 334.329 32 232.96 32H215.04C113.671 32 62.9813 32 31.4907 63.4907ZM75.6 168.267H126.747C128.427 253.76 166.133 289.973 196 297.44V168.267H244.16V242C273.653 238.827 304.64 205.227 315.093 168.267H363.253C359.313 187.435 351.46 205.583 340.186 221.579C328.913 237.574 314.461 251.071 297.733 261.227C316.41 270.499 332.907 283.63 346.132 299.751C359.357 315.873 369.01 334.618 374.453 354.747H321.44C316.555 337.262 306.614 321.61 292.865 309.754C279.117 297.899 262.173 290.368 244.16 288.107V354.747H238.373C136.267 354.747 78.0267 284.747 75.6 168.267Z\"},\"child\":[]}]})(props);\n};\nexport function FaVnv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z\"},\"child\":[]}]})(props);\n};\nexport function FaVuejs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z\"},\"child\":[]}]})(props);\n};\nexport function FaWatchmanMonitoring (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256,16C123.452,16,16,123.452,16,256S123.452,496,256,496,496,388.548,496,256,388.548,16,256,16ZM121.69,429.122C70.056,388.972,36.741,326.322,36.741,256a218.519,218.519,0,0,1,9.587-64.122l102.9-17.895-.121,10.967-13.943,2.013s-.144,12.5-.144,19.549a12.778,12.778,0,0,0,4.887,10.349l9.468,7.4Zm105.692-283.27,8.48-7.618s6.934-5.38-.143-9.344c-7.188-4.024-39.53-34.5-39.53-34.5-5.348-5.477-8.257-7.347-15.46,0,0,0-32.342,30.474-39.529,34.5-7.078,3.964-.144,9.344-.144,9.344l8.481,7.618-.048,4.369L75.982,131.045c39.644-56.938,105.532-94.3,180.018-94.3A218.754,218.754,0,0,1,420.934,111.77l-193.512,37.7Zm34.063,329.269-33.9-250.857,9.467-7.4a12.778,12.778,0,0,0,4.888-10.349c0-7.044-.144-19.549-.144-19.549l-13.943-2.013-.116-10.474,241.711,31.391A218.872,218.872,0,0,1,475.259,256C475.259,375.074,379.831,472.212,261.445,475.121Z\"},\"child\":[]}]})(props);\n};\nexport function FaWaze (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.17 201.67C516.69 287.53 471.23 369.59 389 409.8c13 34.1-12.4 70.2-48.32 70.2a51.68 51.68 0 0 1-51.57-49c-6.44.19-64.2 0-76.33-.64A51.69 51.69 0 0 1 159 479.92c-33.86-1.36-57.95-34.84-47-67.92-37.21-13.11-72.54-34.87-99.62-70.8-13-17.28-.48-41.8 20.84-41.8 46.31 0 32.22-54.17 43.15-110.26C94.8 95.2 193.12 32 288.09 32c102.48 0 197.15 70.67 214.08 169.67zM373.51 388.28c42-19.18 81.33-56.71 96.29-102.14 40.48-123.09-64.15-228-181.71-228-83.45 0-170.32 55.42-186.07 136-9.53 48.91 5 131.35-68.75 131.35C58.21 358.6 91.6 378.11 127 389.54c24.66-21.8 63.87-15.47 79.83 14.34 14.22 1 79.19 1.18 87.9.82a51.69 51.69 0 0 1 78.78-16.42zM205.12 187.13c0-34.74 50.84-34.75 50.84 0s-50.84 34.74-50.84 0zm116.57 0c0-34.74 50.86-34.75 50.86 0s-50.86 34.75-50.86 0zm-122.61 70.69c-3.44-16.94 22.18-22.18 25.62-5.21l.06.28c4.14 21.42 29.85 44 64.12 43.07 35.68-.94 59.25-22.21 64.11-42.77 4.46-16.05 28.6-10.36 25.47 6-5.23 22.18-31.21 62-91.46 62.9-42.55 0-80.88-27.84-87.9-64.25z\"},\"child\":[]}]})(props);\n};\nexport function FaWebAwesome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192l104.4-20.9c-5.3-7.7-8.4-17.1-8.4-27.1c0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144c0-26.5 21.5-48 48-48s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1c0-28.7 23.3-52 52-52s52 23.3 52 52z\"},\"child\":[]}]})(props);\n};\nexport function FaWebflow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 64L435.8 463.2H244l85.5-165.5h-3.8C255.1 389.3 149.9 449.5 0 463.2V300.1s95.9-5.7 152.3-64.9H0V64H171.1V204.8l3.8 0L244.9 64H374.3V203.9l3.8 0L450.7 64H640z\"},\"child\":[]}]})(props);\n};\nexport function FaWeebly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z\"},\"child\":[]}]})(props);\n};\nexport function FaWeibo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z\"},\"child\":[]}]})(props);\n};\nexport function FaWeixin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z\"},\"child\":[]}]})(props);\n};\nexport function FaWhatsapp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z\"},\"child\":[]}]})(props);\n};\nexport function FaWhmcs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z\"},\"child\":[]}]})(props);\n};\nexport function FaWikipediaW (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z\"},\"child\":[]}]})(props);\n};\nexport function FaWindows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z\"},\"child\":[]}]})(props);\n};\nexport function FaWirsindhandwerk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M50.77161,479.81213h83.36071V367.84741l-83.36071,47.009Zm329.04675,0h82.35022V414.85645l-82.35022-47.009Zm.00568-448V251.568L256.1759,179.1861,134.50378,251.568V31.81213H50.77161V392.60565L256.1759,270.31909,462.16858,392.60565V31.81213Z\"},\"child\":[]}]})(props);\n};\nexport function FaWix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z\"},\"child\":[]}]})(props);\n};\nexport function FaWizardsOfTheCoast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z\"},\"child\":[]}]})(props);\n};\nexport function FaWodu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M178.414 339.706H141.1L112.166 223.475h-.478L83.228 339.706H45.2L0 168.946H37.548L64.574 285.177h.478L94.707 168.946h35.157l29.178 117.667h.479L187.5 168.946h36.831zM271.4 212.713c38.984 0 64.1 25.828 64.1 65.291 0 39.222-25.111 65.05-64.1 65.05-38.743 0-63.855-25.828-63.855-65.05C207.547 238.541 232.659 212.713 271.4 212.713zm0 104.753c23.2 0 30.133-19.852 30.133-39.462 0-19.852-6.934-39.7-30.133-39.7-27.7 0-29.894 19.85-29.894 39.7C241.508 297.614 248.443 317.466 271.4 317.466zM435.084 323.922h-.478c-7.893 13.392-21.765 19.132-37.548 19.132-37.31 0-55.485-32.045-55.485-66.246 0-33.243 18.415-64.095 54.767-64.095 14.589 0 28.938 6.218 36.831 18.416h.24V168.946h33.96v170.76H435.084zM405.428 238.3c-22.24 0-29.894 19.134-29.894 39.463 0 19.371 8.848 39.7 29.894 39.7 22.482 0 29.178-19.613 29.178-39.94C434.606 257.436 427.432 238.3 405.428 238.3zM592.96 339.706H560.673V322.487h-.718c-8.609 13.87-23.436 20.567-37.786 20.567-36.113 0-45.2-20.328-45.2-50.941V216.061h33.959V285.9c0 20.329 5.979 30.372 21.765 30.372 18.415 0 26.306-10.283 26.306-35.393V216.061H592.96zM602.453 302.876H640v36.83H602.453z\"},\"child\":[]}]})(props);\n};\nexport function FaWolfPackBattalion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M267.73 471.53l10.56 15.84 5.28-12.32 5.28 7V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05C421 189 447 196.21 456.43 239.73l-30.35 8.36c11.15 23 17 46.76 13.2 72.14L412 313.18l-6.16 33.43-18.47-7-8.8 33.39-19.35-7 26.39 21.11 8.8-28.15L419 364.2l7-35.63 26.39 14.52c.25-20 7-58.06-8.8-84.45l26.39 5.28c4-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 2-19.87 17.45-42.62 43.11-49.7-44 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.39 22.87-89.65 65.1-93.2 147.79l-58 38.71-3.52 93.25L369.78 220l7 7-17.59 3.52-44 38.71-15.84-5.28-28.1 49.25-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-44-38.71-17.58-3.51 7-7 107.33 59.82-3.52-93.25-58.06-38.71C185 65.1 135.77 22.87 95.3 0c-17.54 61.12-4.4 118.76 0 130.2 15-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9-31.65 1.72-61.15 33.44-61.59 58.51l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7 35.63 24.63-5.28 8.8 28.15L153.35 366 134 373l-8.8-33.43-18.47 7-6.16-33.43-27.27 7c-3.82-25.38 2-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.83l5.28-7 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95L331.06 366c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.22-.27 13.84-3.51 22.84zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7 8.24-7.94 15.55-16.32 22.87-24.68zm24.63 5.28c0-13.43-2.05-24.21-5.28-33.43a235 235 0 0 1-18.47 27.27zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-12 6.65-28.14 7-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 44-14.08-10.61-18.96-27.2-25.53-45.76-28.16zM165.68 376.52L181.52 366c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7-8.24-7.93-15.55-16.31-22.87-24.67zm-24.64 5.28c0-13.43 2-24.21 5.28-33.43a235 235 0 0 0 18.47 27.27zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 37-10.56-5-12-6.65-28.14-7-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-44-14.08 10.63-18.95 27.23-25.52 45.76-28.15z\"},\"child\":[]}]})(props);\n};\nexport function FaWordpressSimple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z\"},\"child\":[]}]})(props);\n};\nexport function FaWordpress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z\"},\"child\":[]}]})(props);\n};\nexport function FaWpbeginner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z\"},\"child\":[]}]})(props);\n};\nexport function FaWpexplorer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z\"},\"child\":[]}]})(props);\n};\nexport function FaWpforms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z\"},\"child\":[]}]})(props);\n};\nexport function FaWpressr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm171.33 158.6c-15.18 34.51-30.37 69.02-45.63 103.5-2.44 5.51-6.89 8.24-12.97 8.24-23.02-.01-46.03.06-69.05-.05-5.12-.03-8.25 1.89-10.34 6.72-10.19 23.56-20.63 47-30.95 70.5-1.54 3.51-4.06 5.29-7.92 5.29-45.94-.01-91.87-.02-137.81 0-3.13 0-5.63-1.15-7.72-3.45-11.21-12.33-22.46-24.63-33.68-36.94-2.69-2.95-2.79-6.18-1.21-9.73 8.66-19.54 17.27-39.1 25.89-58.66 12.93-29.35 25.89-58.69 38.75-88.08 1.7-3.88 4.28-5.68 8.54-5.65 14.24.1 28.48.02 42.72.05 6.24.01 9.2 4.84 6.66 10.59-13.6 30.77-27.17 61.55-40.74 92.33-5.72 12.99-11.42 25.99-17.09 39-3.91 8.95 7.08 11.97 10.95 5.6.23-.37-1.42 4.18 30.01-67.69 1.36-3.1 3.41-4.4 6.77-4.39 15.21.08 30.43.02 45.64.04 5.56.01 7.91 3.64 5.66 8.75-8.33 18.96-16.71 37.9-24.98 56.89-4.98 11.43 8.08 12.49 11.28 5.33.04-.08 27.89-63.33 32.19-73.16 2.02-4.61 5.44-6.51 10.35-6.5 26.43.05 52.86 0 79.29.05 12.44.02 13.93-13.65 3.9-13.64-25.26.03-50.52.02-75.78.02-6.27 0-7.84-2.47-5.27-8.27 5.78-13.06 11.59-26.11 17.3-39.21 1.73-3.96 4.52-5.79 8.84-5.78 23.09.06 25.98.02 130.78.03 6.08-.01 8.03 2.79 5.62 8.27z\"},\"child\":[]}]})(props);\n};\nexport function FaXTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z\"},\"child\":[]}]})(props);\n};\nexport function FaXbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z\"},\"child\":[]}]})(props);\n};\nexport function FaXing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z\"},\"child\":[]}]})(props);\n};\nexport function FaYCombinator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z\"},\"child\":[]}]})(props);\n};\nexport function FaYahoo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M223.69,141.06,167,284.23,111,141.06H14.93L120.76,390.19,82.19,480h94.17L317.27,141.06Zm105.4,135.79a58.22,58.22,0,1,0,58.22,58.22A58.22,58.22,0,0,0,329.09,276.85ZM394.65,32l-93,223.47H406.44L499.07,32Z\"},\"child\":[]}]})(props);\n};\nexport function FaYammer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M500.676,159.486a12.779,12.779,0,0,0-6.4-8.282,13.954,13.954,0,0,0-10.078-1.125L457.8,156.7l-.043-.2-22.3,5.785-1.243.333-.608-2.17A369.037,369.037,0,0,0,347.538,4.289a14.1,14.1,0,0,0-19.784-.463l-102.9,102.747H24.947A24.9,24.9,0,0,0,0,131.417V380.38a24.963,24.963,0,0,0,24.918,24.9H224.986L328.072,508a13.667,13.667,0,0,0,19.327,0c.126-.126.249-.255.37-.385a368.025,368.025,0,0,0,69.577-107.374,403.45,403.45,0,0,0,17.3-50.8v-.028l20.406,5.336.029-.073L483.345,362a20.253,20.253,0,0,0,2.619.5,13.359,13.359,0,0,0,4.139-.072,13.5,13.5,0,0,0,10.515-9.924,415.855,415.855,0,0,0,.058-193.013ZM337.125,24.65l.013.014h-.013Zm-110.2,165.161L174.311,281.1a11.338,11.338,0,0,0-1.489,5.655v46.189a22.04,22.04,0,0,1-22.041,22h-3.4A22.068,22.068,0,0,1,125.3,332.962V287.294a11.532,11.532,0,0,0-1.388-5.51l-51.6-92.2a21.988,21.988,0,0,1,19.264-32.726h3.268a22.059,22.059,0,0,1,19.611,11.916l36.357,70.281,37.515-70.512a22.066,22.066,0,0,1,38.556-.695,21.7,21.7,0,0,1,0,21.967ZM337.145,24.673a348.147,348.147,0,0,1,75.8,141.335l.564,1.952-114.134,29.6V131.417a25.006,25.006,0,0,0-24.947-24.9H255.067Zm60.5,367.305v-.043l-.014.014a347.19,347.19,0,0,1-60.177,95.227l-82.2-81.893h19.177a24.978,24.978,0,0,0,24.947-24.9v-66.2l114.6,29.862A385.191,385.191,0,0,1,397.648,391.978Zm84-52.45.015.014-50.618-13.131L299.379,292.1V219.572l119.746-30.99,4.468-1.157,39.54-10.253,18.511-4.816A393,393,0,0,1,481.644,339.528Z\"},\"child\":[]}]})(props);\n};\nexport function FaYandexInternational (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z\"},\"child\":[]}]})(props);\n};\nexport function FaYandex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z\"},\"child\":[]}]})(props);\n};\nexport function FaYarn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M393.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4.1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3.8-10.8-5.7.8-19.2.8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3.8 1.4 13.7.8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-79.3 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2.9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4h.1c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4.2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z\"},\"child\":[]}]})(props);\n};\nexport function FaYelp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M42.9 240.32l99.62 48.61c19.2 9.4 16.2 37.51-4.5 42.71L30.5 358.45a22.79 22.79 0 0 1-28.21-19.6 197.16 197.16 0 0 1 9-85.32 22.8 22.8 0 0 1 31.61-13.21zm44 239.25a199.45 199.45 0 0 0 79.42 32.11A22.78 22.78 0 0 0 192.94 490l3.9-110.82c.7-21.3-25.5-31.91-39.81-16.1l-74.21 82.4a22.82 22.82 0 0 0 4.09 34.09zm145.34-109.92l58.81 94a22.93 22.93 0 0 0 34 5.5 198.36 198.36 0 0 0 52.71-67.61A23 23 0 0 0 364.17 370l-105.42-34.26c-20.31-6.5-37.81 15.8-26.51 33.91zm148.33-132.23a197.44 197.44 0 0 0-50.41-69.31 22.85 22.85 0 0 0-34 4.4l-62 91.92c-11.9 17.7 4.7 40.61 25.2 34.71L366 268.63a23 23 0 0 0 14.61-31.21zM62.11 30.18a22.86 22.86 0 0 0-9.9 32l104.12 180.44c11.7 20.2 42.61 11.9 42.61-11.4V22.88a22.67 22.67 0 0 0-24.5-22.8 320.37 320.37 0 0 0-112.33 30.1z\"},\"child\":[]}]})(props);\n};\nexport function FaYoast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z\"},\"child\":[]}]})(props);\n};\nexport function FaYoutube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z\"},\"child\":[]}]})(props);\n};\nexport function FaZhihu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z\"},\"child\":[]}]})(props);\n};\nexport function Fa0 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160l0 128c0 88.4-71.6 160-160 160S0 408.4 0 320L0 192zM160 96c-53 0-96 43-96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96z\"},\"child\":[]}]})(props);\n};\nexport function Fa1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 64c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.8 1.6l-96 64C-.5 111.2-4.4 131 5.4 145.8s29.7 18.7 44.4 8.9L96 123.8 96 416l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-352z\"},\"child\":[]}]})(props);\n};\nexport function Fa2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M142.9 96c-21.5 0-42.2 8.5-57.4 23.8L54.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L40.2 74.5C67.5 47.3 104.4 32 142.9 32C223 32 288 97 288 177.1c0 38.5-15.3 75.4-42.5 102.6L109.3 416 288 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L200.2 234.5c15.2-15.2 23.8-35.9 23.8-57.4c0-44.8-36.3-81.1-81.1-81.1z\"},\"child\":[]}]})(props);\n};\nexport function Fa3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l240 0c13.2 0 25 8.1 29.8 20.4s1.5 26.3-8.2 35.2L162.3 208l21.7 0c75.1 0 136 60.9 136 136s-60.9 136-136 136l-78.6 0C63 480 24.2 456 5.3 418.1l-1.9-3.8c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l1.9 3.8c8.1 16.3 24.8 26.5 42.9 26.5l78.6 0c39.8 0 72-32.2 72-72s-32.2-72-72-72L80 272c-13.2 0-25-8.1-29.8-20.4s-1.5-26.3 8.2-35.2L189.7 96 32 96C14.3 96 0 81.7 0 64z\"},\"child\":[]}]})(props);\n};\nexport function Fa4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M189 77.6c7.5-16 .7-35.1-15.3-42.6s-35.1-.7-42.6 15.3L3 322.4c-4.7 9.9-3.9 21.5 1.9 30.8S21 368 32 368l224 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-144c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L82.4 304 189 77.6z\"},\"child\":[]}]})(props);\n};\nexport function Fa5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32.5 58.3C35.3 43.1 48.5 32 64 32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L90.7 96 70.3 208 184 208c75.1 0 136 60.9 136 136s-60.9 136-136 136l-83.5 0c-39.4 0-75.4-22.3-93-57.5l-4.1-8.2c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l4.1 8.2c6.8 13.6 20.6 22.1 35.8 22.1l83.5 0c39.8 0 72-32.2 72-72s-32.2-72-72-72L32 272c-9.5 0-18.5-4.2-24.6-11.5s-8.6-16.9-6.9-26.2l32-176z\"},\"child\":[]}]})(props);\n};\nexport function Fa6 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232.4 84.7c11.4-13.5 9.7-33.7-3.8-45.1s-33.7-9.7-45.1 3.8L38.6 214.7C14.7 242.9 1.1 278.4 .1 315.2c0 1.4-.1 2.9-.1 4.3l0 .5c0 88.4 71.6 160 160 160s160-71.6 160-160c0-85.5-67.1-155.4-151.5-159.8l63.9-75.6zM256 320A96 96 0 1 1 64 320a96 96 0 1 1 192 0z\"},\"child\":[]}]})(props);\n};\nexport function Fa7 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l256 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96 32 96C14.3 96 0 81.7 0 64z\"},\"child\":[]}]})(props);\n};\nexport function Fa8 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 160c0-70.7-57.3-128-128-128l-32 0C73.3 32 16 89.3 16 160c0 34.6 13.7 66 36 89C20.5 272.3 0 309.8 0 352c0 70.7 57.3 128 128 128l64 0c70.7 0 128-57.3 128-128c0-42.2-20.5-79.7-52-103c22.3-23 36-54.4 36-89zM176.1 288l15.9 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64s28.7-64 64-64l15.9 0c0 0 .1 0 .1 0l32 0c0 0 .1 0 .1 0zm0-64c0 0 0 0 0 0l-32 0c0 0 0 0 0 0c-35.3 0-64-28.7-64-64c0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64c0 35.3-28.6 64-64 64z\"},\"child\":[]}]})(props);\n};\nexport function Fa9 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 192a96 96 0 1 0 192 0A96 96 0 1 0 64 192zm87.5 159.8C67.1 347.4 0 277.5 0 192C0 103.6 71.6 32 160 32s160 71.6 160 160c0 2.6-.1 5.3-.2 7.9c-1.7 35.7-15.2 70-38.4 97.4l-145 171.4c-11.4 13.5-31.6 15.2-45.1 3.8s-15.2-31.6-3.8-45.1l63.9-75.6z\"},\"child\":[]}]})(props);\n};\nexport function FaA (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M221.5 51.7C216.6 39.8 204.9 32 192 32s-24.6 7.8-29.5 19.7l-120 288-40 96c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L93.3 384l197.3 0 31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-40-96-120-288zM264 320l-144 0 72-172.8L264 320z\"},\"child\":[]}]})(props);\n};\nexport function FaAddressBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM208 288l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 192c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaAddressCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 256l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm256-32l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaAlignCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 64c0-17.7-14.3-32-32-32L128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaAlignJustify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32L32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaAlignLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 64c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32L32 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaAlignRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 64c0 17.7-14.3 32-32 32L192 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaAnchorCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2L320 448l0-80 0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAnchorCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2L320 448l0-80 0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaAnchorCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2L320 448l0-80 0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaAnchorLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8 0 15.9-.6 23.6-1.7c-4.8-9-7.6-19.3-7.6-30.3l0-33.3c-5.2 .9-10.5 1.3-16 1.3l-48 0 0-208 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM528 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaAnchor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c88.4 0 160-71.6 160-160l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0l-56 56c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 53-43 96-96 96l-48 0 0-208 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z\"},\"child\":[]}]})(props);\n};\nexport function FaAnglesDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 402.7 361.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 210.7 361.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaAnglesLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L301.3 256 438.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAnglesRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M470.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 256 265.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAnglesUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 109.3 361.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 301.3 361.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaAnkh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1c-5.9 6.2-11.8 11.8-17.4 16.7c-5.6-4.9-11.5-10.5-17.4-16.7C116.7 204.6 96 169.6 96 128zM160 0C89.3 0 32 57.3 32 128c0 52.4 21.5 95.5 46.8 128L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-46.8 0c25.4-32.5 46.8-75.6 46.8-128C288 57.3 230.7 0 160 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAppleWhole (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 112c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80l16 0c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80l-16 0zM0 288c0-76.3 35.7-160 112-160c27.3 0 59.7 10.3 82.7 19.3c18.8 7.3 39.9 7.3 58.7 0c22.9-8.9 55.4-19.3 82.7-19.3c76.3 0 112 83.7 112 160c0 128-80 224-160 224c-16.5 0-38.1-6.6-51.5-11.3c-8.1-2.8-16.9-2.8-25 0c-13.4 4.7-35 11.3-51.5 11.3C80 512 0 416 0 288z\"},\"child\":[]}]})(props);\n};\nexport function FaArchway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 64 0 0-128c0-53 43-96 96-96s96 43 96 96l0 128 64 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-288L32 128l0 288z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDown19 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M450.7 38c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l48 0 48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26zM160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7 192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 301.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM418.3 307a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 307zM405.1 419.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDown91 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7 192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 301.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM450.7 294c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l48 0 48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26zM418.3 91a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 91zM405.1 203.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDownAZ (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 320c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 416l50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 352 352 352c-17.7 0-32-14.3-32-32zM416 32c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 224l-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128C392.8 38.8 403.9 32 416 32zM395.8 176l40.4 0L416 135.6 395.8 176z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDownLong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7 224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 370.7L86.6 329.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDownShortWide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDownUpAcrossLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M137.4 502.6c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7 192 288l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0 0-114.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L384 109.3 384 224l-192 0-64 0-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 114.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96zM128 192l64 0 0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128zM448 320l-64 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDownUpLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M150.6 502.6l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7 160 288l256 0 0-16c0-17.2 3.9-33.5 10.8-48L352 224l0-114.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 109.3 288 224l-128 0-64 0-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 114.7L54.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0zM160 192l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128 64 0zM288 320l0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128-64 0zm240-80c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDownWideShort (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L320 96z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDownZA (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 64c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 160l50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 96 352 96c-17.7 0-32-14.3-32-32zm96 192c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 448l-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128c5.4-10.8 16.5-17.7 28.6-17.7zM395.8 400l40.4 0L416 359.6 395.8 400z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowLeftLong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowPointer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 55.2L0 426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320l118.1 0c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowRightArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowRightFromBracket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 192 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128zM160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowRightLong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowRightToBracket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowRightToCity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 144 40 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 24 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0-96 0c-26.5 0-48-21.5-48-48l0-416zm64 32l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 272l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM166.6 153.4l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l114.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowRotateLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M125.7 160l50.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 224c-17.7 0-32-14.3-32-32L16 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowRotateRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M386.3 160L336 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowTrendDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 82.7L342.6 137.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352 384 352z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowTrendUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.7L342.6 374.6c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160 384 160z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowTurnDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowTurnUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUp19 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M450.7 38c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zM160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3 192 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-301.7L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM445.7 364.9A32 32 0 1 0 418.3 307a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 408.4 344 375.2 344 336c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 467c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUp91 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3 192 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-301.7L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM450.7 294c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zm-5-145.1A32 32 0 1 0 418.3 91a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 192.4 344 159.2 344 120c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 251c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpAZ (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3 128 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 320c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-128 0c-17.7 0-32 14.3-32 32zM416 32c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 38.8 428.1 32 416 32zM395.8 176L416 135.6 436.2 176l-40.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpFromBracket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 192 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpFromGroundWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 352c17.7 0 32-14.3 32-32l0-210.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3 256 320c0 17.7 14.3 32 32 32zm-18.5 69.9C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM192 192L48 192c-26.5 0-48 21.5-48 48L0 425c5.3-3.1 11.2-5.4 17.5-6.9c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.1 20.3L192 192zm384 48c0-26.5-21.5-48-48-48l-144 0 0 224.5s0 0 0 0c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c6.3 1.5 12.1 3.8 17.5 6.9l0-185z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpFromWaterPump (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 0C85.5 0 64 21.5 64 48l0 208-16 0c-26.5 0-48 21.5-48 48l0 96c0 8 2 15.6 5.4 22.2c3.8-1.7 7.8-3.1 12-4.1c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c4.2 1 8.2 2.4 12 4.1C574 415.6 576 408 576 400l0-96c0-26.5-21.5-48-48-48l-48 0 0-146.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 109.3 416 256l-128 0 0-208c0-26.5-21.5-48-48-48L112 0zM306.5 421.9c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpLong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-370.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpRightDots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l50.7 0L9.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3l0 50.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L160 0zM576 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM448 208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm128 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM272 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM144 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM576 336a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-48-80a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpRightFromSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l82.7 0L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3l0 82.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-17.7-14.3-32-32-32L320 0zM80 32C35.8 32 0 67.8 0 112L0 432c0 44.2 35.8 80 80 80l320 0c44.2 0 80-35.8 80-80l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-320c0-8.8 7.2-16 16-16l112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpShortWide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpWideShort (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 480l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpZA (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3 128 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 64c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L352 32c-17.7 0-32 14.3-32 32zm96 192c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 262.8 428.1 256 416 256zM395.8 400L416 359.6 436.2 400l-40.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsDownToLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 416L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zm22.6-137.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L480 274.7 480 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96zm-320-45.3c-12.5-12.5-32.8-12.5-45.3 0L160 274.7 160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7L54.6 233.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsDownToPeople (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 0c-13.3 0-24 10.7-24 24l0 118.1L97 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23L168 24c0-13.3-10.7-24-24-24zM360 200a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM184 296a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm312 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 345.5l0 54.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-54.5 26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 441.5l0 38.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3L18.9 468.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 441.5 88 480c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5zM415 153l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23L520 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 118.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsLeftRightToLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 64c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 96C0 78.3 14.3 64 32 64zm214.6 73.4c12.5 12.5 12.5 32.8 0 45.3L205.3 224l229.5 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 288l-229.5 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0zM640 96l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-320c0-17.7 14.3-32 32-32s32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsLeftRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M406.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224l-293.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288l293.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsRotate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160 352 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l111.5 0c0 0 0 0 0 0l.4 0c17.7 0 32-14.3 32-32l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1L16 432c0 17.7 14.3 32 32 32s32-14.3 32-32l0-35.1 17.6 17.5c0 0 0 0 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.8c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352l34.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48.4 288c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsSpin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 96c38.4 0 73.7 13.5 101.3 36.1l-32.6 32.6c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9l112 0c8.8 0 16-7.2 16-16l0-112c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-34 34C363.4 52.6 312.1 32 256 32c-10.9 0-21.5 .8-32 2.3l0 64.9c10.3-2.1 21-3.2 32-3.2zM132.1 154.7l32.6 32.6c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8l0-112c0-8.8-7.2-16-16-16L64 48c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l34 34C52.6 148.6 32 199.9 32 256c0 10.9 .8 21.5 2.3 32l64.9 0c-2.1-10.3-3.2-21-3.2-32c0-38.4 13.5-73.7 36.1-101.3zM477.7 224l-64.9 0c2.1 10.3 3.2 21 3.2 32c0 38.4-13.5 73.7-36.1 101.3l-32.6-32.6c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8l0 112c0 8.8 7.2 16 16 16l112 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-34-34C459.4 363.4 480 312.1 480 256c0-10.9-.8-21.5-2.3-32zM256 416c-38.4 0-73.7-13.5-101.3-36.1l32.6-32.6c4.6-4.6 5.9-11.5 3.5-17.4s-8.3-9.9-14.8-9.9L64 320c-8.8 0-16 7.2-16 16l0 112c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l34-34C148.6 459.4 199.9 480 256 480c10.9 0 21.5-.8 32-2.3l0-64.9c-10.3 2.1-21 3.2-32 3.2z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsSplitUpAndLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L352 109.3 352 384c0 35.3 28.7 64 64 64l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-70.7 0-128-57.3-128-128c0-35.3-28.7-64-64-64l-114.7 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 256 224 256c23.3 0 45.2 6.2 64 17.1l0-163.9-41.4 41.4z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsToCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L160 114.7 160 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 4.3-.9 8.5-2.4 12.2c-1.6 3.7-3.8 7.3-6.9 10.3l-.1 .1c-3.1 3-6.6 5.3-10.3 6.9c-3.8 1.6-7.9 2.4-12.2 2.4l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.7 0L9.4 54.6C-3.1 42.1-3.1 21.9 9.4 9.4zM256 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM114.7 352L96 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0s0 0 0 0l.1 0c8.8 0 16.7 3.6 22.5 9.3l.1 .1c3 3.1 5.3 6.6 6.9 10.3c1.6 3.8 2.4 7.9 2.4 12.2l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L114.7 352zM416 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 18.7L585.4 9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 160l18.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-8.8 0-16.8-3.6-22.6-9.3l-.1-.1c-3-3.1-5.3-6.6-6.9-10.3s-2.4-7.8-2.4-12.2l0-.1s0 0 0 0l0-96zM525.3 352L630.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 397.3l0 18.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96s0 0 0 0l0-.1c0-4.3 .9-8.4 2.4-12.2c1.6-3.8 3.9-7.3 6.9-10.4c5.8-5.8 13.7-9.3 22.5-9.4l.1 0s0 0 0 0l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsToDot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c17.7 0 32 14.3 32 32l0 32 32 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l32 0 0-32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsToEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 15C24.4 5.7 39.6 5.7 49 15l63 63L112 40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 96c0 13.3-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l38.1 0L15 49C5.7 39.6 5.7 24.4 15 15zM133.5 243.9C158.6 193.6 222.7 112 320 112s161.4 81.6 186.5 131.9c3.8 7.6 3.8 16.5 0 24.2C481.4 318.4 417.3 400 320 400s-161.4-81.6-186.5-131.9c-3.8-7.6-3.8-16.5 0-24.2zM320 320a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM591 15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-63 63 38.1 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24l0-96c0-13.3 10.7-24 24-24s24 10.7 24 24l0 38.1 63-63zM15 497c-9.4-9.4-9.4-24.6 0-33.9l63-63L40 400c-13.3 0-24-10.7-24-24s10.7-24 24-24l96 0c13.3 0 24 10.7 24 24l0 96c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-38.1L49 497c-9.4 9.4-24.6 9.4-33.9 0zm576 0l-63-63 0 38.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-96c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-38.1 0 63 63c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsTurnRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M297.4 9.4c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L338.7 160 128 160c-35.3 0-64 28.7-64 64l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32C0 153.3 57.3 96 128 96l210.7 0L297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-53 43-96 96-96l146.7 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsTurnToDots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M249.4 25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L269.3 96 416 96c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7-14.3-32-32-32l-146.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm13.3 256l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM384 384a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192A64 64 0 1 1 64 64a64 64 0 1 1 0 128z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsUpDownLeftRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4L224 224l-114.7 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L224 288l0 114.7-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4L288 288l114.7 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L288 224l0-114.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsUpDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M182.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 109.3l0 293.5L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7l0-293.5 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsUpToLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 96l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96zM9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 237.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96zm320 45.3c12.5 12.5 32.8 12.5 45.3 0L416 237.3 416 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaAsterisk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 32c17.7 0 32 14.3 32 32l0 135.5 111.5-66.9c15.2-9.1 34.8-4.2 43.9 11s4.2 34.8-11 43.9L254.2 256l114.3 68.6c15.2 9.1 20.1 28.7 11 43.9s-28.7 20.1-43.9 11L224 312.5 224 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-135.5L48.5 379.4c-15.2 9.1-34.8 4.2-43.9-11s-4.2-34.8 11-43.9L129.8 256 15.5 187.4c-15.2-9.1-20.1-28.7-11-43.9s28.7-20.1 43.9-11L160 199.5 160 64c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaAt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256l0 32c0 53-43 96-96 96c-29.3 0-55.6-13.2-73.2-33.9C320 371.1 289.5 384 256 384c-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1c5.7-5 13.1-8.1 21.3-8.1c17.7 0 32 14.3 32 32l0 80 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-106-86-192-192-192zm64 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAtom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 398.8c-11.8 5.1-23.4 9.7-34.9 13.5c16.7 33.8 31 35.7 34.9 35.7s18.1-1.9 34.9-35.7c-11.4-3.9-23.1-8.4-34.9-13.5zM446 256c33 45.2 44.3 90.9 23.6 128c-20.2 36.3-62.5 49.3-115.2 43.2c-22 52.1-55.6 84.8-98.4 84.8s-76.4-32.7-98.4-84.8c-52.7 6.1-95-6.8-115.2-43.2C21.7 346.9 33 301.2 66 256c-33-45.2-44.3-90.9-23.6-128c20.2-36.3 62.5-49.3 115.2-43.2C179.6 32.7 213.2 0 256 0s76.4 32.7 98.4 84.8c52.7-6.1 95 6.8 115.2 43.2c20.7 37.1 9.4 82.8-23.6 128zm-65.8 67.4c-1.7 14.2-3.9 28-6.7 41.2c31.8 1.4 38.6-8.7 40.2-11.7c2.3-4.2 7-17.9-11.9-48.1c-6.8 6.3-14 12.5-21.6 18.6zm-6.7-175.9c2.8 13.1 5 26.9 6.7 41.2c7.6 6.1 14.8 12.3 21.6 18.6c18.9-30.2 14.2-44 11.9-48.1c-1.6-2.9-8.4-13-40.2-11.7zM290.9 99.7C274.1 65.9 259.9 64 256 64s-18.1 1.9-34.9 35.7c11.4 3.9 23.1 8.4 34.9 13.5c11.8-5.1 23.4-9.7 34.9-13.5zm-159 88.9c1.7-14.3 3.9-28 6.7-41.2c-31.8-1.4-38.6 8.7-40.2 11.7c-2.3 4.2-7 17.9 11.9 48.1c6.8-6.3 14-12.5 21.6-18.6zM110.2 304.8C91.4 335 96 348.7 98.3 352.9c1.6 2.9 8.4 13 40.2 11.7c-2.8-13.1-5-26.9-6.7-41.2c-7.6-6.1-14.8-12.3-21.6-18.6zM336 256a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-80-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaAudioDescription (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM213.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7l-9.4-18.9-82.2 0-9.4 18.9c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zm-.4 106.6L192 237.7l-21.1 42.2 42.2 0zM304 184c0-13.3 10.7-24 24-24l56 0c53 0 96 43 96 96s-43 96-96 96l-56 0c-13.3 0-24-10.7-24-24l0-144zm48 24l0 96 32 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAustralSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7L122.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0L82.7 320 32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l24 0L34.5 435.7c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384l197.3 0 31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8L392 384l24 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0L352 288l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-90.7 0L253.5 51.7zM256 224l-64 0 32-76.8L256 224zm-90.7 64l117.3 0L296 320l-144 0 13.3-32z\"},\"child\":[]}]})(props);\n};\nexport function FaAward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M173.8 5.5c11-7.3 25.4-7.3 36.4 0L228 17.2c6 3.9 13 5.8 20.1 5.4l21.3-1.3c13.2-.8 25.6 6.4 31.5 18.2l9.6 19.1c3.2 6.4 8.4 11.5 14.7 14.7L344.5 83c11.8 5.9 19 18.3 18.2 31.5l-1.3 21.3c-.4 7.1 1.5 14.2 5.4 20.1l11.8 17.8c7.3 11 7.3 25.4 0 36.4L366.8 228c-3.9 6-5.8 13-5.4 20.1l1.3 21.3c.8 13.2-6.4 25.6-18.2 31.5l-19.1 9.6c-6.4 3.2-11.5 8.4-14.7 14.7L301 344.5c-5.9 11.8-18.3 19-31.5 18.2l-21.3-1.3c-7.1-.4-14.2 1.5-20.1 5.4l-17.8 11.8c-11 7.3-25.4 7.3-36.4 0L156 366.8c-6-3.9-13-5.8-20.1-5.4l-21.3 1.3c-13.2 .8-25.6-6.4-31.5-18.2l-9.6-19.1c-3.2-6.4-8.4-11.5-14.7-14.7L39.5 301c-11.8-5.9-19-18.3-18.2-31.5l1.3-21.3c.4-7.1-1.5-14.2-5.4-20.1L5.5 210.2c-7.3-11-7.3-25.4 0-36.4L17.2 156c3.9-6 5.8-13 5.4-20.1l-1.3-21.3c-.8-13.2 6.4-25.6 18.2-31.5l19.1-9.6C65 70.2 70.2 65 73.4 58.6L83 39.5c5.9-11.8 18.3-19 31.5-18.2l21.3 1.3c7.1 .4 14.2-1.5 20.1-5.4L173.8 5.5zM272 192a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM1.3 441.8L44.4 339.3c.2 .1 .3 .2 .4 .4l9.6 19.1c11.7 23.2 36 37.3 62 35.8l21.3-1.3c.2 0 .5 0 .7 .2l17.8 11.8c5.1 3.3 10.5 5.9 16.1 7.7l-37.6 89.3c-2.3 5.5-7.4 9.2-13.3 9.7s-11.6-2.2-14.8-7.2L74.4 455.5l-56.1 8.3c-5.7 .8-11.4-1.5-15-6s-4.3-10.7-2.1-16zm248 60.4L211.7 413c5.6-1.8 11-4.3 16.1-7.7l17.8-11.8c.2-.1 .4-.2 .7-.2l21.3 1.3c26 1.5 50.3-12.6 62-35.8l9.6-19.1c.1-.2 .2-.3 .4-.4l43.2 102.5c2.2 5.3 1.4 11.4-2.1 16s-9.3 6.9-15 6l-56.1-8.3-32.2 49.2c-3.2 5-8.9 7.7-14.8 7.2s-11-4.3-13.3-9.7z\"},\"child\":[]}]})(props);\n};\nexport function FaB (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 256 0 416c0 35.3 28.7 64 64 64l128 0c70.7 0 128-57.3 128-128c0-46.5-24.8-87.3-62-109.7c18.7-22.3 30-51 30-82.3c0-70.7-57.3-128-128-128L64 32zm96 192l-96 0L64 96l96 0c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288l96 0 32 0c35.3 0 64 28.7 64 64s-28.7 64-64 64L64 416l0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaBabyCarriage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 192L.1 192C2.7 117.9 41.3 52.9 99 14.1c13.3-8.9 30.8-4.3 39.9 8.8L256 192zm128-32c0-35.3 28.7-64 64-64l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 64c0 25.2-5.8 50.2-17 73.5s-27.8 44.5-48.6 62.3s-45.5 32-72.7 41.6S253.4 416 224 416s-58.5-5-85.7-14.6s-51.9-23.8-72.7-41.6s-37.3-39-48.6-62.3S0 249.2 0 224l224 0 160 0 0-64zM80 416a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm240 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBaby (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152 88a72 72 0 1 1 144 0A72 72 0 1 1 152 88zM39.7 144.5c13-17.9 38-21.8 55.9-8.8L131.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25l0 36.3-192 0 0-36.3c-15.2-6.7-29.7-15.1-43.3-25L48.5 200.3c-17.9-13-21.8-38-8.8-55.9zm89.8 184.8l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C70 438.6 68.1 417 79.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L284 419.4l-26-37.2z\"},\"child\":[]}]})(props);\n};\nexport function FaBackwardFast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M493.6 445c-11.2 5.3-24.5 3.6-34.1-4.4L288 297.7 288 416c0 12.4-7.2 23.7-18.4 29s-24.5 3.6-34.1-4.4L64 297.7 64 416c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 96C0 78.3 14.3 64 32 64s32 14.3 32 32l0 118.3L235.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S288 83.6 288 96l0 118.3L459.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S512 83.6 512 96l0 320c0 12.4-7.2 23.7-18.4 29z\"},\"child\":[]}]})(props);\n};\nexport function FaBackwardStep (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M267.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29l0-320c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160L64 241 64 96c0-17.7-14.3-32-32-32S0 78.3 0 96L0 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-145 11.5 9.6 192 160z\"},\"child\":[]}]})(props);\n};\nexport function FaBackward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M459.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29l0-320c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4L288 214.3l0 41.7 0 41.7L459.5 440.6zM256 352l0-96 0-128 0-32c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160C4.2 237.5 0 246.5 0 256s4.2 18.5 11.5 24.6l192 160c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29l0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaBacon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439.2 1.2c11.2-3.2 23.2-.1 31.4 8.1L518 56.7l-26.5 7.9c-58 16.6-98.1 39.6-129.6 67.4c-31.2 27.5-53.2 59.1-75.1 90.9l-2.3 3.3C241.6 288.7 195 356.6 72.8 417.7L37.9 435.2 9.4 406.6c-7.3-7.3-10.6-17.6-9-27.8s8.1-18.9 17.3-23.5C136.1 296.2 180.9 231 223.3 169.3l2.3-3.4c21.8-31.8 44.9-64.9 77.7-93.9c33.4-29.5 75.8-53.6 135.9-70.8zM61.8 459l25.4-12.7c129.5-64.7 179.9-138.1 223.8-202l2.2-3.3c22.1-32.1 42.1-60.5 69.9-85.1c27.5-24.3 63.4-45.2 117.3-60.6c0 0 0 0 0 0l.2-.1 43.1-12.9 23 23c8 8 11.2 19.7 8.3 30.7s-11.3 19.6-22.2 22.7c-51.9 14.8-85.6 34.7-111.1 57.2c-26.1 23-45.1 49.9-67.3 82.1l-2.2 3.2C327.8 365.9 275.5 442 142.3 508.6c-12.3 6.2-27.2 3.7-36.9-6L61.8 459z\"},\"child\":[]}]})(props);\n};\nexport function FaBacteria (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304.9 .7c-9.6-2.7-19.5 2.8-22.3 12.4l-4.3 15.2c-8.3-.6-16.8 0-25.2 1.9c-7.3 1.7-14.3 3.5-21.1 5.5l-5.5-12.7c-3.9-9.1-14.5-13.4-23.6-9.5s-13.4 14.5-9.5 23.6l4.4 10.4c-16.6 6.7-31.7 14.4-45.4 22.8L147 62c-5.5-8.3-16.7-10.5-25-5s-10.5 16.7-5 25l6 9c-13.7 11-25.5 22.8-35.8 34.9l-10-8c-7.8-6.2-19.1-5-25.3 2.8s-5 19.1 2.8 25.3L65.9 155c-1.8 2.8-3.5 5.7-5.1 8.5c-6.6 11.4-11.8 22.6-16 33l-8-3.2c-9.2-3.7-19.7 .8-23.4 10s.8 19.7 10 23.4l10.4 4.2c-.2 .8-.4 1.5-.5 2.3c-2.2 9.3-3.4 17.3-4.1 23.4c-.4 3.1-.6 5.7-.8 7.8c-.1 1.1-.1 2-.2 2.8l-.1 1.1 0 .5 0 .2 0 .1c0 0 0 .1 29.1 1c0 0 0 0-.1 0L28 269.3c-.1 3.1 0 6.1 .2 9.1l-15.2 4.3C3.5 285.4-2 295.4 .7 304.9s12.7 15.1 22.3 12.4l15.6-4.5c7.6 13.6 18.9 25 32.6 32.6L66.7 361c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.3-12.4l4.3-15.2c1.2 .1 2.4 .2 3.6 .2c15.6 .5 30.3-3.3 43-10.2l9 9c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-7.2-7.2c9.3-12.6 15.2-27.8 16.3-44.5l7.1 3c9.1 3.9 19.7-.3 23.6-9.5s-.3-19.7-9.5-23.6l-8.6-3.7c6.4-9.9 17.3-22.4 36.9-33.3l1.3 4.4c2.7 9.6 12.7 15.1 22.3 12.4s15.1-12.7 12.4-22.3l-2.3-8.1c3.8-1.1 7.7-2.1 11.9-3.1c11.6-2.7 22.1-7.7 31.1-14.4l7.2 7.2c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-9-9c7.6-13.9 11.3-30.1 10.1-46.6l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3S370.6 64 361 66.7l-15.6 4.5c-7.7-13.9-19.1-25.1-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3zM112 272l-48-1.5c0 0 0 0 0 0c11.7 .4 27.3 .9 48 1.6zm16-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-48a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM322.7 489c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.2-12.4l4.3-15.2c8.3 .6 16.8 0 25.2-1.9c7.3-1.7 14.3-3.5 21.1-5.5l5.5 12.7c3.9 9.1 14.5 13.4 23.6 9.5s13.4-14.5 9.5-23.6l-4.4-10.4c16.6-6.7 31.7-14.4 45.4-22.8L493 450c5.5 8.3 16.7 10.5 25 5s10.5-16.7 5-25l-6-9c13.7-11 25.5-22.8 35.8-34.9l10 8c7.8 6.2 19.1 5 25.3-2.8s5-19.1-2.8-25.3L574.1 357c1.8-2.8 3.5-5.7 5.1-8.5c6.6-11.4 11.8-22.6 16-33l8 3.2c9.2 3.7 19.7-.8 23.4-10s-.8-19.7-10-23.4l-10.4-4.2c.2-.8 .4-1.5 .5-2.3c2.2-9.3 3.4-17.3 4.1-23.4c.4-3.1 .6-5.7 .8-7.8c.1-1.1 .1-2 .2-2.8l.1-1.1 0-.5 0-.2 0-.1c0 0 0-.1-29.1-1c0 0 0 0 .1 0l29.1 .9c.1-3.1 0-6.1-.2-9.1l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3s-12.7-15.1-22.3-12.4l-15.6 4.5c-7.6-13.6-18.9-25-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3s-19.5 2.8-22.3 12.4l-4.3 15.2c-1.2-.1-2.4-.2-3.6-.2c-15.6-.5-30.3 3.3-43 10.2l-9-9c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l7.2 7.2c-9.3 12.6-15.2 27.8-16.3 44.5l-7.1-3c-9.1-3.9-19.7 .3-23.6 9.5s.3 19.7 9.5 23.6l8.6 3.7c-6.4 9.9-17.3 22.4-36.9 33.3l-1.3-4.4c-2.7-9.6-12.7-15.1-22.3-12.4s-15.1 12.7-12.4 22.3l2.3 8.1c-3.8 1.1-7.7 2.1-11.9 3.1c-11.6 2.7-22.1 7.7-31.1 14.4l-7.2-7.2c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l9 9c-7.6 13.9-11.3 30.1-10.1 46.6l-15.2 4.3c-9.6 2.7-15.1 12.7-12.4 22.2s12.7 15.1 22.3 12.4l15.6-4.5c7.7 13.9 19.1 25.1 32.6 32.6L322.7 489zM576 241.5c0 0 0 0 0 0c-11.7-.4-27.3-.9-48-1.6l48 1.5zM448 384a32 32 0 1 1 -64 0 32 32 0 1 1 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBacterium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M423.1 30.6c3.6-12.7-3.7-26-16.5-29.7s-26 3.7-29.7 16.5l-4.2 14.7c-9.8-.4-19.9 .5-29.9 2.8c-12.1 2.8-23.7 5.9-34.9 9.4l-5.9-13.7c-5.2-12.2-19.3-17.8-31.5-12.6s-17.8 19.3-12.6 31.5l4.9 11.3c-22 9.4-42 20.1-60.2 31.8L196 82.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3l7.8 11.6c-18 15-33.7 30.8-47.3 47.1L103 157.3c-10.4-8.3-25.5-6.6-33.7 3.7s-6.6 25.5 3.7 33.7l15 12c-2.1 3.2-4.1 6.5-6 9.7c-9.4 15.7-17 31-23.2 45.3l-9.9-3.9c-12.3-4.9-26.3 1.1-31.2 13.4s1.1 26.3 13.4 31.2l11.6 4.6c-.3 1.1-.6 2.1-.9 3.1c-3.5 12.5-5.7 23.2-7.1 31.3c-.7 4.1-1.2 7.5-1.6 10.3c-.2 1.4-.3 2.6-.4 3.6l-.1 1.4-.1 .6 0 .3 0 .1c0 0 0 .1 39.2 3.7c0 0 0 0 0 0l-39.2-3.6c-.5 5-.6 10-.4 14.9l-14.7 4.2C4.7 380.6-2.7 393.8 .9 406.6s16.9 20.1 29.7 16.5l13.8-3.9c10.6 20.7 27.6 37.8 48.5 48.5l-3.9 13.7c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5l4.2-14.7c23.8 1 46.3-5.5 65.1-17.6L215 473c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c9.1-14.1 15.1-30.5 17-48.3l.1-.8c.3-1.7 1-5.1 2.3-9.8l.2-.8 12.6 5.4c12.2 5.2 26.3-.4 31.5-12.6s-.4-26.3-12.6-31.5l-11.3-4.8c9.9-14.9 24.9-31.6 48.6-46l2.1 7.5c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7L371 259.2c6.9-2.2 14.3-4.3 22.2-6.1c12.9-3 24.7-8 35.2-14.8L439 249c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c12.2-19 18.6-41.6 17.6-65.1l14.7-4.2c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5l-13.7 3.9c-10.8-21.2-28-38-48.5-48.5l3.9-13.8zM92.1 363.3s0 0 0 0L144 368l-51.9-4.7zM112 320a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM240 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaBagShopping (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 112c0-35.3 28.7-64 64-64s64 28.7 64 64l0 48-128 0 0-48zm-48 48l-64 0c-26.5 0-48 21.5-48 48L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-208c0-26.5-21.5-48-48-48l-64 0 0-48C336 50.1 285.9 0 224 0S112 50.1 112 112l0 48zm24 48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm152 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBahai (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0c14.5 0 27.2 9.7 30.9 23.8l23.9 89.6 75.9-53.3c11.9-8.3 27.8-7.6 39 1.7s14.6 24.9 8.4 38.1l-39.3 84 92.4 8c14.4 1.2 26.2 12 28.8 26.3s-4.9 28.5-18 34.6l-84.1 39.1 65.7 65.5c10.3 10.2 12.4 26.1 5.1 38.7s-22 18.7-36 14.9L391 386.8l8.2 92.4c1.3 14.4-7.3 27.9-20.9 32.9s-28.9 .1-37.2-11.7l-53.1-76-53.1 76c-8.3 11.9-23.6 16.7-37.2 11.7s-22.2-18.5-20.9-32.9l8.2-92.4L95.4 410.9c-14 3.8-28.8-2.3-36-14.9s-5.2-28.4 5.1-38.7l65.7-65.5L46 252.7c-13.1-6.1-20.5-20.3-18-34.6s14.3-25.1 28.8-26.3l92.4-8-39.3-84c-6.1-13.1-2.7-28.8 8.4-38.1s27.1-10 39-1.7l75.9 53.3 23.9-89.6C260.8 9.7 273.5 0 288 0zm0 156.2l-4.8 18c-2.7 10.1-10.2 18.2-20 21.8s-20.8 2.1-29.3-3.9l-15.2-10.7 7.9 16.8c4.4 9.5 4 20.5-1.3 29.6s-14.5 15-25 15.9l-18.5 1.6 16.8 7.8c9.5 4.4 16.2 13.2 18 23.5s-1.5 20.8-8.9 28.2l-13.2 13.1 17.9-4.8c10.1-2.7 20.9-.3 28.9 6.4s12.2 16.9 11.3 27.3l-1.6 18.5 10.6-15.2c6-8.6 15.8-13.7 26.2-13.7s20.2 5.1 26.2 13.7l10.6 15.2-1.6-18.5c-.9-10.4 3.3-20.6 11.3-27.3s18.8-9.1 28.9-6.4l17.9 4.8-13.2-13.1c-7.4-7.4-10.7-17.9-8.9-28.2s8.5-19.1 18-23.5l16.8-7.8-18.5-1.6c-10.4-.9-19.7-6.8-25-15.9s-5.7-20.1-1.3-29.6l7.9-16.8-15.2 10.7c-8.6 6-19.5 7.5-29.3 3.9s-17.3-11.7-20-21.8l-4.8-18z\"},\"child\":[]}]})(props);\n};\nexport function FaBahtSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 0c-17.7 0-32 14.3-32 32l0 32L37.6 64C16.8 64 0 80.8 0 101.6L0 224l0 41.7L0 288 0 406.3c0 23 18.7 41.7 41.7 41.7l70.3 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c61.9 0 112-50.1 112-112c0-40.1-21.1-75.3-52.7-95.1C280.3 222.6 288 200.2 288 176c0-61.9-50.1-112-112-112l0-32c0-17.7-14.3-32-32-32zM112 128l0 96-48 0 0-96 48 0zm64 96l0-96c26.5 0 48 21.5 48 48s-21.5 48-48 48zm-64 64l0 96-48 0 0-96 48 0zm64 96l0-96 32 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBanSmoking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M99.5 144.8L178.7 224l96 96 92.5 92.5C335.9 434.9 297.5 448 256 448C150 448 64 362 64 256c0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32 82.7 0 0 32-50.7 0zm32 32l34.7 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-130.7 0L144.8 99.5C176.1 77.1 214.5 64 256 64c106 0 192 86 192 192c0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM272 96c-8.8 0-16 7.2-16 16c0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16s7.2 16 16 16s16-7.2 16-16c0-26.5-21.5-48-48-48l-32 0c-8.8 0-16-7.2-16-16s-7.2-16-16-16zM229.5 320l-96-96L112 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l117.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"},\"child\":[]}]})(props);\n};\nexport function FaBandage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 416l96 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-96 0 0 320zM448 96L192 96l0 320 256 0 0-320zM64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l96 0 0-320L64 96zM248 208a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM248 304a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaBangladeshiTakaSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M36 32.3C18.4 30.1 2.4 42.5 .2 60S10.5 93.6 28 95.8l7.9 1c16 2 28 15.6 28 31.8L64 160l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 160c0 53 43 96 96 96l32 0c106 0 192-86 192-192l0-32c0-53-43-96-96-96l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0c17.7 0 32 14.3 32 32l0 32c0 70.7-57.3 128-128 128l-32 0c-17.7 0-32-14.3-32-32l0-160 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-31.5c0-48.4-36.1-89.3-84.1-95.3l-7.9-1z\"},\"child\":[]}]})(props);\n};\nexport function FaBarcode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 32C10.7 32 0 42.7 0 56L0 456c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24L64 56c0-13.3-10.7-24-24-24L24 32zm88 0c-8.8 0-16 7.2-16 16l0 416c0 8.8 7.2 16 16 16s16-7.2 16-16l0-416c0-8.8-7.2-16-16-16zm72 0c-13.3 0-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-400c0-13.3-10.7-24-24-24l-16 0zm96 0c-13.3 0-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-400c0-13.3-10.7-24-24-24l-16 0zM448 56l0 400c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-400c0-13.3-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24zm-64-8l0 416c0 8.8 7.2 16 16 16s16-7.2 16-16l0-416c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaBarsProgress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 160l-128 0 0-32 128 0 0 32zM48 64C21.5 64 0 85.5 0 112l0 64c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48L48 64zM448 352l0 32-256 0 0-32 256 0zM48 288c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48L48 288z\"},\"child\":[]}]})(props);\n};\nexport function FaBarsStaggered (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBaseballBatBall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424 0c-12.4 0-24.2 4.9-33 13.7L233.5 171.2c-10.5 10.5-19.8 22.1-27.7 34.6L132.7 321.6c-7.3 11.5-15.8 22.2-25.5 31.9L69.9 390.7l51.3 51.3 37.3-37.3c9.6-9.6 20.3-18.2 31.9-25.5l115.8-73.1c12.5-7.9 24.1-17.2 34.6-27.7L498.3 121c8.7-8.7 13.7-20.6 13.7-33s-4.9-24.2-13.7-33L457 13.7C448.2 4.9 436.4 0 424 0zm88 432a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM15 399c-9.4 9.4-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L49 399c-9.4-9.4-24.6-9.4-33.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBaseball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M62.7 223.4c-4.8 .4-9.7 .6-14.7 .6c-15.6 0-30.8-2-45.2-5.9C19.2 107.1 107.1 19.2 218.1 2.8C222 17.2 224 32.4 224 48c0 4.9-.2 9.8-.6 14.7c-.7 8.8 5.8 16.5 14.6 17.3s16.5-5.8 17.3-14.6c.5-5.7 .7-11.5 .7-17.3c0-16.5-1.9-32.6-5.6-47.9c1.8 0 3.7-.1 5.6-.1C397.4 0 512 114.6 512 256c0 1.9 0 3.7-.1 5.6c-15.4-3.6-31.4-5.6-47.9-5.6c-5.8 0-11.6 .2-17.3 .7c-8.8 .7-15.4 8.5-14.6 17.3s8.5 15.4 17.3 14.6c4.8-.4 9.7-.6 14.7-.6c15.6 0 30.8 2 45.2 5.9C492.8 404.9 404.9 492.8 293.9 509.2C290 494.8 288 479.6 288 464c0-4.9 .2-9.8 .6-14.7c.7-8.8-5.8-16.5-14.6-17.3s-16.5 5.8-17.3 14.6c-.5 5.7-.7 11.5-.7 17.3c0 16.5 1.9 32.6 5.6 47.9c-1.8 0-3.7 .1-5.6 .1C114.6 512 0 397.4 0 256c0-1.9 0-3.7 .1-5.6C15.4 254.1 31.5 256 48 256c5.8 0 11.6-.2 17.3-.7c8.8-.7 15.4-8.5 14.6-17.3s-8.5-15.4-17.3-14.6zM121.3 208c-8 3.7-11.6 13.2-7.9 21.2s13.2 11.6 21.2 7.9c45.2-20.8 81.7-57.2 102.5-102.5c3.7-8 .2-17.5-7.9-21.2s-17.5-.2-21.2 7.9c-17.6 38.3-48.5 69.2-86.7 86.7zm277.2 74.7c-3.7-8-13.2-11.6-21.2-7.9c-45.2 20.8-81.7 57.2-102.5 102.5c-3.7 8-.2 17.5 7.9 21.2s17.5 .2 21.2-7.9c17.6-38.3 48.5-69.2 86.7-86.7c8-3.7 11.6-13.2 7.9-21.2z\"},\"child\":[]}]})(props);\n};\nexport function FaBasketShopping (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M253.3 35.1c6.1-11.8 1.5-26.3-10.2-32.4s-26.3-1.5-32.4 10.2L117.6 192 32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32L83.9 463.5C91 492 116.6 512 146 512L430 512c29.4 0 55-20 62.1-48.5L544 256c17.7 0 32-14.3 32-32s-14.3-32-32-32l-85.6 0L365.3 12.9C359.2 1.2 344.7-3.4 332.9 2.7s-16.3 20.6-10.2 32.4L404.3 192l-232.6 0L253.3 35.1zM192 304l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16zm96-16c8.8 0 16 7.2 16 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16zm128 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaBasketball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M86.6 64l85.2 85.2C194.5 121.7 208 86.4 208 48c0-14.7-2-28.9-5.7-42.4C158.6 15 119 35.5 86.6 64zM64 86.6C35.5 119 15 158.6 5.6 202.3C19.1 206 33.3 208 48 208c38.4 0 73.7-13.5 101.3-36.1L64 86.6zM256 0c-7.3 0-14.6 .3-21.8 .9C238 16 240 31.8 240 48c0 47.3-17.1 90.5-45.4 124L256 233.4 425.4 64C380.2 24.2 320.9 0 256 0zM48 240c-16.2 0-32-2-47.1-5.8C.3 241.4 0 248.7 0 256c0 64.9 24.2 124.2 64 169.4L233.4 256 172 194.6C138.5 222.9 95.3 240 48 240zm463.1 37.8c.6-7.2 .9-14.5 .9-21.8c0-64.9-24.2-124.2-64-169.4L278.6 256 340 317.4c33.4-28.3 76.7-45.4 124-45.4c16.2 0 32 2 47.1 5.8zm-4.7 31.9C492.9 306 478.7 304 464 304c-38.4 0-73.7 13.5-101.3 36.1L448 425.4c28.5-32.3 49.1-71.9 58.4-115.7zM340.1 362.7C317.5 390.3 304 425.6 304 464c0 14.7 2 28.9 5.7 42.4C353.4 497 393 476.5 425.4 448l-85.2-85.2zM317.4 340L256 278.6 86.6 448c45.1 39.8 104.4 64 169.4 64c7.3 0 14.6-.3 21.8-.9C274 496 272 480.2 272 464c0-47.3 17.1-90.5 45.4-124z\"},\"child\":[]}]})(props);\n};\nexport function FaBath (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 77.3c0-7.3 5.9-13.3 13.3-13.3c3.5 0 6.9 1.4 9.4 3.9l14.9 14.9C130 91.8 128 101.7 128 112c0 19.9 7.2 38 19.2 52c-5.3 9.2-4 21.1 3.8 29c9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9c-7.9-7.9-19.8-9.1-29-3.8C246 39.2 227.9 32 208 32c-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0C66.6 0 32 34.6 32 77.3L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 256 96 77.3zM32 352l0 16c0 28.4 12.4 54 32 71.6L64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16 256 0 0 16c0 17.7 14.3 32 32 32s32-14.3 32-32l0-40.4c19.6-17.6 32-43.1 32-71.6l0-16L32 352z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryEmpty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 160c-8.8 0-16 7.2-16 16l0 160c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-160c0-8.8-7.2-16-16-16L80 160zM0 176c0-44.2 35.8-80 80-80l384 0c44.2 0 80 35.8 80 80l0 16c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 16c0 44.2-35.8 80-80 80L80 416c-44.2 0-80-35.8-80-80L0 176z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm368 96L96 192l0 128 352 0 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm208 96L96 192l0 128 192 0 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryQuarter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm112 96l-96 0 0 128 96 0 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryThreeQuarters (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm272 96L96 192l0 128 256 0 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaBedPulse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M483.2 9.6L524 64l92 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-104 0c-7.6 0-14.7-3.6-19.2-9.6L468.7 70.3l-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L339.2 112 216 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l136 0c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5C445.9 6.2 453.2 1 461.6 .1s16.6 2.7 21.6 9.5zM320 160l12.7 0 20.7 31.1c11.2 16.8 30.6 26.3 50.7 24.8s37.9-13.7 46.5-32L461.9 160l82.1 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-224 0-32 0L64 448l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 96C0 78.3 14.3 64 32 64s32 14.3 32 32l0 256 224 0 0-160c0-17.7 14.3-32 32-32zm-144 0a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaBed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32c17.7 0 32 14.3 32 32l0 256 224 0 0-160c0-17.7 14.3-32 32-32l224 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-224 0-32 0L64 416l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 46.3 14.3 32 32 32zm144 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaBeerMugEmpty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 64c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 32 51.2 0c42.4 0 76.8 34.4 76.8 76.8l0 102.1c0 30.4-17.9 57.9-45.6 70.2L384 381.7l0 34.3c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64L32 64zM384 311.6l56.4-25.1c4.6-2.1 7.6-6.6 7.6-11.7l0-102.1c0-7.1-5.7-12.8-12.8-12.8L384 160l0 151.6zM160 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224z\"},\"child\":[]}]})(props);\n};\nexport function FaBellConcierge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.3C119.6 157.2 32 252.4 32 368l448 0c0-115.6-87.6-210.8-200-222.7l0-33.3 16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0-40 0zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 400z\"},\"child\":[]}]})(props);\n};\nexport function FaBellSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-90.2-70.7c.2-.4 .4-.9 .6-1.3c5.2-11.5 3.1-25-5.3-34.4l-7.4-8.3C497.3 319.2 480 273.9 480 226.8l0-18.8c0-77.4-55-142-128-156.8L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 19.2c-42.6 8.6-79 34.2-102 69.3L38.8 5.1zM406.2 416L160 222.1l0 4.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S115.4 416 128 416l278.2 0zm-40.9 77.3c12-12 18.7-28.3 18.7-45.3l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0c-17.7 0-32 14.3-32 32l0 19.2C119 66 64 130.6 64 208l0 18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416l384 0c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8l0-18.8c0-77.4-55-142-128-156.8L256 32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBezierCurve (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 136l0-48 48 0 0 48-48 0zM288 32c-26.5 0-48 21.5-48 48l0 4L121.6 84C111.2 62.7 89.3 48 64 48C28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36l66.9 0c-58.9 39.6-98.9 105-104 180L80 320c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-3.3 0c5.9-67 48.5-123.4 107.5-149.1c8.6 12.7 23.2 21.1 39.8 21.1l64 0c16.6 0 31.1-8.4 39.8-21.1c59 25.7 101.6 82.1 107.5 149.1l-3.3 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-4.5 0c-5-75-45.1-140.4-104-180l66.9 0c10.4 21.3 32.3 36 57.6 36c35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36L400 84l0-4c0-26.5-21.5-48-48-48l-64 0zM88 376l48 0 0 48-48 0 0-48zm416 48l0-48 48 0 0 48-48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBicycle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l25.7 0 34.6 64-149.4 0-27.4-38C191 99.7 183.7 96 176 96l-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l43.7 0 22.1 30.7-26.6 53.1c-10-2.5-20.5-3.8-31.2-3.8C57.3 224 0 281.3 0 352s57.3 128 128 128c65.3 0 119.1-48.9 127-112l49 0c8.5 0 16.3-4.5 20.7-11.8l84.8-143.5 21.7 40.1C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L375.4 48.8C369.8 38.4 359 32 347.2 32L312 32zM458.6 303.7l32.3 59.7c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-32.3-59.7c3.6-.6 7.4-.9 11.2-.9c39.8 0 72 32.2 72 72s-32.2 72-72 72s-72-32.2-72-72c0-18.6 7-35.5 18.6-48.3zM133.2 368l65 0c-7.3 32.1-36 56-70.2 56c-39.8 0-72-32.2-72-72s32.2-72 72-72c1.7 0 3.4 .1 5.1 .2l-24.2 48.5c-9 18.1 4.1 39.4 24.3 39.4zm33.7-48l50.7-101.3 72.9 101.2-.1 .1-123.5 0zm90.6-128l108.5 0L317 274.8 257.4 192z\"},\"child\":[]}]})(props);\n};\nexport function FaBinoculars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 32l32 0c17.7 0 32 14.3 32 32l0 32L96 96l0-32c0-17.7 14.3-32 32-32zm64 96l0 320c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32l0-59.1c0-34.6 9.4-68.6 27.2-98.3C40.9 267.8 49.7 242.4 53 216L60.5 156c2-16 15.6-28 31.8-28l99.8 0zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6c17.8 29.7 27.2 63.7 27.2 98.3l0 59.1c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-320 99.8 0zM320 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32zm-32 64l0 160-64 0 0-160 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBiohazard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M173.2 0c-1.8 0-3.5 .7-4.8 2C138.5 32.3 120 74 120 120c0 26.2 6 50.9 16.6 73c-22 2.4-43.8 9.1-64.2 20.5C37.9 232.8 13.3 262.4 .4 296c-.7 1.7-.5 3.7 .5 5.2c2.2 3.7 7.4 4.3 10.6 1.3C64.2 254.3 158 245.1 205 324s-8.1 153.1-77.6 173.2c-4.2 1.2-6.3 5.9-4.1 9.6c1 1.6 2.6 2.7 4.5 3c36.5 5.9 75.2 .1 109.7-19.2c20.4-11.4 37.4-26.5 50.5-43.8c13.1 17.3 30.1 32.4 50.5 43.8c34.5 19.3 73.3 25.2 109.7 19.2c1.9-.3 3.5-1.4 4.5-3c2.2-3.7 .1-8.4-4.1-9.6C379.1 477.1 324 403 371 324s140.7-69.8 193.5-21.4c3.2 2.9 8.4 2.3 10.6-1.3c1-1.6 1.1-3.5 .5-5.2c-12.9-33.6-37.5-63.2-72.1-82.5c-20.4-11.4-42.2-18.1-64.2-20.5C450 170.9 456 146.2 456 120c0-46-18.5-87.7-48.4-118c-1.3-1.3-3-2-4.8-2c-5 0-8.4 5.2-6.7 9.9C421.7 80.5 385.6 176 288 176S154.3 80.5 179.9 9.9c1.7-4.7-1.6-9.9-6.7-9.9zM240 272a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM181.7 417.6c6.3-11.8 9.8-25.1 8.6-39.8c-19.5-18-34-41.4-41.2-67.8c-12.5-8.1-26.2-11.8-40-12.4c-9-.4-18.1 .6-27.1 2.7c7.8 57.1 38.7 106.8 82.9 139.4c6.8-6.7 12.6-14.1 16.8-22.1zM288 64c-28.8 0-56.3 5.9-81.2 16.5c2 8.3 5 16.2 9 23.5c6.8 12.4 16.7 23.1 30.1 30.3c13.3-4.1 27.5-6.3 42.2-6.3s28.8 2.2 42.2 6.3c13.4-7.2 23.3-17.9 30.1-30.3c4-7.3 7-15.2 9-23.5C344.3 69.9 316.8 64 288 64zM426.9 310c-7.2 26.4-21.7 49.7-41.2 67.8c-1.2 14.7 2.2 28.1 8.6 39.8c4.3 8 10 15.4 16.8 22.1c44.3-32.6 75.2-82.3 82.9-139.4c-9-2.2-18.1-3.1-27.1-2.7c-13.8 .6-27.5 4.4-40 12.4z\"},\"child\":[]}]})(props);\n};\nexport function FaBitcoinSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 32C48 14.3 62.3 0 80 0s32 14.3 32 32l0 32 32 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32c0 1.5-.1 3.1-.3 4.5C254.1 82.2 288 125.1 288 176c0 24.2-7.7 46.6-20.7 64.9c31.7 19.8 52.7 55 52.7 95.1c0 61.9-50.1 112-112 112l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-6.3 0C18.7 448 0 429.3 0 406.3L0 288l0-22.3L0 224 0 101.6C0 80.8 16.8 64 37.6 64L48 64l0-32zM64 224l112 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L64 128l0 96zm112 64L64 288l0 96 144 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBlenderPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 352L196.8 52.3C194.2 24.2 216.3 0 244.6 0L534.1 0c21.1 0 36.4 20.1 30.9 40.4L558.5 64 400 64c-8.8 0-16 7.2-16 16s7.2 16 16 16l149.8 0-17.5 64L400 160c-8.8 0-16 7.2-16 16s7.2 16 16 16l123.6 0-17.5 64L400 256c-8.8 0-16 7.2-16 16s7.2 16 16 16l97.5 0L480 352l-256 0zm-16 32l288 0c26.5 0 48 21.5 48 48l0 32c0 26.5-21.5 48-48 48l-288 0c-26.5 0-48-21.5-48-48l0-32c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM147.5 30.7c10.8 6.7 15.3 21 10.6 33.4l-22 57.8c-4.2 10.9-14.5 17.6-25.3 16.4l-33.3-3.6c-13.6 42.2-13.6 88.4 0 130.7l33.3-3.6c10.9-1.2 21.2 5.5 25.3 16.4l22 57.8c4.7 12.4 .2 26.7-10.6 33.4l-44 27.2c-9.7 6-21.9 4.2-29.8-4.3C-24.6 286-24.6 114 73.7 7.8C81.6-.7 93.8-2.5 103.5 3.5l44 27.2z\"},\"child\":[]}]})(props);\n};\nexport function FaBlender (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0l64 0 32 0L470.1 0c21.1 0 36.4 20.1 30.9 40.4L494.5 64 336 64c-8.8 0-16 7.2-16 16s7.2 16 16 16l149.8 0-17.5 64L336 160c-8.8 0-16 7.2-16 16s7.2 16 16 16l123.6 0-17.5 64L336 256c-8.8 0-16 7.2-16 16s7.2 16 16 16l97.5 0L416 352l-256 0-8.7-96L64 256c-35.3 0-64-28.7-64-64L0 64zM145.5 192L133.8 64 64 64l0 128 81.5 0zM144 384l288 0c26.5 0 48 21.5 48 48l0 32c0 26.5-21.5 48-48 48l-288 0c-26.5 0-48-21.5-48-48l0-32c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaBlog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 32c0 17.7 14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0c-17.7 0-32 14.3-32 32zm0 96c0 17.7 14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192c-17.7 0-32 14.3-32 32zM96 144c0-26.5-21.5-48-48-48S0 117.5 0 144L0 368c0 79.5 64.5 144 144 144s144-64.5 144-144s-64.5-144-144-144l-16 0 0 96 16 0c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48l0-224z\"},\"child\":[]}]})(props);\n};\nexport function FaBold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l48 0 16 0 128 0c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128L96 480l-16 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-160L48 96 32 96C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64L112 96l0 128 112 0zM112 288l0 128 144 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0-112 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBoltLightning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256L28.5 28c2-16 15.6-28 31.8-28H228.9c15 0 27.1 12.1 27.1 27.1c0 3.2-.6 6.5-1.7 9.5L208 160H347.3c20.2 0 36.7 16.4 36.7 36.7c0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7h-2.9c-15.7 0-28.5-12.8-28.5-28.5c0-2.3 .3-4.6 .9-6.9L176 288H32c-17.7 0-32-14.3-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaBolt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288l111.5 0L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7l-111.5 0L349.4 44.6z\"},\"child\":[]}]})(props);\n};\nexport function FaBomb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M459.1 52.4L442.6 6.5C440.7 2.6 436.5 0 432.1 0s-8.5 2.6-10.4 6.5L405.2 52.4l-46 16.8c-4.3 1.6-7.3 5.9-7.2 10.4c0 4.5 3 8.7 7.2 10.2l45.7 16.8 16.8 45.8c1.5 4.4 5.8 7.5 10.4 7.5s8.9-3.1 10.4-7.5l16.5-45.8 45.7-16.8c4.2-1.5 7.2-5.7 7.2-10.2c0-4.6-3-8.9-7.2-10.4L459.1 52.4zm-132.4 53c-12.5-12.5-32.8-12.5-45.3 0l-2.9 2.9C256.5 100.3 232.7 96 208 96C93.1 96 0 189.1 0 304S93.1 512 208 512s208-93.1 208-208c0-24.7-4.3-48.5-12.2-70.5l2.9-2.9c12.5-12.5 12.5-32.8 0-45.3l-80-80zM200 192c-57.4 0-104 46.6-104 104l0 8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-8c0-75.1 60.9-136 136-136l8 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-8 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M153.7 144.8c6.9 16.3 20.6 31.2 38.3 31.2l192 0c17.7 0 31.4-14.9 38.3-31.2C434.4 116.1 462.9 96 496 96c44.2 0 80 35.8 80 80c0 30.4-17 56.9-42 70.4c-3.6 1.9-6 5.5-6 9.6s2.4 7.7 6 9.6c25 13.5 42 40 42 70.4c0 44.2-35.8 80-80 80c-33.1 0-61.6-20.1-73.7-48.8C415.4 350.9 401.7 336 384 336l-192 0c-17.7 0-31.4 14.9-38.3 31.2C141.6 395.9 113.1 416 80 416c-44.2 0-80-35.8-80-80c0-30.4 17-56.9 42-70.4c3.6-1.9 6-5.5 6-9.6s-2.4-7.7-6-9.6C17 232.9 0 206.4 0 176c0-44.2 35.8-80 80-80c33.1 0 61.6 20.1 73.7 48.8z\"},\"child\":[]}]})(props);\n};\nexport function FaBong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 208.5c0 29.1-15.6 53.9-37.2 67.8c-17.2 11.1-31.5 26.1-41.7 43.7l221.8 0c-10.2-17.6-24.5-32.6-41.7-43.7c-21.6-13.9-37.2-38.7-37.2-67.8L224 64l-64 0 0 144.5zM288 64l0 144.5c0 5.7 3.1 10.9 7.9 14c11.2 7.2 21.5 15.5 30.9 24.8L366.1 208l-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l24 24 24 24c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3C374 314.1 384 347.9 384 384c0 39.4-11.9 76.1-32.2 106.5c-9.6 14.4-26.5 21.5-43.8 21.5L76.1 512c-17.3 0-34.2-7.1-43.8-21.5C11.9 460.1 0 423.4 0 384c0-67.8 35.1-127.3 88.1-161.5c4.8-3.1 7.9-8.3 7.9-14L96 64C78.3 64 64 49.7 64 32S78.3 0 96 0l16 0L272 0l16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBookAtlas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zM247.4 283.8c-3.7 3.7-6.2 4.2-7.4 4.2s-3.7-.5-7.4-4.2c-3.8-3.7-8-10-11.8-18.9c-6.2-14.5-10.8-34.3-12.2-56.9l63 0c-1.5 22.6-6 42.4-12.2 56.9c-3.8 8.9-8 15.2-11.8 18.9zm42.7-9.9c7.3-18.3 12-41.1 13.4-65.9l31.1 0c-4.7 27.9-21.4 51.7-44.5 65.9zm0-163.8c23.2 14.2 39.9 38 44.5 65.9l-31.1 0c-1.4-24.7-6.1-47.5-13.4-65.9zM368 192a128 128 0 1 0 -256 0 128 128 0 1 0 256 0zM145.3 208l31.1 0c1.4 24.7 6.1 47.5 13.4 65.9c-23.2-14.2-39.9-38-44.5-65.9zm31.1-32l-31.1 0c4.7-27.9 21.4-51.7 44.5-65.9c-7.3 18.3-12 41.1-13.4 65.9zm56.1-75.8c3.7-3.7 6.2-4.2 7.4-4.2s3.7 .5 7.4 4.2c3.8 3.7 8 10 11.8 18.9c6.2 14.5 10.8 34.3 12.2 56.9l-63 0c1.5-22.6 6-42.4 12.2-56.9c3.8-8.9 8-15.2 11.8-18.9z\"},\"child\":[]}]})(props);\n};\nexport function FaBookBible (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l288 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L384 0 96 0zm0 384l256 0 0 64L96 448c-17.7 0-32-14.3-32-32s14.3-32 32-32zM208 80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 112c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-112-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaBookBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 43 43 0 96 0l96 0 0 190.7c0 13.4 15.5 20.9 26 12.5L272 160l54 43.2c10.5 8.4 26 .9 26-12.5L352 0l32 0 32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBookJournalWhills (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zm90.4-234.4l-21.2-21.2c-3 10.1-5.1 20.6-5.1 31.6c0 .2 0 .5 .1 .8s.1 .5 .1 .8L165.2 226c2.5 2.1 3.4 5.8 2.3 8.9c-1.3 3-4.1 5.1-7.5 5.1c-1.9-.1-3.8-.8-5.2-2l-23.6-20.6C142.8 267 186.9 304 240 304s97.3-37 108.9-86.6L325.3 238c-1.4 1.2-3.3 2-5.3 2c-2.2-.1-4.4-1.1-6-2.8c-1.2-1.5-1.9-3.4-2-5.2c.1-2.2 1.1-4.4 2.8-6l37.1-32.5c0-.3 0-.5 .1-.8s.1-.5 .1-.8c0-11-2.1-21.5-5.1-31.6l-21.2 21.2c-3.1 3.1-8.1 3.1-11.3 0s-3.1-8.1 0-11.2l26.4-26.5c-8.2-17-20.5-31.7-35.9-42.6c-2.7-1.9-6.2 1.4-5 4.5c8.5 22.4 3.6 48-13 65.6c-3.2 3.4-3.6 8.9-.9 12.7c9.8 14 12.7 31.9 7.5 48.5c-5.9 19.4-22 34.1-41.9 38.3l-1.4-34.3 12.6 8.6c.6 .4 1.5 .6 2.3 .6c1.5 0 2.7-.8 3.5-2s.6-2.8-.1-4L260 225.4l18-3.6c1.8-.4 3.1-2.1 3.1-4s-1.4-3.5-3.1-3.9l-18-3.7 8.5-14.3c.8-1.2 .9-2.9 .1-4.1s-2-2-3.5-2l-.1 0c-.7 .1-1.5 .3-2.1 .7l-14.1 9.6L244 87.9c-.1-2.2-1.9-3.9-4-3.9s-3.9 1.6-4 3.9l-4.6 110.8-12-8.1c-1.5-1.1-3.6-.9-5 .4s-1.6 3.4-.8 5l8.6 14.3-18 3.7c-1.8 .4-3.1 2-3.1 3.9s1.4 3.6 3.1 4l18 3.8-8.6 14.2c-.2 .6-.5 1.4-.5 2c0 1.1 .5 2.1 1.2 3c.8 .6 1.8 1 2.8 1c.7 0 1.6-.2 2.2-.6l10.4-7.1-1.4 32.8c-19.9-4.1-36-18.9-41.9-38.3c-5.1-16.6-2.2-34.4 7.6-48.5c2.7-3.9 2.3-9.3-.9-12.7c-16.6-17.5-21.6-43.1-13.1-65.5c1.2-3.1-2.3-6.4-5-4.5c-15.3 10.9-27.6 25.6-35.8 42.6l26.4 26.5c3.1 3.1 3.1 8.1 0 11.2s-8.1 3.1-11.2 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBookMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zM208 112l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaBookOpenReader (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 96a96 96 0 1 1 192 0A96 96 0 1 1 160 96zm80 152l0 264-48.4-24.2c-20.9-10.4-43.5-17-66.8-19.3l-96-9.6C12.5 457.2 0 443.5 0 427L0 224c0-17.7 14.3-32 32-32l30.3 0c63.6 0 125.6 19.6 177.7 56zm32 264l0-264c52.1-36.4 114.1-56 177.7-56l30.3 0c17.7 0 32 14.3 32 32l0 203c0 16.4-12.5 30.2-28.8 31.8l-96 9.6c-23.2 2.3-45.9 8.9-66.8 19.3L272 512z\"},\"child\":[]}]})(props);\n};\nexport function FaBookOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5l0-377.4c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C93.5 32 46.3 45.3 18.1 56.1C6.8 60.5 0 71.7 0 83.8L0 454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5l0-370.3c0-12.1-6.8-23.3-18.1-27.6C529.7 45.3 482.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11L304 456c0 11.4 11.7 19.3 22.4 15.5z\"},\"child\":[]}]})(props);\n};\nexport function FaBookQuran (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 0c53 0 96 43 96 96l0 320c0 53-43 96-96 96L64 512l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0L64 0 352 0zm0 384L96 384l0 64 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zM274.1 150.2l-8.9 21.4-23.1 1.9c-5.7 .5-8 7.5-3.7 11.2L256 199.8l-5.4 22.6c-1.3 5.5 4.7 9.9 9.6 6.9L280 217.2l19.8 12.1c4.9 3 10.9-1.4 9.6-6.9L304 199.8l17.6-15.1c4.3-3.7 2-10.8-3.7-11.2l-23.1-1.9-8.9-21.4c-2.2-5.3-9.6-5.3-11.8 0zM96 192c0 70.7 57.3 128 128 128c25.6 0 49.5-7.5 69.5-20.5c3.2-2.1 4.5-6.2 3.1-9.7s-5.2-5.6-9-4.8c-6.1 1.2-12.5 1.9-19 1.9c-52.4 0-94.9-42.5-94.9-94.9s42.5-94.9 94.9-94.9c6.5 0 12.8 .7 19 1.9c3.8 .8 7.5-1.3 9-4.8s.2-7.6-3.1-9.7C273.5 71.5 249.6 64 224 64C153.3 64 96 121.3 96 192z\"},\"child\":[]}]})(props);\n};\nexport function FaBookSkull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zM320 112c0-35.3-35.8-64-80-64s-80 28.7-80 64c0 20.9 12.6 39.5 32 51.2l0 12.8c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-12.8c19.4-11.7 32-30.3 32-51.2zM208 96a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM134.3 209.3c-8.1-3.5-17.5 .3-21 8.4s.3 17.5 8.4 21L199.4 272l-77.7 33.3c-8.1 3.5-11.9 12.9-8.4 21s12.9 11.9 21 8.4L240 289.4l105.7 45.3c8.1 3.5 17.5-.3 21-8.4s-.3-17.5-8.4-21L280.6 272l77.7-33.3c8.1-3.5 11.9-12.9 8.4-21s-12.9-11.9-21-8.4L240 254.6 134.3 209.3z\"},\"child\":[]}]})(props);\n};\nexport function FaBookTanakh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 0c53 0 96 43 96 96l0 320c0 53-43 96-96 96L64 512l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0L64 0 352 0zm0 384L96 384l0 64 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zM138.7 208l13.9 24-27.7 0 13.9-24zm-13.9-24L97.1 232c-6.2 10.7 1.5 24 13.9 24l55.4 0 27.7 48c6.2 10.7 21.6 10.7 27.7 0l27.7-48 55.4 0c12.3 0 20-13.3 13.9-24l-27.7-48 27.7-48c6.2-10.7-1.5-24-13.9-24l-55.4 0L221.9 64c-6.2-10.7-21.6-10.7-27.7 0l-27.7 48L111 112c-12.3 0-20 13.3-13.9 24l27.7 48zm27.7 0l27.7-48 55.4 0 27.7 48-27.7 48-55.4 0-27.7-48zm0-48l-13.9 24-13.9-24 27.7 0zm41.6-24L208 88l13.9 24-27.7 0zm69.3 24l27.7 0-13.9 24-13.9-24zm13.9 72l13.9 24-27.7 0 13.9-24zm-55.4 48L208 280l-13.9-24 27.7 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l288 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L384 0 96 0zm0 384l256 0 0 64L96 448c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16zm16 48l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaBorderAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 96l0 128-128 0 0-128 128 0zm0 192l0 128-128 0 0-128 128 0zM192 224L64 224 64 96l128 0 0 128zM64 288l128 0 0 128L64 416l0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBorderNone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm96-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM320 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-320a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0-448a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 288a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm192 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM416 192a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaBorderTopLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336c0-8.8 7.2-16 16-16l336 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32C35.8 32 0 67.8 0 112L0 448zm160 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm-96 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm0 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaBoreHole (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c-17.7 0-32 14.3-32 32l0 264.6c-19.1 11.1-32 31.7-32 55.4c0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4L288 32c0-17.7-14.3-32-32-32zM48 128c-26.5 0-48 21.5-48 48L0 464c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48l-80 0c-17.7 0-32 14.3-32 32l0 192c0 53-43 96-96 96s-96-43-96-96l0-192c0-17.7-14.3-32-32-32l-80 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBottleDroplet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C82.7 0 72 10.7 72 24s10.7 24 24 24c4.4 0 8 3.6 8 8l0 64.9c0 12.2-7.2 23.1-17.2 30.1C53.7 174.1 32 212.5 32 256l0 192c0 35.3 28.7 64 64 64l128 0c35.3 0 64-28.7 64-64l0-192c0-43.5-21.7-81.9-54.8-105c-10-7-17.2-17.9-17.2-30.1L216 56c0-4.4 3.6-8 8-8c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0s0 0 0 0s0 0 0 0L104 0s0 0 0 0s0 0 0 0L96 0zm64 382c-26.5 0-48-20.1-48-45c0-16.8 22.1-48.1 36.3-66.4c6-7.8 17.5-7.8 23.5 0C185.9 288.9 208 320.2 208 337c0 24.9-21.5 45-48 45z\"},\"child\":[]}]})(props);\n};\nexport function FaBottleWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120 0l80 0c13.3 0 24 10.7 24 24l0 40L96 64l0-40c0-13.3 10.7-24 24-24zM32 167.5c0-19.5 10-37.6 26.6-47.9l15.8-9.9C88.7 100.7 105.2 96 122.1 96l75.8 0c16.9 0 33.4 4.7 47.7 13.7l15.8 9.9C278 129.9 288 148 288 167.5c0 17-7.5 32.3-19.4 42.6C280.6 221.7 288 238 288 256c0 19.1-8.4 36.3-21.7 48c13.3 11.7 21.7 28.9 21.7 48s-8.4 36.3-21.7 48c13.3 11.7 21.7 28.9 21.7 48c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64c0-19.1 8.4-36.3 21.7-48C40.4 388.3 32 371.1 32 352s8.4-36.3 21.7-48C40.4 292.3 32 275.1 32 256c0-18 7.4-34.3 19.4-45.9C39.5 199.7 32 184.5 32 167.5zM96 240c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0c-8.8 0-16 7.2-16 16zm16 112c-8.8 0-16 7.2-16 16s7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBowlFood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 192c0-35.3 28.7-64 64-64c.5 0 1.1 0 1.6 0C73 91.5 105.3 64 144 64c15 0 29 4.1 40.9 11.2C198.2 49.6 225.1 32 256 32s57.8 17.6 71.1 43.2C339 68.1 353 64 368 64c38.7 0 71 27.5 78.4 64c.5 0 1.1 0 1.6 0c35.3 0 64 28.7 64 64c0 11.7-3.1 22.6-8.6 32L8.6 224C3.1 214.6 0 203.7 0 192zm0 91.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z\"},\"child\":[]}]})(props);\n};\nexport function FaBowlRice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 56c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm24 48l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 176l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 200c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-24-96l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-24-96l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-24-96l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 32l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaBowlingBall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM240 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM208 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-64-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaBoxArchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32l448 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96L0 64C0 46.3 14.3 32 32 32zm0 128l448 0 0 256c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-256zm128 80c0 8.8 7.2 16 16 16l160 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-160 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaBoxOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M58.9 42.1c3-6.1 9.6-9.6 16.3-8.7L320 64 564.8 33.4c6.7-.8 13.3 2.7 16.3 8.7l41.7 83.4c9 17.9-.6 39.6-19.8 45.1L439.6 217.3c-13.9 4-28.8-1.9-36.2-14.3L320 64 236.6 203c-7.4 12.4-22.3 18.3-36.2 14.3L37.1 170.6c-19.3-5.5-28.8-27.2-19.8-45.1L58.9 42.1zM321.1 128l54.9 91.4c14.9 24.8 44.6 36.6 72.5 28.6L576 211.6l0 167c0 22-15 41.2-36.4 46.6l-204.1 51c-10.2 2.6-20.9 2.6-31 0l-204.1-51C79 419.7 64 400.5 64 378.5l0-167L191.6 248c27.8 8 57.6-3.8 72.5-28.6L318.9 128l2.2 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBoxTissue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M92.5 0L208 0c40 0 52 24 64 48s24 48 64 48l85.2 0C436 96 448 108 448 122.8c0 3.4-.7 6.8-1.9 10L409.6 224 384 288l-256 0-16-64L64.9 35.4c-.6-2.3-.9-4.6-.9-6.9C64 12.8 76.8 0 92.5 0zM79 224l16 64-15 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 256 0 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-13.5 0 25.6-64 19.9 0c26.5 0 48 21.5 48 48l0 112L0 384 0 272c0-26.5 21.5-48 48-48l31 0zM0 416l512 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48l0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M50.7 58.5L0 160l208 0 0-128L93.7 32C75.5 32 58.9 42.3 50.7 58.5zM240 160l208 0L397.3 58.5C389.1 42.3 372.5 32 354.3 32L240 32l0 128zm208 32L0 192 0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-224z\"},\"child\":[]}]})(props);\n};\nexport function FaBoxesPacking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48c0-26.5 21.5-48 48-48L592 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48l-210.7 0c1.8-5 2.7-10.4 2.7-16l0-242.7c18.6-6.6 32-24.4 32-45.3l0-32c0-26.5-21.5-48-48-48l-112 0 0-80zM571.3 347.3c6.2-6.2 6.2-16.4 0-22.6l-64-64c-6.2-6.2-16.4-6.2-22.6 0l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L480 310.6 480 432c0 8.8 7.2 16 16 16s16-7.2 16-16l0-121.4 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0zM0 176c0-8.8 7.2-16 16-16l352 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16L16 224c-8.8 0-16-7.2-16-16l0-32zm352 80l0 224c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32l0-224 320 0zM144 320c-8.8 0-16 7.2-16 16s7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBoxesStacked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 0L208 0c-26.5 0-48 21.5-48 48l0 112c0 35.3 28.7 64 64 64l128 0c35.3 0 64-28.7 64-64l0-112c0-26.5-21.5-48-48-48L328 0l0 80c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-80zM64 256c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64l0-128c0-35.3-28.7-64-64-64l-40 0 0 80c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-80-40 0zM352 512l160 0c35.3 0 64-28.7 64-64l0-128c0-35.3-28.7-64-64-64l-40 0 0 80c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-80-40 0c-15 0-28.8 5.1-39.7 13.8c4.9 10.4 7.7 22 7.7 34.2l0 160c0 12.2-2.8 23.8-7.7 34.2C323.2 506.9 337 512 352 512z\"},\"child\":[]}]})(props);\n};\nexport function FaBraille (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96a64 64 0 1 1 128 0A64 64 0 1 1 0 96zM224 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM80 416a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM224 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM352 96a64 64 0 1 1 128 0A64 64 0 1 1 352 96zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0A64 64 0 1 1 512 96zm64 176a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM416 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBrain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M184 0c30.9 0 56 25.1 56 56l0 400c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56l0-400c0-30.9 25.1-56 56-56z\"},\"child\":[]}]})(props);\n};\nexport function FaBrazilianRealSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 0c17.7 0 32 14.3 32 32l0 18.2c12.5 2.3 24.7 6.4 36.2 12.1l10.1 5.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-10.2-5.1c-9.9-5-20.9-7.5-32-7.5l-1.7 0c-29.8 0-53.9 24.1-53.9 53.9c0 22 13.4 41.8 33.9 50l52 20.8c44.7 17.9 74.1 61.2 74.1 109.4l0 3.4c0 51.2-33.6 94.6-80 109.2l0 21.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-19.4c-15-3.5-29.4-9.7-42.3-18.3l-23.4-15.6c-14.7-9.8-18.7-29.7-8.9-44.4s29.7-18.7 44.4-8.9L361.2 389c10.8 7.2 23.4 11 36.3 11c27.9 0 50.5-22.6 50.5-50.5l0-3.4c0-22-13.4-41.8-33.9-50l-52-20.8C317.3 257.4 288 214.1 288 165.9C288 114 321.5 70 368 54.2L368 32c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320 64 320l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 288 0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80L64 96l0 160z\"},\"child\":[]}]})(props);\n};\nexport function FaBreadSlice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C192 32 0 64 0 192c0 35.3 28.7 64 64 64V432c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V256c35.3 0 64-28.7 64-64C512 64 320 32 256 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBridgeCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32l40 0 0 64-72 0 0 128c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2l0-72.2-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM488 96l0 64-80 0 0-64 80 0zM360 96l0 64-80 0 0-64 80 0zM232 96l0 64-80 0 0-64 80 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBridgeCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32l40 0 0 64-72 0 0 128c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2l0-72.2-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM488 96l0 64-80 0 0-64 80 0zM360 96l0 64-80 0 0-64 80 0zM232 96l0 64-80 0 0-64 80 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBridgeCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32l40 0 0 64-72 0 0 128c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2l0-72.2-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM488 96l0 64-80 0 0-64 80 0zM360 96l0 64-80 0 0-64 80 0zM232 96l0 64-80 0 0-64 80 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaBridgeLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 64c0-17.7 14.3-32 32-32l512 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-40 0 0 64-8 0c-61.9 0-112 50.1-112 112l0 24.6c-9.9 5.8-18.2 14.1-23.8 24.1c-17.6-20-43.4-32.7-72.2-32.7c-53 0-96 43-96 96l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64c0-53-43-96-96-96l0-128 72 0 0-64L64 96C46.3 96 32 81.7 32 64zM408 96l0 64 80 0 0-64-80 0zm-48 64l0-64-80 0 0 64 80 0zM152 96l0 64 80 0 0-64-80 0zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaBridgeWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 78.3 14.3 64 32 64l512 0c17.7 0 32 14.3 32 32l0 35.6c0 15.7-12.7 28.4-28.4 28.4c-37.3 0-67.6 30.2-67.6 67.6l0 124.9c-12.9 0-25.8 3.9-36.8 11.7c-18 12.4-40.1 20.3-59.2 20.3c0 0 0 0 0 0l0-.5 0-128c0-53-43-96-96-96s-96 43-96 96l0 128 0 .5c-19 0-41.2-7.9-59.1-20.3c-11.1-7.8-24-11.7-36.9-11.7l0-124.9C96 190.2 65.8 160 28.4 160C12.7 160 0 147.3 0 131.6L0 96zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBridge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l40 0 0 64L0 160 0 288c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96l0-128-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM456 96l0 64-80 0 0-64 80 0zM328 96l0 64-80 0 0-64 80 0zM200 96l0 64-80 0 0-64 80 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBriefcaseMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zm96 152c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaBriefcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160l0 96 192 0 128 0 192 0 0-96c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM512 288l-192 0 0 32c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-32L0 288 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaBroomBall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M566.6 9.4c12.5 12.5 12.5 32.8 0 45.3l-192 192 34.7 34.7c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6l-29.1 0L256 211.7l0-29.1c0-12.5 10.1-22.6 22.6-22.6c6 0 11.8 2.4 16 6.6l34.7 34.7 192-192c12.5-12.5 32.8-12.5 45.3 0zm-344 225.5L341.1 353.4c3.7 42.7-11.7 85.2-42.3 115.8C271.4 496.6 234.2 512 195.5 512L22.1 512C9.9 512 0 502.1 0 489.9c0-6.3 2.7-12.3 7.3-16.5L133.7 359.7c4.2-3.7-.4-10.4-5.4-7.9L77.2 377.4c-6.1 3-13.2-1.4-13.2-8.2c0-31.5 12.5-61.7 34.8-84l8-8c30.6-30.6 73.1-45.9 115.8-42.3zM464 352a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaBroom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M566.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192-34.7-34.7c-4.2-4.2-10-6.6-16-6.6c-12.5 0-22.6 10.1-22.6 22.6l0 29.1L364.3 320l29.1 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16l-34.7-34.7 192-192zM341.1 353.4L222.6 234.9c-42.7-3.7-85.2 11.7-115.8 42.3l-8 8C76.5 307.5 64 337.7 64 369.2c0 6.8 7.1 11.2 13.2 8.2l51.1-25.5c5-2.5 9.5 4.1 5.4 7.9L7.3 473.4C2.7 477.6 0 483.6 0 489.9C0 502.1 9.9 512 22.1 512l173.3 0c38.8 0 75.9-15.4 103.4-42.8c30.6-30.6 45.9-73.1 42.3-115.8z\"},\"child\":[]}]})(props);\n};\nexport function FaBrush (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M162.4 6c-1.5-3.6-5-6-8.9-6l-19 0c-3.9 0-7.5 2.4-8.9 6L104.9 57.7c-3.2 8-14.6 8-17.8 0L66.4 6c-1.5-3.6-5-6-8.9-6L48 0C21.5 0 0 21.5 0 48L0 224l0 22.4L0 256l9.6 0 364.8 0 9.6 0 0-9.6 0-22.4 0-176c0-26.5-21.5-48-48-48L230.5 0c-3.9 0-7.5 2.4-8.9 6L200.9 57.7c-3.2 8-14.6 8-17.8 0L162.4 6zM0 288l0 32c0 35.3 28.7 64 64 64l64 0 0 64c0 35.3 28.7 64 64 64s64-28.7 64-64l0-64 64 0c35.3 0 64-28.7 64-64l0-32L0 288zM192 432a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaBucket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 152l0 8-48 0 0-8C48 68.1 116.1 0 200 0l48 0c83.9 0 152 68.1 152 152l0 8-48 0 0-8c0-57.4-46.6-104-104-104l-48 0C142.6 48 96 94.6 96 152zM0 224c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-5.1 0L388.5 469c-2.6 24.4-23.2 43-47.7 43l-233.6 0c-24.6 0-45.2-18.5-47.7-43L37.1 256 32 256c-17.7 0-32-14.3-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaBugSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L477.4 348.9c1.7-9.4 2.6-19 2.6-28.9l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64.3 0c-1.1-14.1-5-27.5-11.1-39.5c.7-.6 1.4-1.2 2.1-1.9l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-.7 .7-1.3 1.4-1.9 2.1C409.2 164.1 393.1 160 376 160l-112 0c-8.3 0-16.3 1-24 2.8L38.8 5.1zM320 0c-53 0-96 43-96 96l0 3.6c0 15.7 12.7 28.4 28.4 28.4l135.1 0c15.7 0 28.4-12.7 28.4-28.4l0-3.6c0-53-43-96-96-96zM160.3 256L96 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c0 24.6 5.5 47.8 15.4 68.6c-2.2 1.3-4.2 2.9-6 4.8l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l63.1-63.1c24.5 21.8 55.8 36.2 90.3 39.6l0-143.7L166.7 227.3c-3.4 9-5.6 18.7-6.4 28.7zM336 479.2c36.6-3.6 69.7-19.6 94.8-43.8L336 360.7l0 118.5z\"},\"child\":[]}]})(props);\n};\nexport function FaBug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c53 0 96 43 96 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4l-135.1 0c-15.7 0-28.4-12.7-28.4-28.4l0-3.6c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4l112 0c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5l64.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6L272 240c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 239.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64.3 0c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaBugs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M164.5 107.4l33.4-73.5c5.5-12.1 .1-26.3-11.9-31.8s-26.3-.1-31.8 11.9L128 71.7 101.9 14.1C96.4 2 82.1-3.3 70.1 2.1S52.7 21.9 58.1 33.9l33.4 73.5c-10.2 7.1-18.2 17-22.9 28.6l-17 0-4.1-20.7c-2.6-13-15.2-21.4-28.2-18.8S-2.1 111.7 .5 124.7l8 40C10.7 175.9 20.6 184 32 184l32 0 0 23.3-37.8 9.5c-9.5 2.4-16.6 10.2-17.9 19.9l-8 56c-1.9 13.1 7.2 25.3 20.4 27.2s25.3-7.2 27.2-20.4l5.7-40 18.4-4.6C82.7 274.6 103.8 288 128 288s45.3-13.4 56.1-33.2l18.4 4.6 5.7 40c1.9 13.1 14 22.2 27.2 20.4s22.2-14 20.4-27.2l-8-56c-1.4-9.7-8.5-17.5-17.9-19.9L192 207.3l0-23.3 32 0c11.4 0 21.3-8.1 23.5-19.3l8-40c2.6-13-5.8-25.6-18.8-28.2s-25.6 5.8-28.2 18.8L204.3 136l-17 0c-4.7-11.6-12.7-21.5-22.9-28.6zM496 286.5l65.6-47c10.8-7.7 13.3-22.7 5.6-33.5s-22.7-13.3-33.5-5.6l-51.4 36.8 6.1-62.9c1.3-13.2-8.4-24.9-21.6-26.2s-24.9 8.4-26.2 21.6L432.8 250c-12.3 1-24.2 5.6-34.1 13.3L384 254.8l6.8-20c4.2-12.6-2.5-26.2-15-30.4s-26.2 2.5-30.4 15l-13.1 38.6c-3.7 10.8 .8 22.8 10.7 28.5l27.7 16L359 322.7 321.5 312c-9.4-2.7-19.5 .6-25.5 8.3l-34.9 44.5c-8.2 10.4-6.4 25.5 4.1 33.7s25.5 6.4 33.7-4.1l25-31.8 18.2 5.2c-.5 22.6 11 44.7 32 56.8s45.9 11 65.2-.7l13.6 13.2-15.1 37.5c-4.9 12.3 1 26.3 13.3 31.2s26.3-1 31.2-13.3L503.5 440c3.6-9.1 1.4-19.4-5.6-26.2l-28-27.1 11.6-20.1 27.7 16c9.9 5.7 22.5 3.7 30-4.9L566.2 347c8.7-10 7.8-25.1-2.2-33.9s-25.1-7.8-33.9 2.2l-13.9 15.9-14.7-8.5c1.7-12.4-.2-25-5.5-36.2z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingCircleArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 184.2c-39.1 32.3-64 81.1-64 135.8c0 49.5 20.4 94.2 53.3 126.2C364.5 505.1 351.1 512 336 512l-96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-96 0c-26.5 0-48-21.5-48-48L0 48zM80 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 96c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm96 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm140.7-67.3c-6.2 6.2-6.2 16.4 0 22.6L521.4 352 432 352c-8.8 0-16 7.2-16 16s7.2 16 16 16l89.4 0-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingColumns (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M243.4 2.6l-224 96c-14 6-21.8 21-18.7 35.8S16.8 160 32 160l0 8c0 13.3 10.7 24 24 24l400 0c13.3 0 24-10.7 24-24l0-8c15.2 0 28.3-10.7 31.3-25.6s-4.8-29.9-18.7-35.8l-224-96c-8-3.4-17.2-3.4-25.2 0zM128 224l-64 0 0 196.3c-.6 .3-1.2 .7-1.8 1.1l-48 32c-11.7 7.8-17 22.4-12.9 35.9S17.9 512 32 512l448 0c14.1 0 26.5-9.2 30.6-22.7s-1.1-28.1-12.9-35.9l-48-32c-.6-.4-1.2-.7-1.8-1.1L448 224l-64 0 0 192-40 0 0-192-64 0 0 192-48 0 0-192-64 0 0 192-40 0 0-192zM256 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM448 0c-17.7 0-32 14.3-32 32l0 480 64 0 0-320 144 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16L480 32c0-17.7-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 88.6 0c-5.4-9.4-8.6-20.3-8.6-32l0-128c0-23.7 12.9-44.4 32-55.4l0-24.6c0-30.5 12.2-58.2 32-78.4L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM464 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingNgo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM168 64l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 64 16 0 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 24c0 13.3-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24l0-88c0-8.8 7.2-16 16-16zM304 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16zm-48 16c0-26.5 21.5-48 48-48s48 21.5 48 48l0 32c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-32zM61.3 71.1l34.7 52L96 80c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4L64 132.8 64 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 159-42.4 17L304 224l-32 0c-8.8 0-16 7.2-16 16l0 32 0 24.2 0 7.8c0 .9 .1 1.7 .2 2.6c2.3 58.1 24.1 144.8 98.7 201.5c-5.8 2.5-12.2 3.9-18.9 3.9l-96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-96 0c-26.5 0-48-21.5-48-48L0 48zM80 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM64 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 96c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM423.1 225.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8l0 187.8c68.2-33 91.5-99 95.4-149.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingUn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM237.3 71.1l34.7 52L272 80c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM112 80l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 89.9 0c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2l0-95.9L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM576 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM352 477.1c0 19.3 15.6 34.9 34.9 34.9l218.2 0c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1l-101.8 0c-51.4 0-93.1 41.7-93.1 93.1z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingWheat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48l-96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-96 0c-26.5 0-48-21.5-48-48L0 48zM80 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 96c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm384 80l0 16c0 44.2-35.8 80-80 80l-16 0 0-16c0-44.2 35.8-80 80-80l16 0zm0 128c0 44.2-35.8 80-80 80l-16 0 0-16c0-44.2 35.8-80 80-80l16 0 0 16zm0 112c0 44.2-35.8 80-80 80l-16 0 0-16c0-44.2 35.8-80 80-80l16 0 0 16zM512 496l0 16-16 0c-44.2 0-80-35.8-80-80l0-16 16 0c44.2 0 80 35.8 80 80zm0-96l-16 0c-44.2 0-80-35.8-80-80l0-16 16 0c44.2 0 80 35.8 80 80l0 16zm0-128l0 16-16 0c-44.2 0-80-35.8-80-80l0-16 16 0c44.2 0 80 35.8 80 80zM528 32c13.3 0 24 10.7 24 24l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-13.3 10.7-24 24-24zm96 64l0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-13.3 10.7-24 24-24s24 10.7 24 24zM456 72c13.3 0 24 10.7 24 24l0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-13.3 10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaBuilding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBullhorn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75l-8.7 0-32 0-96 0c-35.3 0-64 28.7-64 64l0 96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-128 8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-147.6c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4L480 32zm-64 76.7L416 240l0 131.3C357.2 317.8 280.5 288 200.7 288l-8.7 0 0-96 8.7 0c79.8 0 156.5-29.8 215.3-83.3z\"},\"child\":[]}]})(props);\n};\nexport function FaBullseye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 256A192 192 0 1 0 64 256a192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBurger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M61.1 224C45 224 32 211 32 194.9c0-1.9 .2-3.7 .6-5.6C37.9 168.3 78.8 32 256 32s218.1 136.3 223.4 157.3c.5 1.9 .6 3.7 .6 5.6c0 16.1-13 29.1-29.1 29.1L61.1 224zM144 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm240 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zM272 96a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM16 304c0-26.5 21.5-48 48-48l384 0c26.5 0 48 21.5 48 48s-21.5 48-48 48L64 352c-26.5 0-48-21.5-48-48zm16 96c0-8.8 7.2-16 16-16l416 0c8.8 0 16 7.2 16 16l0 16c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBurst (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M37.6 4.2C28-2.3 15.2-1.1 7 7s-9.4 21-2.8 30.5l112 163.3L16.6 233.2C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4L66.8 412.8c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1L392.3 312.2l103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8L388.9 198.7l25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7L278.8 16.6C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6l-32.3 99.6L37.6 4.2z\"},\"child\":[]}]})(props);\n};\nexport function FaBusSimple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0C348.8 0 448 35.2 448 80l0 16 0 320c0 17.7-14.3 32-32 32l0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-192 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32L0 96 0 80C0 35.2 99.2 0 224 0zM64 128l0 128c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 96c-17.7 0-32 14.3-32 32zM80 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaBus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0C422.4 0 512 35.2 512 80l0 16 0 32c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 160c0 17.7-14.3 32-32 32l0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-192 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32l0-160c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32c0 0 0 0 0 0l0-32s0 0 0 0l0-16C64 35.2 153.6 0 288 0zM128 160l0 96c0 17.7 14.3 32 32 32l112 0 0-160-112 0c-17.7 0-32 14.3-32 32zM304 288l112 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-112 0 0 160zM144 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM384 80c0-8.8-7.2-16-16-16L208 64c-8.8 0-16 7.2-16 16s7.2 16 16 16l160 0c8.8 0 16-7.2 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBusinessTime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160l0 96 192 0 160 0 8.2 0c32.3-39.1 81.1-64 135.8-64c5.4 0 10.7 .2 16 .7l0-32.7c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM320 352l-96 0c-17.7 0-32-14.3-32-32l0-32L0 288 0 416c0 35.3 28.7 64 64 64l296.2 0C335.1 449.6 320 410.5 320 368c0-5.4 .2-10.7 .7-16l-.7 0zm320 16a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM496 288c8.8 0 16 7.2 16 16l0 48 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaC (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3s155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8s221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCableCar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM160 56a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM32 288c0-35.3 28.7-64 64-64l136 0 0-66.5-203.1 42c-13 2.7-25.7-5.7-28.4-18.6s5.7-25.7 18.6-28.4l232-48 232-48c13-2.7 25.7 5.7 28.4 18.6s-5.7 25.7-18.6 28.4L280 147.5l0 76.5 136 0c35.3 0 64 28.7 64 64l0 160c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-160zm64 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-64 0zm112 16l0 64c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCakeCandles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M86.4 5.5L61.8 47.6C58 54.1 56 61.6 56 69.2L56 72c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L105.6 5.5C103.6 2.1 100 0 96 0s-7.6 2.1-9.6 5.5zm128 0L189.8 47.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L233.6 5.5C231.6 2.1 228 0 224 0s-7.6 2.1-9.6 5.5zM317.8 47.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L361.6 5.5C359.6 2.1 356 0 352 0s-7.6 2.1-9.6 5.5L317.8 47.6zM128 176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c-35.3 0-64 28.7-64 64l0 71c8.3 5.2 18.1 9 28.8 9c13.5 0 27.2-6.1 38.4-13.4c5.4-3.5 9.9-7.1 13-9.7c1.5-1.3 2.7-2.4 3.5-3.1c.4-.4 .7-.6 .8-.8l.1-.1s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c3.1-3.2 7.4-4.9 11.9-4.8s8.6 2.1 11.6 5.4c0 0 0 0 0 0s0 0 0 0l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c3-3.5 7.4-5.4 12-5.4s9 2 12 5.4l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c2.9-3.4 7.1-5.3 11.6-5.4s8.7 1.6 11.9 4.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0l.1 .1c.2 .2 .4 .4 .8 .8c.8 .7 1.9 1.8 3.5 3.1c3.1 2.6 7.5 6.2 13 9.7c11.2 7.3 24.9 13.4 38.4 13.4c10.7 0 20.5-3.9 28.8-9l0-71c0-35.3-28.7-64-64-64l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48zM448 394.6c-8.5 3.3-18.2 5.4-28.8 5.4c-22.5 0-42.4-9.9-55.8-18.6c-4.1-2.7-7.8-5.4-10.9-7.8c-2.8 2.4-6.1 5-9.8 7.5C329.8 390 310.6 400 288 400s-41.8-10-54.6-18.9c-3.5-2.4-6.7-4.9-9.4-7.2c-2.7 2.3-5.9 4.7-9.4 7.2C201.8 390 182.6 400 160 400s-41.8-10-54.6-18.9c-3.7-2.6-7-5.2-9.8-7.5c-3.1 2.4-6.8 5.1-10.9 7.8C71.2 390.1 51.3 400 28.8 400c-10.6 0-20.3-2.2-28.8-5.4L0 480c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32l0-85.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCalculator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM96 64l192 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32zm32 160a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM96 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM64 416c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32zM192 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm64-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 448a32 32 0 1 1 0-64 32 32 0 1 1 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarDay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm80 64c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16l-96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarDays (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm64 80l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm128 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 400l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM312 376c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32l0 32L48 64C21.5 64 0 85.5 0 112l0 48 448 0 0-48c0-26.5-21.5-48-48-48l-48 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L160 64l0-32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192L0 192 0 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-272zM224 248c13.3 0 24 10.7 24 24l0 56 56 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0 56c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-56-56 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0 0-56c0-13.3 10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarWeek (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm80 64c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16L80 256z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM305 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32l0 32L48 64C21.5 64 0 85.5 0 112l0 48 448 0 0-48c0-26.5-21.5-48-48-48l-48 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L160 64l0-32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192L0 192 0 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-272z\"},\"child\":[]}]})(props);\n};\nexport function FaCameraRetro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M220.6 121.2L271.1 96 448 96l0 96-114.8 0c-21.9-15.1-48.5-24-77.2-24s-55.2 8.9-77.2 24L64 192l0-64 128 0c9.9 0 19.7-2.3 28.6-6.8zM0 128L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L271.1 32c-9.9 0-19.7 2.3-28.6 6.8L192 64l-32 0 0-16c0-8.8-7.2-16-16-16L80 32c-8.8 0-16 7.2-16 16l0 16C28.7 64 0 92.7 0 128zM168 304a88 88 0 1 1 176 0 88 88 0 1 1 -176 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCameraRotate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M213.1 64.8L202.7 96 128 96c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0L426.9 64.8C420.4 45.2 402.1 32 381.4 32L258.6 32c-20.7 0-39 13.2-45.5 32.8zM448 256c0 8.8-7.2 16-16 16l-76.7 0c-6.2 0-11.3-5.1-11.3-11.3c0-3 1.2-5.9 3.3-8L371 229c-13.6-13.4-31.9-21-51-21c-19.2 0-37.7 7.6-51.3 21.3L249 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l19.7-19.7C257.4 172.7 288 160 320 160c31.8 0 62.4 12.6 85 35l23.7-23.7c2.1-2.1 5-3.3 8-3.3c6.2 0 11.3 5.1 11.3 11.3l0 76.7zM192 320c0-8.8 7.2-16 16-16l76.7 0c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8L269 347c13.6 13.4 31.9 21 51 21c19.2 0 37.7-7.6 51.3-21.3L391 327c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-19.7 19.7C382.6 403.3 352 416 320 416c-31.8 0-62.4-12.6-85-35l-23.7 23.7c-2.1 2.1-5 3.3-8 3.3c-6.2 0-11.3-5.1-11.3-11.3l0-76.7z\"},\"child\":[]}]})(props);\n};\nexport function FaCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M149.1 64.8L138.7 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0L362.9 64.8C356.4 45.2 338.1 32 317.4 32L194.6 32c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaCampground (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M377 52c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5L288 60.8 249 12c-11-13.8-31.2-16-45-5s-16 31.2-5 45l48 60L12.3 405.4C4.3 415.4 0 427.7 0 440.4L0 464c0 26.5 21.5 48 48 48l240 0 240 0c26.5 0 48-21.5 48-48l0-23.6c0-12.7-4.3-25.1-12.3-35L329 112l48-60zM288 448l-119.5 0L288 291.7 407.5 448 288 448z\"},\"child\":[]}]})(props);\n};\nexport function FaCandyCane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M348.8 131.5c3.7-2.3 7.9-3.5 12.2-3.5c12.7 0 23 10.3 23 23l0 5.6c0 9.9-5.1 19.1-13.5 24.3L30.1 393.7C.1 412.5-9 451.9 9.7 481.9s58.2 39.1 88.2 20.4L438.4 289.5c45.8-28.6 73.6-78.8 73.6-132.8l0-5.6C512 67.6 444.4 0 361 0c-28.3 0-56 8-80.1 23L254.1 39.7c-30 18.7-39.1 58.2-20.4 88.2s58.2 39.1 88.2 20.4l26.8-16.8zM298.4 49.8c9.2-5.7 19.1-10.1 29.4-13.1L348 97.5c-5.7 1.4-11.2 3.7-16.3 6.8l-12.6 7.9L298.4 49.8zm88.5 52.7l46.2-46.2c8.5 6.5 16.1 14.1 22.6 22.6l-46.2 46.2c-5.1-9.6-13-17.5-22.6-22.6zm28.9 59.3l61.6 20.5c-2.2 10.5-5.8 20.7-10.5 30.2l-62-20.7c6.2-8.8 10.1-19.1 11-30.1zm-86.1 82.5l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zm-107.2 67l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zM119.3 375.7l60.4 37.7-30.2 18.9L89.1 394.6l30.2-18.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCannabis (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c5.3 0 10.3 2.7 13.3 7.1c15.8 23.5 36.7 63.7 49.2 109c7.2 26.4 11.8 55.2 10.4 84c11.5-8.8 23.7-16.7 35.8-23.6c41-23.3 84.4-36.9 112.2-42.5c5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7c-9.1 15.9-19.9 31.7-32.4 46.3c27.8 6.6 52.4 17.3 67.2 25.5c5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1c-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.1c1.5 6.1-.6 12.4-5.5 16.4s-11.6 4.6-17.2 1.9L280 417.2l0 70.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-70.8-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.9s-7-10.3-5.5-16.4l8.3-33.1c-22.2 2.6-45 0-65.2-4.6c-28.9-6.6-54.6-17.6-69.8-26.1c-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14c14.8-8.2 39.4-18.8 67.2-25.5C78.9 296.3 68.1 280.5 59 264.6c-23.4-40.8-37.1-84-42.7-111.7c-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5c12.1 6.9 24.3 14.7 35.8 23.6c-1.4-28.7 3.1-57.6 10.4-84c12.5-45.3 33.4-85.5 49.2-109c3-4.4 8-7.1 13.3-7.1z\"},\"child\":[]}]})(props);\n};\nexport function FaCapsules (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 144c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zM0 144L0 368c0 61.9 50.1 112 112 112s112-50.1 112-112l0-178.4c1.8 19.1 8.2 38 19.8 54.8L372.3 431.7c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 113.3C391.8 61.5 321.9 49 271.3 85.2c-28 20-44.3 50.8-47.3 83l0-24.2c0-61.9-50.1-112-112-112S0 82.1 0 144zm296.6 64.2c-16-23.3-10-55.3 11.9-71c21.2-15.1 50.5-10.3 66 12.2l67 97.6L361.6 303l-65-94.8zM491 407.7c-.8 .6-1.6 1.1-2.4 1.6l4-2.8c-.5 .4-1 .8-1.6 1.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCarBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 96c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l16 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l16 0zm304 96c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32-32 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-32zM80 240c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaCarBurst (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 8c-6.6 0-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6l35.3-32.5 9.5-35.4 10.4-38.6c8-29.9 30.5-52.1 57.9-60.9l41-59.2c11.3-16.3 26.4-28.9 43.5-37.2c-.4-.6-.8-1.2-1.3-1.8c-4.1-5.1-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74C188.4 12 182.6 8 176 8zM367.7 161.5l135.6 36.3c6.5 1.8 11.3 7.4 11.8 14.2l4.6 56.5-201.5-54 32.2-46.6c3.8-5.6 10.8-8.1 17.3-6.4zm-69.9-30l-47.9 69.3c-21.6 3-40.3 18.6-46.3 41l-10.4 38.6-16.6 61.8-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 247.3 66.3-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9L595 388l10.4-38.6c6-22.4-2.5-45.2-19.6-58.7l-6.8-84c-2.7-33.7-26.4-62-59-70.8L384.2 99.7c-32.7-8.8-67.3 4-86.5 31.8zm-17 131a24 24 0 1 1 -12.4 46.4 24 24 0 1 1 12.4-46.4zm217.9 83.2A24 24 0 1 1 545 358.1a24 24 0 1 1 -46.4-12.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCarOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M280 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80zM185.8 224l140.3 0c6.8 0 12.8 4.3 15.1 10.6L360.3 288l-208.6 0 19.1-53.4c2.3-6.4 8.3-10.6 15.1-10.6zm-75.3-10.9L82.2 292.4C62.1 300.9 48 320.8 48 344l0 40 0 64 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 256 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 0-64 0-40c0-23.2-14.1-43.1-34.2-51.6l-28.3-79.3C390.1 181.3 360 160 326.2 160l-140.3 0c-33.8 0-64 21.3-75.3 53.1zM128 344a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm232 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM39 39c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L73 39c-9.4-9.4-24.6-9.4-33.9 0zm400 0L391 87c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCarRear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M165.4 96l181.2 0c13.6 0 25.7 8.6 30.2 21.4L402.9 192l-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256l0 80c0 23.7 12.9 44.4 32 55.4L32 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 256 0 0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-56.6c19.1-11.1 32-31.7 32-55.4l0-80c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32L165.4 32c-40.8 0-77.1 25.8-90.6 64.3zM208 272l96 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm360-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaCarSide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M171.3 96L224 96l0 96-112.7 0 30.4-75.9C146.5 104 158.2 96 171.3 96zM272 192l0-96 81.2 0c9.7 0 18.9 4.4 25 12l67.2 84L272 192zm256.2 1L428.2 68c-18.2-22.8-45.8-36-75-36L171.3 32c-39.3 0-74.6 23.9-89.1 60.3L40.6 196.4C16.8 205.8 0 228.9 0 256L0 368c0 17.7 14.3 32 32 32l33.3 0c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80l130.7 0c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80l33.3 0c17.7 0 32-14.3 32-32l0-48c0-65.2-48.8-119-111.8-127zM434.7 368a48 48 0 1 1 90.5 32 48 48 0 1 1 -90.5-32zM160 336a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaCarTunnel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0C114.6 0 0 114.6 0 256L0 448c0 35.3 28.7 64 64 64l42.8 0c-6.6-5.9-10.8-14.4-10.8-24l0-112c0-20.8 11.3-38.9 28.1-48.6l21-64.7c7.5-23.1 29-38.7 53.3-38.7l115.2 0c24.3 0 45.8 15.6 53.3 38.7l21 64.7c16.8 9.7 28.2 27.8 28.2 48.6l0 112c0 9.6-4.2 18.1-10.8 24l42.8 0c35.3 0 64-28.7 64-64l0-192C512 114.6 397.4 0 256 0zM362.8 512c-6.6-5.9-10.8-14.4-10.8-24l0-40-192 0 0 40c0 9.6-4.2 18.1-10.8 24l213.7 0zM190.8 277.5L177 320l158 0-13.8-42.5c-1.1-3.3-4.1-5.5-7.6-5.5l-115.2 0c-3.5 0-6.5 2.2-7.6 5.5zM168 408a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm200-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M135.2 117.4L109.1 192l293.8 0-26.1-74.6C372.3 104.6 360.2 96 346.6 96L165.4 96c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32l181.2 0c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2l0 144 0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48L96 400l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48L0 256c0-26.7 16.4-49.6 39.6-59.2zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaCaravan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 112C0 67.8 35.8 32 80 32l336 0c88.4 0 160 71.6 160 160l0 160 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0-288 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-44.2 0-80-35.8-80-80L0 112zM320 352l128 0 0-96-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 192zM96 128c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128zm96 336a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"},\"child\":[]}]})(props);\n};\nexport function FaCarrot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M346.7 6C337.6 17 320 42.3 320 72c0 40 15.3 55.3 40 80s40 40 80 40c29.7 0 55-17.6 66-26.7c4-3.3 6-8.2 6-13.3s-2-10-6-13.2c-11.4-9.1-38.3-26.8-74-26.8c-32 0-40 8-40 8s8-8 8-40c0-35.7-17.7-62.6-26.8-74C370 2 365.1 0 360 0s-10 2-13.3 6zM244.6 136c-40 0-77.1 18.1-101.7 48.2l60.5 60.5c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-55.3-55.3 0 .1L2.2 477.9C-2 487-.1 497.8 7 505s17.9 9 27.1 4.8l134.7-62.4-52.1-52.1c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L199.7 433l100.2-46.4c46.4-21.5 76.2-68 76.2-119.2C376 194.8 317.2 136 244.6 136z\"},\"child\":[]}]})(props);\n};\nexport function FaCartArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l45.5 0c3.8 0 7.1 2.7 7.9 6.5l51.6 271c6.5 34 36.2 58.5 70.7 58.5L488 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-288.3 0c-11.5 0-21.4-8.2-23.6-19.5L170.7 288l288.5 0c32.6 0 61.1-21.8 69.5-53.3l41-152.3C576.6 57 557.4 32 531.1 32L360 32l0 102.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23L312 32 120.1 32C111 12.8 91.6 0 69.5 0L24 0zM176 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm336-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCartFlatbedSuitcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32C0 14.3 14.3 0 32 0L48 0c44.2 0 80 35.8 80 80l0 288c0 8.8 7.2 16 16 16l464 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-66.7 0c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16l-197.5 0c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16L144 448c-44.2 0-80-35.8-80-80L64 80c0-8.8-7.2-16-16-16L32 64C14.3 64 0 49.7 0 32zM432 96l0-40c0-4.4-3.6-8-8-8l-80 0c-4.4 0-8 3.6-8 8l0 40 96 0zM288 96l0-40c0-30.9 25.1-56 56-56l80 0c30.9 0 56 25.1 56 56l0 40 0 224-192 0 0-224zM512 320l0-224 16 0c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48l-16 0zM240 96l16 0 0 224-16 0c-26.5 0-48-21.5-48-48l0-128c0-26.5 21.5-48 48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCartFlatbed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l16 0c8.8 0 16 7.2 16 16l0 288c0 44.2 35.8 80 80 80l18.7 0c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l197.5 0c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l66.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-464 0c-8.8 0-16-7.2-16-16l0-288C128 35.8 92.2 0 48 0L32 0zM192 80l0 192c0 26.5 21.5 48 48 48l320 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-96 0 0 144c0 5.9-3.2 11.3-8.5 14.1s-11.5 2.5-16.4-.8L400 163.2l-39.1 26.1c-4.9 3.3-11.2 3.6-16.4 .8s-8.5-8.2-8.5-14.1l0-144-96 0c-26.5 0-48 21.5-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaCartPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 24C0 10.7 10.7 0 24 0L69.5 0c22 0 41.5 12.8 50.6 32l411 0c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3l-288.5 0 5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5L488 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288.3 0c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5L24 48C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM252 160c0 11 9 20 20 20l44 0 0 44c0 11 9 20 20 20s20-9 20-20l0-44 44 0c11 0 20-9 20-20s-9-20-20-20l-44 0 0-44c0-11-9-20-20-20s-20 9-20 20l0 44-44 0c-11 0-20 9-20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaCartShopping (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 24C0 10.7 10.7 0 24 0L69.5 0c22 0 41.5 12.8 50.6 32l411 0c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3l-288.5 0 5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5L488 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288.3 0c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5L24 48C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaCashRegister (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C46.3 0 32 14.3 32 32l0 64c0 17.7 14.3 32 32 32l80 0 0 32-57 0c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-69.6c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160l-217 0 0-32 80 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L64 0zM96 48l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L96 80c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 432c0-8.8 7.2-16 16-16l352 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16zm48-168a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm120-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM160 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM328 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM256 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM424 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM352 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaCat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 192l17.1 0c22.1 38.3 63.5 64 110.9 64c11 0 21.8-1.4 32-4l0 4 0 32 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-140.8L280 448l56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-144 0c-53 0-96-43-96-96l0-223.5c0-16.1-12-29.8-28-31.8l-7.9-1c-17.5-2.2-30-18.2-27.8-35.7s18.2-30 35.7-27.8l7.9 1c48 6 84.1 46.8 84.1 95.3l0 85.3c34.4-51.7 93.2-85.8 160-85.8zm160 26.5s0 0 0 0c-10 3.5-20.8 5.5-32 5.5c-28.4 0-54-12.4-71.6-32c0 0 0 0 0 0c-3.7-4.1-7-8.5-9.9-13.2C357.3 164 352 146.6 352 128c0 0 0 0 0 0l0-96 0-20 0-1.3C352 4.8 356.7 .1 362.6 0l.2 0c3.3 0 6.4 1.6 8.4 4.2c0 0 0 0 0 .1L384 21.3l27.2 36.3L416 64l64 0 4.8-6.4L512 21.3 524.8 4.3c0 0 0 0 0-.1c2-2.6 5.1-4.2 8.4-4.2l.2 0C539.3 .1 544 4.8 544 10.7l0 1.3 0 20 0 96c0 17.3-4.6 33.6-12.6 47.6c-11.3 19.8-29.6 35.2-51.4 42.9zM432 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaCediSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 34.7C101.2 81.9 32 160.9 32 256s69.2 174.1 160 189.3l0 34.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-34.7c30.9-5.2 59.2-17.7 83.2-35.8c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-13.2 9.9-28.3 17.3-44.8 21.6L256 132c16.4 4.2 31.6 11.6 44.8 21.6c14.1 10.6 34.2 7.8 44.8-6.4s7.8-34.2-6.4-44.8c-24-18-52.4-30.6-83.2-35.8L256 32zM192 132L192 380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124z\"},\"child\":[]}]})(props);\n};\nexport function FaCentSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0c17.7 0 32 14.3 32 32l0 34.7c30.9 5.2 59.2 17.7 83.2 35.8c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4C279.4 137.5 252.9 128 224 128c-70.7 0-128 57.3-128 128s57.3 128 128 128c28.9 0 55.4-9.5 76.8-25.6c14.1-10.6 34.2-7.8 44.8 6.4s7.8 34.2-6.4 44.8c-24 18-52.4 30.6-83.2 35.8l0 34.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7C101.2 430.1 32 351.1 32 256s69.2-174.1 160-189.3L192 32c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaCertificate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M211 7.3C205 1 196-1.4 187.6 .8s-14.9 8.9-17.1 17.3L154.7 80.6l-62-17.5c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l17.5 62L18.1 170.6c-8.4 2.1-15 8.7-17.3 17.1S1 205 7.3 211l46.2 45L7.3 301C1 307-1.4 316 .8 324.4s8.9 14.9 17.3 17.1l62.5 15.8-17.5 62c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l62-17.5 15.8 62.5c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l45-46.2 45 46.2c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3l15.8-62.5 62 17.5c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-17.5-62 62.5-15.8c8.4-2.1 15-8.7 17.3-17.1s-.2-17.4-6.4-23.4l-46.2-45 46.2-45c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-62.5-15.8 17.5-62c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1l-62 17.5L341.4 18.1c-2.1-8.4-8.7-15-17.1-17.3S307 1 301 7.3L256 53.5 211 7.3z\"},\"child\":[]}]})(props);\n};\nexport function FaChair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 48l0 208 48 0 0-197.3c23.9 13.8 40 39.7 40 69.3l0 128 48 0 0-128C384 57.3 326.7 0 256 0L192 0C121.3 0 64 57.3 64 128l0 128 48 0 0-128c0-29.6 16.1-55.5 40-69.3L152 256l48 0 0-208 48 0zM48 288c-12.1 0-23.2 6.8-28.6 17.7l-16 32c-5 9.9-4.4 21.7 1.4 31.1S20.9 384 32 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 256 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c11.1 0 21.4-5.7 27.2-15.2s6.4-21.2 1.4-31.1l-16-32C423.2 294.8 412.1 288 400 288L48 288z\"},\"child\":[]}]})(props);\n};\nexport function FaChalkboardUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 64c0-35.3 28.7-64 64-64L576 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64l-239.2 0c-11.8-25.5-29.9-47.5-52.4-64l99.6 0 0-32c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 32 64 0 0-288L224 64l0 49.1C205.2 102.2 183.3 96 160 96l0-32zm0 64a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM133.3 352l53.3 0C260.3 352 320 411.7 320 485.3c0 14.7-11.9 26.7-26.7 26.7L26.7 512C11.9 512 0 500.1 0 485.3C0 411.7 59.7 352 133.3 352z\"},\"child\":[]}]})(props);\n};\nexport function FaChalkboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32C60.7 32 32 60.7 32 96l0 288 64 0L96 96l384 0 0 288 64 0 0-288c0-35.3-28.7-64-64-64L96 32zM224 384l0 32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-32c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaChampagneGlasses (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M155.6 17.3C163 3 179.9-3.6 195 1.9L320 47.5l125-45.6c15.1-5.5 32 1.1 39.4 15.4l78.8 152.9c28.8 55.8 10.3 122.3-38.5 156.6L556.1 413l41-15c16.6-6 35 2.5 41 19.1s-2.5 35-19.1 41l-71.1 25.9L476.8 510c-16.6 6.1-35-2.5-41-19.1s2.5-35 19.1-41l41-15-31.3-86.2c-59.4 5.2-116.2-34-130-95.2L320 188.8l-14.6 64.7c-13.8 61.3-70.6 100.4-130 95.2l-31.3 86.2 41 15c16.6 6 25.2 24.4 19.1 41s-24.4 25.2-41 19.1L92.2 484.1 21.1 458.2c-16.6-6.1-25.2-24.4-19.1-41s24.4-25.2 41-19.1l41 15 31.3-86.2C66.5 292.5 48.1 226 76.9 170.2L155.6 17.3zm44 54.4l-27.2 52.8L261.6 157l13.1-57.9L199.6 71.7zm240.9 0L365.4 99.1 378.5 157l89.2-32.5L440.5 71.7z\"},\"child\":[]}]})(props);\n};\nexport function FaChargingStation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C60.7 0 32 28.7 32 64l0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-144 16 0c22.1 0 40 17.9 40 40l0 32c0 39.8 32.2 72 72 72s72-32.2 72-72l0-123.7c32.5-10.2 56-40.5 56-76.3l0-32c0-8.8-7.2-16-16-16l-16 0 0-48c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-32 0 0-48c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-16 0c-8.8 0-16 7.2-16 16l0 32c0 35.8 23.5 66.1 56 76.3L472 376c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-48.6-39.4-88-88-88l-16 0 0-192c0-35.3-28.7-64-64-64L96 0zM216.9 82.7c6 4 8.5 11.5 6.3 18.3l-25 74.9 57.8 0c6.7 0 12.7 4.2 15 10.4s.5 13.3-4.6 17.7l-112 96c-5.5 4.7-13.4 5.1-19.3 1.1s-8.5-11.5-6.3-18.3l25-74.9L96 208c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7l112-96c5.5-4.7 13.4-5.1 19.3-1.1z\"},\"child\":[]}]})(props);\n};\nexport function FaChartArea (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm96 288l288 0c17.7 0 32-14.3 32-32l0-68.2c0-7.6-2.7-15-7.7-20.8l-65.8-76.8c-12.1-14.2-33.7-15-46.9-1.8l-21 21c-10 10-26.4 9.2-35.4-1.6l-39.2-47c-12.6-15.1-35.7-15.4-48.7-.6L135.9 215c-5.1 5.8-7.9 13.3-7.9 21.1l0 84c0 17.7 14.3 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaChartBar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 64l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 96l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaChartColumn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm128-64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM480 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaChartGantt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32zm96 64l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160 96l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaChartLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z\"},\"child\":[]}]})(props);\n};\nexport function FaChartPie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 240l0-223.4c0-9 7-16.6 16-16.6C443.7 0 544 100.3 544 224c0 9-7.6 16-16.6 16L304 240zM32 272C32 150.7 122.1 50.3 239 34.3c9.2-1.3 17 6.1 17 15.4L256 288 412.5 444.5c6.7 6.7 6.2 17.7-1.5 23.1C371.8 495.6 323.8 512 272 512C139.5 512 32 404.6 32 272zm526.4 16c9.3 0 16.6 7.8 15.4 17c-7.7 55.9-34.6 105.6-73.9 142.3c-6 5.6-15.4 5.2-21.2-.7L320 288l238.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaChartSimple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 80c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-352zM0 272c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48L0 272zM368 96l32 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCheckDouble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M342.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 178.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l160-160zm96 128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7 54.6 297.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l256-256z\"},\"child\":[]}]})(props);\n};\nexport function FaCheckToSlot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 80c0-26.5 21.5-48 48-48l288 0c26.5 0 48 21.5 48 48l0 304L96 384 96 80zm313 47c-9.4-9.4-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L409 161c9.4-9.4 9.4-24.6 0-33.9zM0 336c0-26.5 21.5-48 48-48l16 0 0 128 448 0 0-128 16 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCheese (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 240.2l0 15.8L0 256c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7C418.8 32 512 125.2 512 240.2zm0 47.8l0 128c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 288l512 0z\"},\"child\":[]}]})(props);\n};\nexport function FaChessBishop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0C110.3 0 96 14.3 96 32c0 16.1 11.9 29.4 27.4 31.7C78.4 106.8 8 190 8 288c0 47.4 30.8 72.3 56 84.7L64 400l192 0 0-27.3c25.2-12.5 56-37.4 56-84.7c0-37.3-10.2-72.4-25.3-104.1l-99.4 99.4c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L270.8 154.6c-23.2-38.1-51.8-69.5-74.2-90.9C212.1 61.4 224 48.1 224 32c0-17.7-14.3-32-32-32L128 0zM48 432L6.6 473.4c-4.2 4.2-6.6 10-6.6 16C0 501.9 10.1 512 22.6 512l274.7 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L272 432 48 432z\"},\"child\":[]}]})(props);\n};\nexport function FaChessBoard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 64l0 64 64 0 0-64 64 0 0 64 64 0 0-64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64 64 0 0-64-64 0 0-64 64 0 0-64-64 0 0-64 64 0zm64 128l64 0 0-64-64 0 0 64zm0 64l0-64-64 0 0 64 64 0zm64 0l-64 0 0 64 64 0 0-64zm0 0l64 0 0-64-64 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaChessKing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0c17.7 0 32 14.3 32 32l0 16 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 48 152 0c22.1 0 40 17.9 40 40c0 5.3-1 10.5-3.1 15.4L368 400 80 400 3.1 215.4C1 210.5 0 205.3 0 200c0-22.1 17.9-40 40-40l152 0 0-48-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-16c0-17.7 14.3-32 32-32zM38.6 473.4L80 432l288 0 41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6L54.6 512C42.1 512 32 501.9 32 489.4c0-6 2.4-11.8 6.6-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChessKnight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 48L82.7 61.3C70.7 73.3 64 89.5 64 106.5l0 132.4c0 10.7 5.3 20.7 14.2 26.6l10.6 7c14.3 9.6 32.7 10.7 48.1 3l3.2-1.6c2.6-1.3 5-2.8 7.3-4.5l49.4-37c6.6-5 15.7-5 22.3 0c10.2 7.7 9.9 23.1-.7 30.3L90.4 350C73.9 361.3 64 380 64 400l320 0 28.9-159c2.1-11.3 3.1-22.8 3.1-34.3l0-14.7C416 86 330 0 224 0L83.8 0C72.9 0 64 8.9 64 19.8c0 7.5 4.2 14.3 10.9 17.7L96 48zm24 68a20 20 0 1 1 40 0 20 20 0 1 1 -40 0zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512l370.7 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L384 432 64 432 22.6 473.4z\"},\"child\":[]}]})(props);\n};\nexport function FaChessPawn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M215.5 224c29.2-18.4 48.5-50.9 48.5-88c0-57.4-46.6-104-104-104S56 78.6 56 136c0 37.1 19.4 69.6 48.5 88L96 224c-17.7 0-32 14.3-32 32c0 16.5 12.5 30 28.5 31.8L80 400l160 0L227.5 287.8c16-1.8 28.5-15.3 28.5-31.8c0-17.7-14.3-32-32-32l-8.5 0zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512l242.7 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L256 432 64 432 22.6 473.4z\"},\"child\":[]}]})(props);\n};\nexport function FaChessQueen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0a56 56 0 1 1 0 112A56 56 0 1 1 256 0zM134.1 143.8c3.3-13 15-23.8 30.2-23.8c12.3 0 22.6 7.2 27.7 17c12 23.2 36.2 39 64 39s52-15.8 64-39c5.1-9.8 15.4-17 27.7-17c15.3 0 27 10.8 30.2 23.8c7 27.8 32.2 48.3 62.1 48.3c10.8 0 21-2.7 29.8-7.4c8.4-4.4 18.9-4.5 27.6 .9c13 8 17.1 25 9.2 38L399.7 400 384 400l-40.4 0-175.1 0L128 400l-15.7 0L5.4 223.6c-7.9-13-3.8-30 9.2-38c8.7-5.3 19.2-5.3 27.6-.9c8.9 4.7 19 7.4 29.8 7.4c29.9 0 55.1-20.5 62.1-48.3zM256 224s0 0 0 0s0 0 0 0s0 0 0 0zM112 432l288 0 41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6L86.6 512C74.1 512 64 501.9 64 489.4c0-6 2.4-11.8 6.6-16L112 432z\"},\"child\":[]}]})(props);\n};\nexport function FaChessRook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 192L32 48c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 40c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-40c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 40c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-40c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 144c0 10.1-4.7 19.6-12.8 25.6L352 256l16 144L80 400 96 256 44.8 217.6C36.7 211.6 32 202.1 32 192zm176 96l32 0c8.8 0 16-7.2 16-16l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 8.8 7.2 16 16 16zM22.6 473.4L64 432l320 0 41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6L38.6 512C26.1 512 16 501.9 16 489.4c0-6 2.4-11.8 6.6-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 16L96 32c-8.8 0-16 7.2-16 16s7.2 16 16 16l16 0 0 32L60.2 96C49.1 96 40 105.1 40 116.2c0 2.5 .5 4.9 1.3 7.3L73.8 208 72 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l4 0L60 384l136 0L180 256l4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-1.8 0 32.5-84.5c.9-2.3 1.3-4.8 1.3-7.3c0-11.2-9.1-20.2-20.2-20.2L144 96l0-32 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16zM48 416L4.8 473.6C1.7 477.8 0 482.8 0 488c0 13.3 10.7 24 24 24l208 0c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L208 416 48 416zm288 0l-43.2 57.6c-3.1 4.2-4.8 9.2-4.8 14.4c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L464 416l-128 0zM304 208l0 51.9c0 7.8 2.8 15.3 8 21.1L339.2 312 337 384l125.5 0-3.3-72 28.3-30.8c5.4-5.9 8.5-13.6 8.5-21.7l0-51.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 16-24 0 0-16c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 16-24 0 0-16c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16zm80 96c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32-32 0 0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z\"},\"child\":[]}]})(props);\n};\nexport function FaChildCombatant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 128A64 64 0 1 0 176 0a64 64 0 1 0 0 128zm-8 352l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-179.5L260.9 321c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-51.7-82.1c-17.6-27.9-48.3-44.9-81.2-44.9l-12.3 0c-33 0-63.7 16.9-81.2 44.9L36.9 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10L104 300.5 104 480c0 17.7 14.3 32 32 32s32-14.3 32-32zM448 0L432 0 416 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9L484 400l44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3L480 160c0-11.8-6.4-22.2-16-27.7L464 16c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChildDress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 64A64 64 0 1 0 96 64a64 64 0 1 0 128 0zM88 400l0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 16 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 17.8 0c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.6 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2l28.7-37.8L55 378.9C51.6 389.3 59.3 400 70.2 400L88 400z\"},\"child\":[]}]})(props);\n};\nexport function FaChildReaching (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64A64 64 0 1 0 128 64a64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4L112 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-258.4c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z\"},\"child\":[]}]})(props);\n};\nexport function FaChild (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 64a64 64 0 1 1 128 0A64 64 0 1 1 96 64zm48 320l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192.2L59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8 240 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaChildren (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 0a64 64 0 1 1 0 128A64 64 0 1 1 160 0zM88 480l0-80-17.8 0c-10.9 0-18.6-10.7-15.2-21.1l31.1-93.4L57.5 323.3c-10.7 14.1-30.8 16.8-44.8 6.2s-16.8-30.7-6.2-44.8L65.4 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47l58.9 77.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.6-37.8L265 378.9c3.5 10.4-4.3 21.1-15.2 21.1L232 400l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80-16 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480 0a64 64 0 1 1 0 128A64 64 0 1 1 480 0zm-8 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-179.5L395.1 321c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9l12.3 0c33 0 63.7 16.9 81.2 44.9L619.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L552 300.5 552 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0z\"},\"child\":[]}]})(props);\n};\nexport function FaChurch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 46.4L183.3 210c-14.5 8.7-23.3 24.3-23.3 41.2L160 512l96 0 0-96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 96 96 0 0-260.8c0-16.9-8.8-32.5-23.3-41.2L344 142.4 344 96l32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-24zM24.9 330.3C9.5 338.8 0 354.9 0 372.4L0 464c0 26.5 21.5 48 48 48l80 0 0-238.4L24.9 330.3zM592 512c26.5 0 48-21.5 48-48l0-91.6c0-17.5-9.5-33.6-24.9-42.1L512 273.6 512 512l80 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM127 297c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l71 71L232 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 214.1 71-71c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 409c-9.4 9.4-24.6 9.4-33.9 0L127 297z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM215 127c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-71 71L392 232c13.3 0 24 10.7 24 24s-10.7 24-24 24l-214.1 0 71 71c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L103 273c-9.4-9.4-9.4-24.6 0-33.9L215 127z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM297 385c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l71-71L120 280c-13.3 0-24-10.7-24-24s10.7-24 24-24l214.1 0-71-71c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L409 239c9.4 9.4 9.4 24.6 0 33.9L297 385z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM385 215c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-71-71L280 392c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-214.1-71 71c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 103c9.4-9.4 24.6-9.4 33.9 0L385 215z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleChevronDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleChevronLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleChevronRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleChevronUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleDollarToSlot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M326.7 403.7c-22.1 8-45.9 12.3-70.7 12.3s-48.7-4.4-70.7-12.3l-.8-.3c-30-11-56.8-28.7-78.6-51.4C70 314.6 48 263.9 48 208C48 93.1 141.1 0 256 0S464 93.1 464 208c0 55.9-22 106.6-57.9 144c-1 1-2 2.1-3 3.1c-21.4 21.4-47.4 38.1-76.3 48.6zM256 91.9c-11.1 0-20.1 9-20.1 20.1l0 6c-5.6 1.2-10.9 2.9-15.9 5.1c-15 6.8-27.9 19.4-31.1 37.7c-1.8 10.2-.8 20 3.4 29c4.2 8.8 10.7 15 17.3 19.5c11.6 7.9 26.9 12.5 38.6 16l2.2 .7c13.9 4.2 23.4 7.4 29.3 11.7c2.5 1.8 3.4 3.2 3.7 4c.3 .8 .9 2.6 .2 6.7c-.6 3.5-2.5 6.4-8 8.8c-6.1 2.6-16 3.9-28.8 1.9c-6-1-16.7-4.6-26.2-7.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-2.2-.7-4.3-1.5-6.4-2.1c-10.5-3.5-21.8 2.2-25.3 12.7s2.2 21.8 12.7 25.3c1.2 .4 2.7 .9 4.4 1.5c7.9 2.7 20.3 6.9 29.8 9.1l0 6.4c0 11.1 9 20.1 20.1 20.1s20.1-9 20.1-20.1l0-5.5c5.3-1 10.5-2.5 15.4-4.6c15.7-6.7 28.4-19.7 31.6-38.7c1.8-10.4 1-20.3-3-29.4c-3.9-9-10.2-15.6-16.9-20.5c-12.2-8.8-28.3-13.7-40.4-17.4l-.8-.2c-14.2-4.3-23.8-7.3-29.9-11.4c-2.6-1.8-3.4-3-3.6-3.5c-.2-.3-.7-1.6-.1-5c.3-1.9 1.9-5.2 8.2-8.1c6.4-2.9 16.4-4.5 28.6-2.6c4.3 .7 17.9 3.3 21.7 4.3c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-4.4-1.2-14.4-3.2-21-4.4l0-6.3c0-11.1-9-20.1-20.1-20.1zM48 352l16 0c19.5 25.9 44 47.7 72.2 64L64 416l0 32 192 0 192 0 0-32-72.2 0c28.2-16.3 52.8-38.1 72.2-64l16 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleDot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-352a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM244.7 395.3l-112-112c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l64 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 64 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-112 112c-6.2 6.2-16.4 6.2-22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleH (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM368 152l0 104 0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-80-128 0 0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80 128 0 0-80c0-13.3 10.7-24 24-24s24 10.7 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleHalfStroke (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 256c0-106-86-192-192-192l0 384c106 0 192-86 192-192zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleInfo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM116.7 244.7l112-112c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8l0 64 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 64c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-112-112c-6.2-6.2-6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM184 232l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleNodes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9c0-44.2-35.8-80-80-80c-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128c-44.2 0-80 35.8-80 80s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2c0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleNotch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCirclePause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM224 192l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaCirclePlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCirclePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM232 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleQuestion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleRadiation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64a192 192 0 1 1 0 384 192 192 0 1 1 0-384zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM200 256c0-20.7 11.3-38.8 28-48.5l-36-62.3c-8.8-15.3-28.7-20.8-42-9c-25.6 22.6-43.9 53.3-50.9 88.1C95.7 241.5 110.3 256 128 256l72 0zm28 48.5l-36 62.4c-8.8 15.3-3.6 35.2 13.1 40.8c16 5.4 33.1 8.3 50.9 8.3s34.9-2.9 50.9-8.3c16.7-5.6 21.9-25.5 13.1-40.8l-36-62.4c-8.2 4.8-17.8 7.5-28 7.5s-19.8-2.7-28-7.5zM312 256l72 0c17.7 0 32.3-14.5 28.8-31.8c-7-34.8-25.3-65.5-50.9-88.1c-13.2-11.7-33.1-6.3-42 9l-36 62.3c16.7 9.7 28 27.8 28 48.5zm-56 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zm395.3 11.3l-112 112c-4.6 4.6-11.5 5.9-17.4 3.5s-9.9-8.3-9.9-14.8l0-64-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-64c0-6.5 3.9-12.3 9.9-14.8s12.9-1.1 17.4 3.5l112 112c6.2 6.2 6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleStop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 160l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm11.3-395.3l112 112c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9l-64 0 0 96c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96-64 0c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l112-112c6.2-6.2 16.4-6.2 22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M399 384.2C376.9 345.8 335.4 320 288 320l-64 0c-47.4 0-88.9 25.8-111 64.2c35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 16a72 72 0 1 0 0-144 72 72 0 1 0 0 144z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512z\"},\"child\":[]}]})(props);\n};\nexport function FaCity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 48c0-26.5-21.5-48-48-48L336 0c-26.5 0-48 21.5-48 48l0 48-64 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-64 0 0-72c0-13.3-10.7-24-24-24S64 10.7 64 24l0 72L48 96C21.5 96 0 117.5 0 144l0 96L0 464c0 26.5 21.5 48 48 48l256 0 32 0 96 0 160 0c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48l-112 0 0-144zm96 320l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM240 416l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM128 400c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM560 256c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM256 176l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM112 160c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM256 304c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 320l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zm304-48l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM400 64c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zm16 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaClapperboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 32l-86.1 0-1 1-127 127 92.1 0 1-1L453.8 32.3c-1.9-.2-3.8-.3-5.8-.3zm64 128l0-64c0-15.1-5.3-29.1-14-40l-104 104L512 160zM294.1 32l-92.1 0-1 1L73.9 160l92.1 0 1-1 127-127zM64 32C28.7 32 0 60.7 0 96l0 64 6.1 0 1-1 127-127L64 32zM512 192L0 192 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-224z\"},\"child\":[]}]})(props);\n};\nexport function FaClipboardCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM305 273L177 401c-9.4 9.4-24.6 9.4-33.9 0L79 337c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L271 239c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaClipboardList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM72 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM72 368a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm88 0c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaClipboardQuestion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM105.8 229.3c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L216 328.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM160 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaClipboardUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM128 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 432c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 448c-8.8 0-16-7.2-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaClipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM112 192l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaClockRotateLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M75 75L41 41C25.9 25.9 0 36.6 0 57.9L0 168c0 13.3 10.7 24 24 24l110.1 0c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65 0-94.1c0-13.3-10.7-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaClone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 448L64 448l0-224 64 0 0-64-64 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-64-64 0 0 64zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaClosedCaptioning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128l-368 0zm79-167l80 80c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-39 39L344 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 134.1-39-39c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128l-368 0zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39L296 392c0 13.3 10.7 24 24 24s24-10.7 24-24l0-134.1 39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudBolt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 224c0 53 43 96 96 96l47.2 0L290 202.5c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L333.7 320l18.3 0 64 0c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm330.1 3.6c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7l70.1 0L177.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7l-70.1 0 52.4-104.8c3.4-6.7 1.6-14.9-4.2-19.6z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudMeatball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 224c0 53 43 96 96 96l44.7 0c9.5-23.5 32.5-40 59.3-40c2 0 3.9 .1 5.8 .3C217.6 265.5 235.7 256 256 256s38.4 9.5 50.2 24.3c1.9-.2 3.9-.3 5.8-.3c26.9 0 49.9 16.5 59.3 40l44.7 0c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 1 .1 2.1 .1 3.1c-.7-.8-1.4-1.6-2.1-2.3c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c.7 .7 1.5 1.4 2.3 2.1c-1-.1-2.1-.1-3.1-.1c-17.7 0-32 14.3-32 32s14.3 32 32 32c1 0 2.1-.1 3.1-.1c-.8 .7-1.6 1.3-2.3 2.1c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0c.7-.7 1.4-1.5 2.1-2.3c-.1 1-.1 2.1-.1 3.1c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1-.1-2.1-.1-3.1c.7 .8 1.3 1.6 2.1 2.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3c-.7-.7-1.5-1.4-2.3-2.1c1 .1 2.1 .1 3.1 .1c17.7 0 32-14.3 32-32s-14.3-32-32-32c-1 0-2.1 .1-3.1 .1c.8-.7 1.6-1.3 2.3-2.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-.7 .7-1.4 1.5-2.1 2.3c.1-1 .1-2.1 .1-3.1zM48 448a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm416 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudMoonRain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M481.2 0C417 0 363.5 46.5 353.7 107.6c35.4 17.6 60.2 53.3 62.1 95.1c23.2 11 42 29.7 53.1 52.7c4 .4 8.1 .6 12.3 .6c34.9 0 66.7-13.8 89.9-36.1c5.1-4.9 6.4-12.5 3.2-18.7s-10.1-9.7-17-8.6c-4.9 .8-10 1.3-15.2 1.3c-49 0-88.4-39.3-88.4-87.4c0-32.6 18-61.1 44.9-76.1c6.1-3.4 9.3-10.5 7.8-17.4s-7.3-12-14.3-12.6c-3.6-.3-7.3-.5-10.9-.5zM367.9 383.9c44.2 0 80-35.8 80-80c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C241.3 114.6 210.8 96 176 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96l271.9 0zM85.4 420.1c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M495.8 0c5.5 0 10.9 .2 16.3 .7c7 .6 12.8 5.7 14.3 12.5s-1.6 13.9-7.7 17.3c-44.4 25.2-74.4 73-74.4 127.8c0 81 65.5 146.6 146.2 146.6c8.6 0 17-.7 25.1-2.1c6.9-1.2 13.8 2.2 17 8.5s1.9 13.8-3.1 18.7c-34.5 33.6-81.7 54.4-133.6 54.4c-9.3 0-18.4-.7-27.4-1.9c-11.2-22.6-29.8-40.9-52.6-51.7c-2.7-58.5-50.3-105.3-109.2-106.7c-1.7-10.4-2.6-21-2.6-31.8C304 86.1 389.8 0 495.8 0zM447.9 431.9c0 44.2-35.8 80-80 80L96 511.9c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudRain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96L96 320zm-6.8 52c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3l0 3c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-3c0-8.5 2.1-16.9 6.2-24.3L89.2 372zm160 0c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3l0 3c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-3c0-8.5 2.1-16.9 6.2-24.3L249.2 372zm124.9 64.6L409.2 372c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3l0 3c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-3c0-8.5 2.1-16.9 6.2-24.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudShowersHeavy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96L96 320zM81.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6S-3.3 490.7 1.9 478.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm120 0c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm244.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6s17.8 19.3 12.6 31.5zM313.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudShowersWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0c38.6 0 71.9 22.8 87.2 55.7C325.7 41.1 345.8 32 368 32c38.7 0 71 27.5 78.4 64l1.6 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64s28.7-64 64-64c0-53 43-96 96-96zM140.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm327.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM252.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm103.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudSunRain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l10.4 62.4c-23.3 10.8-42.9 28.4-56 50.3c-14.6-9-31.8-14.1-50.2-14.1c-53 0-96 43-96 96c0 35.5 19.3 66.6 48 83.2c.8 31.8 13.2 60.7 33.1 82.7l-56 39.2c-4.5 3.2-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM208 144c13.8 0 26.7 4.4 37.1 11.9c-1.2 4.1-2.2 8.3-3 12.6c-37.9 14.6-67.2 46.6-77.8 86.4C151.8 243.1 144 226.5 144 208c0-35.3 28.7-64 64-64zm69.4 276c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm74.5-116.1c0 44.2-35.8 80-80 80l-271.9 0c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudSun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l14.1 84.7 84.7 14.1c5.4 .9 10 4.5 12.1 9.6s1.5 10.9-1.6 15.4l-38.5 55c-2.2-.1-4.4-.2-6.7-.2c-23.3 0-45.1 6.2-64 17.1l0-1.1c0-53-43-96-96-96s-96 43-96 96s43 96 96 96c8.1 0 15.9-1 23.4-2.9c-36.6 18.1-63.3 53.1-69.8 94.9l-24.4 17c-4.5 3.2-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM144 208a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM639.9 431.9c0 44.2-35.8 80-80 80l-271.9 0c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"},\"child\":[]}]})(props);\n};\nexport function FaCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 336c0 79.5 64.5 144 144 144l368 0c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z\"},\"child\":[]}]})(props);\n};\nexport function FaClover (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216.6 49.9C205.1 38.5 189.5 32 173.3 32C139.4 32 112 59.4 112 93.3l0 4.9c0 12 3.3 23.7 9.4 34l18.8 31.3c1.1 1.8 1.2 3.1 1 4.2c-.2 1.2-.8 2.5-2 3.6s-2.4 1.8-3.6 2c-1 .2-2.4 .1-4.2-1l-31.3-18.8c-10.3-6.2-22-9.4-34-9.4l-4.9 0C27.4 144 0 171.4 0 205.3c0 16.2 6.5 31.8 17.9 43.3l1.2 1.2c3.4 3.4 3.4 9 0 12.4l-1.2 1.2C6.5 274.9 0 290.5 0 306.7C0 340.6 27.4 368 61.3 368l4.9 0c12 0 23.7-3.3 34-9.4l31.3-18.8c1.8-1.1 3.1-1.2 4.2-1c1.2 .2 2.5 .8 3.6 2s1.8 2.4 2 3.6c.2 1 .1 2.4-1 4.2l-18.8 31.3c-6.2 10.3-9.4 22-9.4 34l0 4.9c0 33.8 27.4 61.3 61.3 61.3c16.2 0 31.8-6.5 43.3-17.9l1.2-1.2c3.4-3.4 9-3.4 12.4 0l1.2 1.2c11.5 11.5 27.1 17.9 43.3 17.9c33.8 0 61.3-27.4 61.3-61.3l0-4.9c0-12-3.3-23.7-9.4-34l-18.8-31.3c-1.1-1.8-1.2-3.1-1-4.2c.2-1.2 .8-2.5 2-3.6s2.4-1.8 3.6-2c1-.2 2.4-.1 4.2 1l31.3 18.8c10.3 6.2 22 9.4 34 9.4l4.9 0c33.8 0 61.3-27.4 61.3-61.3c0-16.2-6.5-31.8-17.9-43.3l-1.2-1.2c-3.4-3.4-3.4-9 0-12.4l1.2-1.2c11.5-11.5 17.9-27.1 17.9-43.3c0-33.8-27.4-61.3-61.3-61.3l-4.9 0c-12 0-23.7 3.3-34 9.4l-31.3 18.8c-1.8 1.1-3.1 1.2-4.2 1c-1.2-.2-2.5-.8-3.6-2s-1.8-2.4-2-3.6c-.2-1-.1-2.4 1-4.2l18.8-31.3c6.2-10.3 9.4-22 9.4-34l0-4.9C336 59.4 308.6 32 274.7 32c-16.2 0-31.8 6.5-43.3 17.9l-1.2 1.2c-3.4 3.4-9 3.4-12.4 0l-1.2-1.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCodeBranch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 87.8c18.8-10.9 40.7-17.1 64-17.1l96 0c35.3 0 64-28.7 64-64l0-6.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 6.7c0 70.7-57.3 128-128 128l-96 0c-35.3 0-64 28.7-64 64l0 6.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-6.7 0-198.7C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaCodeCommit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm156.8-48C462 361 397.4 416 320 416s-142-55-156.8-128L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l131.2 0C178 151 242.6 96 320 96s142 55 156.8 128L608 224c17.7 0 32 14.3 32 32s-14.3 32-32 32l-131.2 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCodeCompare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 488c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1s14.2 12.4 14.2 21.9l0 40 16 0c35.3 0 64-28.7 64-64l0-166.7C371.7 141 352 112.8 352 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3L464 320c0 70.7-57.3 128-128 128l-16 0 0 40zM456 80a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 24c0-9.5 5.6-18.1 14.2-21.9s18.8-2.3 25.8 4.1l80 72c5.1 4.6 7.9 11 7.9 17.8s-2.9 13.3-7.9 17.8l-80 72c-7 6.3-17.2 7.9-25.8 4.1s-14.2-12.4-14.2-21.9l0-40-16 0c-35.3 0-64 28.7-64 64l0 166.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L48 192c0-70.7 57.3-128 128-128l16 0 0-40zM56 432a24 24 0 1 0 48 0 24 24 0 1 0 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCodeFork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 38.7c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-38.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 38.7c0 53-43 96-96 96l-48 0 0 70.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-70.7-48 0c-53 0-96-43-96-96l0-38.7C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM248 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCodeMerge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32.4 97.2c28-12.4 47.6-40.5 47.6-73.2c0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3l0 205.3C19.7 371 0 399.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-86.6c26.7 20.1 60 32 96 32l86.7 0c12.3 28.3 40.5 48 73.3 48c44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48L208 240c-49.9 0-91-38.1-95.6-86.8zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM344 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCodePullRequest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M305.8 2.1C314.4 5.9 320 14.5 320 24l0 40 16 0c70.7 0 128 57.3 128 128l0 166.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L400 192c0-35.3-28.7-64-64-64l-16 0 0 40c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1zM104 80A24 24 0 1 0 56 80a24 24 0 1 0 48 0zm8 73.3l0 205.3c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-205.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80c0 32.8-19.7 61-48 73.3zM104 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm328 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCoins (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2c0 0 0 0 0 0s0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336l0-35.4c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4l0 3.4 0 5.7 0 26.3zm32 0l0-32 0-25.9c19-4.2 36.5-9.5 52.1-16c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 10.5-5 21-14.9 30.9c-16.3 16.3-45 29.7-81.3 38.4c.1-1.7 .2-3.5 .2-5.3zM192 448c56.2 0 108.6-9.4 148.1-25.9c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 44.2-86 80-192 80S0 476.2 0 432l0-35.4c12.5 10.3 27.6 18.7 43.9 25.5C83.4 438.6 135.8 448 192 448z\"},\"child\":[]}]})(props);\n};\nexport function FaColonSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255 39.8c4.3-17.1-6.1-34.5-23.3-38.8S197.2 7.1 193 24.2L181.9 68.6C96.1 87.8 32 164.4 32 256c0 58.1 25.8 110.2 66.7 145.4L81 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l13-52.1c9 3.4 18.4 6.2 28 8.2L177 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l10.4-41.4c33.4-4.4 64.1-17.4 89.8-36.7c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-10.2 7.7-21.7 13.9-34 18.3L321 160c9.4-.3 18.5-4.7 24.6-12.8c10.6-14.1 7.8-34.2-6.4-44.8c-1.1-.8-2.2-1.6-3.3-2.4L351 39.8c4.3-17.1-6.1-34.5-23.3-38.8S293.2 7.1 289 24.2L277.2 71.5c-9.3-2.7-18.8-4.6-28.6-5.9L255 39.8zM163.2 143.3L117.3 326.8C103.9 306.5 96 282.2 96 256c0-48.7 27.2-91 67.2-112.7zm8.6 229.5l61.1-244.6c9.9 .7 19.5 2.5 28.7 5.3l-62 248.1c-9.7-1.9-19-4.8-27.8-8.8z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zm20-312l0 13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9l0 13.8c0 11-9 20-20 20s-20-9-20-20l0-14.6c-10.3-2.2-20-5.5-28.2-8.4c0 0 0 0 0 0s0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c0 0 0 0 0 0c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5l0-14c0-11 9-20 20-20s20 9 20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentDots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM128 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM224 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L512.9 376.7C552.2 340.2 576 292.3 576 240C576 125.1 461.4 32 320 32c-67.7 0-129.3 21.4-175.1 56.3L38.8 5.1zm385.2 425L82.9 161.3C70.7 185.6 64 212.2 64 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c37 0 72.3-6.4 104.1-17.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentSms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM96 212.8c0-20.3 16.5-36.8 36.8-36.8l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-2.7 0-4.8 2.2-4.8 4.8c0 1.6 .8 3.1 2.2 4l29.4 19.6c10.3 6.8 16.4 18.3 16.4 30.7c0 20.3-16.5 36.8-36.8 36.8L112 304c-8.8 0-16-7.2-16-16s7.2-16 16-16l27.2 0c2.7 0 4.8-2.2 4.8-4.8c0-1.6-.8-3.1-2.2-4l-29.4-19.6C102.2 236.7 96 225.2 96 212.8zM372.8 176l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-2.7 0-4.8 2.2-4.8 4.8c0 1.6 .8 3.1 2.2 4l29.4 19.6c10.2 6.8 16.4 18.3 16.4 30.7c0 20.3-16.5 36.8-36.8 36.8L352 304c-8.8 0-16-7.2-16-16s7.2-16 16-16l27.2 0c2.7 0 4.8-2.2 4.8-4.8c0-1.6-.8-3.1-2.2-4l-29.4-19.6c-10.2-6.8-16.4-18.3-16.4-30.7c0-20.3 16.5-36.8 36.8-36.8zm-152 6.4L256 229.3l35.2-46.9c4.1-5.5 11.3-7.8 17.9-5.6s10.9 8.3 10.9 15.2l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-19.2 25.6c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L224 240l0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-6.9 4.4-13 10.9-15.2s13.7 .1 17.9 5.6z\"},\"child\":[]}]})(props);\n};\nexport function FaComment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentsDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 176c0 97.2-93.1 176-208 176c-38.2 0-73.9-8.7-104.7-23.9c-7.5 4-16 7.9-25.2 11.4C59.8 346.4 37.8 352 16 352c-6.9 0-13.1-4.5-15.2-11.1s.2-13.8 5.8-17.9c0 0 0 0 0 0s0 0 0 0l.2-.2c.2-.2 .6-.4 1.1-.8c1-.8 2.5-2 4.3-3.7c3.6-3.3 8.5-8.1 13.3-14.3c5.5-7 10.7-15.4 14.2-24.7C14.7 250.3 0 214.6 0 176C0 78.8 93.1 0 208 0S416 78.8 416 176zM231.5 383C348.9 372.9 448 288.3 448 176c0-5.2-.2-10.4-.6-15.5C555.1 167.1 640 243.2 640 336c0 38.6-14.7 74.3-39.6 103.4c3.5 9.4 8.7 17.7 14.2 24.7c4.8 6.2 9.7 11 13.3 14.3c1.8 1.6 3.3 2.9 4.3 3.7c.5 .4 .9 .7 1.1 .8l.2 .2s0 0 0 0s0 0 0 0c5.6 4.1 7.9 11.3 5.8 17.9c-2.1 6.6-8.3 11.1-15.2 11.1c-21.8 0-43.8-5.6-62.1-12.5c-9.2-3.5-17.8-7.4-25.2-11.4C505.9 503.3 470.2 512 432 512c-95.6 0-176.2-54.6-200.5-129zM228 72c0-11-9-20-20-20s-20 9-20 20l0 14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1c0 0 0 0 0 0s0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4l0 14.6c0 11 9 20 20 20s20-9 20-20l0-13.8c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7L228 72z\"},\"child\":[]}]})(props);\n};\nexport function FaComments (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2s0 0 0 0s0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.2-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9c0 0 0 0 0 0s0 0 0 0l-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCompactDisc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-96-32a96 96 0 1 0 192 0 96 96 0 1 0 -192 0zM96 240c0-35 17.5-71.1 45.2-98.8S205 96 240 96c8.8 0 16-7.2 16-16s-7.2-16-16-16c-45.4 0-89.2 22.3-121.5 54.5S64 194.6 64 240c0 8.8 7.2 16 16 16s16-7.2 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaCompassDrafting (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 96c0 14.3-3.1 27.9-8.8 40.2L396 227.4c-23.7 25.3-54.2 44.1-88.5 53.6L256 192c0 0 0 0 0 0s0 0 0 0l-68 117.5c21.5 6.8 44.3 10.5 68.1 10.5c70.7 0 133.8-32.7 174.9-84c11.1-13.8 31.2-16 45-5s16 31.2 5 45C428.1 341.8 347 384 256 384c-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496l0-55.4c0-8.4 2.2-16.7 6.5-24.1l60-103.7C53.7 301.6 41.8 289.3 31.2 276c-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2c0-53 43-96 96-96s96 43 96 96zm21 297.9c32.6-12.8 62.5-30.8 88.9-52.9l43.7 75.5c4.2 7.3 6.5 15.6 6.5 24.1l0 55.4c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9L373 393.9zM256 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCompress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 320c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaComputerMouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 192l176 0L176 0 160 0C71.6 0 0 71.6 0 160l0 32zm0 32L0 352c0 88.4 71.6 160 160 160l64 0c88.4 0 160-71.6 160-160l0-128-192 0L0 224zm384-32l0-32C384 71.6 312.4 0 224 0L208 0l0 192 176 0z\"},\"child\":[]}]})(props);\n};\nexport function FaComputer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 96l0 224L64 320 64 96l320 0zM64 32C28.7 32 0 60.7 0 96L0 320c0 35.3 28.7 64 64 64l117.3 0-10.7 32L96 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-74.7 0-10.7-32L384 384c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L64 32zm464 0c-26.5 0-48 21.5-48 48l0 352c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48l-64 0zm16 64l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-16 80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaCookieBite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9c-.9-5.3-5.3-9.3-10.6-10.1c-51.5-8.2-92.8-47.1-104.5-97.4c-1.8-7.6-8-13.4-15.7-14.6c-54.6-8.7-97.7-52-106.2-106.8zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaCookie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 0L332.1 0c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9L448 336c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48zM48 128l80 0 0 64-64 0 0 256 192 0 0-32 64 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCopyright (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c31.2 31.2 81.9 31.2 113.1 0c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-50 50-131 50-181 0s-50-131 0-181s131-50 181 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-31.2-31.2-81.9-31.2-113.1 0s-31.2 81.9 0 113.1z\"},\"child\":[]}]})(props);\n};\nexport function FaCouch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 160C64 89.3 121.3 32 192 32l256 0c70.7 0 128 57.3 128 128l0 33.6c-36.5 7.4-64 39.7-64 78.4l0 48-384 0 0-48c0-38.7-27.5-71-64-78.4L64 160zM544 272c0-20.9 13.4-38.7 32-45.3c5-1.8 10.4-2.7 16-2.7c26.5 0 48 21.5 48 48l0 176c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32L96 448c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32L0 272c0-26.5 21.5-48 48-48c5.6 0 11 1 16 2.7c18.6 6.6 32 24.4 32 45.3l0 48 0 32 32 0 384 0 32 0 0-32 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 224l0 32 0 160c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-88.2c9.9 6.6 20.6 12 32 16.1l0 24.2c0 8.8 7.2 16 16 16s16-7.2 16-16l0-16.9c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9l0 16.9c0 8.8 7.2 16 16 16s16-7.2 16-16l0-24.2c11.4-4 22.1-9.4 32-16.1l0 88.2c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-160 32 32 0 49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21c22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5 0-81.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 14.4-52.9-74.1C496 86.5 452.4 64 405.9 64L272 64l-16 0-64 0-48 0C77.7 64 24 117.7 24 184l0 54C9.4 249.8 0 267.8 0 288l0 17.6c0 8 6.4 14.4 14.4 14.4C46.2 320 72 294.2 72 262.4l0-6.4 0-32 0-40c0-24.3 12.1-45.8 30.5-58.9C98.3 135.9 96 147.7 96 160l0 64zM560 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16c0-12.5 10.1-22.6 22.6-22.6l178.7 0c12.5 0 22.6 10.1 22.6 22.6c0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCreditCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96l0 32 576 0 0-32c0-35.3-28.7-64-64-64L64 32zM576 224L0 224 0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-192zM112 352l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaCropSimple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l224 0 0-64-224 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64L160 64l0 64 224 0 0 352z\"},\"child\":[]}]})(props);\n};\nexport function FaCrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 160 64l0 64 178.7 0L128 338.7 128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l224 0 0-64-178.7 0L384 173.3 384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-274.7z\"},\"child\":[]}]})(props);\n};\nexport function FaCross (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 0c-26.5 0-48 21.5-48 48l0 80-80 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l80 0 0 208c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-208 80 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-80 0 0-80c0-26.5-21.5-48-48-48L176 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCrosshairs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c17.7 0 32 14.3 32 32l0 10.4c93.7 13.9 167.7 88 181.6 181.6l10.4 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.4 0c-13.9 93.7-88 167.7-181.6 181.6l0 10.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-10.4C130.3 455.7 56.3 381.7 42.4 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l10.4 0C56.3 130.3 130.3 56.3 224 42.4L224 32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6l0-20.6c0-17.7 14.3-32 32-32s32 14.3 32 32l0 20.6c58.3-12.5 104.1-58.4 116.6-116.6L384 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l20.6 0C392.1 165.7 346.3 119.9 288 107.4l0 20.6c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-20.6C165.7 119.9 119.9 165.7 107.4 224l20.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-20.6 0zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaCrow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M456 0c-48.6 0-88 39.4-88 88l0 29.2L12.5 390.6c-14 10.8-16.6 30.9-5.9 44.9s30.9 16.6 44.9 5.9L126.1 384l133.1 0 46.6 113.1c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3L311.1 384l40.9 0c1.1 0 2.1 0 3.2 0l46.6 113.2c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3l-42-102C484.9 354.1 544 280 544 192l0-64 0-8 80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4C629 52 603.4 32 574 32l-50.1 0C507.7 12.5 483.3 0 456 0zm0 64a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6l277.2 0c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z\"},\"child\":[]}]})(props);\n};\nexport function FaCrutch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M297.4 9.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0zm-96 144l-34.8 34.8c-12.9 12.9-21.9 29.2-25.8 47.1L116.8 342.9c-1.3 5.9-4.3 11.4-8.6 15.7L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l98.8-98.8c4.3-4.3 9.7-7.3 15.7-8.6l107.6-23.9c17.8-4 34.1-12.9 47.1-25.8l34.7-34.7c0 0 .1-.1 .1-.1s.1-.1 .1-.1l74.6-74.6-45.3-45.3L336 242.7 269.3 176l52.1-52.1L276.1 78.6l-74.7 74.7zM224 221.3L290.7 288l-12.2 12.2c-4.3 4.3-9.7 7.3-15.7 8.6l-76.7 17 17-76.7c1.3-5.9 4.3-11.4 8.6-15.7L224 221.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCruzeiroSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 256c0-88.4 71.6-160 160-160c41 0 78.3 15.4 106.7 40.7c13.2 11.8 33.4 10.7 45.2-2.5s10.7-33.4-2.5-45.2c-39.6-35.5-92-57-149.3-57C132.3 32 32 132.3 32 256s100.3 224 224 224c57.4 0 109.7-21.6 149.3-57c13.2-11.8 14.3-32 2.5-45.2s-32-14.3-45.2-2.5C334.3 400.6 297 416 256 416l0-96 0-8.7c0-12.8 10.4-23.3 23.3-23.3c4.6 0 9.1 1.4 12.9 3.9l10.1 6.7c14.7 9.8 34.6 5.8 44.4-8.9s5.8-34.6-8.9-44.4l-10.1-6.7c-14.3-9.6-31.2-14.7-48.4-14.7c-12.4 0-24.2 2.6-34.9 7.3c-5.5-4.5-12.6-7.3-20.3-7.3c-17.7 0-32 14.3-32 32l0 55.3 0 8.7 0 82.7C135.5 378 96 321.6 96 256z\"},\"child\":[]}]})(props);\n};\nexport function FaCube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6C495 83.4 512 107.5 512 134.6l0 242.9c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4L0 134.6c0-27 17-51.2 42.5-60.3l192-68.6zM256 66L82.3 128 256 190l173.7-62L256 66zm32 368.6l160-57.1 0-188L288 246.6l0 188z\"},\"child\":[]}]})(props);\n};\nexport function FaCubesStacked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 64l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32zM82.7 207c-15.3 8.8-20.5 28.4-11.7 43.7l32 55.4c8.8 15.3 28.4 20.5 43.7 11.7l55.4-32c15.3-8.8 20.5-28.4 11.7-43.7l-32-55.4c-8.8-15.3-28.4-20.5-43.7-11.7L82.7 207zM288 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zm64 160c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zM160 384l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32zM32 352c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCubes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M290.8 48.6l78.4 29.7L288 109.5 206.8 78.3l78.4-29.7c1.8-.7 3.8-.7 5.7 0zM136 92.5l0 112.2c-1.3 .4-2.6 .8-3.9 1.3l-96 36.4C14.4 250.6 0 271.5 0 294.7L0 413.9c0 22.2 13.1 42.3 33.5 51.3l96 42.2c14.4 6.3 30.7 6.3 45.1 0L288 457.5l113.5 49.9c14.4 6.3 30.7 6.3 45.1 0l96-42.2c20.3-8.9 33.5-29.1 33.5-51.3l0-119.1c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-1.3-.5-2.6-.9-3.9-1.3l0-112.2c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-12.8-4.8-26.9-4.8-39.7 0l-96 36.4C150.4 48.4 136 69.3 136 92.5zM392 210.6l-82.4 31.2 0-89.2L392 121l0 89.6zM154.8 250.9l78.4 29.7L152 311.7 70.8 280.6l78.4-29.7c1.8-.7 3.8-.7 5.7 0zm18.8 204.4l0-100.5L256 323.2l0 95.9-82.4 36.2zM421.2 250.9c1.8-.7 3.8-.7 5.7 0l78.4 29.7L424 311.7l-81.2-31.1 78.4-29.7zM523.2 421.2l-77.6 34.1 0-100.5L528 323.2l0 90.7c0 3.2-1.9 6-4.8 7.3z\"},\"child\":[]}]})(props);\n};\nexport function FaD (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l96 0c123.7 0 224 100.3 224 224s-100.3 224-224 224l-96 0c-35.3 0-64-28.7-64-64L0 96zm160 0L64 96l0 320 96 0c88.4 0 160-71.6 160-160s-71.6-160-160-160z\"},\"child\":[]}]})(props);\n};\nexport function FaDatabase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 80l0 48c0 44.2-100.3 80-224 80S0 172.2 0 128L0 80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6L448 288c0 44.2-100.3 80-224 80S0 332.2 0 288L0 186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6l0 85.9c0 44.2-100.3 80-224 80S0 476.2 0 432l0-85.9z\"},\"child\":[]}]})(props);\n};\nexport function FaDeleteLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M576 128c0-35.3-28.7-64-64-64L205.3 64c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7L512 448c35.3 0 64-28.7 64-64l0-256zM271 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaDemocrat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32c0-8.9 3.8-20.9 6.2-27.3C71.2 1.8 74 0 77 0c1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1C175.2 .7 177.1 0 179 0c3 0 5.8 1.8 6.8 4.7c2.4 6.5 6.2 18.4 6.2 27.3c0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8L480 160l32 0c40.3 0 78.2 19 102.4 51.2l19.2 25.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4l-19.2-25.6c-5.3-7-11.8-12.8-19.2-17l0 87.4-352 0-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3l-2 0C23.9 256 0 232.1 0 202.7c0-12.1 4.1-23.8 11.7-33.3L87.6 74.6C78.1 67.4 64 53.2 64 32zM448 352l96 0 0 64 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64-160 0 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64 0-64 96 0 160 0zM260.9 210.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.3-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5zM368.1 208c-2 0-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5c-.9-1.8-2.8-2.9-4.8-2.9zm116.8 2.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5z\"},\"child\":[]}]})(props);\n};\nexport function FaDesktop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 352c0 35.3 28.7 64 64 64l176 0-10.7 32L160 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-69.3 0L336 416l176 0c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64L64 0zM512 64l0 224L64 288 64 64l448 0z\"},\"child\":[]}]})(props);\n};\nexport function FaDharmachakra (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.5 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.5-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaDiagramNext (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 160c0 35.3-28.7 64-64 64l-168 0 0 64 46.1 0c21.4 0 32.1 25.9 17 41L273 399c-9.4 9.4-24.6 9.4-33.9 0L169 329c-15.1-15.1-4.4-41 17-41l46.1 0 0-64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 64zM448 416l0-64-82.7 0 .4-.4c18.4-18.4 20.4-43.7 11-63.6l71.3 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l71.3 0c-9.4 19.9-7.4 45.2 11 63.6l.4 .4L64 352l0 64 146.7 0 5.7 5.7c21.9 21.9 57.3 21.9 79.2 0l5.7-5.7L448 416z\"},\"child\":[]}]})(props);\n};\nexport function FaDiagramPredecessor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 416l0-64L64 352l0 64 384 0zm0 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM288 160c0 35.3-28.7 64-64 64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l144 0 16 0 144 0c44.2 0 80 35.8 80 80l0 16 38.1 0c21.4 0 32.1 25.9 17 41L433 239c-9.4 9.4-24.6 9.4-33.9 0L329 169c-15.1-15.1-4.4-41 17-41l38.1 0 0-16c0-8.8-7.2-16-16-16l-80 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaDiagramProject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 16 192 0 0-16c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-16-192 0 0 16c0 1.7-.1 3.4-.3 5L272 288l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-1.7 .1-3.4 .3-5L144 224l-96 0c-26.5 0-48-21.5-48-48L0 80z\"},\"child\":[]}]})(props);\n};\nexport function FaDiagramSuccessor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 416l0-64c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64zM64 160l0-64 144 0 16 0 0 64L64 160zm224 0l0-64 80 0c8.8 0 16 7.2 16 16l0 16-38.1 0c-21.4 0-32.1 25.9-17 41L399 239c9.4 9.4 24.6 9.4 33.9 0L503 169c15.1-15.1 4.4-41-17-41L448 128l0-16c0-44.2-35.8-80-80-80L224 32l-16 0L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaDiamondTurnRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M227.7 11.7c15.6-15.6 40.9-15.6 56.6 0l216 216c15.6 15.6 15.6 40.9 0 56.6l-216 216c-15.6 15.6-40.9 15.6-56.6 0l-216-216c-15.6-15.6-15.6-40.9 0-56.6l216-216zm87.6 137c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8l0 56-64 0c-35.3 0-64 28.7-64 64l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-8.8 7.2-16 16-16l64 0 0 56c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l80-80c6.2-6.2 6.2-16.4 0-22.6l-80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaDiamond (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M284.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-216 216c-15.6 15.6-15.6 40.9 0 56.6l216 216c15.6 15.6 40.9 15.6 56.6 0l216-216c15.6-15.6 15.6-40.9 0-56.6l-216-216z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceD20 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48.7 125.8l53.2 31.9c7.8 4.7 17.8 2 22.2-5.9L201.6 12.1c3-5.4-.9-12.1-7.1-12.1c-1.6 0-3.2 .5-4.6 1.4L47.9 98.8c-9.6 6.6-9.2 20.9 .8 26.9zM16 171.7l0 123.5c0 8 10.4 11 14.7 4.4l60-92c5-7.6 2.6-17.8-5.2-22.5L40.2 158C29.6 151.6 16 159.3 16 171.7zM310.4 12.1l77.6 139.6c4.4 7.9 14.5 10.6 22.2 5.9l53.2-31.9c10-6 10.4-20.3 .8-26.9L322.1 1.4c-1.4-.9-3-1.4-4.6-1.4c-6.2 0-10.1 6.7-7.1 12.1zM496 171.7c0-12.4-13.6-20.1-24.2-13.7l-45.3 27.2c-7.8 4.7-10.1 14.9-5.2 22.5l60 92c4.3 6.7 14.7 3.6 14.7-4.4l0-123.5zm-49.3 246L286.1 436.6c-8.1 .9-14.1 7.8-14.1 15.9l0 52.8c0 3.7 3 6.8 6.8 6.8c.8 0 1.6-.1 2.4-.4l172.7-64c6.1-2.2 10.1-8 10.1-14.5c0-9.3-8.1-16.5-17.3-15.4zM233.2 512c3.7 0 6.8-3 6.8-6.8l0-52.6c0-8.1-6.1-14.9-14.1-15.9l-160.6-19c-9.2-1.1-17.3 6.1-17.3 15.4c0 6.5 4 12.3 10.1 14.5l172.7 64c.8 .3 1.6 .4 2.4 .4zM41.7 382.9l170.9 20.2c7.8 .9 13.4-7.5 9.5-14.3l-85.7-150c-5.9-10.4-20.7-10.8-27.3-.8L30.2 358.2c-6.5 9.9-.3 23.3 11.5 24.7zm439.6-24.8L402.9 238.1c-6.5-10-21.4-9.6-27.3 .8L290.2 388.5c-3.9 6.8 1.6 15.2 9.5 14.3l170.1-20c11.8-1.4 18-14.7 11.5-24.6zm-216.9 11l78.4-137.2c6.1-10.7-1.6-23.9-13.9-23.9l-145.7 0c-12.3 0-20 13.3-13.9 23.9l78.4 137.2c3.7 6.4 13 6.4 16.7 0zM174.4 176l163.2 0c12.2 0 19.9-13.1 14-23.8l-80-144c-2.8-5.1-8.2-8.2-14-8.2l-3.2 0c-5.8 0-11.2 3.2-14 8.2l-80 144c-5.9 10.7 1.8 23.8 14 23.8z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceD6 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M201 10.3c14.3-7.8 31.6-7.8 46 0L422.3 106c5.1 2.8 8.3 8.2 8.3 14s-3.2 11.2-8.3 14L231.7 238c-4.8 2.6-10.5 2.6-15.3 0L25.7 134c-5.1-2.8-8.3-8.2-8.3-14s3.2-11.2 8.3-14L201 10.3zM23.7 170l176 96c5.1 2.8 8.3 8.2 8.3 14l0 216c0 5.6-3 10.9-7.8 13.8s-10.9 3-15.8 .3L25 423.1C9.6 414.7 0 398.6 0 381L0 184c0-5.6 3-10.9 7.8-13.8s10.9-3 15.8-.3zm400.7 0c5-2.7 11-2.6 15.8 .3s7.8 8.1 7.8 13.8l0 197c0 17.6-9.6 33.7-25 42.1L263.7 510c-5 2.7-11 2.6-15.8-.3s-7.8-8.1-7.8-13.8l0-216c0-5.9 3.2-11.2 8.3-14l176-96z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceFive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceFour (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM352 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceOne (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceSix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceThree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceTwo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM352 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaDice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M274.9 34.3c-28.1-28.1-73.7-28.1-101.8 0L34.3 173.1c-28.1 28.1-28.1 73.7 0 101.8L173.1 413.7c28.1 28.1 73.7 28.1 101.8 0L413.7 274.9c28.1-28.1 28.1-73.7 0-101.8L274.9 34.3zM200 224a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM96 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 376a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM352 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 120a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm96 328c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-114.3 0c11.6 36 3.1 77-25.4 105.5L320 413.8l0 34.2zM480 328a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaDisease (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M236.4 61.4L227 75.5c-21.3 32-59.4 48.5-97.3 42.1l-59.6-9.9C33.4 101.6 0 129.9 .1 167.1c0 15.9 6.4 31.2 17.6 42.5l29.2 29.2c11 11 17.2 25.9 17.2 41.5c0 15.8-6.4 30.9-17.7 42L33.3 335.1C22.2 345.9 16 360.7 16 376.2c0 36.8 34.1 64.2 70.1 56.2l62.3-13.8c7.7-1.7 15.7-2.6 23.6-2.6l10 0c27.2 0 53.7 9.3 75 26.3L287.8 467c10.5 8.4 23.6 13 37 13c32.7 0 59.3-26.5 59.3-59.3l0-25.2c0-34.9 21.4-66.2 53.9-78.8l36.9-14.3c22.4-8.7 37.2-30.3 37.2-54.3c0-28.1-20.1-52.3-47.8-57.3l-28-5.1c-36.5-6.7-65.4-34.5-73.6-70.7l-7.1-31.5C348.9 53.4 322.1 32 291.3 32c-22 0-42.6 11-54.9 29.4zM160 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm0 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaDisplay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 352c0 35.3 28.7 64 64 64l176 0-10.7 32L160 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-69.3 0L336 416l176 0c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64L64 0zM512 64l0 288L64 352 64 64l448 0z\"},\"child\":[]}]})(props);\n};\nexport function FaDivide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 96a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 320a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 288c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0z\"},\"child\":[]}]})(props);\n};\nexport function FaDna (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 0c17.7 0 32 14.3 32 32c0 59.8-30.3 107.5-69.4 146.6c-28 28-62.5 53.5-97.3 77.4l-2.5 1.7c-11.9 8.1-23.8 16.1-35.5 23.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0l-1.6 1c-6 4-11.9 7.9-17.8 11.9c-20.9 14-40.8 27.7-59.3 41.5l118.5 0c-9.8-7.4-20.1-14.7-30.7-22.1l7-4.7 3-2c15.1-10.1 30.9-20.6 46.7-31.6c25 18.1 48.9 37.3 69.4 57.7C417.7 372.5 448 420.2 448 480c0 17.7-14.3 32-32 32s-32-14.3-32-32L64 480c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-59.8 30.3-107.5 69.4-146.6c28-28 62.5-53.5 97.3-77.4c-34.8-23.9-69.3-49.3-97.3-77.4C30.3 139.5 0 91.8 0 32C0 14.3 14.3 0 32 0S64 14.3 64 32l320 0c0-17.7 14.3-32 32-32zM338.6 384l-229.2 0c-10.1 10.6-18.6 21.3-25.5 32l280.2 0c-6.8-10.7-15.3-21.4-25.5-32zM109.4 128l229.2 0c10.1-10.7 18.6-21.3 25.5-32L83.9 96c6.8 10.7 15.3 21.3 25.5 32zm55.4 48c18.4 13.8 38.4 27.5 59.3 41.5c20.9-14 40.8-27.7 59.3-41.5l-118.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaDog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M309.6 158.5L332.7 19.8C334.6 8.4 344.5 0 356.1 0c7.5 0 14.5 3.5 19 9.5L392 32l52.1 0c12.7 0 24.9 5.1 33.9 14.1L496 64l56 0c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-32 0-16 0-21.3 0-5.1 30.5-112-64zM416 256.1L416 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-115.2c-24 12.3-51.2 19.2-80 19.2s-56-6.9-80-19.2L160 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-230.2c-28.8-10.9-51.4-35.3-59.2-66.5L1 167.8c-4.3-17.1 6.1-34.5 23.3-38.8s34.5 6.1 38.8 23.3l3.9 15.5C70.5 182 83.3 192 98 192l30 0 16 0 159.8 0L416 256.1zM464 80a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaDollarSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 0c17.7 0 32 14.3 32 32l0 35.7c1.6 .2 3.1 .4 4.7 .7c.4 .1 .7 .1 1.1 .2l48 8.8c17.4 3.2 28.9 19.9 25.7 37.2s-19.9 28.9-37.2 25.7l-47.5-8.7c-31.3-4.6-58.9-1.5-78.3 6.2s-27.2 18.3-29 28.1c-2 10.7-.5 16.7 1.2 20.4c1.8 3.9 5.5 8.3 12.8 13.2c16.3 10.7 41.3 17.7 73.7 26.3l2.9 .8c28.6 7.6 63.6 16.8 89.6 33.8c14.2 9.3 27.6 21.9 35.9 39.5c8.5 17.9 10.3 37.9 6.4 59.2c-6.9 38-33.1 63.4-65.6 76.7c-13.7 5.6-28.6 9.2-44.4 11l0 33.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.9c-.4-.1-.9-.1-1.3-.2l-.2 0s0 0 0 0c-24.4-3.8-64.5-14.3-91.5-26.3c-16.1-7.2-23.4-26.1-16.2-42.2s26.1-23.4 42.2-16.2c20.9 9.3 55.3 18.5 75.2 21.6c31.9 4.7 58.2 2 76-5.3c16.9-6.9 24.6-16.9 26.8-28.9c1.9-10.6 .4-16.7-1.3-20.4c-1.9-4-5.6-8.4-13-13.3c-16.4-10.7-41.5-17.7-74-26.3l-2.8-.7s0 0 0 0C119.4 279.3 84.4 270 58.4 253c-14.2-9.3-27.5-22-35.8-39.6c-8.4-17.9-10.1-37.9-6.1-59.2C23.7 116 52.3 91.2 84.8 78.3c13.3-5.3 27.9-8.9 43.2-11L128 32c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaDolly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32C0 14.3 14.3 0 32 0l72.9 0c27.5 0 52 17.6 60.7 43.8L257.7 320c30.1 .5 56.8 14.9 74 37l202.1-67.4c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L352 417.7c-.9 52.2-43.5 94.3-96 94.3c-53 0-96-43-96-96c0-30.8 14.5-58.2 37-75.8L104.9 64 32 64C14.3 64 0 49.7 0 32zM244.8 134.5c-5.5-16.8 3.7-34.9 20.5-40.3L311 79.4l19.8 60.9 60.9-19.8L371.8 59.6l45.7-14.8c16.8-5.5 34.9 3.7 40.3 20.5l49.4 152.2c5.5 16.8-3.7 34.9-20.5 40.3L334.5 307.2c-16.8 5.5-34.9-3.7-40.3-20.5L244.8 134.5z\"},\"child\":[]}]})(props);\n};\nexport function FaDongSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c-17.7 0-32 14.3-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 49.1c-18.8-10.9-40.7-17.1-64-17.1c-70.7 0-128 57.3-128 128s57.3 128 128 128c24.5 0 47.4-6.9 66.8-18.8c5 11.1 16.2 18.8 29.2 18.8c17.7 0 32-14.3 32-32l0-96 0-160c17.7 0 32-14.3 32-32s-14.3-32-32-32c0-17.7-14.3-32-32-32zM128 288a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448z\"},\"child\":[]}]})(props);\n};\nexport function FaDoorClosed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 64c0-35.3 28.7-64 64-64L416 0c35.3 0 64 28.7 64 64l0 384 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-112 0-288 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0L96 64zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaDoorOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 32c0-9.9-4.5-19.2-12.3-25.2S289.8-1.4 280.2 1l-179.9 45C79 51.3 64 70.5 64 92.5L64 448l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 192 0 32 0 0-32 0-448zM256 256c0 17.7-10.7 32-24 32s-24-14.3-24-32s10.7-32 24-32s24 14.3 24 32zm96-128l96 0 0 352c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320c0-35.3-28.7-64-64-64l-96 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaDove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160.8 96.5c14 17 31 30.9 49.5 42.2c25.9 15.8 53.7 25.9 77.7 31.6l0-31.5C265.8 108.5 250 71.5 248.6 28c-.4-11.3-7.5-21.5-18.4-24.4c-7.6-2-15.8-.2-21 5.8c-13.3 15.4-32.7 44.6-48.4 87.2zM320 144l0 30.6s0 0 0 0l0 1.3s0 0 0 0l0 32.1c-60.8-5.1-185-43.8-219.3-157.2C97.4 40 87.9 32 76.6 32c-7.9 0-15.3 3.9-18.8 11C46.8 65.9 32 112.1 32 176c0 116.9 80.1 180.5 118.4 202.8L11.8 416.6C6.7 418 2.6 421.8 .9 426.8s-.8 10.6 2.3 14.8C21.7 466.2 77.3 512 160 512c3.6 0 7.2-1.2 10-3.5L245.6 448l74.4 0c88.4 0 160-71.6 160-160l0-160 29.9-44.9c1.3-2 2.1-4.4 2.1-6.8c0-6.8-5.5-12.3-12.3-12.3L400 64c-44.2 0-80 35.8-80 80zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaDownLeftAndUpRightToCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39L439 7zM72 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39L73 505c-9.4 9.4-24.6 9.4-33.9 0L7 473c-9.4-9.4-9.4-24.6 0-33.9l87-87L55 313c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8z\"},\"child\":[]}]})(props);\n};\nexport function FaDownLong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 334.5c-3.8 8.8-2 19 4.6 26l136 144c4.5 4.8 10.8 7.5 17.4 7.5s12.9-2.7 17.4-7.5l136-144c6.6-7 8.4-17.2 4.6-26s-12.5-14.5-22-14.5l-72 0 0-288c0-17.7-14.3-32-32-32L128 0C110.3 0 96 14.3 96 32l0 288-72 0c-9.6 0-18.2 5.7-22 14.5z\"},\"child\":[]}]})(props);\n};\nexport function FaDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaDragon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4L294.4 28.8c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0L416 0l32 0 16 0c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8c0 26.5-21.5 48-48 48l-21.5 0c-17 0-33.3-6.7-45.3-18.7L480 160l-32 0 0 21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1C640 462.9 590.9 512 530.2 512L496 512l-64 0L32.3 512c-3.3 0-6.6-.4-9.6-1.4C13.5 507.8 6 501 2.4 492.1C1 488.7 .2 485.2 0 481.4c-.2-3.7 .3-7.3 1.3-10.7c2.8-9.2 9.6-16.7 18.6-20.4c3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1c0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1l0-45.5 0-57zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3l0 .6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9c0 13.3 10.7 24 24 24c10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87 0 27.5c0 32.8 8.4 64.8 24 93l-232 0c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9s-1.5-14.1 3.8-18.8L130.9 116.5z\"},\"child\":[]}]})(props);\n};\nexport function FaDrawPolygon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 151.4l0 209.1c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c0-.1 .1-.2 .1-.3l-4.5-7.9-32-56s0 0 0 0c-1.4 .1-2.8 .1-4.2 .1c-35.3 0-64-28.7-64-64s28.7-64 64-64c1.4 0 2.8 0 4.2 .1c0 0 0 0 0 0l32-56 4.5-7.9-.1-.3-209.1 0c-5.6 9.7-13.7 17.8-23.4 23.4zM384.3 352c35.2 .2 63.7 28.7 63.7 64c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-209.1C12.9 140.4 0 119.7 0 96C0 60.7 28.7 32 64 32c23.7 0 44.4 12.9 55.4 32l209.1 0c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 35.3-28.5 63.8-63.7 64l-4.5 7.9-32 56-2.3 4c4.2 8.5 6.5 18 6.5 28.1s-2.3 19.6-6.5 28.1l2.3 4 32 56 4.5 7.9z\"},\"child\":[]}]})(props);\n};\nexport function FaDropletSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 512c53.2 0 101.4-21.6 136.1-56.6l-298.3-235C140 257.1 128 292.3 128 320c0 106 86 192 192 192zM505.2 370.7c4.4-16.2 6.8-33.1 6.8-50.7c0-91.2-130.2-262.3-166.6-308.3C339.4 4.2 330.5 0 320.9 0l-1.8 0c-9.6 0-18.5 4.2-24.5 11.7C277.8 33 240.7 81.3 205.8 136L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L505.2 370.7zM224 336c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaDroplet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 512C86 512 0 426 0 320C0 228.8 130.2 57.7 166.6 11.7C172.6 4.2 181.5 0 191.1 0l1.8 0c9.6 0 18.5 4.2 24.5 11.7C253.8 57.7 384 228.8 384 320c0 106-86 192-192 192zM96 336c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 61.9 50.1 112 112 112c8.8 0 16-7.2 16-16s-7.2-16-16-16c-44.2 0-80-35.8-80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaDrumSteelpan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c159.1 0 288 48 288 128l0 192c0 80-128.9 128-288 128S0 432 0 352L0 160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8c-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4c0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5c47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4C56 130.1 48 150.1 48 160s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5c0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8C224.5 87 224 91.5 224 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2C330.8 81 309.8 80 288 80s-42.8 1-62.6 2.8z\"},\"child\":[]}]})(props);\n};\nexport function FaDrum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M501.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L370.2 104.5C335.8 98.7 297 96 256 96C114.6 96 0 128 0 208L0 368c0 31.3 27.4 58.8 72 78.7L72 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 119.4c33 8.9 71.1 14.5 112 16.1L232 376c0-13.3 10.7-24 24-24s24 10.7 24 24l0 103.5c40.9-1.6 79-7.2 112-16.1L392 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 102.7c44.6-19.9 72-47.4 72-78.7l0-160c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM307.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5C458.4 181.8 464 197.4 464 208c0 .8-2.7 17.2-46 35.9C379.1 260.7 322 272 256 272s-123.1-11.3-162-28.1C50.7 225.2 48 208.8 48 208c0-10.6 5.6-26.2 44.4-41.3C130.6 151.9 187.8 144 256 144c18 0 35.1 .5 51.4 1.6z\"},\"child\":[]}]})(props);\n};\nexport function FaDrumstickBite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2C69.8 320.6 65 320 60 320c-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12c0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5c-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4l89.2 0c6.3 0 12.4-.3 18.5-1c11.9-1.2 16.4-15.5 10.8-26c-8.5-15.8-13.3-33.8-13.3-53c0-61.9 50.1-112 112-112c8 0 15.7 .8 23.2 2.4c11.7 2.5 24.1-5.9 22-17.6C494.5 62.5 422.5 0 336 0C238.8 0 160 78.8 160 176l0 89.2z\"},\"child\":[]}]})(props);\n};\nexport function FaDumbbell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 160 0 64 0 160c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64-32 0c-17.7 0-32-14.3-32-32l0-64c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l32 0 0-64zm448 0l0 64 32 0c17.7 0 32 14.3 32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 64c0 17.7-14.3 32-32 32l-32 0 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-160 0-64 0-160c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32zM416 224l0 64-192 0 0-64 192 0z\"},\"child\":[]}]})(props);\n};\nexport function FaDumpsterFire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M49.7 32l90.8 0L114.9 160l-94 0C9.3 160 0 150.7 0 139.1c0-2.1 .3-4.1 .9-6.1L26.8 48.9C29.9 38.9 39.2 32 49.7 32zM272 160l-124.5 0L173.1 32 272 32l0 128zm32 0l0-128 98.9 0 14.4 72.1c-1.7 1.1-3.3 2.4-4.8 3.8c-18.4 16.4-35.4 34-50.5 52.1l-58 0zm209.9-23.7c-1.7 1.6-3.4 3.2-5 4.8C498 129.6 486.7 118.6 475 108c-7.6-6.9-17-10.8-26.6-11.8L435.5 32l90.8 0c10.5 0 19.8 6.9 22.9 16.9L575.1 133c.2 .7 .4 1.4 .5 2.1c-17.8-15-44.3-14.6-61.7 1.2zM325.2 210.7C304.3 244.5 288 282.9 288 318.1c0 49.3 18.6 95.2 49.6 129.9L128 448c0 17.7-14.3 32-32 32s-32-14.3-32-32L44 288l-12 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l4 0-4-32 305.5 0c-4.4 6.2-8.5 12.5-12.3 18.7zm180.6-34.5L518 162.5c5.4-6.1 13.3-8.8 20.9-8.9c7.2 0 14.3 2.6 19.9 7.8c19.7 18.3 39.8 43.2 55 70.6C629 259.2 640 290.2 640 320.2C640 408.8 568.7 480 480 480c-89.6 0-160-71.3-160-159.8c0-37.3 16-73.4 36.8-104.5c20.9-31.3 47.5-59 70.9-80.2c5.7-5.2 13.1-7.7 20.3-7.5c14.1 .3 23.8 11.4 32.7 21.6c0 0 0 0 0 0c2 2.3 4 4.6 6 6.7l19 19.9zM544 368.2c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C453 295.1 416 331.6 416 368.2c0 35.3 28.7 64 64 64s64-28.7 64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaDumpster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160l94 0L140.5 32 49.7 32zM272 160l0-128-98.9 0L147.5 160 272 160zm32 0l124.5 0L402.9 32 304 32l0 128zm157.1 0l94 0c11.5 0 20.9-9.3 20.9-20.9c0-2.1-.3-4.1-.9-6.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32l-90.8 0 25.6 128zM32 192l4 32-4 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l12 0L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32l320 0c0 17.7 14.3 32 32 32s32-14.3 32-32l20-160 12 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-4 0 4-32L32 192z\"},\"child\":[]}]})(props);\n};\nexport function FaDungeon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336.6 156.5c1.3 1.1 2.7 2.2 3.9 3.3c9.3 8.2 23 10.5 33.4 3.6l67.6-45.1c11.4-7.6 14.2-23.2 5.1-33.4C430 66.6 410.9 50.6 389.7 37.6c-11.9-7.3-26.9-1.4-32.1 11.6l-30.5 76.2c-4.5 11.1 .2 23.6 9.5 31.2zM328 36.8c5.1-12.8-1.6-27.4-15-30.5C294.7 2.2 275.6 0 256 0s-38.7 2.2-57 6.4C185.5 9.4 178.8 24 184 36.8l30.3 75.8c4.5 11.3 16.8 17.2 29 16c4.2-.4 8.4-.6 12.7-.6s8.6 .2 12.7 .6c12.1 1.2 24.4-4.7 29-16L328 36.8zM65.5 85c-9.1 10.2-6.3 25.8 5.1 33.4l67.6 45.1c10.3 6.9 24.1 4.6 33.4-3.6c1.3-1.1 2.6-2.3 4-3.3c9.3-7.5 13.9-20.1 9.5-31.2L154.4 49.2c-5.2-12.9-20.3-18.8-32.1-11.6C101.1 50.6 82 66.6 65.5 85zm314 137.1c.9 3.3 1.7 6.6 2.3 10c2.5 13 13 23.9 26.2 23.9l80 0c13.3 0 24.1-10.8 22.9-24c-2.5-27.2-9.3-53.2-19.7-77.3c-5.5-12.9-21.4-16.6-33.1-8.9l-68.6 45.7c-9.8 6.5-13.2 19.2-10 30.5zM53.9 145.8c-11.6-7.8-27.6-4-33.1 8.9C10.4 178.8 3.6 204.8 1.1 232c-1.2 13.2 9.6 24 22.9 24l80 0c13.3 0 23.8-10.8 26.2-23.9c.6-3.4 1.4-6.7 2.3-10c3.1-11.4-.2-24-10-30.5L53.9 145.8zM104 288l-80 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24zm304 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-80 0zM24 416c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-80 0zm384 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-80 0zM272 192c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 272c0 8.8 7.2 16 16 16s16-7.2 16-16l0-272zm-64 32c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 240c0 8.8 7.2 16 16 16s16-7.2 16-16l0-240zm128 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 240c0 8.8 7.2 16 16 16s16-7.2 16-16l0-240z\"},\"child\":[]}]})(props);\n};\nexport function FaE (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 256 0 416c0 35.3 28.7 64 64 64l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 416l0-128 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 224 64 96l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32z\"},\"child\":[]}]})(props);\n};\nexport function FaEarDeaf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5c-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3C74.8 132.5 149.4 64 240 64c97.2 0 176 78.8 176 176c0 46-17.7 87.9-46.6 119.3c-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112c-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78c18.4-20 29.6-46.6 29.6-75.9c0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaEarListen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M398.3 3.4c-15.8-7.9-35-1.5-42.9 14.3c-7.9 15.8-1.5 34.9 14.2 42.9l.4 .2c.4 .2 1.1 .6 2.1 1.2c2 1.2 5 3 8.7 5.6c7.5 5.2 17.6 13.2 27.7 24.2C428.5 113.4 448 146 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7C441.6 33.2 427.7 22.2 417.3 15c-5.3-3.7-9.7-6.4-13-8.3c-1.6-1-3-1.7-4-2.2c-.5-.3-.9-.5-1.2-.7l-.4-.2-.2-.1c0 0 0 0-.1 0c0 0 0 0 0 0L384 32 398.3 3.4zM128.7 227.5c6.2-56 53.7-99.5 111.3-99.5c61.9 0 112 50.1 112 112c0 29.3-11.2 55.9-29.6 75.9c-17 18.4-34.4 45.1-34.4 78l0 6.1c0 26.5-21.5 48-48 48c-17.7 0-32 14.3-32 32s14.3 32 32 32c61.9 0 112-50.1 112-112l0-6.1c0-9.8 5.4-21.7 17.4-34.7C398.3 327.9 416 286 416 240c0-97.2-78.8-176-176-176C149.4 64 74.8 132.5 65.1 220.5c-1.9 17.6 10.7 33.4 28.3 35.3s33.4-10.7 35.3-28.3zM32 512a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM192 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0zM208 240c0-17.7 14.3-32 32-32s32 14.3 32 32c0 13.3 10.7 24 24 24s24-10.7 24-24c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 13.3 10.7 24 24 24s24-10.7 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaEarthAfrica (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M177.8 63.2l10 17.4c2.8 4.8 4.2 10.3 4.2 15.9l0 41.4c0 3.9 1.6 7.7 4.3 10.4c6.2 6.2 16.5 5.7 22-1.2l13.6-17c4.7-5.9 12.9-7.7 19.6-4.3l15.2 7.6c3.4 1.7 7.2 2.6 11 2.6c6.5 0 12.8-2.6 17.4-7.2l3.9-3.9c2.9-2.9 7.3-3.6 11-1.8l29.2 14.6c7.8 3.9 12.6 11.8 12.6 20.5c0 10.5-7.1 19.6-17.3 22.2l-35.4 8.8c-7.4 1.8-15.1 1.5-22.4-.9l-32-10.7c-3.3-1.1-6.7-1.7-10.2-1.7c-7 0-13.8 2.3-19.4 6.5L176 212c-10.1 7.6-16 19.4-16 32l0 28c0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16l0 48c0 17.7 14.3 32 32 32c10.1 0 19.6-4.7 25.6-12.8l25.6-34.1c8.3-11.1 12.8-24.6 12.8-38.4l0-12.1c0-3.9 2.6-7.3 6.4-8.2l5.3-1.3c11.9-3 20.3-13.7 20.3-26c0-7.1-2.8-13.9-7.8-18.9l-33.5-33.5c-3.7-3.7-3.7-9.7 0-13.4c5.7-5.7 14.1-7.7 21.8-5.1l14.1 4.7c12.3 4.1 25.7-1.5 31.5-13c3.5-7 11.2-10.8 18.9-9.2l27.4 5.5C432 112.4 351.5 48 256 48c-27.7 0-54 5.4-78.2 15.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"},\"child\":[]}]})(props);\n};\nexport function FaEarthAmericas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M57.7 193l9.4 16.4c8.3 14.5 21.9 25.2 38 29.8L163 255.7c17.2 4.9 29 20.6 29 38.5l0 39.9c0 11 6.2 21 16 25.9s16 14.9 16 25.9l0 39c0 15.6 14.9 26.9 29.9 22.6c16.1-4.6 28.6-17.5 32.7-33.8l2.8-11.2c4.2-16.9 15.2-31.4 30.3-40l8.1-4.6c15-8.5 24.2-24.5 24.2-41.7l0-8.3c0-12.7-5.1-24.9-14.1-33.9l-3.9-3.9c-9-9-21.2-14.1-33.9-14.1L257 256c-11.1 0-22.1-2.9-31.8-8.4l-34.5-19.7c-4.3-2.5-7.6-6.5-9.2-11.2c-3.2-9.6 1.1-20 10.2-24.5l5.9-3c6.6-3.3 14.3-3.9 21.3-1.5l23.2 7.7c8.2 2.7 17.2-.4 21.9-7.5c4.7-7 4.2-16.3-1.2-22.8l-13.6-16.3c-10-12-9.9-29.5 .3-41.3l15.7-18.3c8.8-10.3 10.2-25 3.5-36.7l-2.4-4.2c-3.5-.2-6.9-.3-10.4-.3C163.1 48 84.4 108.9 57.7 193zM464 256c0-36.8-9.6-71.4-26.4-101.5L412 164.8c-15.7 6.3-23.8 23.8-18.5 39.8l16.9 50.7c3.5 10.4 12 18.3 22.6 20.9l29.1 7.3c1.2-9 1.8-18.2 1.8-27.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"},\"child\":[]}]})(props);\n};\nexport function FaEarthAsia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M51.7 295.1l31.7 6.3c7.9 1.6 16-.9 21.7-6.6l15.4-15.4c11.6-11.6 31.1-8.4 38.4 6.2l9.3 18.5c4.8 9.6 14.6 15.7 25.4 15.7c15.2 0 26.1-14.6 21.7-29.2l-6-19.9c-4.6-15.4 6.9-30.9 23-30.9l2.3 0c13.4 0 25.9-6.7 33.3-17.8l10.7-16.1c5.6-8.5 5.3-19.6-.8-27.7l-16.1-21.5c-10.3-13.7-3.3-33.5 13.4-37.7l17-4.3c7.5-1.9 13.6-7.2 16.5-14.4l16.4-40.9C303.4 52.1 280.2 48 256 48C141.1 48 48 141.1 48 256c0 13.4 1.3 26.5 3.7 39.1zm407.7 4.6c-3-.3-6-.1-9 .8l-15.8 4.4c-6.7 1.9-13.8-.9-17.5-6.7l-2-3.1c-6-9.4-16.4-15.1-27.6-15.1s-21.6 5.7-27.6 15.1l-6.1 9.5c-1.4 2.2-3.4 4.1-5.7 5.3L312 330.1c-18.1 10.1-25.5 32.4-17 51.3l5.5 12.4c8.6 19.2 30.7 28.5 50.5 21.1l2.6-1c10-3.7 21.3-2.2 29.9 4.1l1.5 1.1c37.2-29.5 64.1-71.4 74.4-119.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm144.5 92.1c-2.1 8.6 3.1 17.3 11.6 19.4l32 8c8.6 2.1 17.3-3.1 19.4-11.6s-3.1-17.3-11.6-19.4l-32-8c-8.6-2.1-17.3 3.1-19.4 11.6zm92-20c-2.1 8.6 3.1 17.3 11.6 19.4s17.3-3.1 19.4-11.6l8-32c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-8 32zM343.2 113.7c-7.9-4-17.5-.7-21.5 7.2l-16 32c-4 7.9-.7 17.5 7.2 21.5s17.5 .7 21.5-7.2l16-32c4-7.9 .7-17.5-7.2-21.5z\"},\"child\":[]}]})(props);\n};\nexport function FaEarthEurope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M266.3 48.3L232.5 73.6c-5.4 4-8.5 10.4-8.5 17.1l0 9.1c0 6.8 5.5 12.3 12.3 12.3c2.4 0 4.8-.7 6.8-2.1l41.8-27.9c2-1.3 4.4-2.1 6.8-2.1l1 0c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8l-19.9 19.9c-5.8 5.8-12.9 10.2-20.7 12.8l-26.5 8.8c-5.8 1.9-9.6 7.3-9.6 13.4c0 3.7-1.5 7.3-4.1 10l-17.9 17.9c-6.4 6.4-9.9 15-9.9 24l0 4.3c0 16.4 13.6 29.7 29.9 29.7c11 0 21.2-6.2 26.1-16l4-8.1c2.4-4.8 7.4-7.9 12.8-7.9c4.5 0 8.7 2.1 11.4 5.7l16.3 21.7c2.1 2.9 5.5 4.5 9.1 4.5c8.4 0 13.9-8.9 10.1-16.4l-1.1-2.3c-3.5-7 0-15.5 7.5-18l21.2-7.1c7.6-2.5 12.7-9.6 12.7-17.6c0-10.3 8.3-18.6 18.6-18.6l29.4 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-20.7 0c-7.2 0-14.2 2.9-19.3 8l-4.7 4.7c-2.1 2.1-3.3 5-3.3 8c0 6.2 5.1 11.3 11.3 11.3l11.3 0c6 0 11.8 2.4 16 6.6l6.5 6.5c1.8 1.8 2.8 4.3 2.8 6.8s-1 5-2.8 6.8l-7.5 7.5C386 262 384 266.9 384 272s2 10 5.7 13.7L408 304c10.2 10.2 24.1 16 38.6 16l7.3 0c6.5-20.2 10-41.7 10-64c0-111.4-87.6-202.4-197.7-207.7zm172 307.9c-3.7-2.6-8.2-4.1-13-4.1c-6 0-11.8-2.4-16-6.6L396 332c-7.7-7.7-18-12-28.9-12c-9.7 0-19.2-3.5-26.6-9.8L314 287.4c-11.6-9.9-26.4-15.4-41.7-15.4l-20.9 0c-12.6 0-25 3.7-35.5 10.7L188.5 301c-17.8 11.9-28.5 31.9-28.5 53.3l0 3.2c0 17 6.7 33.3 18.7 45.3l16 16c8.5 8.5 20 13.3 32 13.3l21.3 0c13.3 0 24 10.7 24 24c0 2.5 .4 5 1.1 7.3c71.3-5.8 132.5-47.6 165.2-107.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM187.3 100.7c-6.2-6.2-16.4-6.2-22.6 0l-32 32c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l32-32c6.2-6.2 6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaEarthOceania (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM208.6 357.3l-39-13.5c-6.5-2.2-13.6-2.3-20.1-.3l-15.3 4.9c-18.5 5.9-38.5-2.4-47.5-19.5l-3.3-6.2c-10.6-20.1-2.3-45 18.2-54.7l35.3-16.8c2.3-1.1 4.4-2.8 5.9-4.8l5.3-7c7.2-9.6 18.6-15.3 30.6-15.3s23.4 5.7 30.6 15.3l4.6 6.1c2 2.6 4.9 4.5 8.1 5.1c7.8 1.6 15.7-1.5 20.4-7.9l10.4-14.2c2-2.8 5.3-4.4 8.7-4.4c4.4 0 8.4 2.7 10 6.8l10.1 25.9c2.8 7.2 6.7 14 11.5 20.2L311 299.8c5.8 7.4 9 16.6 9 26s-3.2 18.6-9 26L299 367.2c-8.3 10.6-21 16.8-34.4 16.8c-8.4 0-16.6-2.4-23.7-7l-25.4-16.4c-2.2-1.4-4.5-2.5-6.9-3.4zm65.2-214.8L296 164.7c10.1 10.1 2.9 27.3-11.3 27.3l-29.9 0c-5.6 0-11.1-1.2-16.2-3.4l-42.8-19c-14.3-6.3-11.9-27.3 3.4-30.3l38.5-7.7c13.1-2.6 26.7 1.5 36.1 10.9zM248 432c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16zM431.2 298.9l8 24c2.8 8.4-1.7 17.4-10.1 20.2s-17.4-1.7-20.2-10.1l-8-24c-2.8-8.4 1.7-17.4 10.1-20.2s17.4 1.7 20.2 10.1zm-19.9 80.4l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaEgg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 496C86 496 0 394 0 288C0 176 64 16 192 16s192 160 192 272c0 106-86 208-192 208zM154.8 134c6.5-6 7-16.1 1-22.6s-16.1-7-22.6-1c-23.9 21.8-41.1 52.7-52.3 84.2C69.7 226.1 64 259.7 64 288c0 8.8 7.2 16 16 16s16-7.2 16-16c0-24.5 5-54.4 15.1-82.8c10.1-28.5 25-54.1 43.7-71.2z\"},\"child\":[]}]})(props);\n};\nexport function FaEject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320L48 320c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48s-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaElevator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M132.7 4.7l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9l128 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm96 96a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM80 400c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm192 0c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm32-128a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM356.7 91.3c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5 0 432 0L304 0c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaEllipsisVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 128 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z\"},\"child\":[]}]})(props);\n};\nexport function FaEllipsis (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 256a56 56 0 1 1 112 0A56 56 0 1 1 8 256zm160 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm216-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvelopeCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0l57.4-43c23.9-59.8 79.7-103.3 146.3-109.8l13.9-10.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176 0 384c0 35.3 28.7 64 64 64l296.2 0C335.1 417.6 320 378.5 320 336c0-5.6 .3-11.1 .8-16.6l-26.4 19.8zM640 336a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 353.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvelopeOpenText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M215.4 96L144 96l-36.2 0L96 96l0 8.8L96 144l0 40.4 0 89L.2 202.5c1.6-18.1 10.9-34.9 25.7-45.8L48 140.3 48 96c0-26.5 21.5-48 48-48l76.6 0 49.9-36.9C232.2 3.9 243.9 0 256 0s23.8 3.9 33.5 11L339.4 48 416 48c26.5 0 48 21.5 48 48l0 44.3 22.1 16.4c14.8 10.9 24.1 27.7 25.7 45.8L416 273.4l0-89 0-40.4 0-39.2 0-8.8-11.8 0L368 96l-71.4 0-81.3 0zM0 448L0 242.1 217.6 403.3c11.1 8.2 24.6 12.7 38.4 12.7s27.3-4.4 38.4-12.7L512 242.1 512 448s0 0 0 0c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64c0 0 0 0 0 0zM176 160l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvelopeOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 208.1L256 65.9 448 208.1l0 47.4L289.5 373c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64 255.5l0-47.4zM256 0c-12.1 0-23.8 3.9-33.5 11L25.9 156.7C9.6 168.8 0 187.8 0 208.1L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-239.9c0-20.3-9.6-39.4-25.9-51.4L289.5 11C279.8 3.9 268.1 0 256 0z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvelope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM0 176L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-208L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvelopesBulk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0C110.3 0 96 14.3 96 32l0 192 96 0 0-32c0-35.3 28.7-64 64-64l224 0 0-96c0-17.7-14.3-32-32-32L128 0zM256 160c-17.7 0-32 14.3-32 32l0 32 96 0c35.3 0 64 28.7 64 64l0 128 192 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-320 0zm240 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 256c-17.7 0-32 14.3-32 32l0 13L187.1 415.9c1.4 1 3.1 1.6 4.9 1.6s3.5-.6 4.9-1.6L352 301l0-13c0-17.7-14.3-32-32-32L64 256zm288 84.8L216 441.6c-6.9 5.1-15.3 7.9-24 7.9s-17-2.8-24-7.9L32 340.8 32 480c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32l0-139.2z\"},\"child\":[]}]})(props);\n};\nexport function FaEquals (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 128zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 320z\"},\"child\":[]}]})(props);\n};\nexport function FaEraser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M290.7 57.4L57.4 290.7c-25 25-25 65.5 0 90.5l80 80c12 12 28.3 18.7 45.3 18.7L288 480l9.4 0L512 480c17.7 0 32-14.3 32-32s-14.3-32-32-32l-124.1 0L518.6 285.3c25-25 25-65.5 0-90.5L381.3 57.4c-25-25-65.5-25-90.5 0zM297.4 416l-9.4 0-105.4 0-80-80L227.3 211.3 364.7 348.7 297.4 416z\"},\"child\":[]}]})(props);\n};\nexport function FaEthernet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 224L0 416c0 17.7 14.3 32 32 32l64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32L160 64c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaEuroSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48.1 240c-.1 2.7-.1 5.3-.1 8l0 16c0 2.7 0 5.3 .1 8L32 272c-17.7 0-32 14.3-32 32s14.3 32 32 32l28.3 0C89.9 419.9 170 480 264 480l24 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-24 0c-57.9 0-108.2-32.4-133.9-80L256 336c17.7 0 32-14.3 32-32s-14.3-32-32-32l-143.8 0c-.1-2.6-.2-5.3-.2-8l0-16c0-2.7 .1-5.4 .2-8L256 240c17.7 0 32-14.3 32-32s-14.3-32-32-32l-125.9 0c25.7-47.6 76-80 133.9-80l24 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-24 0C170 32 89.9 92.1 60.3 176L32 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l16.1 0z\"},\"child\":[]}]})(props);\n};\nexport function FaExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 128 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 64c0-17.7-14.3-32-32-32S32 46.3 32 64l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32L96 64zM64 480a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"},\"child\":[]}]})(props);\n};\nexport function FaExpand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaExplosion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M499.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L404.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87-71.4 0c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64l-79.6 0L42.3 363.7c-9.7-6.7-13.1-19.6-7.9-30.3s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.7 9.4-11.3L107.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L246 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7s22.7 9.4 23.9 21.7l13.5 141.9L499.6 11.3zM64 448s0 0 0 0l448 0s0 0 0 0l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0zM288 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaEyeDropper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M341.6 29.2L240.1 130.8l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L482.8 170.4c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6l0 42.4L5.4 462.2c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4L89.7 480l42.4 0c21.2 0 41.6-8.4 56.6-23.4L309.4 335.9l-45.3-45.3L143.4 411.3c-3 3-7.1 4.7-11.3 4.7L96 416l0-36.1c0-4.2 1.7-8.3 4.7-11.3L221.4 247.9l-45.3-45.3L55.4 323.3z\"},\"child\":[]}]})(props);\n};\nexport function FaEyeLowVision (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223 149.5c48.6-44.3 123-50.8 179.3-11.7c60.8 42.4 78.9 123.2 44.2 186.9L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3L223 149.5zm223.1 298L83.1 161.5c-11 14.4-20.5 28.7-28.4 42.2l339 265.7c18.7-5.5 36.2-13 52.6-21.8zM34.5 268.3c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c3.1 0 6.1-.1 9.2-.2L33.1 247.8c-1.8 6.8-1.3 14 1.4 20.5z\"},\"child\":[]}]})(props);\n};\nexport function FaEyeSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z\"},\"child\":[]}]})(props);\n};\nexport function FaEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z\"},\"child\":[]}]})(props);\n};\nexport function FaF (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 256 0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 224 64 96l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceAngry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM338.7 395.9c6.6-5.9 7.1-16 1.2-22.6C323.8 355.4 295.7 336 256 336s-67.8 19.4-83.9 37.3c-5.9 6.6-5.4 16.7 1.2 22.6s16.7 5.4 22.6-1.2c11.7-13 31.6-26.7 60.1-26.7s48.4 13.7 60.1 26.7c5.9 6.6 16 7.1 22.6 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceDizzy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-224a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM100.7 132.7c6.2-6.2 16.4-6.2 22.6 0L160 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L182.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L160 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L137.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6zm192 0c6.2-6.2 16.4-6.2 22.6 0L352 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L374.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L352 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L329.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceFlushed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM176 384c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16zm-16-88a72 72 0 1 0 0-144 72 72 0 1 0 0 144zm264-72a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zm-288 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm192 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceFrownOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-122 174.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceFrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.3 388.7c-2.6 8.4-11.6 13.2-20 10.5s-13.2-11.6-10.5-20C145.2 326.1 196.3 288 256 288s110.8 38.1 127.3 91.3c2.6 8.4-2.1 17.4-10.5 20s-17.4-2.1-20-10.5C340.5 349.4 302.1 320 256 320s-84.5 29.4-96.7 68.7zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrimace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm96-112l-8 0 0-40 55.3 0c-3.8 22.7-23.6 40-47.3 40zm47.3-56L344 344l0-40 8 0c23.8 0 43.5 17.3 47.3 40zM328 344l-64 0 0-40 64 0 0 40zm0 56l-64 0 0-40 64 0 0 40zm-80-96l0 40-64 0 0-40 64 0zm0 56l0 40-64 0 0-40 64 0zm-80-16l-55.3 0c3.8-22.7 23.6-40 47.3-40l8 0 0 40zm0 56l-8 0c-23.8 0-43.5-17.3-47.3-40l55.3 0 0 40zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinBeamSweat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M476.8 126.3c-4.1 1.1-8.4 1.7-12.8 1.7c-26.5 0-48-21-48-47c0-5 1.8-11.3 4.6-18.1c.3-.7 .6-1.4 .9-2.1c9-20.2 26.5-44.9 36-57.5c3.2-4.4 9.6-4.4 12.8 0C483.4 20.6 512 61 512 81c0 21.7-14.9 39.8-35.2 45.3zM256 0c51.4 0 99.3 15.2 139.4 41.2c-1.5 3.1-3 6.2-4.3 9.3c-3.4 8-7.1 19-7.1 30.5c0 44.3 36.6 79 80 79c9.6 0 18.8-1.7 27.4-4.8c13.3 30.9 20.6 65 20.6 100.8c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0zM383.8 317.8C345.3 329.4 301.9 336 256 336s-89.3-6.6-127.8-18.2c-12.3-3.7-24.3 7-19.2 18.7c24.5 56.9 81.1 96.7 147 96.7s122.5-39.8 147-96.7c5.1-11.8-6.9-22.4-19.2-18.7zm-166.2-89s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0c0 0 0 0 0 0zm160 0s0 0 0 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-170.5-84s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinHearts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM199.3 129.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm154.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinSquintTears (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-6.8 6.8-21.4 12.4-37.4 16.7c-16.3 4.4-34.1 7.5-46.3 9.3c-1.6 .2-3.1 .5-4.6 .6c-4.9 .8-9.1-2.8-9.5-7.4c-.1-.7 0-1.4 .1-2.1c1.6-11.2 4.6-29.6 9-47c.3-1.3 .7-2.6 1-3.9c4.3-15.9 9.8-30.5 16.7-37.4zm-44.7 19c-1.5 4.8-2.9 9.6-4.1 14.3c-4.8 18.9-8 38.5-9.7 50.3c-4 26.8 18.9 49.7 45.7 45.8c11.9-1.6 31.5-4.8 50.4-9.7c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c4.8-18.9 8-38.5 9.7-50.3c4-26.8-18.9-49.7-45.7-45.8c-11.9 1.6-31.5 4.8-50.4 9.7c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75C158.2-8.3 284.5-22.2 382.2 33.2zM51.5 410.1c18.5-5 38.8-8.3 50.9-10c.4-.1 .7-.1 1-.1c5.1-.2 9.2 4.3 8.4 9.6c-1.7 12.1-5 32.4-10 50.9C97.6 476.4 92 491 85.2 497.8C66 517 34.5 516.6 14.9 497.1s-20-51-.7-70.3c6.8-6.8 21.4-12.4 37.4-16.7zM416.9 209c-4.7-11.9-20.8-11-26.8 .3c-19 35.5-45 70.8-77.5 103.3S244.8 371.1 209.3 390c-11.3 6-12.2 22.1-.3 26.8c57.6 22.9 125.8 11 172.3-35.5s58.4-114.8 35.5-172.3zM87.1 285.1c2 2 4.6 3.2 7.3 3.4l56.1 5.1 5.1 56.1c.3 2.8 1.5 5.4 3.4 7.3c6.3 6.3 17.2 3.6 19.8-4.9l29.7-97.4c3.5-11.6-7.3-22.5-19-19L92 265.3c-8.6 2.6-11.3 13.4-4.9 19.8zM265.3 92l-29.7 97.4c-3.5 11.6 7.3 22.5 19 19l97.4-29.7c8.6-2.6 11.3-13.4 4.9-19.8c-2-2-4.6-3.2-7.3-3.4l-56.1-5.1-5.1-56.1c-.3-2.8-1.5-5.4-3.4-7.3c-6.3-6.3-17.2-3.6-19.8 4.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinSquint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM133.5 146.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinStars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm407.4 75.5c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM160 120c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L160 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L226.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6zm192 0c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L352 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L418.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinTears (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M548.6 371.4C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c3.6-8.8 6.5-18.4 8.8-27.5c4.6-18.2 7.7-37 9.3-48.2c3.9-26.5-18.8-49.2-45.2-45.4c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-26.5-3.9-49.2 18.8-45.2 45.4c1.6 11.3 4.6 30 9.3 48.2c2.3 9.1 5.2 18.8 8.8 27.5c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3zM107 254.1c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9zm454.5 87.1c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zm-90.1-9.7c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM281.6 228.8s0 0 0 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C190.7 188.4 184 206.1 184 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0zm160 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C350.7 188.4 344 206.1 344 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0c0 0 0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinTongueSquint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448l0-47.3c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6l0 46.9c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zM116 141.1c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 448l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinTongueWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M174.5 498.8C73.1 464.7 0 368.9 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 112.9-73.1 208.7-174.5 242.8C346.7 484 352 466.6 352 448l0-46.9c24.3-17.5 43.6-41.6 55.4-69.6c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c11.7 27.8 30.8 51.7 54.8 69.2l0 47.3c0 18.6 5.3 36 14.5 50.8zm20.7-265.2c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zM336 272a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM320 402.6l0 45.4c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-45.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6zM336 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinTongue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448l0-47.3c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6l0 46.9c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 448l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinWide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-16.9-79.2c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceKissBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-84.9s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceKissWinkHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M498 339.7c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-22.9-89.3c-10-39 11.8-80.9 51.8-92.1c37.2-10.4 73.8 10.1 87.5 44c12.7-1.6 25.1 .4 36.2 5zM296 332c0 6.9-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C258.7 443.1 241.4 448 224 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.6-.4-.3-.2-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm194.8 57.6c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceKiss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceLaughBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM217.6 212.8s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceLaughSquint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zm36.7-199.4l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 125.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceLaughWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceLaugh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceMehBlank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm208.4-48a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceMeh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM160 336l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceRollingEyes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 368l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm32-144c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C208.5 175.6 224 198 224 224zm128 64c-35.3 0-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C400.5 175.6 416 198 416 224c0 35.3-28.7 64-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceSadCry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6L160 288c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 189.8C51.5 433.5 0 350.8 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 94.8-51.5 177.5-128 221.8L384 288c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 205.4zM195.2 233.6c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zm121.6 0c17.6-23.5 52.8-23.5 70.4 0c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2zM208 336l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceSadTear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zm240 80c0-8.8 7.2-16 16-16c45 0 85.6 20.5 115.7 53.1c6 6.5 5.6 16.6-.9 22.6s-16.6 5.6-22.6-.9c-25-27.1-57.4-42.9-92.3-42.9c-8.8 0-16-7.2-16-16zm-80 80c-26.5 0-48-21-48-47c0-20 28.6-60.4 41.6-77.7c3.2-4.4 9.6-4.4 12.8 0C179.6 308.6 208 349 208 369c0 26-21.5 47-48 47zM367.6 208a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceSmileBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zm53.5-96.7s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceSmileWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceSmile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceSurprise (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceTired (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4c6.2 11.7 10.3 24.4 10.3 35.9c0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3l-3.2 0c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8s-6.9-7.9-6.9-13.2c0-11.6 4.2-24.2 10.3-35.9c6.3-12 15.3-24.3 26.4-35.4zm-31.2-182l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M258.6 0c-1.7 0-3.4 .1-5.1 .5C168 17 115.6 102.3 130.5 189.3c2.9 17 8.4 32.9 15.9 47.4L32 224l-2.6 0C13.2 224 0 237.2 0 253.4c0 1.7 .1 3.4 .5 5.1C17 344 102.3 396.4 189.3 381.5c17-2.9 32.9-8.4 47.4-15.9L224 480l0 2.6c0 16.2 13.2 29.4 29.4 29.4c1.7 0 3.4-.1 5.1-.5C344 495 396.4 409.7 381.5 322.7c-2.9-17-8.4-32.9-15.9-47.4L480 288l2.6 0c16.2 0 29.4-13.2 29.4-29.4c0-1.7-.1-3.4-.5-5.1C495 168 409.7 115.6 322.7 130.5c-17 2.9-32.9 8.4-47.4 15.9L288 32l0-2.6C288 13.2 274.8 0 258.6 0zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaucetDrip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0c17.7 0 32 14.3 32 32l0 12 96-12c17.7 0 32 14.3 32 32s-14.3 32-32 32L256 84l-31-3.9-1-.1-1 .1L192 84 96 96C78.3 96 64 81.7 64 64s14.3-32 32-32l96 12 0-12c0-17.7 14.3-32 32-32zM0 224c0-17.7 14.3-32 32-32l96 0 22.6-22.6c6-6 14.1-9.4 22.6-9.4l18.7 0 0-43.8 32-4 32 4 0 43.8 18.7 0c8.5 0 16.6 3.4 22.6 9.4L320 192l32 0c88.4 0 160 71.6 160 160c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s-14.3-32-32-32l-36.1 0c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48L32 320c-17.7 0-32-14.3-32-32l0-64zM436.8 423.4c1.9-4.5 6.3-7.4 11.2-7.4s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1l18.2-42.4z\"},\"child\":[]}]})(props);\n};\nexport function FaFaucet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 96l0 12L96 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l96-12 31-3.9 1-.1 1 .1 31 3.9 96 12c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 12 0-12c0-17.7-14.3-32-32-32s-32 14.3-32 32zM32 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l100.1 0c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48l36.1 0c17.7 0 32 14.3 32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32c0-88.4-71.6-160-160-160l-32 0-22.6-22.6c-6-6-14.1-9.4-22.6-9.4L256 224l0-43.8-32-4-32 4 0 43.8-18.7 0c-8.5 0-16.6 3.4-22.6 9.4L128 256l-96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFax (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 64l0 96 64 0 0-96 194.7 0L416 93.3l0 66.7 64 0 0-66.7c0-17-6.7-33.3-18.7-45.3L432 18.7C420 6.7 403.7 0 386.7 0L192 0c-35.3 0-64 28.7-64 64zM0 160L0 480c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32zm480 32l-352 0 0 288c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-256c0-17.7-14.3-32-32-32zM256 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFeatherPointed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l74.8-74.8c7.4 4.6 15.3 8.2 23.8 10.5C200.3 452.8 270 454.5 338 409.4c12.2-8.1 5.8-25.4-8.8-25.4l-16.1 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l97.7-29.3c3.4-1 6.4-3.1 8.4-6.1c4.4-6.4 8.6-12.9 12.6-19.6c6.2-10.3-1.5-23-13.5-23l-38.6 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l80.9-24.3c4.6-1.4 8.4-4.8 10.2-9.3C494.5 163 507.8 86.1 511.9 36.8c.8-9.9-3-19.6-10-26.6s-16.7-10.8-26.6-10C391.5 7 228.5 40.5 137.4 131.6C57.3 211.7 56.7 302.3 71.3 356.4c2.1 7.9 12 9.6 17.8 3.8L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"},\"child\":[]}]})(props);\n};\nexport function FaFeather (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57 68 0c49.7 0 97.9-14.4 139-41c11.1-7.2 5.5-23-7.8-23c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l81-24.3c2.5-.8 4.8-2.1 6.7-4l22.4-22.4c10.1-10.1 2.9-27.3-11.3-27.3l-32.2 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l112-33.6c4-1.2 7.4-3.9 9.3-7.7C506.4 207.6 512 184.1 512 160c0-41-16.3-80.3-45.3-109.3l-5.5-5.5C432.3 16.3 393 0 352 0s-80.3 16.3-109.3 45.3L139 149C91 197 64 262.1 64 330l0 55.3L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"},\"child\":[]}]})(props);\n};\nexport function FaFerry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0L352 0c17.7 0 32 14.3 32 32l75.1 0c20.6 0 31.6 24.3 18.1 39.8L456 96 120 96 98.8 71.8C85.3 56.3 96.3 32 116.9 32L192 32c0-17.7 14.3-32 32-32zM96 128l384 0c17.7 0 32 14.3 32 32l0 123.5c0 13.3-4.2 26.3-11.9 37.2l-51.4 71.9c-1.9 1.1-3.7 2.2-5.5 3.5c-15.5 10.7-34 18-51 19.9l-16.5 0c-17.1-1.8-35-9-50.8-19.9c-22.1-15.5-51.6-15.5-73.7 0c-14.8 10.2-32.5 18-50.6 19.9l-16.6 0c-17-1.8-35.6-9.2-51-19.9c-1.8-1.3-3.7-2.4-5.6-3.5L75.9 320.7C68.2 309.8 64 296.8 64 283.5L64 160c0-17.7 14.3-32 32-32zm32 64l0 96 320 0 0-96-320 0zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.3-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFileArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM216 232l0 102.1 31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31L168 232c0-13.3 10.7-24 24-24s24 10.7 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaFileArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM216 408c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-102.1-31 31c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-31-31L216 408z\"},\"child\":[]}]})(props);\n};\nexport function FaFileAudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zm2 226.3c37.1 22.4 62 63.1 62 109.7s-24.9 87.3-62 109.7c-7.6 4.6-17.4 2.1-22-5.4s-2.1-17.4 5.4-22C269.4 401.5 288 370.9 288 336s-18.6-65.5-46.5-82.3c-7.6-4.6-10-14.4-5.4-22s14.4-10 22-5.4zm-91.9 30.9c6 2.5 9.9 8.3 9.9 14.8l0 128c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L113.4 376 80 376c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16l33.4 0 35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5zm51 34.9c6.6-5.9 16.7-5.3 22.6 1.3C249.8 304.6 256 319.6 256 336s-6.2 31.4-16.3 42.7c-5.9 6.6-16 7.1-22.6 1.3s-7.1-16-1.3-22.6c5.1-5.7 8.1-13.1 8.1-21.3s-3.1-15.7-8.1-21.3c-5.9-6.6-5.3-16.7 1.3-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCircleMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCirclePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCircleQuestion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6l0 6.4c0 8.8 7.2 16 16 16s16-7.2 16-16l0-6.4c0-5.3 4.3-9.6 9.6-9.6l40.5 0c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2l0 14.8c0 8.8 7.2 16 16 16s16-7.2 16-16l0-5.1 23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9l-40.5 0c-23 0-41.6 18.6-41.6 41.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM153 289l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L71 337c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM265 255l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFileContract (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM80 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm54.2 253.8c-6.1 20.3-24.8 34.2-46 34.2L80 416c-8.8 0-16-7.2-16-16s7.2-16 16-16l8.2 0c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.7 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8 54.1 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 349l-9.8 32.8z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCsv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 144-208 0c-35.3 0-64 28.7-64 64l0 144-48 0c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM200 352l16 0c22.1 0 40 17.9 40 40l0 8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-8c0-4.4-3.6-8-8-8l-16 0c-4.4 0-8 3.6-8 8l0 80c0 4.4 3.6 8 8 8l16 0c4.4 0 8-3.6 8-8l0-8c0-8.8 7.2-16 16-16s16 7.2 16 16l0 8c0 22.1-17.9 40-40 40l-16 0c-22.1 0-40-17.9-40-40l0-80c0-22.1 17.9-40 40-40zm133.1 0l34.9 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-34.9 0c-7.2 0-13.1 5.9-13.1 13.1c0 5.2 3 9.9 7.8 12l37.4 16.6c16.3 7.2 26.8 23.4 26.8 41.2c0 24.9-20.2 45.1-45.1 45.1L304 512c-8.8 0-16-7.2-16-16s7.2-16 16-16l42.9 0c7.2 0 13.1-5.9 13.1-13.1c0-5.2-3-9.9-7.8-12l-37.4-16.6c-16.3-7.2-26.8-23.4-26.8-41.2c0-24.9 20.2-45.1 45.1-45.1zm98.9 0c8.8 0 16 7.2 16 16l0 31.6c0 23 5.5 45.6 16 66c10.5-20.3 16-42.9 16-66l0-31.6c0-8.8 7.2-16 16-16s16 7.2 16 16l0 31.6c0 34.7-10.3 68.7-29.6 97.6l-5.1 7.7c-3 4.5-8 7.1-13.3 7.1s-10.3-2.7-13.3-7.1l-5.1-7.7c-19.3-28.9-29.6-62.9-29.6-97.6l0-31.6c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaFileExcel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM155.7 250.2L192 302.1l36.3-51.9c7.6-10.9 22.6-13.5 33.4-5.9s13.5 22.6 5.9 33.4L221.3 344l46.4 66.2c7.6 10.9 5 25.8-5.9 33.4s-25.8 5-33.4-5.9L192 385.8l-36.3 51.9c-7.6 10.9-22.6 13.5-33.4 5.9s-13.5-22.6-5.9-33.4L162.7 344l-46.4-66.2c-7.6-10.9-5-25.8 5.9-33.4s25.8-5 33.4 5.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileExport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 128-168 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0 0 112c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM384 336l0-48 110.1 0-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39L384 336zm0-208l-128 0L256 0 384 128z\"},\"child\":[]}]})(props);\n};\nexport function FaFileImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM64 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm152 32c5.3 0 10.2 2.6 13.2 6.9l88 128c3.4 4.9 3.7 11.3 1 16.5s-8.2 8.6-14.2 8.6l-88 0-40 0-48 0-48 0c-5.8 0-11.1-3.1-13.9-8.1s-2.8-11.2 .2-16.1l48-80c2.9-4.8 8.1-7.8 13.7-7.8s10.8 2.9 13.7 7.8l12.8 21.4 48.3-70.2c3-4.3 7.9-6.9 13.2-6.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileImport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 64c0-35.3 28.7-64 64-64L352 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64l0-112 174.1 0-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39L128 288l0-224zm0 224l0 48L24 336c-13.3 0-24-10.7-24-24s10.7-24 24-24l104 0zM512 128l-128 0L384 0 512 128z\"},\"child\":[]}]})(props);\n};\nexport function FaFileInvoiceDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM64 80c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 96c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16zm128 72c8.8 0 16 7.2 16 16l0 17.3c8.5 1.2 16.7 3.1 24.1 5.1c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-11.1-3-22-5.2-32.1-5.3c-8.4-.1-17.4 1.8-23.6 5.5c-5.7 3.4-8.1 7.3-8.1 12.8c0 3.7 1.3 6.5 7.3 10.1c6.9 4.1 16.6 7.1 29.2 10.9l.5 .1s0 0 0 0s0 0 0 0c11.3 3.4 25.3 7.6 36.3 14.6c12.1 7.6 22.4 19.7 22.7 38.2c.3 19.3-9.6 33.3-22.9 41.6c-7.7 4.8-16.4 7.6-25.1 9.1l0 17.1c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-17.8c-11.2-2.1-21.7-5.7-30.9-8.9c0 0 0 0 0 0c-2.1-.7-4.2-1.4-6.2-2.1c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c2.5 .8 4.8 1.6 7.1 2.4c0 0 0 0 0 0s0 0 0 0s0 0 0 0c13.6 4.6 24.6 8.4 36.3 8.7c9.1 .3 17.9-1.7 23.7-5.3c5.1-3.2 7.9-7.3 7.8-14c-.1-4.6-1.8-7.8-7.7-11.6c-6.8-4.3-16.5-7.4-29-11.2l-1.6-.5s0 0 0 0c-11-3.3-24.3-7.3-34.8-13.7c-12-7.2-22.6-18.9-22.7-37.3c-.1-19.4 10.8-32.8 23.8-40.5c7.5-4.4 15.8-7.2 24.1-8.7l0-17.3c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaFileInvoice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM80 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 96l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 352c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm0 32l0 64 192 0 0-64L96 256zM240 416l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaFileLines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM112 256l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaFileMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaFilePdf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 144-208 0c-35.3 0-64 28.7-64 64l0 144-48 0c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM176 352l32 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-16 0 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-80c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0 48 16 0zm96-80l32 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16l0-128c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-16 0 0 96 16 0zm80-112c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFilePen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 125.7-86.8 86.8c-10.3 10.3-17.5 23.1-21 37.2l-18.7 74.9c-2.3 9.2-1.8 18.8 1.3 27.5L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFilePowerpoint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM136 240l68 0c42 0 76 34 76 76s-34 76-76 76l-44 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-56 0-104c0-13.3 10.7-24 24-24zm68 104c15.5 0 28-12.5 28-28s-12.5-28-28-28l-44 0 0 56 44 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFilePrescription (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM104 196l72 0c33.1 0 60 26.9 60 60c0 25.5-15.9 47.2-38.3 55.9l43 40.3 33.8-31c8.1-7.5 20.8-6.9 28.3 1.2s6.9 20.8-1.2 28.3L270 379.7l31.7 29.7c8.1 7.6 8.5 20.2 .9 28.3s-20.2 8.5-28.3 .9l-33.9-31.8-34.9 32c-8.1 7.5-20.8 6.9-28.3-1.2s-6.9-20.8 1.2-28.3l32.6-29.9-64.8-60.8c-.9-.8-1.6-1.7-2.3-2.6l-20 0 0 44c0 11-9 20-20 20s-20-9-20-20l0-64 0-80c0-11 9-20 20-20zm72 80c11 0 20-9 20-20s-9-20-20-20l-52 0 0 40 52 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFileShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 47-92.8 37.1c-21.3 8.5-35.2 29.1-35.2 52c0 56.6 18.9 148 94.2 208.3c-9 4.8-19.3 7.6-30.2 7.6L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm39.1 97.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8l0 187.8c68.2-33 91.5-99 95.4-149.7z\"},\"child\":[]}]})(props);\n};\nexport function FaFileSignature (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-19.3c-2.7 1.1-5.4 2-8.2 2.7l-60.1 15c-3 .7-6 1.2-9 1.4c-.9 .1-1.8 .2-2.7 .2l-64 0c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 381l-9.8 32.8c-6.1 20.3-24.8 34.2-46 34.2L80 448c-8.8 0-16-7.2-16-16s7.2-16 16-16l8.2 0c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.8 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8 8.9 0c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7L384 203.6l0-43.6-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM549.8 139.7c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM311.9 321c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L512.1 262.7l-71-71L311.9 321z\"},\"child\":[]}]})(props);\n};\nexport function FaFileVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM64 288c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96zM300.9 397.9L256 368l0-64 44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3l0 103.4c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1z\"},\"child\":[]}]})(props);\n};\nexport function FaFileWaveform (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C60.7 0 32 28.7 32 64l0 224 112 0c6.1 0 11.6 3.4 14.3 8.8L176 332.2l49.7-99.4c2.7-5.4 8.3-8.8 14.3-8.8s11.6 3.4 14.3 8.8L281.9 288l70.1 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-80 0c-6.1 0-11.6-3.4-14.3-8.8L240 275.8l-49.7 99.4c-2.7 5.4-8.3 8.8-14.3 8.8s-11.6-3.4-14.3-8.8L134.1 320 32 320l0 128c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L256 0 96 0zM288 0l0 128 128 0L288 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFileWord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM111 257.1l26.8 89.2 31.6-90.3c3.4-9.6 12.5-16.1 22.7-16.1s19.3 6.4 22.7 16.1l31.6 90.3L273 257.1c3.8-12.7 17.2-19.9 29.9-16.1s19.9 17.2 16.1 29.9l-48 160c-3 10-12 16.9-22.4 17.1s-19.8-6.2-23.2-16.1L192 336.6l-33.3 95.3c-3.4 9.8-12.8 16.3-23.2 16.1s-19.5-7.1-22.4-17.1l-48-160c-3.8-12.7 3.4-26.1 16.1-29.9s26.1 3.4 29.9 16.1z\"},\"child\":[]}]})(props);\n};\nexport function FaFileZipper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM96 48c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm-6.3 71.8c3.7-14 16.4-23.8 30.9-23.8l14.8 0c14.5 0 27.2 9.7 30.9 23.8l23.5 88.2c1.4 5.4 2.1 10.9 2.1 16.4c0 35.2-28.8 63.7-64 63.7s-64-28.5-64-63.7c0-5.5 .7-11.1 2.1-16.4l23.5-88.2zM112 336c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128z\"},\"child\":[]}]})(props);\n};\nexport function FaFillDrip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M41.4 9.4C53.9-3.1 74.1-3.1 86.6 9.4L168 90.7l53.1-53.1c28.1-28.1 73.7-28.1 101.8 0L474.3 189.1c28.1 28.1 28.1 73.7 0 101.8L283.9 481.4c-37.5 37.5-98.3 37.5-135.8 0L30.6 363.9c-37.5-37.5-37.5-98.3 0-135.8L122.7 136 41.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm176 221.3L168 181.3 75.9 273.4c-4.2 4.2-7 9.3-8.4 14.6l319.2 0 42.3-42.3c3.1-3.1 3.1-8.2 0-11.3L277.7 82.9c-3.1-3.1-8.2-3.1-11.3 0L213.3 136l49.4 49.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM512 512c-35.3 0-64-28.7-64-64c0-25.2 32.6-79.6 51.2-108.7c6-9.4 19.5-9.4 25.5 0C543.4 368.4 576 422.8 576 448c0 35.3-28.7 64-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaFill (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M86.6 9.4C74.1-3.1 53.9-3.1 41.4 9.4s-12.5 32.8 0 45.3L122.7 136 30.6 228.1c-37.5 37.5-37.5 98.3 0 135.8L148.1 481.4c37.5 37.5 98.3 37.5 135.8 0L474.3 290.9c28.1-28.1 28.1-73.7 0-101.8L322.9 37.7c-28.1-28.1-73.7-28.1-101.8 0L168 90.7 86.6 9.4zM168 181.3l49.4 49.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L213.3 136l53.1-53.1c3.1-3.1 8.2-3.1 11.3 0L429.1 234.3c3.1 3.1 3.1 8.2 0 11.3L386.7 288 67.5 288c1.4-5.4 4.2-10.4 8.4-14.6L168 181.3z\"},\"child\":[]}]})(props);\n};\nexport function FaFilm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM48 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L64 96c-8.8 0-16 7.2-16 16zM416 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM160 128l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L192 96c-17.7 0-32 14.3-32 32zm32 160c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFilterCircleDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.9 22.9C10.5 8.9 24.5 0 40 0L472 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm120.8-32.6c.6-.9 1.8-2.1 4.2-3.4c5.1-2.7 12.5-4.1 18.7-4c8.2 .1 17.1 1.8 26.4 4.1c8.6 2.1 17.3-3.1 19.4-11.7s-3.1-17.3-11.7-19.4c-5.6-1.4-11.6-2.7-17.9-3.7l0-9.4c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 9.5c-6.1 1.2-12.3 3.2-18 6.3c-11.8 6.3-23 18.4-21.8 37.2c1 16 11.7 25.3 21.6 30.7c8.8 4.7 19.7 7.8 28.6 10.3l1.8 .5c10.3 2.9 17.9 5.2 23.2 8.3c4.5 2.7 4.7 4.2 4.7 5.6c.1 2.4-.5 3.7-1 4.5c-.6 1-1.8 2.2-4 3.3c-4.7 2.5-11.8 3.8-18.5 3.6c-9.5-.3-18.5-3.1-29.9-6.8c-1.9-.6-3.8-1.2-5.8-1.8c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20c1.6 .5 3.3 1 5 1.6c0 0 0 0 0 0s0 0 0 0c7 2.3 15.1 4.8 23.7 6.6l0 11.4c0 8.8 7.2 16 16 16s16-7.2 16-16l0-10.8c6.2-1.1 12.5-3.1 18.3-6.2c12.1-6.5 22.3-18.7 21.7-36.9c-.5-16.2-10.3-26.3-20.5-32.3c-9.4-5.6-21.2-8.9-30.5-11.5l-.2 0c-10.4-2.9-18.3-5.2-23.9-8.2c-4.8-2.6-4.8-4-4.8-4.5c0 0 0 0 0-.1c-.1-1.9 .3-2.9 .8-3.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFilterCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.9 22.9C10.5 8.9 24.5 0 40 0L472 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"},\"child\":[]}]})(props);\n};\nexport function FaFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.9 54.9C10.5 40.9 24.5 32 40 32l432 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9 320 448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFingerprint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 256C48 141.1 141.1 48 256 48c63.1 0 119.6 28.1 157.8 72.5c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0C114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6c-15.2 5-18.7 23.7-8.3 35.9c7.1 8.3 18.8 10.8 29.4 7.9c10.6-2.9 21.8-4.4 33.4-4.4c70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3c-1.7 14.6 9.4 27.8 24.2 27.8c11.8 0 21.9-8.6 23.3-20.3c3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4C93.7 178 80 215.4 80 256l0 24.9c0 24.2-2.6 48.4-7.8 71.9C68.8 368.4 80.1 384 96.1 384c10.5 0 19.9-7 22.2-17.3c6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1c7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1c-3.8 14.3 6.7 29 21.5 29c9.5 0 17.9-6.2 20.4-15.4c10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9c-2.7 13.9 7.7 27.2 21.8 27.2c10.2 0 19-7 21-17c7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFireBurner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M345.7 48.3L358 34.5c5.4-6.1 13.3-8.8 20.9-8.9c7.2 0 14.3 2.6 19.9 7.8c19.7 18.3 39.8 43.2 55 70.6C469 131.2 480 162.2 480 192.2C480 280.8 408.7 352 320 352c-89.6 0-160-71.3-160-159.8c0-37.3 16-73.4 36.8-104.5c20.9-31.3 47.5-59 70.9-80.2C273.4 2.3 280.7-.2 288 0c14.1 .3 23.8 11.4 32.7 21.6c0 0 0 0 0 0c2 2.3 4 4.6 6 6.7l19 19.9zM384 240.2c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C293 167.1 256 203.6 256 240.2c0 35.3 28.7 64 64 64s64-28.7 64-64zM32 288c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 64 448 0 0-64c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l0-96zM320 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm160-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM192 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaFireExtinguisher (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M500.3 7.3C507.7 13.3 512 22.4 512 32l0 96c0 9.6-4.3 18.7-11.7 24.7s-17.2 8.5-26.6 6.6l-160-32C301.5 124.9 292 115.7 289 104l-65 0 0 34.8c37.8 18 64 56.5 64 101.2l0 144L64 384l0-144c0-44.7 26.2-83.2 64-101.2l0-28.8c-36.2 11.1-66 36.9-82.3 70.5c-5.8 11.9-20.2 16.9-32.1 11.1S-3.3 171.4 2.5 159.5C26.7 109.8 72.7 72.6 128 60.4L128 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 24 65 0c3-11.7 12.5-20.9 24.7-23.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM288 416l0 32c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64l0-32 224 0zM176 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaFireFlameCurved (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0C198.4 0 208 9.6 208 21.3V43.5c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7C384 434 306 512 209.7 512H192C86 512 0 426 0 320v-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6C85.9 176 96 186.1 96 198.6V288c0 35.3 28.7 64 64 64s64-28.7 64-64v-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7c0-27.7 9-54.8 25.6-76.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFireFlameSimple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6C0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5c0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z\"},\"child\":[]}]})(props);\n};\nexport function FaFire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5c-16.5-21-46-58.5-62.8-79.8c-6.3-8-18.3-8.1-24.7-.1c-33.8 42.5-50.8 69.3-50.8 99.4C112 375.4 162.6 416 225.7 416z\"},\"child\":[]}]})(props);\n};\nexport function FaFishFins (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5c-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.6 4.9S-3 163.3 4.2 175.9L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.6 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3c15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8c39.2-29.4 67.2-64.7 81.6-89.5c5.8-9.9 5.8-22.2 0-32.1c-14.4-24.8-42.5-60.1-81.6-89.5c-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM384 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFish (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8c4.7 9.2 4.7 20.1 0 29.3c-14.1 27.4-41.9 66.8-81 99.8C452.3 403.5 399.4 432 336 432s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9S-3 348.7 4.2 336.1L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFlagCheckered (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 279.7c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80 0-66L0 64 0 32C0 14.3 14.3 0 32 0zM64 187.1l64-13.9 0 65.5L64 252.6 64 318l48.8-12.2c5.1-1.3 10.1-2.4 15.2-3.3l0-63.9 38.9-8.4c8.3-1.8 16.7-2.5 25.1-2.1l0-64c13.6 .4 27.2 2.6 40.4 6.4l23.6 6.9 0 66.7-41.7-12.3c-7.3-2.1-14.8-3.4-22.3-3.8l0 71.4c21.8 1.9 43.3 6.7 64 14.4l0-69.8 22.7 6.7c13.5 4 27.3 6.4 41.3 7.4l0-64.2c-7.8-.8-15.6-2.3-23.2-4.5l-40.8-12 0-62c-13-3.8-25.8-8.8-38.2-15c-8.2-4.1-16.9-7-25.8-8.8l0 72.4c-13-.4-26 .8-38.7 3.6L128 173.2 128 98 64 114l0 73.1zM320 335.7c16.8 1.5 33.9-.7 50-6.8l14-5.2 0-71.7-7.9 1.8c-18.4 4.3-37.3 5.7-56.1 4.5l0 77.4zm64-149.4l0-70.8c-20.9 6.1-42.4 9.1-64 9.1l0 69.4c13.9 1.4 28 .5 41.7-2.6l22.3-5.2z\"},\"child\":[]}]})(props);\n};\nexport function FaFlagUsa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 36.1-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-20.3-9-41.8-14.7-63.6-16.9l0 32.2c17.4 2.1 34.4 6.7 50.6 13.9l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 136.3l0 62-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 203.1l0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 232.3l0 62-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 299.1l0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 328.3l0 33.5c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 400l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64 0-70.5 0-32.7 0-63.3 0-32.7 0-63.3 0-32.7L0 64 0 32C0 14.3 14.3 0 32 0zm80 96A16 16 0 1 0 80 96a16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-32 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 64 0 368 0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 64.3-16.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-247.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L64 48l0-16z\"},\"child\":[]}]})(props);\n};\nexport function FaFlaskVial (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M175 389.4c-9.8 16-15 34.3-15 53.1c-10 3.5-20.8 5.5-32 5.5c-53 0-96-43-96-96L32 64C14.3 64 0 49.7 0 32S14.3 0 32 0L96 0l64 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 245.9-49 79.6zM96 64l0 96 64 0 0-96L96 64zM352 0L480 0l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 150.9L629.7 406.2c6.7 10.9 10.3 23.5 10.3 36.4c0 38.3-31.1 69.4-69.4 69.4l-309.2 0c-38.3 0-69.4-31.1-69.4-69.4c0-12.8 3.6-25.4 10.3-36.4L320 214.9 320 64c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0zm32 64l0 160c0 5.9-1.6 11.7-4.7 16.8L330.5 320l171 0-48.8-79.2c-3.1-5-4.7-10.8-4.7-16.8l0-160-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFlask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0L160 0 128 0C110.3 0 96 14.3 96 32s14.3 32 32 32l0 132.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512l309.2 0c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5L320 64c17.7 0 32-14.3 32-32s-14.3-32-32-32L288 0zM192 196.8L192 64l64 0 0 132.8c0 23.7 6.6 46.9 19 67.1L309.5 320l-171 0L173 263.9c12.4-20.2 19-43.4 19-67.1z\"},\"child\":[]}]})(props);\n};\nexport function FaFloppyDisk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-242.7c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32L64 32zm0 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 224c-17.7 0-32-14.3-32-32l0-64zM224 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaFlorinSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224 64 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0L98.9 396.3c-5 11.9-16.6 19.7-29.5 19.7L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l37.3 0c38.8 0 73.7-23.3 88.6-59.1L213.3 288 320 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 45.1-108.3c5-11.9 16.6-19.7 29.5-19.7L352 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-37.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFolderClosed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 480L64 480c-35.3 0-64-28.7-64-64L0 192l512 0 0 224c0 35.3-28.7 64-64 64zm64-320L0 160 0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaFolderMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 480L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64zM184 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFolderOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M88.7 223.8L0 375.8 0 96C0 60.7 28.7 32 64 32l117.5 0c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7L416 96c35.3 0 64 28.7 64 64l0 32-336 0c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224l400 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480L32 480c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z\"},\"child\":[]}]})(props);\n};\nexport function FaFolderPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64l0 256zM232 376c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaFolderTree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32l0 96L0 384c0 35.3 28.7 64 64 64l192 0 0-64L64 384l0-224 192 0 0-64L64 96l0-64zM288 192c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l-98.7 0c-8.5 0-16.6-3.4-22.6-9.4L409.4 9.4c-6-6-14.1-9.4-22.6-9.4L320 0c-17.7 0-32 14.3-32 32l0 160zm0 288c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l-98.7 0c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4L320 288c-17.7 0-32 14.3-32 32l0 160z\"},\"child\":[]}]})(props);\n};\nexport function FaFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H288c-10.1 0-19.6-4.7-25.6-12.8L243.2 57.6C231.1 41.5 212.1 32 192 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaFont (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416 32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-1.8 0 18-48 159.6 0 18 48-1.8 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-25.8 0L254 52.8zM279.8 304l-111.6 0L224 155.1 279.8 304z\"},\"child\":[]}]})(props);\n};\nexport function FaFootball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.5 25.4c-13.5 3.3-26.4 7.2-38.6 11.7C142.9 61.6 96.7 103.6 66 153.6C47.8 183.4 35.1 215.9 26.9 249L264.5 486.6c13.5-3.3 26.4-7.2 38.6-11.7c66-24.5 112.2-66.5 142.9-116.5c18.3-29.8 30.9-62.3 39.1-95.3L247.5 25.4zM495.2 205.3c6.1-56.8 1.4-112.2-7.7-156.4c-2.7-12.9-13-22.9-26.1-25.1c-58.2-9.7-109.9-12-155.6-7.9L495.2 205.3zM206.1 496L16.8 306.7c-6.1 56.8-1.4 112.2 7.7 156.4c2.7 12.9 13 22.9 26.1 25.1c58.2 9.7 109.9 12 155.6 7.9zm54.6-331.3c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaForwardFast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.4 445c11.2 5.3 24.5 3.6 34.1-4.4L224 297.7 224 416c0 12.4 7.2 23.7 18.4 29s24.5 3.6 34.1-4.4L448 297.7 448 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 118.3L276.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S224 83.6 224 96l0 118.3L52.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S0 83.6 0 96L0 416c0 12.4 7.2 23.7 18.4 29z\"},\"child\":[]}]})(props);\n};\nexport function FaForwardStep (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416L0 96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4l192 160L256 241l0-145c0-17.7 14.3-32 32-32s32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-145-11.5 9.6-192 160z\"},\"child\":[]}]})(props);\n};\nexport function FaForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416L0 96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4L224 214.3l0 41.7 0 41.7L52.5 440.6zM256 352l0-96 0-128 0-32c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4l192 160c7.3 6.1 11.5 15.1 11.5 24.6s-4.2 18.5-11.5 24.6l-192 160c-9.5 7.9-22.8 9.7-34.1 4.4s-18.4-16.6-18.4-29l0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFrancSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 32C62.3 32 48 46.3 48 64l0 160 0 96-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-64 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-96 176 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z\"},\"child\":[]}]})(props);\n};\nexport function FaFrog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9c0 21.8-11.7 41.9-30.7 52.7L400.8 323.5 493.3 416l50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7c-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2c27.9-18.5 65.9-15.4 90.5 9.2c24.7 24.7 27.7 62.9 9 90.9c-2.6 3.8-5.6 7.5-9 10.9L261.8 416l90.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-35.3 0-64-28.7-64-64C0 249.6 127 112.9 289.3 97.5C296.2 60.2 328.8 32 368 32zm0 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaFutbol (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"},\"child\":[]}]})(props);\n};\nexport function FaG (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128L256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l144 0c25.8 0 49.6 21.4 47.2 50.6C437.8 389.6 341.4 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57c13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z\"},\"child\":[]}]})(props);\n};\nexport function FaGamepad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 64C86 64 0 150 0 256S86 448 192 448l256 0c106 0 192-86 192-192s-86-192-192-192L192 64zM496 168a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM392 304a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM168 200c0-13.3 10.7-24 24-24s24 10.7 24 24l0 32 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaGasPump (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 64C32 28.7 60.7 0 96 0L256 0c35.3 0 64 28.7 64 64l0 192 8 0c48.6 0 88 39.4 88 88l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-154c-27.6-7.1-48-32.2-48-62l0-64L384 64c-8.8-8.8-8.8-23.2 0-32s23.2-8.8 32 0l77.3 77.3c12 12 18.7 28.3 18.7 45.3l0 13.5 0 24 0 32 0 152c0 39.8-32.2 72-72 72s-72-32.2-72-72l0-32c0-22.1-17.9-40-40-40l-8 0 0 144c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 64zM96 80l0 96c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L112 64c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaGaugeHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaGaugeSimpleHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-15.9-5.8-30.4-15.3-41.6l76.6-147.4c6.1-11.8 1.5-26.3-10.2-32.4s-26.2-1.5-32.4 10.2L262.1 288.3c-2-.2-4-.3-6.1-.3c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaGaugeSimple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3L280 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 204.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaGauge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3L280 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 204.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm-16 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM400 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaGavel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M318.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-120 120c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l4-4L325.4 293.4l-4 4c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l120-120c12.5-12.5 12.5-32.8 0-45.3l-16-16c-12.5-12.5-32.8-12.5-45.3 0l-4 4L330.6 74.6l4-4c12.5-12.5 12.5-32.8 0-45.3l-16-16zm-152 288c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l48 48c12.5 12.5 32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-1.4-1.4L272 285.3 226.7 240 168 298.7l-1.4-1.4z\"},\"child\":[]}]})(props);\n};\nexport function FaGear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"},\"child\":[]}]})(props);\n};\nexport function FaGears (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.9 8.4 167.2 8 160.4 8l-.7 0c-6.8 0-13.5 .4-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaGem (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5l57.4 95.6L63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8L301.5 179.8l57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z\"},\"child\":[]}]})(props);\n};\nexport function FaGenderless (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 144a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm0 288a176 176 0 1 0 0-352 176 176 0 1 0 0 352z\"},\"child\":[]}]})(props);\n};\nexport function FaGhost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M40.1 467.1l-11.2 9c-3.2 2.5-7.1 3.9-11.1 3.9C8 480 0 472 0 462.2L0 192C0 86 86 0 192 0S384 86 384 192l0 270.2c0 9.8-8 17.8-17.8 17.8c-4 0-7.9-1.4-11.1-3.9l-11.2-9c-13.4-10.7-32.8-9-44.1 3.9L269.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6l-26.6-30.5c-12.7-14.6-35.4-14.6-48.2 0L141.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6L84.2 471c-11.3-12.9-30.7-14.6-44.1-3.9zM160 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaGift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M190.5 68.8L225.3 128l-1.3 0-72 0c-22.1 0-40-17.9-40-40s17.9-40 40-40l2.2 0c14.9 0 28.8 7.9 36.3 20.8zM64 88c0 14.4 3.5 28 9.6 40L32 128c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-41.6 0c6.1-12 9.6-25.6 9.6-40c0-48.6-39.4-88-88-88l-2.2 0c-31.9 0-61.5 16.9-77.7 44.4L256 85.5l-24.1-41C215.7 16.9 186.1 0 154.2 0L152 0C103.4 0 64 39.4 64 88zm336 0c0 22.1-17.9 40-40 40l-72 0-1.3 0 34.8-59.2C329.1 55.9 342.9 48 357.8 48l2.2 0c22.1 0 40 17.9 40 40zM32 288l0 176c0 26.5 21.5 48 48 48l144 0 0-224L32 288zM288 512l144 0c26.5 0 48-21.5 48-48l0-176-192 0 0 224z\"},\"child\":[]}]})(props);\n};\nexport function FaGifts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M200.6 32C205 19.5 198.5 5.8 186 1.4S159.8 3.5 155.4 16L144.7 46.2l-9.9-29.8C130.6 3.8 117-3 104.4 1.2S85 19 89.2 31.6l8.3 25-27.4-20c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5L70.2 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l152.6 0c-5.4-9.4-8.6-20.3-8.6-32l0-224c0-29.9 20.5-55 48.2-62c1.8-31 17.1-58.2 40.1-76.1C271.7 104.7 256.9 96 240 96l-22.2 0 28.3-20.6c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3L192.5 55.1 200.6 32zM363.5 185.5L393.1 224 344 224c-13.3 0-24-10.7-24-24c0-13.1 10.8-24 24.2-24c7.6 0 14.7 3.5 19.3 9.5zM272 200c0 8.4 1.4 16.5 4.1 24l-4.1 0c-26.5 0-48 21.5-48 48l0 80 192 0 0-96 32 0 0 96 192 0 0-80c0-26.5-21.5-48-48-48l-4.1 0c2.7-7.5 4.1-15.6 4.1-24c0-39.9-32.5-72-72.2-72c-22.4 0-43.6 10.4-57.3 28.2L432 195.8l-30.5-39.6c-13.7-17.8-35-28.2-57.3-28.2c-39.7 0-72.2 32.1-72.2 72zM224 464c0 26.5 21.5 48 48 48l144 0 0-128-192 0 0 80zm224 48l144 0c26.5 0 48-21.5 48-48l0-80-192 0 0 128zm96-312c0 13.3-10.7 24-24 24l-49.1 0 29.6-38.5c4.6-5.9 11.7-9.5 19.3-9.5c13.4 0 24.2 10.9 24.2 24z\"},\"child\":[]}]})(props);\n};\nexport function FaGlassWaterDroplet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM83 297.5L66.4 64l251.3 0L301 297.5 288 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0s-43.9 10.1-64 0l-13-6.5zM256 196c0-24-33.7-70.1-52.2-93.5c-6.1-7.7-17.5-7.7-23.6 0C161.7 125.9 128 172 128 196c0 33.1 28.7 60 64 60s64-26.9 64-60z\"},\"child\":[]}]})(props);\n};\nexport function FaGlassWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM73 156.5L66.4 64l251.3 0L311 156.5l-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0c-20.9-10.4-45.5-10.4-66.4 0c-19.4 9.7-42.2 9.7-61.6 0L73 156.5z\"},\"child\":[]}]})(props);\n};\nexport function FaGlasses (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M118.6 80c-11.5 0-21.4 7.9-24 19.1L57 260.3c20.5-6.2 48.3-12.3 78.7-12.3c32.3 0 61.8 6.9 82.8 13.5c10.6 3.3 19.3 6.7 25.4 9.2c3.1 1.3 5.5 2.4 7.3 3.2c.9 .4 1.6 .7 2.1 1l.6 .3 .2 .1c0 0 .1 0 .1 0c0 0 0 0 0 0s0 0 0 0L247.9 288s0 0 0 0l6.3-12.7c5.8 2.9 10.4 7.3 13.5 12.7l40.6 0c3.1-5.3 7.7-9.8 13.5-12.7l6.3 12.7s0 0 0 0c-6.3-12.7-6.3-12.7-6.3-12.7s0 0 0 0s0 0 0 0c0 0 .1 0 .1 0l.2-.1 .6-.3c.5-.2 1.2-.6 2.1-1c1.8-.8 4.2-1.9 7.3-3.2c6.1-2.6 14.8-5.9 25.4-9.2c21-6.6 50.4-13.5 82.8-13.5c30.4 0 58.2 6.1 78.7 12.3L481.4 99.1c-2.6-11.2-12.6-19.1-24-19.1c-3.1 0-6.2 .6-9.2 1.8L416.9 94.3c-12.3 4.9-26.3-1.1-31.2-13.4s1.1-26.3 13.4-31.2l31.3-12.5c8.6-3.4 17.7-5.2 27-5.2c33.8 0 63.1 23.3 70.8 56.2l43.9 188c1.7 7.3 2.9 14.7 3.5 22.1c.3 1.9 .5 3.8 .5 5.7l0 6.7 0 41.3 0 16c0 61.9-50.1 112-112 112l-44.3 0c-59.4 0-108.5-46.4-111.8-105.8L306.6 352l-37.2 0-1.2 22.2C264.9 433.6 215.8 480 156.3 480L112 480C50.1 480 0 429.9 0 368l0-16 0-41.3L0 304c0-1.9 .2-3.8 .5-5.7c.6-7.4 1.8-14.8 3.5-22.1l43.9-188C55.5 55.3 84.8 32 118.6 32c9.2 0 18.4 1.8 27 5.2l31.3 12.5c12.3 4.9 18.3 18.9 13.4 31.2s-18.9 18.3-31.2 13.4L127.8 81.8c-2.9-1.2-6-1.8-9.2-1.8zM64 325.4L64 368c0 26.5 21.5 48 48 48l44.3 0c25.5 0 46.5-19.9 47.9-45.3l2.5-45.6c-2.3-.8-4.9-1.7-7.5-2.5c-17.2-5.4-39.9-10.5-63.6-10.5c-23.7 0-46.2 5.1-63.2 10.5c-3.1 1-5.9 1.9-8.5 2.9zM512 368l0-42.6c-2.6-.9-5.5-1.9-8.5-2.9c-17-5.4-39.5-10.5-63.2-10.5c-23.7 0-46.4 5.1-63.6 10.5c-2.7 .8-5.2 1.7-7.5 2.5l2.5 45.6c1.4 25.4 22.5 45.3 47.9 45.3l44.3 0c26.5 0 48-21.5 48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaGlobe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 256c0 22.2-1.2 43.6-3.3 64l-185.3 0c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64l185.3 0c2.2 20.4 3.3 41.8 3.3 64zm28.8-64l123.1 0c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64l-123.1 0c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32l-116.7 0c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0l-176.6 0c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 20.9 58.2 27 94.7zm-209 0L18.6 160C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192l123.1 0c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64L8.1 320C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6l176.6 0c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352l116.7 0zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6l116.7 0z\"},\"child\":[]}]})(props);\n};\nexport function FaGolfBallTee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 192c0 66.8-34.1 125.6-85.8 160L85.8 352C34.1 317.6 0 258.8 0 192C0 86 86 0 192 0S384 86 384 192zM242.1 256.6c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zm-52.3-49.3c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4c0 18.5-15 33.5-33.5 33.5zm113.5-17.5c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zM96 416c0-17.7 14.3-32 32-32l64 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0c-8.8 0-16 7.2-16 16l0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16c0-8.8-7.2-16-16-16l-16 0c-17.7 0-32-14.3-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaGopuram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120 0c13.3 0 24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 48 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 0 32 0 64c17.7 0 32 14.3 32 32l0 64c17.7 0 32 14.3 32 32l0 96c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-64 0 0-160-32 0 0-128-32 0 0-96-32 0 0 96 32 0 0 128 32 0 0 160-80 0 0-48c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 48-80 0 0-160 32 0 0-128 32 0 0-96-32 0 0 96-32 0 0 128-32 0 0 160-64 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l0-96c0-17.7 14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l0-64 0-32 0-8c0-13.3 10.7-24 24-24zM256 272c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-32-80l0 32 64 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaGraduationCap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 32c-8.1 0-16.1 1.4-23.7 4.1L15.8 137.4C6.3 140.9 0 149.9 0 160s6.3 19.1 15.8 22.6l57.9 20.9C57.3 229.3 48 259.8 48 291.9l0 28.1c0 28.4-10.8 57.7-22.3 80.8c-6.5 13-13.9 25.8-22.5 37.6C0 442.7-.9 448.3 .9 453.4s6 8.9 11.2 10.2l64 16c4.2 1.1 8.7 .3 12.4-2s6.3-6.1 7.1-10.4c8.6-42.8 4.3-81.2-2.1-108.7C90.3 344.3 86 329.8 80 316.5l0-24.6c0-30.2 10.2-58.7 27.9-81.5c12.9-15.5 29.6-28 49.2-35.7l157-61.7c8.2-3.2 17.5 .8 20.7 9s-.8 17.5-9 20.7l-157 61.7c-12.4 4.9-23.3 12.4-32.2 21.6l159.6 57.6c7.6 2.7 15.6 4.1 23.7 4.1s16.1-1.4 23.7-4.1L624.2 182.6c9.5-3.4 15.8-12.5 15.8-22.6s-6.3-19.1-15.8-22.6L343.7 36.1C336.1 33.4 328.1 32 320 32zM128 408c0 35.3 86 72 192 72s192-36.7 192-72L496.7 262.6 354.5 314c-11.1 4-22.8 6-34.5 6s-23.5-2-34.5-6L143.3 262.6 128 408z\"},\"child\":[]}]})(props);\n};\nexport function FaGreaterThanEqual (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M52.1 93.7C35.7 87.1 27.7 68.5 34.3 52.1s25.2-24.4 41.6-17.8l320 128C408 167.1 416 178.9 416 192s-8 24.9-20.1 29.7l-320 128c-16.4 6.6-35-1.4-41.6-17.8s1.4-35 17.8-41.6L297.8 192 52.1 93.7zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0z\"},\"child\":[]}]})(props);\n};\nexport function FaGreaterThan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.4 81.7c-7.9 15.8-1.5 35 14.3 42.9L280.5 256 17.7 387.4C1.9 395.3-4.5 414.5 3.4 430.3s27.1 22.2 42.9 14.3l320-160c10.8-5.4 17.7-16.5 17.7-28.6s-6.8-23.2-17.7-28.6l-320-160c-15.8-7.9-35-1.5-42.9 14.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGripLinesVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 192 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384z\"},\"child\":[]}]})(props);\n};\nexport function FaGripLines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z\"},\"child\":[]}]})(props);\n};\nexport function FaGripVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M40 352l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm192 0l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 320c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 192l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 160c-22.1 0-40-17.9-40-40L0 72C0 49.9 17.9 32 40 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40z\"},\"child\":[]}]})(props);\n};\nexport function FaGrip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 136c0-22.1-17.9-40-40-40L40 96C17.9 96 0 113.9 0 136l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm0 192c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm32-192l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM288 328c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm32-192l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM448 328c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaGroupArrowsRotate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M201.1 71.9c16.9-5 26.6-22.9 21.5-39.8s-22.9-26.6-39.8-21.5c-21.5 6.4-41.8 15.5-60.6 27C114.3 34 105.4 32 96 32C60.7 32 32 60.7 32 96c0 9.4 2 18.3 5.6 26.3c-11.5 18.7-20.6 39-27 60.6c-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c4.3-14.6 10.4-28.5 17.9-41.4c2 .2 4.1 .3 6.1 .3c35.3 0 64-28.7 64-64c0-2.1-.1-4.1-.3-6.1c12.9-7.5 26.8-13.6 41.4-17.9zm128-61.3c-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c14.6 4.3 28.5 10.4 41.4 17.9c-.2 2-.3 4.1-.3 6.1c0 35.3 28.7 64 64 64c2.1 0 4.1-.1 6.2-.3c7.5 12.9 13.6 26.8 17.9 41.4c5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.6c3.6-8 5.6-16.9 5.6-26.3c0-35.3-28.7-64-64-64c-9.4 0-18.3 2-26.3 5.6c-18.7-11.5-39-20.6-60.6-27zM71.9 310.9c-5-16.9-22.9-26.6-39.8-21.5s-26.6 22.9-21.5 39.8c6.4 21.5 15.5 41.8 27 60.6C34 397.7 32 406.6 32 416c0 35.3 28.7 64 64 64c9.4 0 18.3-2 26.3-5.6c18.7 11.5 39 20.6 60.6 27c16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-14.6-4.3-28.5-10.4-41.4-17.9c.2-2 .3-4.1 .3-6.2c0-35.3-28.7-64-64-64c-2.1 0-4.1 .1-6.2 .3c-7.5-12.9-13.6-26.8-17.9-41.4zm429.4 18.3c5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-4.3 14.6-10.4 28.5-17.9 41.4c-2-.2-4.1-.3-6.2-.3c-35.3 0-64 28.7-64 64c0 2.1 .1 4.1 .3 6.2c-12.9 7.5-26.8 13.6-41.4 17.9c-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.6-27c8 3.6 16.9 5.6 26.3 5.6c35.3 0 64-28.7 64-64c0-9.4-2-18.3-5.6-26.3c11.5-18.7 20.6-39 27-60.6zM192.8 256.8c0-15.6 5.6-29.9 14.9-41.1L223 231c6.6 6.6 17.8 1.9 17.8-7.4l0-60.5c0-5.7-4.7-10.4-10.4-10.4l-60.5 0c-9.3 0-13.9 11.2-7.4 17.8l11.2 11.2c-17.9 19.8-28.9 46.2-28.9 75.1c0 43.6 24.9 81.3 61.1 99.8c11.8 6 26.3 1.4 32.3-10.4s1.4-26.3-10.4-32.3c-20.8-10.6-34.9-32.2-34.9-57zm93.1-58.6c20.8 10.6 34.9 32.2 34.9 57c0 15.6-5.6 29.9-14.9 41.1L290.6 281c-6.6-6.6-17.8-1.9-17.8 7.4l0 60.5c0 5.7 4.7 10.4 10.4 10.4l60.5 0c9.3 0 13.9-11.2 7.4-17.8l-11.2-11.2c17.9-19.8 28.9-46.2 28.9-75.1c0-43.6-24.9-81.3-61.1-99.8c-11.8-6-26.3-1.4-32.3 10.4s-1.4 26.3 10.4 32.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGuaraniSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0c-17.7 0-32 14.3-32 32l0 34.7C69.2 81.9 0 160.9 0 256s69.2 174.1 160 189.3l0 34.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-34.7c90.8-15.2 160-94.2 160-189.3c0-17.7-14.3-32-32-32l-128 0 0-92c22.1 5.7 41.8 17.1 57.6 32.6c12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C299 92 263.5 73.3 224 66.7L224 32c0-17.7-14.3-32-32-32zM160 132L160 380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124zM224 380l0-92 92 0c-11.6 45-47 80.4-92 92z\"},\"child\":[]}]})(props);\n};\nexport function FaGuitar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6c-11 11-18 24.6-21.4 39.6c-3.7 16.6-19.1 30.7-36.1 31.6c-25.6 1.3-49.3 10.7-67.3 28.6C-16 328.4-7.6 409.4 47.5 464.5s136.1 63.5 180.9 18.7c17.9-17.9 27.4-41.7 28.6-67.3c.9-17 15-32.3 31.6-36.1c15-3.4 28.6-10.5 39.6-21.4c31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 256a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaGun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8L32 64C14.3 64 0 78.3 0 96L0 208c0 17.7 14.3 32 32 32l10 0c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480l96 0c14.7 0 27.5-10 31-24.2L217 352l104.5 0c23.7 0 44.8-14.9 52.7-37.2L400.9 240l31.1 0c8.5 0 16.6-3.4 22.6-9.4L477.3 208l66.7 0c17.7 0 32-14.3 32-32l0-80c0-17.7-14.3-32-32-32l-16 0 0-8zM321.4 304L229 304l16-64 105 0-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128l384 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaH (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 256l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224 0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128L64 192 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHammer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M413.5 237.5c-28.2 4.8-58.2-3.6-80-25.4l-38.1-38.1C280.4 159 272 138.8 272 117.6l0-12.1L192.3 62c-5.3-2.9-8.6-8.6-8.3-14.7s3.9-11.5 9.5-14l47.2-21C259.1 4.2 279 0 299.2 0l18.1 0c36.7 0 72 14 98.7 39.1l44.6 42c24.2 22.8 33.2 55.7 26.6 86L503 183l8-8c9.4-9.4 24.6-9.4 33.9 0l24 24c9.4 9.4 9.4 24.6 0 33.9l-88 88c-9.4 9.4-24.6 9.4-33.9 0l-24-24c-9.4-9.4-9.4-24.6 0-33.9l8-8-17.5-17.5zM27.4 377.1L260.9 182.6c3.5 4.9 7.5 9.6 11.8 14l38.1 38.1c6 6 12.4 11.2 19.2 15.7L134.9 484.6c-14.5 17.4-36 27.4-58.6 27.4C34.1 512 0 477.8 0 435.7c0-22.6 10.1-44.1 27.4-58.6z\"},\"child\":[]}]})(props);\n};\nexport function FaHamsa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M34.6 288L80 288c8.8 0 16-7.2 16-16L96 72c0-22.1 17.9-40 40-40s40 17.9 40 40l0 132c0 11 9 20 20 20s20-9 20-20l0-164c0-22.1 17.9-40 40-40s40 17.9 40 40l0 164c0 11 9 20 20 20s20-9 20-20l0-132c0-22.1 17.9-40 40-40s40 17.9 40 40l0 200c0 8.8 7.2 16 16 16l45.4 0c19.1 0 34.6 15.5 34.6 34.6c0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71s-119.4-25.8-160.6-71L9 345.9c-5.8-6.4-9-14.7-9-23.3C0 303.5 15.5 288 34.6 288zM256 288c-38.4 0-76.8 35.8-90.6 50.2c-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaHandBackFist (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 0C117.5 0 96 21.5 96 48l0 48 0 28.5L96 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-26.7-9 7.5C40.4 169 32 187 32 206L32 244c0 38 16.9 74 46.1 98.3L128 384l0 96c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-105.3c46.9-19 80-65 80-118.7l0-80 0-16 0-16c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 83.5 329.3 64 304 64c-12.4 0-23.6 4.7-32.1 12.3C270 51.5 249.3 32 224 32c-12.4 0-23.6 4.7-32.1 12.3C190 19.5 169.3 0 144 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandDots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208zM240 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80 16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48-16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-16 80a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM240 432a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-48-48a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaHandFist (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0c17.7 0 32 14.3 32 32l0 112-64 0 0-112c0-17.7 14.3-32 32-32zM64 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80-64 0 0-80zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6l0 8.6c0 52.3-25.1 98.8-64 128l0 96c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-78.4c-17.3-7.9-33.2-18.8-46.9-32.5L69.5 357.5C45.5 333.5 32 300.9 32 267l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHoldingDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M312 24l0 10.5c6.4 1.2 12.6 2.7 18.2 4.2c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17c-10.9-2.9-21.1-4.9-30.2-5c-7.3-.1-14.7 1.7-19.4 4.4c-2.1 1.3-3.1 2.4-3.5 3c-.3 .5-.7 1.2-.7 2.8c0 .3 0 .5 0 .6c.2 .2 .9 1.2 3.3 2.6c5.8 3.5 14.4 6.2 27.4 10.1l.9 .3s0 0 0 0c11.1 3.3 25.9 7.8 37.9 15.3c13.7 8.6 26.1 22.9 26.4 44.9c.3 22.5-11.4 38.9-26.7 48.5c-6.7 4.1-13.9 7-21.3 8.8l0 10.6c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11.4c-9.5-2.3-18.2-5.3-25.6-7.8c-2.1-.7-4.1-1.4-6-2c-12.6-4.2-19.4-17.8-15.2-30.4s17.8-19.4 30.4-15.2c2.6 .9 5 1.7 7.3 2.5c13.6 4.6 23.4 7.9 33.9 8.3c8 .3 15.1-1.6 19.2-4.1c1.9-1.2 2.8-2.2 3.2-2.9c.4-.6 .9-1.8 .8-4.1l0-.2c0-1 0-2.1-4-4.6c-5.7-3.6-14.3-6.4-27.1-10.3l-1.9-.6c-10.8-3.2-25-7.5-36.4-14.4c-13.5-8.1-26.5-22-26.6-44.1c-.1-22.9 12.9-38.6 27.7-47.4c6.4-3.8 13.3-6.4 20.2-8.2L264 24c0-13.3 10.7-24 24-24s24 10.7 24 24zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHoldingDroplet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M275.5 6.6C278.3 2.5 283 0 288 0s9.7 2.5 12.5 6.6L366.8 103C378 119.3 384 138.6 384 158.3l0 1.7c0 53-43 96-96 96s-96-43-96-96l0-1.7c0-19.8 6-39 17.2-55.3L275.5 6.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHoldingHand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.8 207.7c-13.1-17.8-9.3-42.8 8.5-55.9L142.9 58.5C166.2 41.3 194.5 32 223.5 32L384 32l160 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-36.8 0-44.9 36c-22.7 18.2-50.9 28-80 28L304 224l-16 0-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-120.6 0L63.7 216.2c-17.8 13.1-42.8 9.3-55.9-8.5zM382.4 160c0 0 0 0 0 0l.9 0c-.3 0-.6 0-.9 0zM568.2 304.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 453.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 480 32 480c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 352c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHoldingHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M163.9 136.9c-29.4-29.8-29.4-78.2 0-108s77-29.8 106.4 0l17.7 18 17.7-18c29.4-29.8 77-29.8 106.4 0s29.4 78.2 0 108L310.5 240.1c-6.2 6.3-14.3 9.4-22.5 9.4s-16.3-3.1-22.5-9.4L163.9 136.9zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHoldingMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 24l0 56-56 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l56 0 0 56c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-56 56 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-56 0 0-56c0-13.3-10.7-24-24-24L248 0c-13.3 0-24 10.7-24 24zM559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 272 416c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0-16 0-78.3 0c-29.1 0-57.3 9.9-80 28L68.8 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0 160.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2l.9 0c0 0 0 0 0 0c-.3 0-.6 0-.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHolding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 272 416c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0-16 0-78.3 0c-29.1 0-57.3 9.9-80 28L68.8 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0 160.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2c.3 0 .6 0 .9 0c0 0 0 0 0 0c-.3 0-.6 0-.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandLizard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 112C0 85.5 21.5 64 48 64l112 0 80 0 46.5 0c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8l0 12 0 16 0 48c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-13.8L273.9 352 240 352l-80 0-48 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l48 0 80 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-80 0L48 160c-26.5 0-48-21.5-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaHandMiddleFinger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 0c-22.1 0-40 17.9-40 40l0 164.2c-8.5-7.6-19.7-12.2-32-12.2c-26.5 0-48 21.5-48 48l0 7 0 73c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-55.7c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334L32 372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1L304 512c70.7 0 128-57.3 128-128l0-64 0-32c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 227.5 329.3 208 304 208c-12.3 0-23.5 4.6-32 12.2L272 40c0-22.1-17.9-40-40-40z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPeace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0c17.7 0 32 14.3 32 32l0 208-64 0 0-208c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM93.3 51.2L175.9 240l-69.9 0L34.7 76.8C27.6 60.6 35 41.8 51.2 34.7s35.1 .3 42.1 16.5zm27 221.3l-.2-.5 69.9 0 26.1 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9l-11.6-11.6C77.5 429.5 64 396.9 64 363l0-27c0-32.7 24.6-59.7 56.3-63.5z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208-64 0 0 208zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-64 64c17.7 0 32-14.3 32-32l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6c13.2 0 25.4 4 35.6 10.8c8.7-24.9 32.5-42.8 60.4-42.8c11.7 0 22.6 3.1 32 8.6l0-8.6C384 71.6 312.4 0 224 0L162.3 0C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149l0 27c0 35.3 28.7 64 64 64l88 0c22.1 0 40-17.9 40-40s-17.9-40-40-40l-56 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l56 0c39.8 0 72 32.2 72 72z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0 0-64L32 96zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm-64-64c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32c0 13.2-4 25.4-10.8 35.6c24.9 8.7 42.8 32.5 42.8 60.4c0 11.7-3.1 22.6-8.6 32l8.6 0c88.4 0 160-71.6 160-160l0-61.7c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64l0 88c0 22.1 17.9 40 40 40s40-17.9 40-40l0-56c0-8.8 7.2-16 16-16s16 7.2 16 16l0 56c0 39.8-32.2 72-72 72z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm64-64c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32c0 13.2 4 25.4 10.8 35.6C177.9 364.3 160 388.1 160 416c0 11.7 3.1 22.6 8.6 32l-8.6 0C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64l0 88c0 22.1-17.9 40-40 40s-40-17.9-40-40l0-56c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 56c0 39.8 32.2 72 72 72z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32l0 208-64 0L32 32zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-64-64c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40l0 148.2c8.5-7.6 19.7-12.2 32-12.2c20.6 0 38.2 13 45 31.2c8.8-9.3 21.2-15.2 35-15.2c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c26.5 0 48 21.5 48 48l0 48 0 16 0 48c0 70.7-57.3 128-128 128l-16 0-64 0-.1 0-5.2 0c-5 0-9.9-.3-14.7-1c-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7L128 40zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaHandScissors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32c0 25.3 19.5 46 44.3 47.9c-7.7 8.5-12.3 19.8-12.3 32.1c0 26.5 21.5 48 48 48l32 0 64 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3C444.8 76.8 413.9 64 381.7 64L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4L288 129.9c0 0 0 .1 0 .1L84 65.8C62.9 59.2 40.5 70.9 33.8 92s5.1 43.5 26.2 50.2L269.5 208 40 208z\"},\"child\":[]}]})(props);\n};\nexport function FaHandSparkles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 0c17.7 0 32 14.3 32 32l0 208c0 8.8 7.2 16 16 16s16-7.2 16-16l0-176c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-112c0-17.7 14.3-32 32-32s32 14.3 32 32l0 195.1c-11.9 4.8-21.3 14.9-25 27.8l-8.9 31.2L478.9 391C460.6 396.3 448 413 448 432c0 18.9 12.5 35.6 30.6 40.9C448.4 497.4 409.9 512 368 512l-19.2 0c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6l0-272c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-208c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6L288 352l-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7L288 384l7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6L320 384l25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7L320 352l-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456l-13.8 48.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456l-48.3-13.8c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408l13.8-48.3c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z\"},\"child\":[]}]})(props);\n};\nexport function FaHandSpock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246.9 23.7C242.3 6.6 224.8-3.5 207.7 1.1s-27.2 22.1-22.6 39.2L238 237.8c2.5 9.2-4.5 18.2-14 18.2c-6.4 0-12-4.2-13.9-10.3L166.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L99.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L156.8 448c43.1 41.1 100.4 64 160 64l10.9 0 8.2 0c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L443.5 247.1c-1.6 5.3-6.4 8.9-12 8.9c-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L355.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9c-11.9 0-22.4-8-25.4-19.5l-57-212.8z\"},\"child\":[]}]})(props);\n};\nexport function FaHand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208z\"},\"child\":[]}]})(props);\n};\nexport function FaHandcuffs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM192 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32 80c17.7 0 32 14.3 32 32l8 0c13.3 0 24 10.7 24 24l0 16c0 1.7-.2 3.4-.5 5.1C280.3 229.6 320 286.2 320 352c0 88.4-71.6 160-160 160S0 440.4 0 352c0-65.8 39.7-122.4 96.5-146.9c-.4-1.6-.5-3.3-.5-5.1l0-16c0-13.3 10.7-24 24-24l8 0c0-17.7 14.3-32 32-32zm0 320a96 96 0 1 0 0-192 96 96 0 1 0 0 192zm192-96c0-25.9-5.1-50.5-14.4-73.1c16.9-32.9 44.8-59.1 78.9-73.9c-.4-1.6-.5-3.3-.5-5.1l0-16c0-13.3 10.7-24 24-24l8 0c0-17.7 14.3-32 32-32s32 14.3 32 32l8 0c13.3 0 24 10.7 24 24l0 16c0 1.7-.2 3.4-.5 5.1C600.3 229.6 640 286.2 640 352c0 88.4-71.6 160-160 160c-62 0-115.8-35.3-142.4-86.9c9.3-22.5 14.4-47.2 14.4-73.1zm224 0a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM368 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm80 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsAslInterpreting (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7L0 256c0 70.7 57.3 128 128 128l72 0 8 0 0-.3c35.2-2.7 65.4-22.8 82.1-51.7c8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20c-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20c8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5L194.9 124.6l81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4L133.6 92.3l23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2l0-9.3c0-70.7-57.3-128-128-128l-72 0-8 0 0 .3c-35.2 2.7-65.4 22.8-82.1 51.7c-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20c22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20c-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.7-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsBound (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32C96 14.3 81.7 0 64 0S32 14.3 32 32l0 64 0 59.1 0 .7L32 192l0 21.9c0 14.2 5.1 27.9 14.3 38.7L131.6 352l-3.6 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 128 0 64 0 128 0 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-3.6 0 85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7l0-21.9 0-36.2 0-.7L608 96l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64 0 48.8-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8c-9.7-5.7-12.1-18.7-5.1-27.5L473 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C361 209.7 352 233.4 352 258.1l0 61.9 0 32-64 0 0-32 0-61.9c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2s-15.2 30.9-4.4 44.5l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5c-8.1 4.8-18.6 2.7-24.2-4.8L96 144.8 96 96l0-64zm64 448l0 32 128 0 0-32 64 0 0 32 128 0 0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0-128 0-64 0-128 0-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsBubbles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM160 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM32 160l.1 72.6c.1 52.2 24 101 64 133.1c-.1-1.9-.1-3.8-.1-5.7l0-8c0-71.8 37-138.6 97.9-176.7l60.2-37.6c8.6-5.4 17.9-8.4 27.3-9.4l45.9-79.5c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8l-78 135.1c-3.3 5.7-10.7 7.7-16.4 4.4s-7.7-10.7-4.4-16.4l62-107.4c6.6-11.5 2.7-26.2-8.8-32.8S214 5 207.4 16.5l-68 117.8s0 0 0 0s0 0 0 0l-43.3 75L96 160c0-17.7-14.4-32-32-32s-32 14.4-32 32zM332.1 88.5L307.5 131c13.9 4.5 26.4 13.7 34.7 27c.9 1.5 1.8 2.9 2.5 4.4l28.9-50c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zm46.4 63.7l-26.8 46.4c-.6 6-2.1 11.8-4.3 17.4l4.7 0 13.3 0s0 0 0 0l31.8 0 23-39.8c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zM315.1 175c-9.4-15-29.1-19.5-44.1-10.2l-60.2 37.6C159.3 234.7 128 291.2 128 352l0 8c0 8.9 .8 17.6 2.2 26.1c35.4 8.2 61.8 40 61.8 77.9c0 6.3-.7 12.5-2.1 18.4C215.1 501 246.3 512 280 512l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-92 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-124 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l156 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-156 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-136 0s0 0 0 0s0 0 0 0l-93.2 0L305 219.1c15-9.4 19.5-29.1 10.2-44.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsClapping (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 16l0 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16zm-98.7 7.1l32 48c4.9 7.4 2.9 17.3-4.4 22.2s-17.3 2.9-22.2-4.4l-32-48c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4zM135 119c9.4-9.4 24.6-9.4 33.9 0L292.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4c-64 38.4-145.8 28.3-198.5-24.4L7 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L23 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM433.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1c48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4zM424.9 18.7c7.4 4.9 9.3 14.8 4.4 22.2l-32 48c-4.9 7.4-14.8 9.3-22.2 4.4s-9.3-14.8-4.4-22.2l32-48c4.9-7.4 14.8-9.3 22.2-4.4z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsHoldingChild (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 0a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm44.7 164.3L375.8 253c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35-7.6 0-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8L255.5 181c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 104.8 295.3 96 320 96s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8l-19.8-16.7zM40 64c22.1 0 40 17.9 40 40l0 40 0 80 0 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2c0 0 0 0 0 0l25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 224l0-64 0-56C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 56 0 64 0 101.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3c0 0 0 0 0 0l15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3l0-40.2 0-80 0-40c0-22.1 17.9-40 40-40z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsHoldingCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 0a128 128 0 1 1 0 256A128 128 0 1 1 320 0zM40 64c22.1 0 40 17.9 40 40l0 40 0 80 0 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2c0 0 0 0 0 0l25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 224l0-64 0-56C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 56 0 64 0 101.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3c0 0 0 0 0 0l15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3l0-40.2 0-80 0-40c0-22.1 17.9-40 40-40z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsHolding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104l0 56 0 64L0 325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7l66.7 0c26.5 0 48-21.5 48-48l0-78.9c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3c0 0 0 0 0 0l-15.2-15.2-32-32c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l32 32 15.2 15.2c11 11 9.2 29.2-3.7 37.8c-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3L80 224l0-80 0-40zm480 0l0 40 0 80 0 40.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1c-12.9-8.6-14.7-26.9-3.7-37.8l15.2-15.2 32-32c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-32 32-15.2 15.2c0 0 0 0 0 0l-25.3 25.3c-21 21-32.8 49.5-32.8 79.2l0 78.9c0 26.5 21.5 48 48 48l66.7 0c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9L640 224l0-64 0-56c0-22.1-17.9-40-40-40s-40 17.9-40 40z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsPraying (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M351.2 4.8c3.2-2 6.6-3.3 10-4.1c4.7-1 9.6-.9 14.1 .1c7.7 1.8 14.8 6.5 19.4 13.6L514.6 194.2c8.8 13.1 13.4 28.6 13.4 44.4l0 73.5c0 6.9 4.4 13 10.9 15.2l79.2 26.4C631.2 358 640 370.2 640 384l0 96c0 9.9-4.6 19.3-12.5 25.4s-18.1 8.1-27.7 5.5L431 465.9c-56-14.9-95-65.7-95-123.7L336 224c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-84.9c0-7-1.8-13.8-5.3-19.8L340.3 48.1c-1.7-3-2.9-6.1-3.6-9.3c-1-4.7-1-9.6 .1-14.1c1.9-8 6.8-15.2 14.3-19.9zm-62.4 0c7.5 4.6 12.4 11.9 14.3 19.9c1.1 4.6 1.2 9.4 .1 14.1c-.7 3.2-1.9 6.3-3.6 9.3L213.3 199.3c-3.5 6-5.3 12.9-5.3 19.8l0 84.9c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-17.7 14.3-32 32-32s32 14.3 32 32l0 118.2c0 58-39 108.7-95 123.7l-168.7 45c-9.6 2.6-19.9 .5-27.7-5.5S0 490 0 480l0-96c0-13.8 8.8-26 21.9-30.4l79.2-26.4c6.5-2.2 10.9-8.3 10.9-15.2l0-73.5c0-15.8 4.7-31.2 13.4-44.4L245.2 14.5c4.6-7.1 11.7-11.8 19.4-13.6c4.6-1.1 9.4-1.2 14.1-.1c3.5 .8 6.9 2.1 10 4.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHands (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 160l-.1 72.6c-.1 52.2-24 101-64 133.1c.1-1.9 .1-3.8 .1-5.7l0-8c0-71.8-37-138.6-97.9-176.7l-60.2-37.6c-8.6-5.4-17.9-8.4-27.3-9.4L248.7 48.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8l78 135.1c3.3 5.7 10.7 7.7 16.4 4.4s7.7-10.7 4.4-16.4l-62-107.4c-6.6-11.5-2.7-26.2 8.8-32.8S362 5 368.6 16.5l68 117.8s0 0 0 0s0 0 0 0l43.3 75L480 160c0-17.7 14.4-32 32-32s32 14.4 32 32zM243.9 88.5L268.5 131c-13.9 4.5-26.4 13.7-34.7 27c-.9 1.4-1.7 2.9-2.5 4.4l-28.9-50c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zm-46.4 63.7l26.8 46.4c.6 6 2.1 11.8 4.3 17.4l-4.7 0-13.3 0s0 0 0 0L179 216l-23-39.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zM260.9 175c9.4-15 29.1-19.5 44.1-10.2l60.2 37.6C416.7 234.7 448 291.2 448 352l0 8c0 83.9-68.1 152-152 152l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l92 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L88 440c-13.3 0-24-10.7-24-24s10.7-24 24-24l124 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 368c-13.3 0-24-10.7-24-24s10.7-24 24-24l156 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L88 296c-13.3 0-24-10.7-24-24s10.7-24 24-24l136 0s0 0 0 0s0 0 0 0l93.2 0L271 219.1c-15-9.4-19.5-29.1-10.2-44.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHandshakeAngle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 248l0 3.3 69.7-69.7c21.9-21.9 21.9-57.3 0-79.2L535.6 24.4c-21.9-21.9-57.3-21.9-79.2 0L416.3 64.5c-2.7-.3-5.5-.5-8.3-.5L296 64c-37.1 0-67.6 28-71.6 64l-.4 0 0 120c0 22.1 17.9 40 40 40s40-17.9 40-40l0-72c0 0 0-.1 0-.1l0-15.9 16 0 136 0c0 0 0 0 .1 0l7.9 0c44.2 0 80 35.8 80 80l0 8zM336 192l0 56c0 39.8-32.2 72-72 72s-72-32.2-72-72l0-118.6c-35.9 6.2-65.8 32.3-76 68.2L99.5 255.2 26.3 328.4c-21.9 21.9-21.9 57.3 0 79.2l78.1 78.1c21.9 21.9 57.3 21.9 79.2 0l37.7-37.7c.9 0 1.8 .1 2.7 .1l160 0c26.5 0 48-21.5 48-48c0-5.6-1-11-2.7-16l2.7 0c26.5 0 48-21.5 48-48c0-12.8-5-24.4-13.2-33c25.7-5 45.1-27.6 45.2-54.8l0-.4c-.1-30.8-25.1-55.8-56-55.8c0 0 0 0 0 0l-120 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandshakeSimpleSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352l41.8 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-76 0-4 0-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM0 176L0 304c0 26.5 21.5 48 48 48l108.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6L41.2 128.5C17.9 131.8 0 151.8 0 176z\"},\"child\":[]}]})(props);\n};\nexport function FaHandshakeSimple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352l41.8 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-76 0-4 0-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48-80 0c-26.5 0-48 21.5-48 48L0 304c0 26.5 21.5 48 48 48l108.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123z\"},\"child\":[]}]})(props);\n};\nexport function FaHandshakeSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8 512 128l-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM96 171.6L40.6 128 0 128 0 352c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-180.4zM413.6 421.9L128 196.9 128 352l28.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128l0 224c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-224-96 0zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandshake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8 512 128l-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48 0 224 28.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123zM16 128c-8.8 0-16 7.2-16 16L0 352c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-224-80 0zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128l0 224c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-208c0-8.8-7.2-16-16-16l-80 0zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHanukiah (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M314.2 3.3C309.1 12.1 296 36.6 296 56c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C324.6 1.2 322.4 0 320 0s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C36.6 49.2 34.4 48 32 48s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7C165.1 60.1 152 84.6 152 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3C389.1 60.1 376 84.6 376 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7C517.1 60.1 504 84.6 504 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176L96 320c-17.7 0-32-14.3-32-32l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 53 43 96 96 96l192 0 0 64-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-64 192 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32l-192 0 0-176z\"},\"child\":[]}]})(props);\n};\nexport function FaHardDrive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 184.4c-17-15.2-39.4-24.4-64-24.4L64 256c-24.6 0-47 9.2-64 24.4L0 96zM64 288l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64zM320 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHashtag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M181.3 32.4c17.4 2.9 29.2 19.4 26.3 36.8L197.8 128l95.1 0 11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3s29.2 19.4 26.3 36.8L357.8 128l58.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-68.9 0L325.8 320l58.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-68.9 0-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l9.8-58.7-95.1 0-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8L90.2 384 32 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l68.9 0 21.3-128L64 192c-17.7 0-32-14.3-32-32s14.3-32 32-32l68.9 0 11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3zM187.1 192L165.8 320l95.1 0 21.3-128-95.1 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHatCowboySide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152.7 135.9l-10.4 57.2c6.8-.7 13.6-1.1 20.5-1.1l10.7 0c39.4 0 77.8 12.1 110.1 34.7L562.4 421.8l35.1 24.6c24.4-6 42.5-28.1 42.5-54.4c0-75.8-94.7-126.6-134.6-144.7L474 83.9C468.2 53.8 441.8 32 411.1 32l-2.7 0c-5.6 0-11.1 .7-16.5 2.2L199.2 85.5c-23.9 6.4-42 26-46.5 50.4zM0 384c0 35.3 28.7 64 64 64l480 0L265.3 252.9c-26.9-18.8-58.9-28.9-91.8-28.9l-10.7 0c-60.6 0-116 34.2-143.1 88.4L13.5 325C4.6 342.7 0 362.3 0 382.2L0 384z\"},\"child\":[]}]})(props);\n};\nexport function FaHatCowboy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 64c14.4 0 22.3-7 30.8-14.4C360.4 41.1 370.7 32 392 32c49.3 0 84.4 152.2 97.9 221.9C447.8 272.1 390.9 288 320 288s-127.8-15.9-169.9-34.1C163.6 184.2 198.7 32 248 32c21.3 0 31.6 9.1 41.2 17.6C297.7 57 305.6 64 320 64zM111.1 270.7c47.2 24.5 117.5 49.3 209 49.3s161.8-24.8 208.9-49.3c24.8-12.9 49.8-28.3 70.1-47.7c7.9-7.9 20.2-9.2 29.6-3.3c9.5 5.9 13.5 17.9 9.9 28.5c-13.5 37.7-38.4 72.3-66.1 100.6C523.7 398.9 443.6 448 320 448s-203.6-49.1-252.5-99.2C39.8 320.4 14.9 285.8 1.4 248.1c-3.6-10.6 .4-22.6 9.9-28.5c9.5-5.9 21.7-4.5 29.6 3.3c20.4 19.4 45.3 34.8 70.1 47.7z\"},\"child\":[]}]})(props);\n};\nexport function FaHatWizard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 416L168.6 180.7c15.3-34.4 40.3-63.5 72-83.7l146.9-94c3-1.9 6.5-2.9 10-2.9C407.7 0 416 8.3 416 18.6l0 1.6c0 2.6-.5 5.1-1.4 7.5L354.8 176.9c-1.9 4.7-2.8 9.7-2.8 14.7c0 5.5 1.2 11 3.4 16.1L448 416l-207.1 0 11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 276.4 230.9 272 224 272s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 339 144 345.1 144 352s4.4 13 10.9 15.2l40.4 13.5L207.1 416 64 416zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadSideCoughSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 325.8l44 34.5c8.1 1.4 14.8 6.8 18 14.1L552.9 408c10.6 .4 19.5 7.6 22.2 17.4l39.1 30.6c.6 0 1.2-.1 1.8-.1c11.1 0 20.4 7.5 23.2 17.8l-3.9 0c6.2 8.5 6.4 20.4-.4 29c-8.2 10.4-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2S28.4-3.1 38.8 5.1L89.6 44.9C127 16.7 173.5 0 224 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8L448 320s0 0 0 0l0 5.8zM0 224.2c0-38.7 9.8-75.1 27.1-106.9L341.8 365.3l-2.5 .3c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9l62 3.9 43 33.9C439.3 466.2 421.2 480 400 480l-80 0 0 8c0 13.3-10.7 24-24 24l-40 0s0 0 0 0L96 512c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM616 360a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-64-48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadSideCough (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 224.2C0 100.6 100.2 0 224 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8L448 320s0 0 0 0l0 32L339.2 365.6c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9L448 416l0 16c0 26.5-21.5 48-48 48l-80 0 0 8c0 13.3-10.7 24-24 24l-40 0s0 0 0 0L96 512c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zm352-.2a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM464 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm152-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM592 480a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 312a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadSideMask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 224.2c0-22.2 3.2-43.6 9.2-63.9L262.2 321c-4 9.5-6.2 20-6.2 31l0 160-128 0c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C48.6 322.4 32 274.1 32 224.2zm248.3 70.4L53 129.3C88.7 53 166.2 0 256 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c5.4 6.7 8.6 14.8 9.4 23.2L336 272c-21.7 0-41.3 8.6-55.7 22.6zM336 304l198 0s0 0 0 0l10 0-19.7 64L368 368c-8.8 0-16 7.2-16 16s7.2 16 16 16l146.5 0-9.8 32L368 432c-8.8 0-16 7.2-16 16s7.2 16 16 16l126.8 0-.9 2.8c-8.3 26.9-33.1 45.2-61.2 45.2L288 512l0-160c0-14 6-26.7 15.6-35.4c0 0 0 0 0 0c8.5-7.8 19.9-12.6 32.4-12.6zm48-80a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadSideVirus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 224.2C0 100.6 100.2 0 224 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8L448 320l0 64c0 35.3-28.7 64-64 64l-64 0 0 32c0 17.7-14.3 32-32 32L96 512c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM224 64c-8.8 0-16 7.2-16 16c0 33-39.9 49.5-63.2 26.2c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6C145.5 152.1 129 192 96 192c-8.8 0-16 7.2-16 16s7.2 16 16 16c33 0 49.5 39.9 26.2 63.2c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0C168.1 286.5 208 303 208 336c0 8.8 7.2 16 16 16s16-7.2 16-16c0-33 39.9-49.5 63.2-26.2c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6C302.5 263.9 319 224 352 224c8.8 0 16-7.2 16-16s-7.2-16-16-16c-33 0-49.5-39.9-26.2-63.2c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0C279.9 129.5 240 113 240 80c0-8.8-7.2-16-16-16zm-24 96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 80a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHeading (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l48 0 48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 112 224 0 0-112-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0 48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 144 0 176 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-144-224 0 0 144 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-176L48 96 32 96C14.3 96 0 81.7 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadphonesSimple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 80C141.1 80 48 173.1 48 288l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24L0 288C0 146.6 114.6 32 256 32s256 114.6 256 256l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-114.9-93.1-208-208-208zM80 352c0-35.3 28.7-64 64-64l16 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-16 0c-35.3 0-64-28.7-64-64l0-64zm288-64c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-16 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l16 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadphones (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48c-44.2 0-80-35.8-80-80l0-16 0-48 0-48C0 146.6 114.6 32 256 32s256 114.6 256 256l0 48 0 48 0 16c0 44.2-35.8 80-80 80c-26.5 0-48-21.5-48-48l0-128c0-26.5 21.5-48 48-48c10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256l0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40C0 114.6 114.6 0 256 0S512 114.6 512 256l0 144.1c0 48.6-39.4 88-88.1 88L313.6 488c-8.3 14.3-23.8 24-41.6 24l-32 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l32 0c17.8 0 33.3 9.7 41.6 24l110.4 .1c22.1 0 40-17.9 40-40L464 256c0-114.9-93.1-208-208-208zM144 208l16 0c17.7 0 32 14.3 32 32l0 112c0 17.7-14.3 32-32 32l-16 0c-35.3 0-64-28.7-64-64l0-48c0-35.3 28.7-64 64-64zm224 0c35.3 0 64 28.7 64 64l0 48c0 35.3-28.7 64-64 64l-16 0c-17.7 0-32-14.3-32-32l0-112c0-17.7 14.3-32 32-32l16 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartCircleBolt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartCircleMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartCirclePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartCrack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M119.4 44.1c23.3-3.9 46.8-1.9 68.6 5.3l49.8 77.5-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.8 61.8c28.5-16.7 62.4-23.2 95.7-17.6C461.5 55.6 512 115.2 512 185.1l0 5.8c0 41.5-17.2 81.2-47.6 109.5L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9L47.6 300.4C17.2 272.1 0 232.4 0 190.9l0-5.8c0-69.9 50.5-129.5 119.4-141z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartPulse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4l87 0c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31l104.5 0c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240l-132 0c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9L16 240c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9l0-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1l0 5.8c0 16.9-2.8 33.5-8.3 49.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z\"},\"child\":[]}]})(props);\n};\nexport function FaHelicopterSymbol (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M445.3 224l64.7 0C495.6 108.2 403.8 16.4 288 2l0 64.7C368.4 80.1 431.9 143.6 445.3 224zM510 288l-64.7 0C431.9 368.4 368.4 431.9 288 445.3l0 64.7c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510l0-64.7C143.6 431.9 80.1 368.4 66.7 288L2 288zm0-64l64.7 0C80.1 143.6 143.6 80.1 224 66.7L224 2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 96 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-96 0 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaHelicopter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 32c0-17.7 14.3-32 32-32L544 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L384 64l0 64 32 0c88.4 0 160 71.6 160 160l0 64c0 17.7-14.3 32-32 32l-160 0-64 0c-20.1 0-39.1-9.5-51.2-25.6l-71.4-95.2c-3.5-4.7-8.3-8.3-13.7-10.5L47.2 198.1c-9.5-3.8-16.7-12-19.2-22L5 83.9C2.4 73.8 10.1 64 20.5 64L48 64c10.1 0 19.6 4.7 25.6 12.8L112 128l208 0 0-64L160 64c-17.7 0-32-14.3-32-32zM384 320l128 0 0-32c0-53-43-96-96-96l-32 0 0 128zM630.6 425.4c12.5 12.5 12.5 32.8 0 45.3l-3.9 3.9c-24 24-56.6 37.5-90.5 37.5L256 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l280.2 0c17 0 33.3-6.7 45.3-18.7l3.9-3.9c12.5-12.5 32.8-12.5 45.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHelmetSafety (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32c-17.7 0-32 14.3-32 32l0 2.3 0 99.6c0 5.6-4.5 10.1-10.1 10.1c-3.6 0-7-1.9-8.8-5.1L157.1 87C83 123.5 32 199.8 32 288l0 64 512 0 0-66.4c-.9-87.2-51.7-162.4-125.1-198.6l-48 83.9c-1.8 3.2-5.2 5.1-8.8 5.1c-5.6 0-10.1-4.5-10.1-10.1l0-99.6 0-2.3c0-17.7-14.3-32-32-32l-64 0zM16.6 384C7.4 384 0 391.4 0 400.6c0 4.7 2 9.2 5.8 11.9C27.5 428.4 111.8 480 288 480s260.5-51.6 282.2-67.5c3.8-2.8 5.8-7.2 5.8-11.9c0-9.2-7.4-16.6-16.6-16.6L16.6 384z\"},\"child\":[]}]})(props);\n};\nexport function FaHelmetUn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M479.5 224C471.2 98.9 367.2 0 240 0C107.5 0 0 107.5 0 240l0 56.3C0 344.8 39.2 384 87.7 384L200 384l14.9 0L343.5 505.4c4.5 4.2 10.4 6.6 16.5 6.6l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.5 0-1.5-1.5L368 288l80 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-.5 0zM320 417.2l-78-73.7L274.4 288l45.6 0 0 129.2zM285.3 103.1l34.7 52 0-43.2c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaHighlighter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M315 315l158.4-215L444.1 70.6 229 229 315 315zm-187 5s0 0 0 0l0-71.7c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5L224 416l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7L24 512c-13.3 0-24-10.7-24-24l0-4.7c0-6.4 2.5-12.5 7-17z\"},\"child\":[]}]})(props);\n};\nexport function FaHillAvalanche (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439.7 401.9c34.2 23.1 81.1 19.5 111.4-10.8c34.4-34.4 34.4-90.1 0-124.4c-27.8-27.8-69.5-33.1-102.6-16c-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7C401.2 261.3 416 236.4 416 208c0-33.9-21.1-62.9-50.9-74.5c1.9-6.8 2.9-14 2.9-21.5c0-44.2-35.8-80-80-80c-27.3 0-51.5 13.7-65.9 34.6C216.3 46.6 197.9 32 176 32c-26.5 0-48 21.5-48 48c0 4 .5 7.9 1.4 11.6L439.7 401.9zM480 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM68.3 87C43.1 61.8 0 79.7 0 115.3L0 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.3 87z\"},\"child\":[]}]})(props);\n};\nexport function FaHillRockslide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2l-53.3 0c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3L0 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9l0-53.3c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9l0 53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaHippo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2l32 0c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1c0 10.2 7.4 18.8 16.7 23c27.9 12.5 47.3 40.5 47.3 73c0 26.2-12.6 49.4-32 64l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-16-64 0 0 16c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-17.6c-11.8-2.4-22.7-7.4-32-14.4c-1.5-1.1-2.9-2.3-4.3-3.5c-17-14.7-27.7-36.4-27.7-60.5c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2l0 10.8c0 17.7 14.3 32 32 32l32 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-76c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12l0 76c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-118.9L45.9 369.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7C32 155.7 117.2 68 223.8 64.1l.2-.1 7.2 0L256 64l32 0c41.7 0 83.4 12.1 117.2 25.7c1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm88 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM480 144a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaHockeyPuck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 256C114.6 256 0 213 0 160s114.6-96 256-96s256 43 256 96s-114.6 96-256 96zm192.3 1.8c24.7-9.3 46.9-21 63.7-35.6L512 352c0 53-114.6 96-256 96S0 405 0 352L0 222.3c16.8 14.6 39 26.3 63.7 35.6C114.5 276.9 182.5 288 256 288s141.5-11.1 192.3-30.2z\"},\"child\":[]}]})(props);\n};\nexport function FaHollyBerry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM276.8 383.8c1 .1 2.1 .2 3.2 .2c39.8 0 72 32.2 72 72l0 22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.6 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6c-34.6 0-62.7-28.1-62.7-62.7l0-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7c4.2 9.7 5.8 20.8 3.7 32.3L275 298.7c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.6 234.5c-15.5-5.2-31.6 6.4-31.6 22.8l0 32C96 323.9 67.9 352 33.3 352c-16.4 0-27.9 16-22.8 31.6l4.3 12.8c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.2 489.4 22.6 505.8 40.5 501L60 495.6c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8l0-32c0-34.6 28.1-62.7 62.7-62.7c16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5L196 240.4c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384 144a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHorseHead (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 464l0-147.1c0-108.4 68.3-205.1 170.5-241.3L404.2 15.5C425.6 7.9 448 23.8 448 46.4c0 11-5.5 21.2-14.6 27.3L400 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5c-16 16-37.8 25.1-60.5 25.1l-3.4 0c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4c0 0 0 0-.1 0c0 0 0 0 0 0c-6.3 0-12.5-.5-18.6-1.5c-3.6-.6-7.2-1.4-10.7-2.3c0 0 0 0 0 0c-28.9-7.8-53.1-26.8-67.8-52.2c-4.4-7.6-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4c0 20.3-16.5 36.8-36.8 36.8L112 512c-26.5 0-48-21.5-48-48zM392 224a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaHorse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 238.1l0-78.1 16 0 9.8 19.6c12.5 25.1 42.2 36.4 68.3 26c20.5-8.2 33.9-28 33.9-50.1L576 80c0-19.1-8.4-36.3-21.7-48l5.7 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L480 0 448 0C377.3 0 320 57.3 320 128l-96 0-20.8 0-54.4 0c-30.7 0-57.6 16.3-72.5 40.8C33.2 174.5 0 211.4 0 256l0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-56c0-13.4 6.6-25.2 16.7-32.5c1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6c-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9l33.7 0c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7c0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8L320 480c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-164.3c19.2-19.2 31.5-45.7 32-75.7c0 0 0 0 0 0l0-1.9zM496 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaHospitalUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 256l144 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L0 288l0 64 144 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L0 384l0 80c0 26.5 21.5 48 48 48l217.9 0c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2l0-95.9L320 48c0-26.5-21.5-48-48-48L48 0zM152 64l16 0c8.8 0 16 7.2 16 16l0 24 24 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-24 0 0 24c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-24-24 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16l24 0 0-24c0-8.8 7.2-16 16-16zM512 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM288 477.1c0 19.3 15.6 34.9 34.9 34.9l218.2 0c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1l-101.8 0c-51.4 0-93.1 41.7-93.1 93.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHospital (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 48c0-26.5 21.5-48 48-48L400 0c26.5 0 48 21.5 48 48l0 464-80 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-80 0 0-464zM48 96l112 0 0 416L48 512c-26.5 0-48-21.5-48-48L0 320l80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L0 288l0-64 80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L0 192l0-48c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48l0 48-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 144c0 26.5-21.5 48-48 48l-112 0 0-416 112 0zM312 64c-8.8 0-16 7.2-16 16l0 24-24 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l24 0 0 24c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-24 24 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-24 0 0-24c0-8.8-7.2-16-16-16l-16 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHotTubPerson (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5l0 13.2c0 13.3 10.7 24 24 24s24-10.7 24-24l0-13.2c0-34-14.4-66.4-39.7-89.2L295.8 82.8C280.7 69.1 272 49.7 272 29.2l0-5.2zM0 320l0 16L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-128c0-35.3-28.7-64-64-64l-170.7 0c-13.8 0-27.3-4.5-38.4-12.8l-85.3-64C137 166.7 116.8 160 96 160c-53 0-96 43-96 96l0 64zm128 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16zm112 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16zM360 0c-13.3 0-24 10.7-24 24l0 5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5l0 13.2c0 13.3 10.7 24 24 24s24-10.7 24-24l0-13.2c0-34-14.4-66.4-39.7-89.2L407.8 82.8C392.7 69.1 384 49.7 384 29.2l0-5.2c0-13.3-10.7-24-24-24zM64 128A64 64 0 1 0 64 0a64 64 0 1 0 0 128z\"},\"child\":[]}]})(props);\n};\nexport function FaHotdog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488.6 23.4c31.2 31.2 31.2 81.9 0 113.1l-352 352c-31.2 31.2-81.9 31.2-113.1 0s-31.2-81.9 0-113.1l352-352c31.2-31.2 81.9-31.2 113.1 0zM443.3 92.7c-6.2-6.2-16.4-6.2-22.6 0c-12.5 12.5-23.8 15.1-37.5 17.6l-2.5 .4c-13.8 2.5-31.6 5.6-48 22c-16.7 16.7-20.9 36-24.1 50.9c0 0 0 0 0 0s0 0 0 0l-.2 1c-3.4 15.6-6 26.4-15.7 36.1s-20.5 12.3-36.1 15.7l-1 .2c-14.9 3.2-34.2 7.4-50.9 24.1s-20.9 36-24.1 50.9l-.2 1c-3.4 15.6-6 26.4-15.7 36.1c-9.2 9.2-18 10.8-32.7 13.4c0 0 0 0 0 0l-.9 .2c-15.6 2.8-34.9 6.9-54.4 26.4c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0c12.5-12.5 23.8-15.1 37.5-17.6l2.5-.4c13.8-2.5 31.6-5.6 48-22c16.7-16.7 20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1s20.5-12.3 36.1-15.7l1-.2c14.9-3.2 34.2-7.4 50.9-24.1s20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1c9.2-9.2 18-10.8 32.7-13.4l.9-.2c15.6-2.8 34.9-6.9 54.4-26.4c6.2-6.2 6.2-16.4 0-22.6zM191.2 479.2l288-288L495 207c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L289 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17l-15.8-15.8zM17 305C6.1 294.1 0 279.4 0 264s6.1-30.1 17-41L223 17C233.9 6.1 248.6 0 264 0s30.1 6.1 41 17l15.8 15.8-288 288L17 305z\"},\"child\":[]}]})(props);\n};\nexport function FaHotel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32C0 14.3 14.3 0 32 0L480 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-176 0 0-48c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 48L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 64C14.3 64 0 49.7 0 32zm96 80l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM240 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM112 192c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM328 384c13.3 0 24.3-10.9 21-23.8c-10.6-41.5-48.2-72.2-93-72.2s-82.5 30.7-93 72.2c-3.3 12.8 7.8 23.8 21 23.8l144 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHourglassEnd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 256 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 0 64 0 32 0zM96 75l0-11 192 0 0 11c0 25.5-10.1 49.9-28.1 67.9L192 210.7l-67.9-67.9C106.1 124.9 96 100.4 96 75z\"},\"child\":[]}]})(props);\n};\nexport function FaHourglassHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 256 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 0 64 0 32 0zM96 75l0-11 192 0 0 11c0 19-5.6 37.4-16 53L112 128c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9L192 301.3l67.9 67.9c4.6 4.6 8.6 9.6 12.1 14.9L112 384z\"},\"child\":[]}]})(props);\n};\nexport function FaHourglassStart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 256 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 0 64 0 32 0zM288 437l0 11L96 448l0-11c0-25.5 10.1-49.9 28.1-67.9L192 301.3l67.9 67.9c18 18 28.1 42.4 28.1 67.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHourglass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32C0 14.3 14.3 0 32 0L64 0 320 0l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 11c0 42.4-16.9 83.1-46.9 113.1L237.3 256l67.9 67.9c30 30 46.9 70.7 46.9 113.1l0 11c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L64 512l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-11c0-42.4 16.9-83.1 46.9-113.1L146.7 256 78.9 188.1C48.9 158.1 32 117.4 32 75l0-11C14.3 64 0 49.7 0 32zM96 64l0 11c0 25.5 10.1 49.9 28.1 67.9L192 210.7l67.9-67.9c18-18 28.1-42.4 28.1-67.9l0-11L96 64zm0 384l192 0 0-11c0-25.5-10.1-49.9-28.1-67.9L192 301.3l-67.9 67.9c-18 18-28.1 42.4-28.1 67.9l0 11z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseChimneyCrack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-122.1 0L288 448l80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L250.6 263.2c-14.6-11.5-33.8 7-22.8 22L288 368l-85.5 71.2c-6.1 5-7.5 13.8-3.5 20.5L230.4 512l-102.3 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7 416 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 121 52.8 46.4c8 7 12 15 11 24z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseChimneyMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-320.4 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7 416 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 121 52.8 46.4c8 7 12 15 11 24zM272 192c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseChimneyUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185l0-121c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 160.4c0 35.3 28.7 64 64 64l320.4 0c35.5 0 64.2-28.8 64-64.3l-.7-160.2 32 0zM288 160a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM176 400c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseChimneyWindow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-320.4 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7 416 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 121 52.8 46.4c8 7 12 15 11 24zM248 192c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-80 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseChimney (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185l0-121c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64 0 24c0 22.1 17.9 40 40 40l24 0 32.5 0c1.4 0 2.8 0 4.2-.1c1.1 .1 2.2 .1 3.3 .1l16 0c22.1 0 40-17.9 40-40l0-16.2c.3-2.6 .5-5.3 .5-8.1l-.7-160.2 32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0 .7 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0 .7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0 .7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseCrack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 160.4c0 35.3 28.7 64 64 64l102.3 0-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L288 368l-60.2-82.8c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L288 448l38.4 64 122.1 0c35.5 0 64.2-28.8 64-64.3l-.7-160.2 32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseFire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 350.1l0 1.9-32 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L447.3 128.1c-12.3-1-25 3-34.8 11.7c-35.4 31.6-65.6 67.7-87.3 102.8C304.3 276.5 288 314.9 288 350.1zM480 512c-88.4 0-160-71.6-160-160c0-76.7 62.5-144.7 107.2-179.4c5-3.9 10.9-5.8 16.8-5.8c7.9-.1 16 3.1 22 9.2l46 46 11.3-11.3c11.7-11.7 30.6-12.7 42.3-1C624.5 268 640 320.2 640 352c0 88.4-71.6 160-160 160zm64-111.8c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C453 327.1 416 363.6 416 400.2c0 35.3 28.7 64 64 64s64-28.7 64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 0c-17.7 0-32 14.3-32 32l0 160 0 320 64 0 0-320 112 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16L512 32c0-17.7-14.3-32-32-32zM416 159L276.8 39.7c-12-10.3-29.7-10.3-41.7 0l-224 192C1 240.4-2.7 254.5 2 267.1S18.6 288 32 288l32 0 0 192c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-96c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 96c0 17.7 14.3 32 32 32l64.7 0 .2 0-1 0 0-353z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseFloodWaterCircleArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 144A144 144 0 1 0 0 144a144 144 0 1 0 288 0zM140.7 76.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L169.4 160 80 160c-8.8 0-16-7.2-16-16s7.2-16 16-16l89.4 0L140.7 99.3c-6.2-6.2-6.2-16.4 0-22.6zM320 144c0 57.3-27.4 108.2-69.8 140.3c11.8-3.6 23-9.4 33-16.2c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c2.1 1.7 4.2 3.3 6.5 4.9l-.3-84.4 16.6 0c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128C407.6-2 392.4-2 381.2 6.1L301 64.4c12.1 23.9 19 50.9 19 79.6zm18.5 165.9c-11.1-7.9-25.9-7.9-37 0C279 325.4 251.5 336 224 336c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 389.7 191 400 224 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7c0 0 0 0 0 0C471.4 325.2 442.9 336 416 336c-27.5 0-55-10.6-77.5-26.1zm0 112c-11.1-7.9-25.9-7.9-37 0C279 437.4 251.5 448 224 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 501.7 191 512 224 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C471.4 437.2 442.9 448 416 448c-27.5 0-55-10.6-77.5-26.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseFloodWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M306.8 6.1C295.6-2 280.4-2 269.2 6.1l-176 128c-11.2 8.2-15.9 22.6-11.6 35.8S98.1 192 112 192l16 0 0 73c1.7 1 3.3 2 4.9 3.1c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c1.5-1 3-2 4.5-2.9l-.3-73.2 16.6 0c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128zM269.5 309.9C247 325.4 219.5 336 192 336c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 389.7 159 400 192 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseLaptop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M218.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c6.7 6.2 10.3 14.8 10.3 23.5l-144 0c-19.1 0-36.3 8.4-48 21.7l0-37.7c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l64 0 0 128-160 0c-26.5 0-48-21.5-48-48l0-112-32 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8.1-35.2l208-192zM352 304l0 144 192 0 0-144-192 0zm-48-16c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32l0 160 32 0c8.8 0 16 7.2 16 16c0 26.5-21.5 48-48 48l-48 0-192 0-48 0c-26.5 0-48-21.5-48-48c0-8.8 7.2-16 16-16l32 0 0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 480c0 11.7 3.1 22.6 8.6 32l-.6 0c-22.1 0-40-17.9-40-40l0-24 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L490.7 166.3C447.2 181.7 416 223.2 416 272l0 24.6c-19.1 11.1-32 31.7-32 55.4l0 128zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseMedicalCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 368c0 59.5 29.5 112.1 74.8 144l-266.7 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64L320 256l0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm32 0a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseMedicalCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 368c0 59.5 29.5 112.1 74.8 144l-266.7 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64L320 256l0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseMedicalCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 368c0 59.5 29.5 112.1 74.8 144l-266.7 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64L320 256l0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseMedicalFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 0c17.7 0 32 14.3 32 32l112 0c8.8 0 16 7.2 16 16l0 128c0 8.8-7.2 16-16 16l-112 0 0 320-64 0 0-320 0-160c0-17.7 14.3-32 32-32zM276.8 39.7L416 159l0 353 1 0-.2 0L96 512c-17.7 0-32-14.3-32-32l0-192-32 0c-13.4 0-25.4-8.3-30-20.9s-1-26.7 9.2-35.4l224-192c12-10.3 29.7-10.3 41.7 0zM224 208l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 160.4c0 35.3 28.7 64 64 64l320.4 0c35.5 0 64.2-28.8 64-64.3l-.7-160.2 32 0zM256 208c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseSignal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M357.7 8.5c-12.3-11.3-31.2-11.3-43.4 0l-208 192c-9.4 8.6-12.7 22-8.5 34c87.1 25.3 155.6 94.2 180.3 181.6L464 416c26.5 0 48-21.5 48-48l0-112 32 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8.1-35.2l-208-192zM288 208c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16l0-64zM24 256c-13.3 0-24 10.7-24 24s10.7 24 24 24c101.6 0 184 82.4 184 184c0 13.3 10.7 24 24 24s24-10.7 24-24c0-128.1-103.9-232-232-232zm8 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM0 376c0 13.3 10.7 24 24 24c48.6 0 88 39.4 88 88c0 13.3 10.7 24 24 24s24-10.7 24-24c0-75.1-60.9-136-136-136c-13.3 0-24 10.7-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseTsunami (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80.8 136.5C104.9 93.8 152.6 64 209 64c16.9 0 33.1 2.7 48.2 7.7c16.8 5.5 34.9-3.6 40.4-20.4s-3.6-34.9-20.4-40.4C255.8 3.8 232.8 0 209 0C95.2 0 0 88 0 200c0 91.6 53.5 172.1 142.2 194.1c13.4 3.8 27.5 5.9 42.2 5.9c.7 0 1.4 0 2.1-.1c1.8 0 3.7 .1 5.5 .1c0 0 0 0 0 0c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0c-22.4 15.5-49.9 26.1-77.4 26.1c0 0-.1 0-.1 0c-12.4 0-24-1.5-34.9-4.3C121.6 320.2 96 287 96 248c0-48.5 39.5-88 88.4-88c13.5 0 26.1 3 37.5 8.3c16 7.5 35.1 .6 42.5-15.5s.6-35.1-15.5-42.5C229.3 101.1 207.4 96 184.4 96c-40 0-76.4 15.4-103.6 40.5zm252-18.1c-8.1 6-12.8 15.5-12.8 25.6l0 121c1.6 1 3.3 2 4.8 3.1c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c5.8 1.4 11.2 3.4 16.2 6.2c.7-2.7 1.1-5.5 1.1-8.4l-.4-144c0-10-4.7-19.4-12.7-25.5l-95.5-72c-11.4-8.6-27.1-8.6-38.5 0l-96 72zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-320.4 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24zM352 224a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm-96 96c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c0 2.7-.2 5.4-.5 8.1l0 16.2c0 22.1-17.9 40-40 40l-16 0c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1L416 512l-24 0c-22.1 0-40-17.9-40-40l0-24 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z\"},\"child\":[]}]})(props);\n};\nexport function FaHryvniaSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M121.9 116.2C138.3 103.1 158.7 96 179.6 96L223 96c27.1 0 49 21.9 49 49c0 11.5-4 22.4-11.1 31L32 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l123.5 0-50.6 28.9c-1.7 1-3.4 2-5.1 3.1L32 272c-17.7 0-32 14.3-32 32s14.3 32 32 32l20.3 0c-2.8 9.9-4.3 20.4-4.3 31c0 62.4 50.6 113 113 113l43.4 0c35.5 0 70-12.1 97.7-34.3L308 441c13.8-11 16-31.2 5-45s-31.2-16-45-5l-5.9 4.7c-16.4 13.1-36.7 20.2-57.7 20.2L161 416c-27.1 0-49-21.9-49-49c0-11.5 4-22.4 11.1-31L352 336c17.7 0 32-14.3 32-32s-14.3-32-32-32l-123.5 0 50.6-28.9c1.7-1 3.4-2 5.1-3.1l67.8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-20.3 0c2.8-10 4.3-20.4 4.3-31c0-62.4-50.6-113-113-113l-43.4 0c-35.5 0-70 12.1-97.7 34.3L76 71c-13.8 11-16 31.2-5 45s31.2 16 45 5l5.9-4.7z\"},\"child\":[]}]})(props);\n};\nexport function FaHurricane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 208C0 104.4 75.7 18.5 174.9 2.6C184 1.2 192 8.6 192 17.9l0 63.3c0 8.4 6.5 15.3 14.7 16.5C307 112.5 384 199 384 303.4c0 103.6-75.7 189.5-174.9 205.4c-9.2 1.5-17.1-5.9-17.1-15.2l0-63.3c0-8.4-6.5-15.3-14.7-16.5C77 398.9 0 312.4 0 208zm288 48A96 96 0 1 0 96 256a96 96 0 1 0 192 0zm-96-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaICursor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3L96 224l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7s16.9 30.7 34.5 29.2l8-.7c34.1-2.8 64.2-18.9 85.4-42.9c21.2 24 51.2 40 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7l0-95.7 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-95.7c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7C179.2 3.6 149.2 19.7 128 43.7c-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z\"},\"child\":[]}]})(props);\n};\nexport function FaI (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l96 0 0 320-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0 0-320 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L160 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaIceCream (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M367.1 160c.6-5.3 .9-10.6 .9-16C368 64.5 303.5 0 224 0S80 64.5 80 144c0 5.4 .3 10.7 .9 16l-.9 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l53.5 0 181 0 53.5 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-.9 0zM96 288L200.8 497.7c4.4 8.8 13.3 14.3 23.2 14.3s18.8-5.5 23.2-14.3L352 288 96 288z\"},\"child\":[]}]})(props);\n};\nexport function FaIcicles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M75.8 304.8L1 35.7c-.7-2.5-1-5-1-7.5C0 12.6 12.6 0 28.2 0H482.4C498.8 0 512 13.2 512 29.6c0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9c-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1c-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7c-9.3 0-17.5-6.2-20-15.2z\"},\"child\":[]}]})(props);\n};\nexport function FaIcons (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M500.3 7.3C507.7 13.3 512 22.4 512 32l0 144c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48l0-57L352 90.2 352 208c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48l0-96c0-15.3 10.8-28.4 25.7-31.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM74.7 304l11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2l61.7 0c10.7 0 20.7 5.3 26.6 14.2L213.3 304l26.7 0c26.5 0 48 21.5 48 48l0 112c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 352c0-26.5 21.5-48 48-48l26.7 0zM192 408a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM478.7 278.3L440.3 368l55.7 0c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.2-12.4-5.3-19.2L391.7 400 336 400c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112c5.6-4.9 13.9-5.3 19.9-.9s8.2 12.4 5.3 19.2zm-339-59.2c-6.5 6.5-17 6.5-23 0L19.9 119.2c-28-29-26.5-76.9 5-103.9c27-23.5 68.4-19 93.4 6.5l10 10.5 9.5-10.5c25-25.5 65.9-30 93.9-6.5c31 27 32.5 74.9 4.5 103.9l-96.4 99.9z\"},\"child\":[]}]})(props);\n};\nexport function FaIdBadge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zm96 320l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 416c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM144 64l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaIdCardClip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM64 64l128 0 0 48c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-48 128 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64zM176 437.3c0 5.9 4.8 10.7 10.7 10.7l202.7 0c5.9 0 10.7-4.8 10.7-10.7c0-29.5-23.9-53.3-53.3-53.3l-117.3 0c-29.5 0-53.3 23.9-53.3 53.3zM288 352a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"},\"child\":[]}]})(props);\n};\nexport function FaIdCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96l576 0c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96zm0 32L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-288L0 128zM64 405.3c0-29.5 23.9-53.3 53.3-53.3l117.3 0c29.5 0 53.3 23.9 53.3 53.3c0 5.9-4.8 10.7-10.7 10.7L74.7 416c-5.9 0-10.7-4.8-10.7-10.7zM176 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm176 16c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaIgloo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 33.8L320 160 48.5 160C100.2 82.8 188.1 32 288 32c10.8 0 21.5 .6 32 1.8zM352 160l0-120.9C424.9 55.7 487.2 99.8 527.5 160L352 160zM29.9 192L96 192l0 128L0 320c0-46 10.8-89.4 29.9-128zM192 320l-64 0 0-128 320 0 0 128-64 0 0 32 192 0 0 80c0 26.5-21.5 48-48 48l-176 0 0-128c0-35.3-28.7-64-64-64s-64 28.7-64 64l0 128L48 480c-26.5 0-48-21.5-48-48l0-80 192 0 0-32zm288 0l0-128 66.1 0c19.2 38.6 29.9 82 29.9 128l-96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaImagePortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 64c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384zM128 192a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 356.6c0-37.9 30.7-68.6 68.6-68.6l86.9 0c37.9 0 68.6 30.7 68.6 68.6c0 15.1-12.3 27.4-27.4 27.4l-169.1 0C92.3 384 80 371.7 80 356.6z\"},\"child\":[]}]})(props);\n};\nexport function FaImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l96 0 32 0 208 0c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaImages (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 32c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32zM396 138.7l96 144c4.9 7.4 5.4 16.8 1.2 24.6S480.9 320 472 320l-144 0-48 0-80 0c-9.2 0-17.6-5.3-21.6-13.6s-2.9-18.2 2.9-25.4l64-80c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l17.3 21.6 56-84C360.5 132 368 128 376 128s15.5 4 20 10.7zM192 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 344c0 75.1 60.9 136 136 136l320 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-320 0c-48.6 0-88-39.4-88-88l0-224z\"},\"child\":[]}]})(props);\n};\nexport function FaInbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M121 32C91.6 32 66 52 58.9 80.5L1.9 308.4C.6 313.5 0 318.7 0 323.9L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-92.1c0-5.2-.6-10.4-1.9-15.5l-57-227.9C446 52 420.4 32 391 32L121 32zm0 64l270 0 48 192-51.2 0c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7l-120.4 0c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7L73 288 121 96z\"},\"child\":[]}]})(props);\n};\nexport function FaIndent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3L0 176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z\"},\"child\":[]}]})(props);\n};\nexport function FaIndianRupeeSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l64 0 16 0 176 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-56.2 0c9.6 14.4 16.7 30.6 20.7 48l35.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-35.6 0c-13.2 58.3-61.9 103.2-122.2 110.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256l80 0c32.8 0 61-19.7 73.3-48L32 208c-17.7 0-32-14.3-32-32s14.3-32 32-32l153.3 0C173 115.7 144.8 96 112 96L96 96 32 96C14.3 96 0 81.7 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaIndustry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C46.3 32 32 46.3 32 64l0 240 0 48 0 80c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-128 0-151.8c0-18.2-19.4-29.7-35.4-21.1L352 215.4l0-63.2c0-18.2-19.4-29.7-35.4-21.1L160 215.4 160 64c0-17.7-14.3-32-32-32L64 32z\"},\"child\":[]}]})(props);\n};\nexport function FaInfinity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 241.1C0 161 65 96 145.1 96c38.5 0 75.4 15.3 102.6 42.5L320 210.7l72.2-72.2C419.5 111.3 456.4 96 494.9 96C575 96 640 161 640 241.1l0 29.7C640 351 575 416 494.9 416c-38.5 0-75.4-15.3-102.6-42.5L320 301.3l-72.2 72.2C220.5 400.7 183.6 416 145.1 416C65 416 0 351 0 270.9l0-29.7zM274.7 256l-72.2-72.2c-15.2-15.2-35.9-23.8-57.4-23.8C100.3 160 64 196.3 64 241.1l0 29.7c0 44.8 36.3 81.1 81.1 81.1c21.5 0 42.2-8.5 57.4-23.8L274.7 256zm90.5 0l72.2 72.2c15.2 15.2 35.9 23.8 57.4 23.8c44.8 0 81.1-36.3 81.1-81.1l0-29.7c0-44.8-36.3-81.1-81.1-81.1c-21.5 0-42.2 8.5-57.4 23.8L365.3 256z\"},\"child\":[]}]})(props);\n};\nexport function FaInfo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 192 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 80a48 48 0 1 1 96 0A48 48 0 1 1 48 80zM0 224c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 224 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-192-32 0c-17.7 0-32-14.3-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaItalic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0L160 416l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0L224 96l-64 0c-17.7 0-32-14.3-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaJ (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c17.7 0 32 14.3 32 32l0 256c0 88.4-71.6 160-160 160S0 408.4 0 320l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32c0 53 43 96 96 96s96-43 96-96l0-256c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaJarWheat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C32 14.3 46.3 0 64 0L256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64l192 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 160zm112 0l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8C64 198 90 224 122.2 224l21.8 0 32 0 21.8 0c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8L208 160c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8C64 294 90 320 122.2 320l21.8 0 32 0 21.8 0c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8L208 256c-19.1 0-36.3 8.4-48 21.7zM112 352l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8C64 390 90 416 122.2 416l21.8 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 21.8 0c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8L208 352c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7z\"},\"child\":[]}]})(props);\n};\nexport function FaJar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C32 14.3 46.3 0 64 0L256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64l192 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 160zm96 64c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 224z\"},\"child\":[]}]})(props);\n};\nexport function FaJedi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9 0 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5C370.6 435.2 416 382.9 416 320c0-37-15.7-70.4-40.8-93.7c-7-6.5-6.5-18.6 1-24.4C410.1 175.5 432 134.3 432 88c0-16.8-2.9-33-8.2-48c-4.6-13 10.2-30 21.4-22c53.5 38 92.7 94.8 107.8 160.7c.5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9l26 0c3.4 0 6.2 2.6 6.3 6c.1 3.3 .2 6.6 .2 10c0 17.5-1.7 34.7-4.8 51.3c-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9l14.6 0c4.6 0 7.7 4.8 5.7 9C487.2 450.5 394.8 512 288 512S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9l14.6 0c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3C17.7 274.7 16 257.5 16 240c0-3.3 .1-6.7 .2-10c.1-3.4 2.9-6 6.3-6l26 0c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9C38.1 112.8 77.3 56 130.8 18c11.3-8 26 8.9 21.4 22c-5.3 15-8.2 31.2-8.2 48c0 46.3 21.9 87.5 55.8 113.9c7.5 5.8 8 17.9 1 24.4C175.7 249.6 160 283 160 320c0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z\"},\"child\":[]}]})(props);\n};\nexport function FaJetFighterUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M270.7 9.7C268.2 3.8 262.4 0 256 0s-12.2 3.8-14.7 9.7L197.2 112.6c-3.4 8-5.2 16.5-5.2 25.2l0 77-144 84L48 280c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 56 0 32 0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 144 0 0 32.7L133.5 468c-3.5 3-5.5 7.4-5.5 12l0 16c0 8.8 7.2 16 16 16l96 0 0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64 96 0c8.8 0 16-7.2 16-16l0-16c0-4.6-2-9-5.5-12L320 416.7l0-32.7 144 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 0-32 0-56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 18.8-144-84 0-77c0-8.7-1.8-17.2-5.2-25.2L270.7 9.7z\"},\"child\":[]}]})(props);\n};\nexport function FaJetFighter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 24c0-13.3 10.7-24 24-24L296 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0L384 192l116.4 0c7.7 0 15.3 1.4 22.5 4.1L625 234.4c9 3.4 15 12 15 21.6s-6 18.2-15 21.6L522.9 315.9c-7.2 2.7-14.8 4.1-22.5 4.1L384 320 280 464l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-144-32 0-54.6 54.6c-6 6-14.1 9.4-22.6 9.4L64 384c-17.7 0-32-14.3-32-32l0-64c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l18.7 0c8.5 0 16.6 3.4 22.6 9.4L160 192l32 0 0-144-8 0c-13.3 0-24-10.7-24-24zM80 240c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaJoint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11c0 55.2 21.9 108.1 60.9 147.1l21 21c9 9 14.1 21.2 14.1 33.9l0 11c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11c0-29.7-11.8-58.2-32.8-79.2l-21-21C463.2 117.8 448 81.2 448 43l0-11zM576 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11c0-55.2-21.9-108.1-60.9-147.1l-21-21c-9-9-14.1-21.2-14.1-33.9l0-11c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11c0 29.7 11.8 58.2 32.8 79.2l21 21c27 27 42.2 63.6 42.2 101.8l0 11zM229.8 360c-4.7-2.3-10-2.7-15.2-2c-37.8 5.6-75.2 14.3-106.9 22.8C81.3 388 58.3 395.1 42 400.4c-8.2 2.7-14.7 4.9-19.2 6.5c-2.3 .8-4 1.4-5.2 1.8l-1.3 .5C6.8 412.5 0 421.4 0 432s6.8 19.5 16.3 22.7l1.3 .5c1.2 .4 3 1.1 5.2 1.8c4.5 1.6 11 3.8 19.2 6.5c16.3 5.4 39.2 12.5 65.7 19.6C160.3 497.3 228.8 512 288 512l67.3 0c4.1 0 6.3-5.1 3.6-8.3L256.5 380.8c-7.4-8.9-16.5-15.9-26.7-20.8zM445 512l19 0 51.3 0c4.1 0 6.3-5.1 3.6-8.3L416.5 380.8C401.3 362.5 378.8 352 355 352l-19 0-48 0c-1.1 0-2.3 0-3.4 0c-4.1 0-6.2 5.1-3.5 8.3L383.5 483.2C398.7 501.5 421.2 512 445 512zm-3.9-151.7L543.5 483.2c14.6 17.5 35.9 27.9 58.6 28.7c21.1-1.1 37.9-18.6 37.9-39.9l0-80c0-22.1-17.9-40-40-40l-155.3 0c-4.1 0-6.3 5.1-3.6 8.3z\"},\"child\":[]}]})(props);\n};\nexport function FaJugDetergent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24l0 24 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 96C74.7 96 64 85.3 64 72s10.7-24 24-24l8 0 0-24zM0 256c0-70.7 57.3-128 128-128l128 0c70.7 0 128 57.3 128 128l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256zm256 0l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaK (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7l-155.2 160L64 249 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 328 0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-107 64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z\"},\"child\":[]}]})(props);\n};\nexport function FaKaaba (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M60 120l228 71.2L516 120 288 48.8 60 120zM278.5 1.5c6.2-1.9 12.9-1.9 19.1 0l256 80C566.9 85.6 576 98 576 112l0 16s0 0 0 0l0 21.2L292.8 237.7c-3.1 1-6.4 1-9.5 0L0 149.2 0 128l0-16C0 98 9.1 85.6 22.5 81.5l256-80zm23.9 266.8L576 182.8l0 46.5-52.8 16.5c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5L576 262.8 576 400c0 14-9.1 26.4-22.5 30.5l-256 80c-6.2 1.9-12.9 1.9-19.1 0l-256-80C9.1 426.4 0 414 0 400L0 262.8l43.2 13.5c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20L0 229.2l0-46.5 273.7 85.5c9.3 2.9 19.3 2.9 28.6 0zm-185.5-2.6c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l64 20c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20l-64-20zm352 30.5c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-64 20c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5l64-20zm-224 9.5c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l38.5 12c9.3 2.9 19.3 2.9 28.6 0l38.5-12c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-38.5 12c-3.1 1-6.4 1-9.5 0l-38.5-12z\"},\"child\":[]}]})(props);\n};\nexport function FaKey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-40 40 0c13.3 0 24-10.7 24-24l0-40 40 0c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"},\"child\":[]}]})(props);\n};\nexport function FaKeyboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm16 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32zM272 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM368 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM464 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaKhanda (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M245.8 3.7c5.9-4.9 14.6-4.9 20.5 0l48 40c5.9 4.9 7.5 13.2 3.8 19.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0l-.1 .1-.3 .6c-.3 .5-.7 1.3-1.2 2.3c-1 2-2.6 5-4.4 8.6c-.5 .9-.9 1.9-1.4 2.9C344.9 97.4 368 134 368 176s-23.1 78.6-57.3 97.8c.5 1 1 2 1.4 2.9c1.8 3.7 3.3 6.6 4.4 8.6c.5 1 .9 1.8 1.2 2.3l.3 .6 .1 .1s0 0 0 0s0 0 0 0c3.6 6.7 2 15-3.8 19.9L272 343.5l0 19.8 35.6-24.5 41.1-28.2c42.8-29.4 68.4-78 68.4-130c0-31.1-9.2-61.6-26.5-87.5l-2.8-4.2c-4-6-3.5-14 1.3-19.5s12.7-7 19.2-3.7L401.1 80c7.2-14.3 7.2-14.3 7.2-14.3s0 0 0 0s0 0 0 0l.1 0 .3 .2 1 .5c.8 .4 2 1.1 3.5 1.9c2.9 1.7 7 4.1 11.8 7.3c9.6 6.4 22.5 16.1 35.4 29c25.7 25.7 52.7 65.6 52.7 119.3c0 53.1-26.4 100.5-51.2 133.6c-12.6 16.7-25.1 30.3-34.5 39.7c-4.7 4.7-8.7 8.4-11.5 10.9c-1.4 1.3-2.5 2.2-3.3 2.9l-.9 .8-.3 .2-.1 .1c0 0 0 0 0 0s0 0 0 0L401.1 400l10.2 12.3c-5.1 4.3-12.4 4.9-18.2 1.6l-75.6-43-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21L272 423.4l0 28.9c9.6 5.5 16 15.9 16 27.7c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7l0-28.1-40.3 27.7C197.8 463.3 187.9 472 176 472c-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-75.6 43c-5.8 3.3-13 2.7-18.2-1.6L112 400c-10.2 12.3-10.2 12.3-10.3 12.3s0 0 0 0s0 0 0 0l-.1-.1-.3-.2-.9-.8c-.8-.7-1.9-1.7-3.3-2.9c-2.8-2.5-6.7-6.2-11.5-10.9c-9.4-9.4-21.9-23-34.5-39.7C26.4 324.5 0 277.1 0 224c0-53.7 26.9-93.6 52.7-119.3c12.9-12.9 25.8-22.6 35.4-29C93 72.5 97 70 99.9 68.4c1.5-.8 2.6-1.5 3.5-1.9l1-.5 .3-.2 .1 0c0 0 0 0 0 0s0 0 0 0L112 80l-7.2-14.3c6.5-3.2 14.3-1.7 19.2 3.7s5.3 13.4 1.3 19.5l-2.8 4.2C105.2 119 96 149.5 96 180.6c0 51.9 25.6 100.6 68.4 130l41.1 28.2L240 362.6l0-19.1-42.2-35.2c-5.9-4.9-7.5-13.2-3.8-19.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0l.1-.1 .3-.6c.3-.5 .7-1.3 1.2-2.3c1-2 2.6-5 4.4-8.6c.5-.9 .9-1.9 1.4-2.9C167.1 254.6 144 218 144 176s23.1-78.6 57.3-97.8c-.5-1-1-2-1.4-2.9c-1.8-3.7-3.3-6.6-4.4-8.6c-.5-1-.9-1.8-1.2-2.3l-.3-.6-.1-.1s0 0 0 0s0 0 0 0s0 0 0 0c-3.6-6.7-2-15 3.8-19.9l48-40zM220.2 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1C227 210.2 232 190.9 232 176s-5-34.2-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1C285 141.8 280 161.1 280 176s5 34.2 11.8 53.1z\"},\"child\":[]}]})(props);\n};\nexport function FaKipSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4 128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 160-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-122.4L299.2 472.3c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L182.5 288 352 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-169.5 0L340.8 88.3z\"},\"child\":[]}]})(props);\n};\nexport function FaKitMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l32 0L96 32 64 32zm64 0l0 448 320 0 0-448L128 32zM512 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-32 0 0 448 32 0zM256 176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaKitchenSet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 144A96 96 0 1 0 48 144a96 96 0 1 0 192 0zm44.4 32C269.9 240.1 212.5 288 144 288C64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112l71.8 0c8.8-9.8 21.6-16 35.8-16l104 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-104 0c-14.2 0-27-6.2-35.8-16l-71.8 0zM144 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c13.3 0 24 10.7 24 24l0 8 96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-240 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l96 0 0-8c0-13.3 10.7-24 24-24zM288 464l0-112 224 0 0 112c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48zM48 320l80 0 16 0 32 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-80c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0 32 16 0zM24 464l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaKiwiBird (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4l55.7 0c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1s11.2-8.3 11.2-15.3l0-240c0-70.7-57.3-128-128-128l-55.7 0c-36.4 0-69.9-17.6-101.1-36.4C262.3 42.1 228.3 32 192 32C86 32 0 118 0 224c0 71.1 38.6 133.1 96 166.3L96 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-46c15.3 3.9 31.4 6 48 6c5.4 0 10.7-.2 16-.7l0 40.7c0 13.3 10.7 24 24 24s24-10.7 24-24l0-50.9c12.4-4.4 24.2-10 35.2-16.7zM448 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaL (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32c17.7 0 32 14.3 32 32l0 352 192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaLandMineOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344 24l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24zM192 320c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 32-256 0 0-32zm-77.3 90.5c8.1-16.3 24.8-26.5 42.9-26.5l324.7 0c18.2 0 34.8 10.3 42.9 26.5l27.6 55.2C563.5 487 548 512 524.2 512l-408.4 0c-23.8 0-39.3-25-28.6-46.3l27.6-55.2zM36.3 138.3c7.5-10.9 22.5-13.6 33.4-6.1l104 72c10.9 7.5 13.6 22.5 6.1 33.4s-22.5 13.6-33.4 6.1l-104-72c-10.9-7.5-13.6-22.5-6.1-33.4zm534.1-6.1c10.9-7.5 25.8-4.8 33.4 6.1s4.8 25.8-6.1 33.4l-104 72c-10.9 7.5-25.8 4.8-33.4-6.1s-4.8-25.8 6.1-33.4l104-72z\"},\"child\":[]}]})(props);\n};\nexport function FaLandmarkDome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 0l16 0c13.3 0 24 10.7 24 24l0 10.7C368.4 48.1 431.9 111.6 445.3 192l2.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 256c-17.7 0-32-14.3-32-32s14.3-32 32-32l2.7 0C80.1 111.6 143.6 48.1 224 34.7L224 24c0-13.3 10.7-24 24-24zM64 288l64 0 0 128 40 0 0-128 64 0 0 128 48 0 0-128 64 0 0 128 40 0 0-128 64 0 0 132.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512L32 512c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1L64 288z\"},\"child\":[]}]})(props);\n};\nexport function FaLandmarkFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 0l80 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-80 0 0 32 192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 192c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0 0-112c0-8.8 7.2-16 16-16l16 0zM64 224l64 0 0 192 40 0 0-192 64 0 0 192 48 0 0-192 64 0 0 192 40 0 0-192 64 0 0 196.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512L32 512c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1L64 224z\"},\"child\":[]}]})(props);\n};\nexport function FaLandmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240.1 4.2c9.8-5.6 21.9-5.6 31.8 0l171.8 98.1L448 104l0 .9 47.9 27.4c12.6 7.2 18.8 22 15.1 36s-16.4 23.8-30.9 23.8L32 192c-14.5 0-27.2-9.8-30.9-23.8s2.5-28.8 15.1-36L64 104.9l0-.9 4.4-1.6L240.1 4.2zM64 224l64 0 0 192 40 0 0-192 64 0 0 192 48 0 0-192 64 0 0 192 40 0 0-192 64 0 0 196.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512L32 512c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1L64 224z\"},\"child\":[]}]})(props);\n};\nexport function FaLanguage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 128C0 92.7 28.7 64 64 64l192 0 48 0 16 0 256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-256 0-16 0-48 0L64 448c-35.3 0-64-28.7-64-64L0 128zm320 0l0 256 256 0 0-256-256 0zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1 73.6 0 8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276l-38 0 19-42.8zM448 164c11 0 20 9 20 20l0 4 44 0 16 0c11 0 20 9 20 20s-9 20-20 20l-2 0-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45L448 228l-72 0c-11 0-20-9-20-20s9-20 20-20l52 0 0-4c0-11 9-20 20-20z\"},\"child\":[]}]})(props);\n};\nexport function FaLaptopCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 256-64 0 0-256L128 96l0 256-64 0L64 96zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaLaptopFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0C92.7 0 64 28.7 64 64l0 224-44.8 0C8.6 288 0 296.6 0 307.2C0 349.6 34.4 384 76.8 384L320 384l0-96-192 0 0-224 320 0 0 32 64 0 0-32c0-35.3-28.7-64-64-64L128 0zM512 128l-112 0c-26.5 0-48 21.5-48 48l0 288c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-208-96 0c-17.7 0-32-14.3-32-32l0-96zm32 0l0 96 96 0-96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaLaptopMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 256-64 0 0-256L128 96l0 256-64 0L64 96zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaLaptop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 32C92.7 32 64 60.7 64 96l0 256 64 0 0-256 384 0 0 256 64 0 0-256c0-35.3-28.7-64-64-64L128 32zM19.2 384C8.6 384 0 392.6 0 403.2C0 445.6 34.4 480 76.8 480l486.4 0c42.4 0 76.8-34.4 76.8-76.8c0-10.6-8.6-19.2-19.2-19.2L19.2 384z\"},\"child\":[]}]})(props);\n};\nexport function FaLariSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 32c17.7 0 32 14.3 32 32l0 32.7c5.3-.4 10.6-.7 16-.7s10.7 .2 16 .7L208 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49.4c54.9 25.2 95.8 75.5 108.2 136.2c3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.1-29.9-22.5-55.9-45.4-74.3l0 67.9c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-95c-5.2-.7-10.6-1-16-1s-10.8 .3-16 1l0 95c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-67.9C82.7 211.5 64 247.6 64 288c0 70.7 57.3 128 128 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l16.9 0C18.5 382 0 337.2 0 288c0-77.5 45.9-144.3 112-174.6L112 64c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaLayerGroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 149.8C37.4 145.8 32 137.3 32 128s5.4-17.9 13.9-21.8L264.5 5.2zM476.9 209.6l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 277.8C37.4 273.8 32 265.3 32 256s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0l152-70.2zm-152 198.2l152-70.2 53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 405.8C37.4 401.8 32 393.3 32 384s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0z\"},\"child\":[]}]})(props);\n};\nexport function FaLeaf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 96c-78.6 0-145.1 51.5-167.7 122.5c33.6-17 71.5-26.5 111.7-26.5l88 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0-72 0s0 0 0 0c-16.6 0-32.7 1.9-48.3 5.4c-25.9 5.9-49.9 16.4-71.4 30.7c0 0 0 0 0 0C38.3 298.8 0 364.9 0 440l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16c0-48.7 20.7-92.5 53.8-123.2C121.6 392.3 190.3 448 272 448l1 0c132.1-.7 239-130.9 239-291.4c0-42.6-7.5-83.1-21.1-119.6c-2.6-6.9-12.7-6.6-16.2-.1C455.9 72.1 418.7 96 376 96L272 96z\"},\"child\":[]}]})(props);\n};\nexport function FaLeftLong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M177.5 414c-8.8 3.8-19 2-26-4.6l-144-136C2.7 268.9 0 262.6 0 256s2.7-12.9 7.5-17.4l144-136c7-6.6 17.2-8.4 26-4.6s14.5 12.5 14.5 22l0 72 288 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-288 0 0 72c0 9.6-5.7 18.2-14.5 22z\"},\"child\":[]}]})(props);\n};\nexport function FaLeftRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504.3 273.6c4.9-4.5 7.7-10.9 7.7-17.6s-2.8-13-7.7-17.6l-112-104c-7-6.5-17.2-8.2-25.9-4.4s-14.4 12.5-14.4 22l0 56-192 0 0-56c0-9.5-5.7-18.2-14.4-22s-18.9-2.1-25.9 4.4l-112 104C2.8 243 0 249.3 0 256s2.8 13 7.7 17.6l112 104c7 6.5 17.2 8.2 25.9 4.4s14.4-12.5 14.4-22l0-56 192 0 0 56c0 9.5 5.7 18.2 14.4 22s18.9 2.1 25.9-4.4l112-104z\"},\"child\":[]}]})(props);\n};\nexport function FaLemon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64c-6.6 0-13 1-19 2.9c-22.5 7-48.1 14.9-71 9c-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71C1 403 0 409.4 0 416c0 35.3 28.7 64 64 64c6.6 0 13-1 19.1-2.9c22.5-7 48.1-14.9 71-9c75.2 19.1 156.4-11 213.7-68.3s87.5-138.5 68.3-213.7c-5.8-22.9 2-48.4 9-71c1.9-6 2.9-12.4 2.9-19.1zM212.5 127.4c-54.6 16-101.1 62.5-117.1 117.1C92.9 253 84 257.8 75.5 255.4S62.2 244 64.6 235.5c19.1-65.1 73.7-119.8 138.9-138.9c8.5-2.5 17.4 2.4 19.9 10.9s-2.4 17.4-10.9 19.9z\"},\"child\":[]}]})(props);\n};\nexport function FaLessThanEqual (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M395.9 93.7c16.4-6.6 24.4-25.2 17.8-41.6s-25.2-24.4-41.6-17.8l-320 128C40 167.1 32 178.9 32 192s8 24.9 20.1 29.7l320 128c16.4 6.6 35-1.4 41.6-17.8s-1.4-35-17.8-41.6L150.2 192 395.9 93.7zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z\"},\"child\":[]}]})(props);\n};\nexport function FaLessThan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.6 81.7c7.9 15.8 1.5 35-14.3 42.9L103.6 256 366.3 387.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-320-160C6.8 279.2 0 268.1 0 256s6.8-23.2 17.7-28.6l320-160c15.8-7.9 35-1.5 42.9 14.3z\"},\"child\":[]}]})(props);\n};\nexport function FaLifeRing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm90.7 .8c33.8-43.4 54-98 54-157.3s-20.2-113.9-54-157.3c9-12.5 7.9-30.1-3.4-41.3S425.8 45 413.3 54C369.9 20.2 315.3 0 256 0S142.1 20.2 98.7 54c-12.5-9-30.1-7.9-41.3 3.4S45 86.2 54 98.7C20.2 142.1 0 196.7 0 256s20.2 113.9 54 157.3c-9 12.5-7.9 30.1 3.4 41.3S86.2 467 98.7 458c43.4 33.8 98 54 157.3 54s113.9-20.2 157.3-54c12.5 9 30.1 7.9 41.3-3.4s12.4-28.8 3.4-41.3zm-45.5-46.1l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaLightbulb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 384c9.6-31.9 29.5-59.1 49.2-86.2c0 0 0 0 0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4c0 0 0 0 0 0c19.8 27.1 39.7 54.4 49.2 86.2l160 0zM192 512c44.2 0 80-35.8 80-80l0-16-160 0 0 16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaLinesLeaning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M190.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM352 32c-17.7 0-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaLinkSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L489.3 358.2l90.5-90.5c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114l-96 96-31.9-25C430.9 239.6 420.1 175.1 377 132c-52.2-52.3-134.5-56.2-191.3-11.7L38.8 5.1zM239 162c30.1-14.9 67.7-9.9 92.8 15.3c20 20 27.5 48.3 21.7 74.5L239 162zM406.6 416.4L220.9 270c-2.1 39.8 12.2 80.1 42.2 110c38.9 38.9 94.4 51 143.6 36.3zm-290-228.5L60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l61.8-61.8-50.6-39.9z\"},\"child\":[]}]})(props);\n};\nexport function FaLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z\"},\"child\":[]}]})(props);\n};\nexport function FaLiraSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4L48 192l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 32-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l14 0c-2.2 10.5-6.1 20.6-11.7 29.9L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L88.5 416l.7-1.1c11.6-19.3 18.9-40.7 21.6-62.9L224 352c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-32 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-31.6z\"},\"child\":[]}]})(props);\n};\nexport function FaListCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaListOl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 56c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24l0 120 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-96-8 0C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432l33.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88 0c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaListUl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM64 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48-208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaLitecoinSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 149.6L23.2 225.2c-17 4.9-26.8 22.6-22 39.6s22.6 26.8 39.6 22L64 280.1 64 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-154.1 136.8-39.1c17-4.9 26.8-22.6 22-39.6s-22.6-26.8-39.6-22L128 195.3 128 64z\"},\"child\":[]}]})(props);\n};\nexport function FaLocationArrow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M429.6 92.1c4.9-11.9 2.1-25.6-7-34.7s-22.8-11.9-34.7-7l-352 144c-14.2 5.8-22.2 20.8-19.3 35.8s16.1 25.8 31.4 25.8l176 0 0 176c0 15.3 10.8 28.4 25.8 31.4s30-5.1 35.8-19.3l144-352z\"},\"child\":[]}]})(props);\n};\nexport function FaLocationCrosshairs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c17.7 0 32 14.3 32 32l0 34.7C368.4 80.1 431.9 143.6 445.3 224l34.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.7 0C431.9 368.4 368.4 431.9 288 445.3l0 34.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7C143.6 431.9 80.1 368.4 66.7 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l34.7 0C80.1 143.6 143.6 80.1 224 66.7L224 32c0-17.7 14.3-32 32-32zM128 256a128 128 0 1 0 256 0 128 128 0 1 0 -256 0zm128-80a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaLocationDot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaLocationPinLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M215.7 499.2c11-13.8 25.1-31.7 40.3-52.3l0-94.8c0-23.7 12.9-44.4 32-55.4l0-24.6c0-55.6 40.5-101.7 93.6-110.5C367 70 287.7 0 192 0C86 0 0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaLocationPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192z\"},\"child\":[]}]})(props);\n};\nexport function FaLockOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48C576 64.5 511.5 0 432 0S288 64.5 288 144l0 48L64 192c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-32 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 144l0 48 160 0 0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192l0-48C80 64.5 144.5 0 224 0s144 64.5 144 144l0 48 16 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256c0-35.3 28.7-64 64-64l16 0z\"},\"child\":[]}]})(props);\n};\nexport function FaLocust (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0c98.7 0 180.6 71.4 197 165.4c-9-3.5-18.8-5.4-29-5.4l-64.2 0-41.8-97.5c-3.4-7.9-10.8-13.4-19.3-14.4s-17 2.7-22.1 9.6l-40.9 55.5-21.7-50.7c-3.3-7.8-10.5-13.2-18.9-14.3s-16.7 2.3-22 8.9l-240 304c-8.2 10.4-6.4 25.5 4 33.7s25.5 6.4 33.7-4l79.4-100.5 43 16.4-40.5 55c-7.9 10.7-5.6 25.7 5.1 33.6s25.7 5.6 33.6-5.1L215.1 400l74.5 0-29.3 42.3c-7.5 10.9-4.8 25.8 6.1 33.4s25.8 4.8 33.4-6.1L348 400l80.4 0 38.8 67.9c6.6 11.5 21.2 15.5 32.7 8.9s15.5-21.2 8.9-32.7L483.6 400l12.4 0c44.1 0 79.8-35.7 80-79.7c0-.1 0-.2 0-.3l0-40C576 143 465 32 328 32l-16 0zm50.5 168l17.1 40L333 240l29.5-40zm-87.7 38.1l-1.4 1.9-48.2 0 32.7-41.5 16.9 39.5zM88.8 240C57.4 240 32 265.4 32 296.8c0 15.5 6.3 30 16.9 40.4L126.7 240l-37.9 0zM496 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaLungsVirus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 0c17.7 0 32 14.3 32 32l0 124.2c-8.5-7.6-19.7-12.2-32-12.2s-23.5 4.6-32 12.2L288 32c0-17.7 14.3-32 32-32zM444.5 195.5c-16.4-16.4-41.8-18.5-60.5-6.1l0-24.1C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4l0 7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2c-20.9-5.2-38.7-17.1-51.5-32.9c14 1.5 28.5-3 39.2-13.8l-22.6-22.6 22.6 22.6c18.7-18.7 18.7-49.1 0-67.9c-1.1-1.1-1.4-2-1.5-2.5c-.1-.8-.1-1.8 .4-2.9s1.2-1.9 1.8-2.3c.5-.3 1.3-.8 2.9-.8c26.5 0 48-21.5 48-48s-21.5-48-48-48c-1.6 0-2.4-.4-2.9-.8c-.6-.4-1.3-1.2-1.8-2.3s-.5-2.2-.4-2.9c.1-.6 .4-1.4 1.5-2.5c18.7-18.7 18.7-49.1 0-67.9zM421.8 421.8c-6.2 6.2-16.4 6.2-22.6 0C375.9 398.5 336 415 336 448c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C241.5 375.9 225 336 192 336c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C264.1 241.5 304 225 304 192c0-8.8 7.2-16 16-16s16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C398.5 264.1 415 304 448 304c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6zM183.3 491.2l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89l0-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3l0 24.1c-18.6-12.4-44-10.3-60.5 6.1c-18.7 18.7-18.7 49.1 0 67.9c1.1 1.1 1.4 2 1.5 2.5c.1 .8 .1 1.8-.4 2.9s-1.2 1.9-1.8 2.3c-.5 .3-1.3 .8-2.9 .8c-26.5 0-48 21.5-48 48s21.5 48 48 48c1.6 0 2.4 .4 2.9 .8c.6 .4 1.3 1.2 1.8 2.3s.5 2.2 .4 2.9c-.1 .6-.4 1.4-1.5 2.5c-18.7 18.7-18.7 49.1 0 67.9c10.7 10.7 25.3 15.3 39.2 13.8c-12.8 15.9-30.6 27.7-51.5 32.9zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaLungs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 0c17.7 0 32 14.3 32 32l0 132.1c0 16.4 8.4 31.7 22.2 40.5l9.8 6.2 0-45.5C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4l0 7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2C414 480.5 384 442.1 384 398l0-73 90.5 57.6c7.5 4.7 17.3 2.5 22.1-4.9s2.5-17.3-4.9-22.1L384 287.1l0-.4-44.1-28.1c-7.3-4.6-13.9-10.1-19.9-16.1c-5.9 6-12.6 11.5-19.9 16.1L256 286.7 161.2 347l-13.5 8.6c0 0 0 0-.1 0c-7.4 4.8-9.6 14.6-4.8 22.1c4.7 7.5 14.6 9.7 22.1 4.9l91.1-58 0 73.4c0 44.1-30 82.5-72.7 93.1l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89l0-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3l0 45.5 9.8-6.2c13.8-8.8 22.2-24.1 22.2-40.5L288 32c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaM (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.7 33.4c13.5-4.1 28.1 1.1 35.9 12.9L224 294.3 389.4 46.3c7.8-11.7 22.4-17 35.9-12.9S448 49.9 448 64l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-278.3L250.6 369.8c-5.9 8.9-15.9 14.2-26.6 14.2s-20.7-5.3-26.6-14.2L64 169.7 64 448c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 49.9 9.2 37.5 22.7 33.4z\"},\"child\":[]}]})(props);\n};\nexport function FaMagnet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 160l0 96C0 379.7 100.3 480 224 480s224-100.3 224-224l0-96-128 0 0 96c0 53-43 96-96 96s-96-43-96-96l0-96L0 160zm0-32l128 0 0-64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64l0 64zm320 0l128 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaMagnifyingGlassArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM241 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31L120 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l118.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72z\"},\"child\":[]}]})(props);\n};\nexport function FaMagnifyingGlassChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zm-312 8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64l0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaMagnifyingGlassDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM228 104c0-11-9-20-20-20s-20 9-20 20l0 14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1c0 0 0 0 0 0s0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4l0 14.6c0 11 9 20 20 20s20-9 20-20l0-13.8c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7l0-13.9z\"},\"child\":[]}]})(props);\n};\nexport function FaMagnifyingGlassLocation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6c6 7.3 16.8 7.3 22.7 0c22.1-27 68.6-89.8 68.6-138.6zm-112 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMagnifyingGlassMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMagnifyingGlassPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM184 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaMagnifyingGlass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z\"},\"child\":[]}]})(props);\n};\nexport function FaManatSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 32c-17.7 0-32 14.3-32 32l0 34.7C69.2 113.9 0 192.9 0 288L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-59.6 40.8-109.8 96-124l0 284c0 17.7 14.3 32 32 32s32-14.3 32-32l0-284c55.2 14.2 96 64.3 96 124l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-95.1-69.2-174.1-160-189.3L224 64c0-17.7-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaMapLocationDot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408 120c0 54.6-73.1 151.9-105.2 192c-7.7 9.6-22 9.6-29.6 0C241.1 271.9 168 174.6 168 120C168 53.7 221.7 0 288 0s120 53.7 120 120zm8 80.4c3.5-6.9 6.7-13.8 9.6-20.6c.5-1.2 1-2.5 1.5-3.7l116-46.4C558.9 123.4 576 135 576 152l0 270.8c0 9.8-6 18.6-15.1 22.3L416 503l0-302.6zM137.6 138.3c2.4 14.1 7.2 28.3 12.8 41.5c2.9 6.8 6.1 13.7 9.6 20.6l0 251.4L32.9 502.7C17.1 509 0 497.4 0 480.4L0 209.6c0-9.8 6-18.6 15.1-22.3l122.6-49zM327.8 332c13.9-17.4 35.7-45.7 56.2-77l0 249.3L192 449.4 192 255c20.5 31.3 42.3 59.6 56.2 77c20.5 25.6 59.1 25.6 79.6 0zM288 152a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"},\"child\":[]}]})(props);\n};\nexport function FaMapLocation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M302.8 312C334.9 271.9 408 174.6 408 120C408 53.7 354.3 0 288 0S168 53.7 168 120c0 54.6 73.1 151.9 105.2 192c7.7 9.6 22 9.6 29.6 0zM416 503l144.9-58c9.1-3.6 15.1-12.5 15.1-22.3L576 152c0-17-17.1-28.6-32.9-22.3l-116 46.4c-.5 1.2-1 2.5-1.5 3.7c-2.9 6.8-6.1 13.7-9.6 20.6L416 503zM15.1 187.3C6 191 0 199.8 0 209.6L0 480.4c0 17 17.1 28.6 32.9 22.3L160 451.8l0-251.4c-3.5-6.9-6.7-13.8-9.6-20.6c-5.6-13.2-10.4-27.4-12.8-41.5l-122.6 49zM384 255c-20.5 31.3-42.3 59.6-56.2 77c-20.5 25.6-59.1 25.6-79.6 0c-13.9-17.4-35.7-45.7-56.2-77l0 194.4 192 54.9L384 255z\"},\"child\":[]}]})(props);\n};\nexport function FaMapPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 144a144 144 0 1 1 288 0A144 144 0 1 1 16 144zM160 80c8.8 0 16-7.2 16-16s-7.2-16-16-16c-53 0-96 43-96 96c0 8.8 7.2 16 16 16s16-7.2 16-16c0-35.3 28.7-64 64-64zM128 480l0-162.9c10.4 1.9 21.1 2.9 32 2.9s21.6-1 32-2.9L192 480c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 476.1L192 421.2l0-385.3L384 90.8l0 385.3zm32-1.2l0-386.5L543.1 37.5c15.8-6.3 32.9 5.3 32.9 22.3l0 334.8c0 9.8-6 18.6-15.1 22.3L416 474.8zM15.1 95.1L160 37.2l0 386.5L32.9 474.5C17.1 480.8 0 469.2 0 452.2L0 117.4c0-9.8 6-18.6 15.1-22.3z\"},\"child\":[]}]})(props);\n};\nexport function FaMarker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M481 31C445.1-4.8 386.9-4.8 351 31l-15 15L322.9 33C294.8 4.9 249.2 4.9 221.1 33L135 119c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L255 66.9c9.4-9.4 24.6-9.4 33.9 0L302.1 80 186.3 195.7 316.3 325.7 481 161c35.9-35.9 35.9-94.1 0-129.9zM293.7 348.3L163.7 218.3 99.5 282.5c-48 48-80.8 109.2-94.1 175.8l-5 25c-1.6 7.9 .9 16 6.6 21.7s13.8 8.1 21.7 6.6l25-5c66.6-13.3 127.8-46.1 175.8-94.1l64.2-64.2z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsAndVenusBurst (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39-22.2 22.2C475.9 78.4 439.6 64 400 64c-88.4 0-160 71.6-160 160c0 80.2 59.1 146.7 136.1 158.2c0 .6-.1 1.2-.1 1.8l0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .3 0 .4 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1c0 0 0 .1 0 .1s0 .1 0 .1l0 .1c0 0 0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0l24 0-24 0c0 13.3 10.7 24 24 24s24-10.7 24-24l-24 0 24 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1l0-.1c0 0 0-.1 0-.1s0-.1 0-.1l0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24 0 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.4 0-.3 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4c0-.6 0-1.2-.1-1.8c77-11.6 136.1-78 136.1-158.2c0-31.4-9-60.7-24.7-85.4L560 113.9l39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L504 0zM400 128a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.1 3.8 9.9 5.1 15.2 3.6C223.6 310.8 208 269.2 208 224c0-60.8 28.3-115 72.4-150.2L220.3 92.1l-29.4-74z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsAndVenus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M337.8 14.8C341.5 5.8 350.3 0 360 0L472 0c13.3 0 24 10.7 24 24l0 112c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-24.7 24.7C407 163.3 416 192.6 416 224c0 80.2-59 146.6-136 158.2l0 25.8 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-25.8C155 370.6 96 304.2 96 224c0-88.4 71.6-160 160-160c39.6 0 75.9 14.4 103.8 38.2L382.1 80 343 41c-6.9-6.9-8.9-17.2-5.2-26.2zM448 48s0 0 0 0s0 0 0 0s0 0 0 0zM352 224a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsDouble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L275.8 159c-28.4-19.5-62.7-31-99.8-31C78.8 128 0 206.8 0 304s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L407 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L312 32zm88 48s0 0 0 0s0 0 0 0s0 0 0 0zM64 304a112 112 0 1 1 224 0A112 112 0 1 1 64 304zM368 480c97.2 0 176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L599 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L504 32c-9.7 0-18.5 5.8-22.2 14.8c-1.2 2.9-1.8 6-1.8 9l0 .2 0 .2c0 6.2 2.5 12.2 7 16.8l33.4 33.4L480 146.7l0 21.3c0 22.6-13.6 43.1-34.6 51.7c-.8 .3-1.7 .7-2.5 1C465.7 241.2 480 270.9 480 304c0 61.9-50.1 112-112 112c-5.4 0-10.8-.4-16-1.1c-12.9 20.4-29.1 38.3-48.1 53.1c19.8 7.8 41.4 12 64 12z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsStrokeRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm174.4-88C370.7 365.8 297.1 432 208 432c-97.2 0-176-78.8-176-176s78.8-176 176-176c89.1 0 162.7 66.2 174.4 152l33.6 0 0-56c0-13.3 10.7-24 24-24s24 10.7 24 24l0 56 32 0 0-56c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2l0-56-32 0 0 56c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-56-33.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsStrokeUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M148.7 4.7c6.2-6.2 16.4-6.2 22.6 0l64 64c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9l-40 0 0 24 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 24c0 .6 0 1.2-.1 1.8c77 11.6 136.1 78 136.1 158.2c0 88.4-71.6 160-160 160S0 440.4 0 352c0-80.2 59.1-146.7 136.1-158.2c0-.6-.1-1.2-.1-1.8l0-24-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-24L96 96c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l64-64zM256 352A96 96 0 1 0 64 352a96 96 0 1 0 192 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsStroke (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L370.3 96.4 345 71c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l25.4 25.4L307.8 159c-28.4-19.5-62.7-31-99.8-31c-97.2 0-176 78.8-176 176s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l28.6-28.6L407 201c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-25.4-25.4 22.1-22.1L471 153c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L376 0zm88 48s0 0 0 0s0 0 0 0s0 0 0 0zM96 304a112 112 0 1 1 224 0A112 112 0 1 1 96 304z\"},\"child\":[]}]})(props);\n};\nexport function FaMars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M289.8 46.8c3.7-9 12.5-14.8 22.2-14.8l112 0c13.3 0 24 10.7 24 24l0 112c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L321 204.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176S0 401.2 0 304s78.8-176 176-176c37 0 71.4 11.4 99.8 31l52.6-52.6L295 73c-6.9-6.9-8.9-17.2-5.2-26.2zM400 80s0 0 0 0s0 0 0 0s0 0 0 0zM176 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"},\"child\":[]}]})(props);\n};\nexport function FaMartiniGlassCitrus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 240c53 0 96-43 96-96s-43-96-96-96c-35.5 0-66.6 19.3-83.2 48l-52.6 0C316 40.1 369.3 0 432 0c79.5 0 144 64.5 144 144s-64.5 144-144 144c-27.7 0-53.5-7.8-75.5-21.3l35.4-35.4c12.2 5.6 25.8 8.7 40.1 8.7zM1.8 142.8C5.5 133.8 14.3 128 24 128l368 0c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-177 177L232 464l64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88 0-88 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-118.1L7 169c-6.9-6.9-8.9-17.2-5.2-26.2z\"},\"child\":[]}]})(props);\n};\nexport function FaMartiniGlassEmpty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3 224 448l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-178.7L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0L32 0zM256 210.7L109.3 64l293.5 0L256 210.7z\"},\"child\":[]}]})(props);\n};\nexport function FaMartiniGlass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3 224 448l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-178.7L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0L32 0zM173.3 128l-64-64 293.5 0-64 64-165.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMaskFace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1l-9.2 0-16 0-72 0c-30.9 0-56 25.1-56 56l0 85c0 55.1 37.5 103.1 90.9 116.4l108 27C233.8 435 275.4 448 320 448s86.2-13 121.1-35.5l108-27C602.5 372.1 640 324.1 640 269l0-85c0-30.9-25.1-56-56-56l-72 0-16 0-9.2 0c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM132.3 346.3l-29.8-7.4C70.5 330.9 48 302.1 48 269l0-85c0-4.4 3.6-8 8-8l40 0 0 48c0 45.1 13.4 87.2 36.3 122.3zm405.1-7.4l-29.8 7.4c23-35.2 36.3-77.2 36.3-122.3l0-48 40 0c4.4 0 8 3.6 8 8l0 85c0 33-22.5 61.8-54.5 69.9zM192 208c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16zm16 48l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 80c0-8.8 7.2-16 16-16l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaMaskVentilator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M159.1 176C139.4 219.2 128 264.7 128 300.8c0 15.9 2.2 31.4 6.3 46l-31.8-7.9C70.5 330.9 48 302.1 48 269l0-85c0-4.4 3.6-8 8-8l103.1 0zm26-48L56 128c-30.9 0-56 25.1-56 56l0 85c0 55.1 37.5 103.1 90.9 116.4l71.3 17.8c22.7 30.5 55.4 54.1 93.8 66.6l0-76.6c-19.7-16.4-32-40.3-32-66.9c0-49.5 43-134.4 96-134.4c52.5 0 96 84.9 96 134.4c0 26.7-12.4 50.4-32 66.8l0 76.6c38-12.6 70.6-36 93.5-66.4l71.6-17.9C602.5 372.1 640 324.1 640 269l0-85c0-30.9-25.1-56-56-56l-129.5 0C419.7 73.8 372.1 32 320 32c-52.6 0-100.2 41.8-134.9 96zm295.6 48L584 176c4.4 0 8 3.6 8 8l0 85c0 33-22.5 61.8-54.5 69.9l-31.8 8c4.2-14.7 6.4-30.1 6.4-46.1c0-36.1-11.6-81.6-31.3-124.8zM288 320l0 192 64 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaMask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 64C64 64 0 160 0 272S80 448 176 448l8.4 0c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4l8.4 0c96 0 176-64 176-176s-64-208-288-208zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm320-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaMasksTheater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M74.6 373.2c41.7 36.1 108 82.5 166.1 73.7c6.1-.9 12.1-2.5 18-4.5c-9.2-12.3-17.3-24.4-24.2-35.4c-21.9-35-28.8-75.2-25.9-113.6c-20.6 4.1-39.2 13-54.7 25.4c-6.5 5.2-16.3 1.3-14.8-7c6.4-33.5 33-60.9 68.2-66.3c2.6-.4 5.3-.7 7.9-.8l19.4-131.3c2-13.8 8-32.7 25-45.9C278.2 53.2 310.5 37 363.2 32.2c-.8-.7-1.6-1.4-2.4-2.1C340.6 14.5 288.4-11.5 175.7 5.6S20.5 63 5.7 83.9C0 91.9-.8 102 .6 111.8L24.8 276.1c5.5 37.3 21.5 72.6 49.8 97.2zm87.7-219.6c4.4-3.1 10.8-2 11.8 3.3c.1 .5 .2 1.1 .3 1.6c3.2 21.8-11.6 42-33.1 45.3s-41.5-11.8-44.7-33.5c-.1-.5-.1-1.1-.2-1.6c-.6-5.4 5.2-8.4 10.3-6.7c9 3 18.8 3.9 28.7 2.4s19.1-5.3 26.8-10.8zM261.6 390c29.4 46.9 79.5 110.9 137.6 119.7s124.5-37.5 166.1-73.7c28.3-24.5 44.3-59.8 49.8-97.2l24.2-164.3c1.4-9.8 .6-19.9-5.1-27.9c-14.8-20.9-57.3-61.2-170-78.3S299.4 77.2 279.2 92.8c-7.8 6-11.5 15.4-12.9 25.2L242.1 282.3c-5.5 37.3-.4 75.8 19.6 107.7zM404.5 235.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6c-1 5.3-7.4 6.4-11.8 3.3zm136.2 15.5c-1 5.3-7.4 6.4-11.8 3.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6zM530 350.2c-19.6 44.7-66.8 72.5-116.8 64.9s-87.1-48.2-93-96.7c-1-8.3 8.9-12.1 15.2-6.7c23.9 20.8 53.6 35.3 87 40.3s66.1 .1 94.9-12.8c7.6-3.4 16 3.2 12.6 10.9z\"},\"child\":[]}]})(props);\n};\nexport function FaMattressPillow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l192 0 0-384zm32 384l288 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L288 64l0 384zM64 160c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaMaximize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M200 32L56 32C42.7 32 32 42.7 32 56l0 144c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l40-40 79 79-79 79L73 295c-6.9-6.9-17.2-8.9-26.2-5.2S32 302.3 32 312l0 144c0 13.3 10.7 24 24 24l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l144 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-144c0-13.3-10.7-24-24-24L312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S209.7 32 200 32z\"},\"child\":[]}]})(props);\n};\nexport function FaMedal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.1 38.2C1.4 34.2 0 29.4 0 24.6C0 11 11 0 24.6 0L133.9 0c11.2 0 21.7 5.9 27.4 15.5l68.5 114.1c-48.2 6.1-91.3 28.6-123.4 61.9L4.1 38.2zm503.7 0L405.6 191.5c-32.1-33.3-75.2-55.8-123.4-61.9L350.7 15.5C356.5 5.9 366.9 0 378.1 0L487.4 0C501 0 512 11 512 24.6c0 4.8-1.4 9.6-4.1 13.6zM80 336a176 176 0 1 1 352 0A176 176 0 1 1 80 336zm184.4-94.9c-3.4-7-13.3-7-16.8 0l-22.4 45.4c-1.4 2.8-4 4.7-7 5.1L168 298.9c-7.7 1.1-10.7 10.5-5.2 16l36.3 35.4c2.2 2.2 3.2 5.2 2.7 8.3l-8.6 49.9c-1.3 7.6 6.7 13.5 13.6 9.9l44.8-23.6c2.7-1.4 6-1.4 8.7 0l44.8 23.6c6.9 3.6 14.9-2.2 13.6-9.9l-8.6-49.9c-.5-3 .5-6.1 2.7-8.3l36.3-35.4c5.6-5.4 2.5-14.8-5.2-16l-50.1-7.3c-3-.4-5.7-2.4-7-5.1l-22.4-45.4z\"},\"child\":[]}]})(props);\n};\nexport function FaMemory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C28.7 64 0 92.7 0 128l0 7.4c0 6.8 4.4 12.6 10.1 16.3C23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6L0 320l576 0 0-71.4c0-6.8-4.4-12.6-10.1-16.3C552.7 223.7 544 208.9 544 192s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3l0-7.4c0-35.3-28.7-64-64-64L64 64zM576 352L0 352l0 64c0 17.7 14.3 32 32 32l48 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 96 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 96 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 96 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 48 0c17.7 0 32-14.3 32-32l0-64zM192 160l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaMenorah (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1L64 64c0 17.7-14.3 32-32 32S0 81.7 0 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32l0 128c0 17.7 14.3 32 32 32l192 0 0-160c0-17.7 14.3-32 32-32s32 14.3 32 32l0 160 192 0c17.7 0 32-14.3 32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 53-43 96-96 96l-192 0 0 64 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0 0-64L96 384c-53 0-96-43-96-96L0 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaMercury (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M72.1 7C85.8-4 106-1.8 117 12c17.6 22 44.7 36 75 36s57.3-14 75-36c11.1-13.8 31.2-16 45-5s16 31.2 5 45c-7.8 9.7-16.6 18.4-26.4 26.1C337.3 109.7 368 163.3 368 224c0 89.1-66.2 162.7-152 174.4l0 25.6 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 16c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-25.6C82.2 386.7 16 313.1 16 224c0-60.7 30.7-114.3 77.5-145.9C83.7 70.5 74.9 61.7 67.1 52c-11.1-13.8-8.8-33.9 5-45zM80 224a112 112 0 1 0 224 0A112 112 0 1 0 80 224z\"},\"child\":[]}]})(props);\n};\nexport function FaMessage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 352c0 35.3 28.7 64 64 64l96 0 0 80c0 6.1 3.4 11.6 8.8 14.3s11.9 2.1 16.8-1.5L309.3 416 448 416c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64L64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMeteor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M493.7 .9L299.4 75.6l2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309C0 421.1 90.9 512 203 512c72.4 0 139.4-38.6 175.7-101.3L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3L511.1 18.3c.6-1.5 .9-3.2 .9-4.8C512 6 506 0 498.5 0c-1.7 0-3.3 .3-4.8 .9zM192 192a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm16 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrochip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c-35.3 0-64 28.7-64 64l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c0 35.3 28.7 64 64 64l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c35.3 0 64-28.7 64-64l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c0-35.3-28.7-64-64-64l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40zM160 128l192 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-192c0-17.7 14.3-32 32-32zm192 32l-192 0 0 192 192 0 0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrophoneLinesSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24 0 16c0 21.2-5.1 41.1-14.2 58.7L416 300.8l0-44.8-57.1 0-34.5-27c2.9-3.1 7-5 11.6-5l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0c0-53-43-96-96-96s-96 43-96 96l0 54.3L38.8 5.1zm362.5 407l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128l0-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6c20.4-2.8 39.7-9.1 57.3-18.2z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrophoneLines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 96l0 160c0 53 43 96 96 96s96-43 96-96l-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0c0-53-43-96-96-96S96 43 96 96zM320 240l0 16c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6c85.8-11.7 152-85.3 152-174.4l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrophoneSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 21.2-5.1 41.1-14.2 58.7L416 300.8 416 96c0-53-43-96-96-96s-96 43-96 96l0 54.3L38.8 5.1zM344 430.4c20.4-2.8 39.7-9.1 57.3-18.2l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128l0-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrophone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0C139 0 96 43 96 96l0 160c0 53 43 96 96 96s96-43 96-96l0-160c0-53-43-96-96-96zM64 216c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6c85.8-11.7 152-85.3 152-174.4l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-40z\"},\"child\":[]}]})(props);\n};\nexport function FaMicroscope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32c-17.7 0-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32zM32 448l288 0c70.7 0 128-57.3 128-128s-57.3-128-128-128l0-64c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128l16.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaMillSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M302.1 42.8c5.9-16.6-2.7-35-19.4-40.9s-35 2.7-40.9 19.4L208 116.1c-5.7 4-11.1 8.5-16 13.5C171.7 108.9 143.3 96 112 96c-19.5 0-37.8 5-53.7 13.7C52.5 101.4 42.9 96 32 96C14.3 96 0 110.3 0 128l0 80L0 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208c0-26.5 21.5-48 48-48s48 21.5 48 48l0 42.5L81.9 469.2c-5.9 16.6 2.7 35 19.4 40.9s35-2.7 40.9-19.4l21.4-60C168.9 441 179.6 448 192 448c17.7 0 32-14.3 32-32l0-154.5 35.7-100c3.9-1 8.1-1.6 12.3-1.6c26.5 0 48 21.5 48 48l0 208c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208c0-58.2-44.3-106-101.1-111.5l19.2-53.8z\"},\"child\":[]}]})(props);\n};\nexport function FaMinimize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M456 224l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l40 40L442.3 5.7C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143l40 40c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433l-40 40c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2l0-144c0-13.3 10.7-24 24-24l144 0zm-256 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40L69.7 506.3C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8l144 0zM56 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l40-40L5.7 69.7C2 66 0 61.1 0 56s2-10 5.7-13.7L42.3 5.7C46 2 50.9 0 56 0s10 2 13.7 5.7L143 79l40-40c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 144c0 13.3-10.7 24-24 24L56 224z\"},\"child\":[]}]})(props);\n};\nexport function FaMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaMitten (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 384L64 384 5.4 178.9C1.8 166.4 0 153.4 0 140.3C0 62.8 62.8 0 140.3 0l3.4 0c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192l2.8 0c34.9 0 63.3 28.3 63.3 63.3c0 15.9-6 31.2-16.8 42.9L352 384zM32 448c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32l0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaMobileButton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zM192 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaMobileRetro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L256 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm64 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM80 352a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM128 48c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMobileScreenButton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM224 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM304 64L80 64l0 320 224 0 0-320z\"},\"child\":[]}]})(props);\n};\nexport function FaMobileScreen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM144 448c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zM304 64L80 64l0 320 224 0 0-320z\"},\"child\":[]}]})(props);\n};\nexport function FaMobile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zm80 432l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBill1Wave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 112.5L0 422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4l0-309.9c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM128 416l-64 0 0-64c35.3 0 64 28.7 64 64zM64 224l0-64 64 0c0 35.3-28.7 64-64 64zM448 352c0-35.3 28.7-64 64-64l0 64-64 0zm64-192c-35.3 0-64-28.7-64-64l64 0 0 64zM384 256c0 61.9-43 112-96 112s-96-50.1-96-112s43-112 96-112s96 50.1 96 112zM252 208c0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l24 0 24 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBill1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm64 320l-64 0 0-64c35.3 0 64 28.7 64 64zM64 192l0-64 64 0c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64l0 64-64 0zm64-192c-35.3 0-64-28.7-64-64l64 0 0 64zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm76-48c0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l24 0 24 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBillTransfer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M535 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17l-64 64c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23L384 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l174.1 0L535 41zM105 377l-23 23L256 400c13.3 0 24 10.7 24 24s-10.7 24-24 24L81.9 448l23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 441c-4.5-4.5-7-10.6-7-17s2.5-12.5 7-17l64-64c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM96 64l241.9 0c-3.7 7.2-5.9 15.3-5.9 24c0 28.7 23.3 52 52 52l117.4 0c-4 17 .6 35.5 13.8 48.8c20.3 20.3 53.2 20.3 73.5 0L608 169.5 608 384c0 35.3-28.7 64-64 64l-241.9 0c3.7-7.2 5.9-15.3 5.9-24c0-28.7-23.3-52-52-52l-117.4 0c4-17-.6-35.5-13.8-48.8c-20.3-20.3-53.2-20.3-73.5 0L32 342.5 32 128c0-35.3 28.7-64 64-64zm64 64l-64 0 0 64c35.3 0 64-28.7 64-64zM544 320c-35.3 0-64 28.7-64 64l64 0 0-64zM320 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBillTrendUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M470.7 9.4c3 3.1 5.3 6.6 6.9 10.3s2.4 7.8 2.4 12.2c0 0 0 .1 0 .1c0 0 0 0 0 0l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7L310.6 214.6c-11.8 11.8-30.8 12.6-43.5 1.7L176 138.1 84.8 216.3c-13.4 11.5-33.6 9.9-45.1-3.5s-9.9-33.6 3.5-45.1l112-96c12-10.3 29.7-10.3 41.7 0l89.5 76.7L370.7 64 352 64c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0s0 0 0 0c8.8 0 16.8 3.6 22.6 9.3l.1 .1zM0 304c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 304zM48 416l0 48 48 0c0-26.5-21.5-48-48-48zM96 304l-48 0 0 48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48l48 0 0-48zM416 304c0 26.5 21.5 48 48 48l0-48-48 0zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBillWave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 112.5L0 422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4l0-309.9c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM288 352c-44.2 0-80-43-80-96s35.8-96 80-96s80 43 80 96s-35.8 96-80 96zM64 352c35.3 0 64 28.7 64 64l-64 0 0-64zm64-208c0 35.3-28.7 64-64 64l0-64 64 0zM512 304l0 64-64 0c0-35.3 28.7-64 64-64zM448 96l64 0 0 64c-35.3 0-64-28.7-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBillWheat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zM56 16l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 64C42.7 64 32 53.3 32 40s10.7-24 24-24zM24 88l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 136c-13.3 0-24-10.7-24-24S10.7 88 24 88zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 16c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80zM400 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 128c8.8 0 16 7.2 16 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 304zM48 416l0 48 48 0c0-26.5-21.5-48-48-48zM96 304l-48 0 0 48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48l48 0 0-48zM416 304c0 26.5 21.5 48 48 48l0-48-48 0zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBill (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm64 320l-64 0 0-64c35.3 0 64 28.7 64 64zM64 192l0-64 64 0c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64l0 64-64 0zm64-192c-35.3 0-64-28.7-64-64l64 0 0 64zM288 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBills (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 96l0 224c0 35.3 28.7 64 64 64l416 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32c-35.3 0-64 28.7-64 64zm64 160c35.3 0 64 28.7 64 64l-64 0 0-64zM224 96c0 35.3-28.7 64-64 64l0-64 64 0zM576 256l0 64-64 0c0-35.3 28.7-64 64-64zM512 96l64 0 0 64c-35.3 0-64-28.7-64-64zM288 208a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 360c0 66.3 53.7 120 120 120l400 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-400 0c-39.8 0-72-32.2-72-72l0-240z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyCheckDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM272 192l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM256 304c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16zM164 152l0 13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9l0 13.8c0 11-9 20-20 20s-20-9-20-20l0-14.6c-10.3-2.2-20-5.5-28.2-8.4c0 0 0 0 0 0s0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5l0-14c0-11 9-20 20-20s20 9 20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm48 160l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM96 336c0-8.8 7.2-16 16-16l352 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-352 0c-8.8 0-16-7.2-16-16zM376 160l80 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaMonument (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M180.7 4.7c6.2-6.2 16.4-6.2 22.6 0l80 80c2.5 2.5 4.1 5.8 4.6 9.3l40.2 322L55.9 416 96.1 94c.4-3.5 2-6.8 4.6-9.3l80-80zM152 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM32 448l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z\"},\"child\":[]}]})(props);\n};\nexport function FaMortarPestle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160l144.9 0L502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2c-11.1 13.9-19.4 30.3-23.9 48.1C127.6 497.4 142.3 512 160 512l192 0c17.7 0 32.4-14.6 28.1-31.7c-4.5-17.8-12.8-34.1-23.9-48.1C436.6 403.7 480 338.5 480 256c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 192z\"},\"child\":[]}]})(props);\n};\nexport function FaMosque (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 0c5 0 9.8 2.4 12.8 6.4c34.7 46.3 78.1 74.9 133.5 111.5c0 0 0 0 0 0s0 0 0 0c5.2 3.4 10.5 7 16 10.6c28.9 19.2 45.7 51.7 45.7 86.1c0 28.6-11.3 54.5-29.8 73.4l-356.4 0c-18.4-19-29.8-44.9-29.8-73.4c0-34.4 16.7-66.9 45.7-86.1c5.4-3.6 10.8-7.1 16-10.6c0 0 0 0 0 0s0 0 0 0C309.1 81.3 352.5 52.7 387.2 6.4c3-4 7.8-6.4 12.8-6.4zM288 512l0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-48 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l416 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-48 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-64 0 0-58c0-19-8.4-37-23-49.2L400 384l-25 20.8C360.4 417 352 435 352 454l0 58-64 0zM70.4 5.2c5.7-4.3 13.5-4.3 19.2 0l16 12C139.8 42.9 160 83.2 160 126l0 2L0 128l0-2C0 83.2 20.2 42.9 54.4 17.2l16-12zM0 160l160 0 0 136.6c-19.1 11.1-32 31.7-32 55.4l0 128c0 9.6 2.1 18.6 5.8 26.8c-6.6 3.4-14 5.2-21.8 5.2l-64 0c-26.5 0-48-21.5-48-48L0 176l0-16z\"},\"child\":[]}]})(props);\n};\nexport function FaMosquitoNet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168.8 462.3c-7.9-4-11.1-13.6-7.2-21.5L192 380.2l0-44.2c0-4.2 1.7-8.3 4.7-11.3L256 265.4l0-23.1L139.2 344C87.8 395.3 0 358.9 0 286.3c0-41.1 30.6-75.8 71.4-80.9l159.9-23.9-49.6-41.3c-5.1-4.2-7-11.1-4.9-17.4l13.9-41.7-29-58.1c-4-7.9-.7-17.5 7.2-21.5s17.5-.7 21.5 7.2l32 64c1.9 3.8 2.2 8.2 .9 12.2l-12.5 37.6L256 160.5l0-22.6c0-14.9 10.1-27.3 23.8-31l0-43.3c0-4.5 3.7-8.2 8.2-8.2s8.2 3.7 8.2 8.2l0 43.3c13.7 3.6 23.8 16.1 23.8 31l0 22.6 45.4-37.8L352.8 85.1c-1.3-4-1-8.4 .9-12.2l32-64c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-29 58.1 13.9 41.7c2.1 6.2 .1 13.1-4.9 17.4l-49.6 41.3 159.9 23.9c22.5 2.8 41.8 14.6 54.7 31.4c-2.7 2.6-5.2 5.4-7.3 8.6c-8.6-12.9-23.3-21.5-40-21.5s-31.4 8.5-40 21.5c-8.6-12.9-23.3-21.5-40-21.5c-21.7 0-40 14.3-45.9 34.1c-10.7 3.2-19.8 10.1-25.9 19.2l-40.2-35 0 23.1 32.4 32.4c-.3 2-.4 4.1-.4 6.2c0 16.7 8.5 31.4 21.5 40c-4 2.6-7.5 5.9-10.6 9.5L320 310.6l0 50c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50-32 32 0 41.4c0 2.5-.6 4.9-1.7 7.2l-32 64c-4 7.9-13.6 11.1-21.5 7.2zM512 256c8.8 0 16 7.2 16 16l0 16 48 0 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 16 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0 0 48 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0 0 48 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-16-48 0 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-16-48 0 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-16-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 0-48-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 0-48-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 16 48 0 0-16c0-8.8 7.2-16 16-16zm16 112l48 0 0-48-48 0 0 48zm0 80l48 0 0-48-48 0 0 48zM448 320l0 48 48 0 0-48-48 0zm0 80l0 48 48 0 0-48-48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMosquito (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M463.7 505.9c9.8-8.9 10.7-24.3 2.1-34.3l-42.1-49 0-54.7c0-5.5-1.8-10.8-5.1-15.1L352 266.3l0-.3L485.4 387.8C542.4 447.6 640 405.2 640 320.6c0-47.9-34-88.3-79.4-94.2l-153-23.9 40.8-40.9c7.8-7.8 9.4-20.1 3.9-29.8L428.5 90.1l38.2-50.9c8-10.6 6.1-25.9-4.3-34.1s-25.2-6.3-33.2 4.4l-48 63.9c-5.9 7.9-6.6 18.6-1.7 27.2L402.2 140 352 190.3l0-38.2c0-14.9-10.2-27.4-24-31l0-57.2c0-4.4-3.6-8-8-8s-8 3.6-8 8l0 57.2c-13.8 3.6-24 16.1-24 31l0 38.1L237.8 140l22.6-39.5c4.9-8.6 4.2-19.3-1.7-27.2l-48-63.9c-8-10.6-22.8-12.6-33.2-4.4s-12.2 23.5-4.3 34.1l38.2 50.9-23.9 41.7c-5.5 9.7-3.9 22 3.9 29.8l40.8 40.9-153 23.9C34 232.3 0 272.7 0 320.6c0 84.6 97.6 127 154.6 67.1L288 266l0 .3-66.5 86.4c-3.3 4.3-5.1 9.6-5.1 15.1l0 54.7-42.1 49c-8.6 10.1-7.7 25.5 2.1 34.3s24.7 7.9 33.4-2.1l48-55.9c3.8-4.4 5.9-10.2 5.9-16.1l0-55.4L288 344.7l0 63.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-63.1 24.3 31.6 0 55.4c0 5.9 2.1 11.7 5.9 16.1l48 55.9c8.6 10.1 23.6 11 33.4 2.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMotorcycle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M280 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l57.7 0 16.4 30.3L256 192l-45.3-45.3c-12-12-28.3-18.7-45.3-18.7L64 128c-17.7 0-32 14.3-32 32l0 32 96 0c88.4 0 160 71.6 160 160c0 11-1.1 21.7-3.2 32l70.4 0c-2.1-10.3-3.2-21-3.2-32c0-52.2 25-98.6 63.7-127.8l15.4 28.6C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L418.2 128l61.8 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-20.4 0c-7.5 0-14.7 2.6-20.5 7.4L391.7 78.9l-14-26c-7-12.9-20.5-21-35.2-21L280 32zM462.7 311.2l28.2 52.2c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-28.2-52.2c2.3-.3 4.7-.4 7.1-.4c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-15.5 5.5-29.7 14.7-40.8zM187.3 376c-9.5 23.5-32.5 40-59.3 40c-35.3 0-64-28.7-64-64s28.7-64 64-64c26.9 0 49.9 16.5 59.3 40l66.4 0C242.5 268.8 190.5 224 128 224C57.3 224 0 281.3 0 352s57.3 128 128 128c62.5 0 114.5-44.8 125.8-104l-66.4 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaMound (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144.1 179.2C173.8 127.7 228.6 96 288 96s114.2 31.7 143.9 83.2L540.4 368c12.3 21.3-3.1 48-27.7 48H63.3c-24.6 0-40-26.6-27.7-48L144.1 179.2z\"},\"child\":[]}]})(props);\n};\nexport function FaMountainCity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 0c-26.5 0-48 21.5-48 48l0 92.1 71.4 118.4c2.5-1.6 5.4-2.5 8.6-2.5l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-3.5 0 73.8 122.4c12.4 20.6 12.9 46.3 1.2 67.3c-.4 .8-.9 1.6-1.4 2.3L592 512c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48l-24 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-40 0 0-144c0-26.5-21.5-48-48-48L336 0zm32 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM352 176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm160 96c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM224 188.9L283.8 288 223 288l-48 64-24.6-41.2L224 188.9zm29.4-44.2C247.1 134.3 236 128 224 128s-23.1 6.3-29.4 16.7L5.1 458.9c-6.5 10.8-6.7 24.3-.7 35.3S22 512 34.5 512l379.1 0c12.5 0 24-6.8 30.1-17.8s5.8-24.5-.7-35.3L253.4 144.7z\"},\"child\":[]}]})(props);\n};\nexport function FaMountainSun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M560 160A80 80 0 1 0 560 0a80 80 0 1 0 0 160zM55.9 512l325.2 0 75 0 122.8 0c33.8 0 61.1-27.4 61.1-61.1c0-11.2-3.1-22.2-8.9-31.8l-132-216.3C495 196.1 487.8 192 480 192s-15 4.1-19.1 10.7l-48.2 79L286.8 81c-6.6-10.6-18.3-17-30.8-17s-24.1 6.4-30.8 17L8.6 426.4C3 435.3 0 445.6 0 456.1C0 487 25 512 55.9 512z\"},\"child\":[]}]})(props);\n};\nexport function FaMountain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32c12.5 0 24.1 6.4 30.8 17L503.4 394.4c5.6 8.9 8.6 19.2 8.6 29.7c0 30.9-25 55.9-55.9 55.9L55.9 480C25 480 0 455 0 424.1c0-10.5 3-20.8 8.6-29.7L225.2 49c6.6-10.6 18.3-17 30.8-17zm65 192L256 120.4 176.9 246.5l18.3 24.4c6.4 8.5 19.2 8.5 25.6 0l25.6-34.1c6-8.1 15.5-12.8 25.6-12.8l49 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMugHot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M88 0C74.7 0 64 10.7 64 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C120.5 112.3 128 119.9 128 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C119.5 47.7 112 40.1 112 24c0-13.3-10.7-24-24-24zM32 192c-17.7 0-32 14.3-32 32L0 416c0 53 43 96 96 96l192 0c53 0 96-43 96-96l16 0c61.9 0 112-50.1 112-112s-50.1-112-112-112l-48 0L32 192zm352 64l16 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0 0-96zM224 24c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C232.5 112.3 240 119.9 240 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C231.5 47.7 224 40.1 224 24z\"},\"child\":[]}]})(props);\n};\nexport function FaMugSaucer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 64c0-17.7 14.3-32 32-32l320 0 64 0c70.7 0 128 57.3 128 128s-57.3 128-128 128l-32 0c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L96 64zM480 224l32 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0 0 128zM32 416l512 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaMusic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7l0 72 0 264c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6L448 147 192 223.8 192 432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6L128 200l0-72c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z\"},\"child\":[]}]})(props);\n};\nexport function FaN (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.1 33.9c12.7-4.6 26.9-.7 35.5 9.6L320 359.6 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 13.5-8.4 25.5-21.1 30.1s-26.9 .7-35.5-9.6L64 152.4 64 448c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 50.5 8.4 38.5 21.1 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaNairaSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64l0 192-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 100.2 0 97.2 145.8c7.8 11.7 22.4 17 35.9 12.9s22.7-16.5 22.7-30.6l0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192-57.5 0L122.6 46.3zM305.1 320l14.9 0 0 22.3L305.1 320zM185.5 256L128 256l0-86.3L185.5 256z\"},\"child\":[]}]})(props);\n};\nexport function FaNetworkWired (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64l128 0 0 64-128 0 0-64zM240 0c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l48 0 0 32L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 32-48 0c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l160 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0-32 256 0 0 32-48 0c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l160 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0-32 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-256 0 0-32 48 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48L240 0zM96 448l0-64 128 0 0 64L96 448zm320-64l128 0 0 64-128 0 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaNeuter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1L160 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-130.9z\"},\"child\":[]}]})(props);\n};\nexport function FaNewspaper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L80 480c-44.2 0-80-35.8-80-80L0 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 272c0 8.8 7.2 16 16 16s16-7.2 16-16L96 96zm64 24l0 80c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24L184 96c-13.3 0-24 10.7-24 24zm208-8c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0c-8.8 0-16 7.2-16 16zM160 304c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-256 0c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-256 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaNotEqual (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.8 37.4c14.7 9.8 18.7 29.7 8.9 44.4L337.1 144l62.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-105.5 0-64 96L400 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-212.2 0-65.2 97.7c-9.8 14.7-29.7 18.7-44.4 8.9s-18.7-29.7-8.9-44.4L110.9 368 48 368c-17.7 0-32-14.3-32-32s14.3-32 32-32l105.5 0 64-96L48 208c-17.7 0-32-14.3-32-32s14.3-32 32-32l212.2 0 65.2-97.7c9.8-14.7 29.7-18.7 44.4-8.9z\"},\"child\":[]}]})(props);\n};\nexport function FaNotdef (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 390.3L153.5 256 64 121.7l0 268.6zM102.5 448l179.1 0L192 313.7 102.5 448zm128-192L320 390.3l0-268.6L230.5 256zM281.5 64L102.5 64 192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaNoteSticky (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l224 0 0-112c0-26.5 21.5-48 48-48l112 0 0-224c0-35.3-28.7-64-64-64L64 32zM448 352l-45.3 0L336 352c-8.8 0-16 7.2-16 16l0 66.7 0 45.3 32-32 64-64 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaNotesMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 352L96 96c0-35.3 28.7-64 64-64l256 0c35.3 0 64 28.7 64 64l0 197.5c0 17-6.7 33.3-18.7 45.3l-58.5 58.5c-12 12-28.3 18.7-45.3 18.7L160 416c-35.3 0-64-28.7-64-64zM272 128c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0zm24 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0C60.9 512 0 451.1 0 376L0 152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 224c0 48.6 39.4 88 88 88l160 0z\"},\"child\":[]}]})(props);\n};\nexport function FaO (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 96a160 160 0 1 0 0 320 160 160 0 1 0 0-320zM448 256A224 224 0 1 1 0 256a224 224 0 1 1 448 0z\"},\"child\":[]}]})(props);\n};\nexport function FaObjectGroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32l337.1 0C467.6 12.9 488.3 0 512 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4l0 273.1c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-337.1 0c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-273.1zM456.6 96L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l337.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-273.1c-9.7-5.6-17.8-13.7-23.4-23.4zM128 160c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-96zM256 320l32 0c35.3 0 64-28.7 64-64l0-32 64 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaObjectUngroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32l209.1 0C339.6 12.9 360.3 0 384 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-113.1zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 113.1c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96zm192 384c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-40.6 64 0 0 40.6c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1c-9.7-5.6-17.8-13.7-23.4-23.4l-46 0c-5.4-15.4-14.6-28.9-26.5-39.6l0-24.4 72.6 0c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-209.1 0z\"},\"child\":[]}]})(props);\n};\nexport function FaOilCan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32-80 0-48 0-48 0c-26.5 0-48 21.5-48 48l0 64.8c0 19 11.2 36.2 28.5 43.9l67.5 30L96 368c0 26.5 21.5 48 48 48l259.1 0c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192l-50.5-25.2c-8.9-4.4-18.7-6.8-28.6-6.8L288 160l0-32 32 0zM96 208l0 86.1L48 272.8 48 208l48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaOilWell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4L308.5 167.5l-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39L96 222.6 96 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 264-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-137.3 0L340 257.5l-62.2 16.1L305.3 352l-66.6 0L265 277l-74.6 19.3L137.3 448 96 448l0-159.2 337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l11.2-32 111.4 0 11.2 32-133.8 0z\"},\"child\":[]}]})(props);\n};\nexport function FaOm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M379.3 4.7c-6.2-6.2-16.4-6.2-22.6 0l-16 16c-6.2 6.2-6.2 16.4 0 22.6l16 16c6.2 6.2 16.4 6.2 22.6 0l16-16c6.2-6.2 6.2-16.4 0-22.6l-16-16zM281 66.7c-2.2-1.5-4.9-2.5-7.7-2.7c-.6 0-1.3-.1-1.9 0c-3.9 .2-7.4 1.7-10.1 4.2c-.9 .8-1.6 1.7-2.3 2.6c-1.7 2.4-2.7 5.3-2.9 8.5c0 .7 0 1.4 0 2.1c.2 2.2 .9 4.3 1.9 6.2l.3 .6c.3 .6 .8 1.4 1.4 2.4c1.2 2 2.9 4.8 5.1 8.2c4.4 6.7 11.1 15.5 20 24.4C302.4 141.1 330.3 160 368 160c31.2 0 56.6-10.4 73.9-20.2c8.7-5 15.6-9.9 20.4-13.8c2.4-1.9 4.3-3.6 5.7-4.9c.7-.6 1.3-1.2 1.7-1.6l.6-.5 .1-.1 .1-.1s0 0 0 0s0 0 0 0c5.9-5.8 9.5-13.9 9.5-22.8c0-17.7-14.3-32-32-32c-8.7 0-16.7 3.5-22.4 9.2c-.1 .1-.2 .2-.5 .4c-.5 .5-1.5 1.3-2.8 2.4c-2.7 2.2-6.8 5.2-12.1 8.2C399.4 90.4 384.8 96 368 96c-20.8 0-42.4-7-59.5-14.6c-8.4-3.7-15.4-7.5-20.3-10.3c-2.4-1.4-4.3-2.5-5.6-3.3c-.6-.4-1.1-.7-1.4-.9l-.3-.2zM115.2 169.6c8-6 17.9-9.6 28.8-9.6c26.5 0 48 21.5 48 48s-21.5 48-48 48l-34.2 0c-7.6 0-13.8 6.2-13.8 13.8c0 1.5 .2 2.9 .7 4.4l8 24c4.4 13.1 16.6 21.9 30.4 21.9l8.9 0 16 0c35.3 0 64 28.7 64 64s-28.7 64-64 64c-50.8 0-82.7-21.5-102.2-42.8c-9.9-10.8-16.6-21.6-20.9-29.7c-2.1-4-3.6-7.3-4.5-9.6c-.5-1.1-.8-2-1-2.5l-.2-.5c-.3-.9-.7-1.8-1.1-2.6c-1.2-2.2-2.8-4-4.7-5.4c-1.9-1.4-4.1-2.3-6.5-2.8c-1.4-.3-2.9-.3-4.4-.2c-2.5 .2-4.8 1-6.8 2.3c-1.1 .7-2.2 1.5-3.1 2.5c-2.4 2.5-4.1 5.8-4.5 9.5c-.1 .6-.1 1.1-.1 1.7c0 0 0 0 0 0c0 .8 .1 1.7 .2 2.5l0 .1c0 .3 .1 .8 .2 1.3c.2 1.1 .4 2.7 .8 4.6c.8 3.9 2 9.4 3.9 15.9c3.8 13 10.3 30.4 21.3 48C48.7 476.2 89.4 512 160 512c70.7 0 128-57.3 128-128c0-23.3-6.2-45.2-17.1-64l22.6 0c25.5 0 49.9-10.1 67.9-28.1l26.5-26.5c6-6 14.1-9.4 22.6-9.4l5.5 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32c-25.7 0-41.4-12.5-51.2-25.6c-5-6.7-8.4-13.4-10.5-18.6c-1.1-2.5-1.8-4.6-2.2-6c-.2-.7-.4-1.2-.5-1.5l-.1-.2c-.3-1.3-.8-2.6-1.5-3.8c-1.1-2-2.6-3.8-4.4-5.1c-2.7-2-6-3.2-9.6-3.2l-.2 0c-8 .1-14.6 6.1-15.6 13.9c0 0 0 0 0 0c0 .3-.1 .6-.2 1.1c-.1 .9-.3 2.1-.4 3.6c-.3 3-.6 7.3-.6 12.4c0 10.1 1.1 23.9 5.8 38.1c4.8 14.3 13.4 29.3 28.6 40.7C368.7 473.3 389.3 480 416 480c53 0 96-43 96-96l0-96c0-53-43-96-96-96l-5.5 0c-25.5 0-49.9 10.1-67.9 28.1l-26.5 26.5c-6 6-14.1 9.4-22.6 9.4l-48.3 0c6.9-14.5 10.8-30.8 10.8-48c0-61.9-50.1-112-112-112c-25.2 0-48.5 8.3-67.2 22.4c-14.1 10.6-17 30.7-6.4 44.8s30.7 17 44.8 6.4z\"},\"child\":[]}]})(props);\n};\nexport function FaOtter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5c23.5 0 42.6-19.1 42.6-42.6l0-21.4c0-35.3-28.7-64-64-64l-64 0c-35.3 0-64 28.7-64 64l0 21.4c0 23.5 19.1 42.6 42.6 42.6c6.6 0 13.1-1.5 19.1-4.5l12.9-6.4 8.4-4.2L135.1 185c-4.5-3-7.1-8-7.1-13.3l0-3.7c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4L160 240l-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6c-3.6 0-7.1-.2-10.6-.6l0 .6c0 35.3 28.7 64 64 64l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l160 0 0-48 0-16c0-23.7 12.9-44.4 32-55.4c9.4-5.4 20.3-8.6 32-8.6l0-16c0-26.5 21.5-48 48-48c8.8 0 16 7.2 16 16l0 32 0 16 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-99.7c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1s0 0 0 0c0 123.7-100.3 224-224 224l-1.1 0L256 480l-.6 0C132 480 32 380 32 256.6l0-.6 0-39.2c-10.1-14.6-16-32.3-16-51.4L16 144l0-1.4C6.7 139.3 0 130.5 0 120c0-13.3 10.7-24 24-24l2.8 0C44.8 58.2 83.3 32 128 32l64 0c44.7 0 83.2 26.2 101.2 64l2.8 0c13.3 0 24 10.7 24 24c0 10.5-6.7 19.3-16 22.6l0 1.4 0 21.4c0 1.4 0 2.8-.1 4.3c12-6.2 25.7-9.6 40.1-9.6l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-13.3 0-24 10.7-24 24l0 8 56.4 0c-15.2 17-24.4 39.4-24.4 64l-32 0c-42.3 0-78.2-27.4-91-65.3c-5.1 .9-10.3 1.3-15.6 1.3c-14.1 0-27.9-3.3-40.5-9.6zM96 128a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm112 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaOutdent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM.2 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6l0 158.6c0 13.3-15.3 20.8-25.8 12.6L.2 268.6z\"},\"child\":[]}]})(props);\n};\nexport function FaP (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l96 0c88.4 0 160 71.6 160 160s-71.6 160-160 160l-96 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 320 0 96zM64 288l96 0c53 0 96-43 96-96s-43-96-96-96L64 96l0 192z\"},\"child\":[]}]})(props);\n};\nexport function FaPager (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 64c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM80 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0zm136 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPaintRoller (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L352 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 192c-35.3 0-64-28.7-64-64L0 64zM160 352c0-17.7 14.3-32 32-32l0-16c0-44.2 35.8-80 80-80l144 0c17.7 0 32-14.3 32-32l0-32 0-90.5c37.3 13.2 64 48.7 64 90.5l0 32c0 53-43 96-96 96l-144 0c-8.8 0-16 7.2-16 16l0 16c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaPaintbrush (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M339.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L568.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S517.7-4.4 499.1 9.6L262.4 187.2c-24 18-38.2 46.1-38.4 76.1L339.3 367.1zm-19.6 25.4l-116-104.4C143.9 290.3 96 339.6 96 400c0 3.9 .2 7.8 .6 11.6C98.4 429.1 86.4 448 68.8 448L64 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z\"},\"child\":[]}]})(props);\n};\nexport function FaPalette (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaPallet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 224 0 224 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0-224 0L96 320l-64 0zm96 64l160 0 0 64-160 0 0-64zm224 0l160 0 0 64-160 0 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaPanorama (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M45.6 32C20.4 32 0 52.4 0 77.6L0 434.4C0 459.6 20.4 480 45.6 480c5.1 0 10-.8 14.7-2.4C74.6 472.8 177.6 440 320 440s245.4 32.8 259.6 37.6c4.7 1.6 9.7 2.4 14.7 2.4c25.2 0 45.6-20.4 45.6-45.6l0-356.7C640 52.4 619.6 32 594.4 32c-5 0-10 .8-14.7 2.4C565.4 39.2 462.4 72 320 72S74.6 39.2 60.4 34.4C55.6 32.8 50.7 32 45.6 32zM96 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm272 0c7.9 0 15.4 3.9 19.8 10.5L512.3 353c5.4 8 5.6 18.4 .4 26.5s-14.7 12.3-24.2 10.7C442.7 382.4 385.2 376 320 376c-65.6 0-123.4 6.5-169.3 14.4c-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L197.3 265c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l26.4 33.1 87-127.6c4.5-6.6 11.9-10.5 19.8-10.5z\"},\"child\":[]}]})(props);\n};\nexport function FaPaperPlane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L284 427.7l-68.5 74.1c-8.9 9.7-22.9 12.9-35.2 8.1S160 493.2 160 480l0-83.6c0-4 1.5-7.8 4.2-10.8L331.8 202.8c5.8-6.3 5.6-16-.4-22s-15.7-6.4-22-.7L106 360.8 17.7 316.6C7.1 311.3 .3 300.7 0 288.9s5.9-22.8 16.1-28.7l448-256c10.7-6.1 23.9-5.5 34 1.4z\"},\"child\":[]}]})(props);\n};\nexport function FaPaperclip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M364.2 83.8c-24.4-24.4-64-24.4-88.4 0l-184 184c-42.1 42.1-42.1 110.3 0 152.4s110.3 42.1 152.4 0l152-152c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-152 152c-64 64-167.6 64-231.6 0s-64-167.6 0-231.6l184-184c46.3-46.3 121.3-46.3 167.6 0s46.3 121.3 0 167.6l-176 176c-28.6 28.6-75 28.6-103.6 0s-28.6-75 0-103.6l144-144c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-144 144c-6.7 6.7-6.7 17.7 0 24.4s17.7 6.7 24.4 0l176-176c24.4-24.4 24.4-64 0-88.4z\"},\"child\":[]}]})(props);\n};\nexport function FaParachuteBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M383.5 192c.3-5.3 .5-10.6 .5-16c0-51-15.9-96-40.2-127.6C319.5 16.9 288.2 0 256 0s-63.5 16.9-87.8 48.4C143.9 80 128 125 128 176c0 5.4 .2 10.7 .5 16L240 192l0 128-32 0c-7 0-13.7 1.5-19.7 4.2L68.2 192l28.3 0c-.3-5.3-.5-10.6-.5-16c0-64 22.2-121.2 57.1-159.3C62 49.3 18.6 122.6 4.2 173.6C1.5 183.1 9 192 18.9 192l6 0L165.2 346.3c-3.3 6.5-5.2 13.9-5.2 21.7l0 96c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-96c0-7.8-1.9-15.2-5.2-21.7L487.1 192l6 0c9.9 0 17.4-8.9 14.7-18.4C493.4 122.6 450 49.3 358.9 16.7C393.8 54.8 416 112.1 416 176c0 5.4-.2 10.7-.5 16l28.3 0L323.7 324.2c-6-2.7-12.7-4.2-19.7-4.2l-32 0 0-128 111.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaParagraph (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 32l64 0 160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352-32 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-32 0c-88.4 0-160-71.6-160-160s71.6-160 160-160z\"},\"child\":[]}]})(props);\n};\nexport function FaPassport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM183 278.8c-27.9-13.2-48.4-39.4-53.7-70.8l39.1 0c1.6 30.4 7.7 53.8 14.6 70.8zm41.3 9.2l-.3 0-.3 0c-2.4-3.5-5.7-8.9-9.1-16.5c-6-13.6-12.4-34.3-14.2-63.5l47.1 0c-1.8 29.2-8.1 49.9-14.2 63.5c-3.4 7.6-6.7 13-9.1 16.5zm40.7-9.2c6.8-17.1 12.9-40.4 14.6-70.8l39.1 0c-5.3 31.4-25.8 57.6-53.7 70.8zM279.6 176c-1.6-30.4-7.7-53.8-14.6-70.8c27.9 13.2 48.4 39.4 53.7 70.8l-39.1 0zM223.7 96l.3 0 .3 0c2.4 3.5 5.7 8.9 9.1 16.5c6 13.6 12.4 34.3 14.2 63.5l-47.1 0c1.8-29.2 8.1-49.9 14.2-63.5c3.4-7.6 6.7-13 9.1-16.5zM183 105.2c-6.8 17.1-12.9 40.4-14.6 70.8l-39.1 0c5.3-31.4 25.8-57.6 53.7-70.8zM352 192A128 128 0 1 0 96 192a128 128 0 1 0 256 0zM112 384c-8.8 0-16 7.2-16 16s7.2 16 16 16l224 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-224 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPaste (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 0c-23.7 0-44.4 12.9-55.4 32L48 32C21.5 32 0 53.5 0 80L0 400c0 26.5 21.5 48 48 48l144 0 0-272c0-44.2 35.8-80 80-80l48 0 0-16c0-26.5-21.5-48-48-48l-56.6 0C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48l0 272 0 16c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-220.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L320 128l-48 0zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaPause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 64C21.5 64 0 85.5 0 112L0 400c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48L48 64zm192 0c-26.5 0-48 21.5-48 48l0 288c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48l-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPaw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M226.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5s.3-86.2 32.6-96.8s70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3S-2.7 179.3 21.8 165.3s59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5l0 1.6c0 25.8-20.9 46.7-46.7 46.7c-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2C84.9 480 64 459.1 64 433.3l0-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3s29.1 51.7 10.2 84.1s-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5s46.9 53.9 32.6 96.8s-52.1 69.1-84.4 58.5z\"},\"child\":[]}]})(props);\n};\nexport function FaPeace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 445.3l0-121.8-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8l0-174.2C133.2 81.9 64 160.9 64 256c0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5L288 323.5l0 121.8c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1c0-95.1-69.2-174.1-160-189.3l0 174.2L422.8 351.1zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"},\"child\":[]}]})(props);\n};\nexport function FaPenClip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-52.1 52.1s0 0 0 0l-1-1s0 0 0 0l-16-16-96-96-17-17 52.1-52.1c25-25 65.5-25 90.5 0zM241 114.9c-9.4-9.4-24.6-9.4-33.9 0L105 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L173.1 81c28.1-28.1 73.7-28.1 101.8 0L288 94.1l17 17 96 96 16 16 1 1-17 17L229.5 412.5c-48 48-109.2 80.8-175.8 94.1l-25 5c-7.9 1.6-16-.9-21.7-6.6s-8.1-13.8-6.6-21.7l5-25c13.3-66.6 46.1-127.8 94.1-175.8L254.1 128 241 114.9z\"},\"child\":[]}]})(props);\n};\nexport function FaPenFancy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M373.5 27.1C388.5 9.9 410.2 0 433 0c43.6 0 79 35.4 79 79c0 22.8-9.9 44.6-27.1 59.6L277.7 319l-10.3-10.3-64-64L193 234.3 373.5 27.1zM170.3 256.9l10.4 10.4 64 64 10.4 10.4-19.2 83.4c-3.9 17.1-16.9 30.7-33.8 35.4L24.3 510.3l95.4-95.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3L1.7 487.6 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8l83.4-19.2z\"},\"child\":[]}]})(props);\n};\nexport function FaPenNib (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368.4 18.3L312.7 74.1 437.9 199.3l55.7-55.7c21.9-21.9 21.9-57.3 0-79.2L447.6 18.3c-21.9-21.9-57.3-21.9-79.2 0zM288 94.6l-9.2 2.8L134.7 140.6c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-3.8 11.3-1 23.9 7.3 32.4L164.7 324.7c-3-6.3-4.7-13.3-4.7-20.7c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48c-7.4 0-14.4-1.7-20.7-4.7L33.7 500.9c8.6 8.3 21.1 11.2 32.4 7.3l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 2.7-9.2L288 94.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPenRuler (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M469.3 19.3l23.4 23.4c25 25 25 65.5 0 90.5l-56.4 56.4L322.3 75.7l56.4-56.4c25-25 65.5-25 90.5 0zM44.9 353.2L299.7 98.3 413.7 212.3 158.8 467.1c-6.7 6.7-15.1 11.6-24.2 14.2l-104 29.7c-8.4 2.4-17.4 .1-23.6-6.1s-8.5-15.2-6.1-23.6l29.7-104c2.6-9.2 7.5-17.5 14.2-24.2zM249.4 103.4L103.4 249.4 16 161.9c-18.7-18.7-18.7-49.1 0-67.9L94.1 16c18.7-18.7 49.1-18.7 67.9 0l19.8 19.8c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1l45.1 45.1zM408.6 262.6l45.1 45.1c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1L496 350.1c18.7 18.7 18.7 49.1 0 67.9L417.9 496c-18.7 18.7-49.1 18.7-67.9 0l-87.4-87.4L408.6 262.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPenToSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z\"},\"child\":[]}]})(props);\n};\nexport function FaPen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPencil (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M410.3 231l11.3-11.3-33.9-33.9-62.1-62.1L291.7 89.8l-11.3 11.3-22.6 22.6L58.6 322.9c-10.4 10.4-18 23.3-22.2 37.4L1 480.7c-2.5 8.4-.2 17.5 6.1 23.7s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L387.7 253.7 410.3 231zM160 399.4l-9.1 22.7c-4 3.1-8.5 5.4-13.3 6.9L59.4 452l23-78.1c1.4-4.9 3.8-9.4 6.9-13.3l22.7-9.1 0 32c0 8.8 7.2 16 16 16l32 0zM362.7 18.7L348.3 33.2 325.7 55.8 314.3 67.1l33.9 33.9 62.1 62.1 33.9 33.9 11.3-11.3 22.6-22.6 14.5-14.5c25-25 25-65.5 0-90.5L453.3 18.7c-25-25-65.5-25-90.5 0zm-47.4 168l-144 144c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l144-144c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPeopleArrows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64a64 64 0 1 1 128 0A64 64 0 1 1 64 64zM25.9 233.4C29.3 191.9 64 160 105.6 160l44.8 0c27 0 51 13.4 65.5 34.1c-2.7 1.9-5.2 4-7.5 6.3l-64 64c-21.9 21.9-21.9 57.3 0 79.2L192 391.2l0 72.8c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-115.7c-26.5-9.5-44.7-35.8-42.2-65.6l4.1-49.3zM448 64a64 64 0 1 1 128 0A64 64 0 1 1 448 64zM431.6 200.4c-2.3-2.3-4.9-4.4-7.5-6.3c14.5-20.7 38.6-34.1 65.5-34.1l44.8 0c41.6 0 76.3 31.9 79.7 73.4l4.1 49.3c2.5 29.8-15.7 56.1-42.2 65.6L576 464c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-72.8 47.6-47.6c21.9-21.9 21.9-57.3 0-79.2l-64-64zM272 240l0 32 96 0 0-32c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l64 64c9.4 9.4 9.4 24.6 0 33.9l-64 64c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2l0-32-96 0 0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2z\"},\"child\":[]}]})(props);\n};\nexport function FaPeopleCarryBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm64 193.7l0 65.1 51 51c7.1 7.1 11.8 16.2 13.4 26.1l15.2 90.9c2.9 17.4-8.9 33.9-26.3 36.8s-33.9-8.9-36.8-26.3l-14.3-85.9L66.8 320C54.8 308 48 291.7 48 274.7l0-88.1c0-32.4 26.2-58.6 58.6-58.6c24.1 0 46.5 12 59.9 32l47.4 71.1 10.1 5 0-76.2c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 76.2 10.1-5L473.5 160c13.3-20 35.8-32 59.9-32c32.4 0 58.6 26.2 58.6 58.6l0 88.1c0 17-6.7 33.3-18.7 45.3l-79.4 79.4-14.3 85.9c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l15.2-90.9c1.6-9.9 6.3-19 13.4-26.1l51-51 0-65.1-19 28.5c-4.6 7-11 12.6-18.5 16.3l-59.6 29.8c-2.4 1.3-4.9 2.2-7.6 2.8c-2.6 .6-5.3 .9-7.9 .8l-126.7 0c-2.5 .1-5-.2-7.5-.7c-2.9-.6-5.6-1.6-8.1-3l-59.5-29.8c-7.5-3.7-13.8-9.4-18.5-16.3l-19-28.5zM2.3 468.1L50.1 348.6l49.2 49.2-37.6 94c-6.6 16.4-25.2 24.4-41.6 17.8S-4.3 484.5 2.3 468.1zM512 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm77.9 348.6l47.8 119.5c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8l-37.6-94 49.2-49.2z\"},\"child\":[]}]})(props);\n};\nexport function FaPeopleGroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M72 88a56 56 0 1 1 112 0A56 56 0 1 1 72 88zM64 245.7C54 256.9 48 271.8 48 288s6 31.1 16 42.3l0-84.7zm144.4-49.3C178.7 222.7 160 261.2 160 304c0 34.3 12 65.8 32 90.5l0 21.5c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-26.8C26.2 371.2 0 332.7 0 288c0-61.9 50.1-112 112-112l32 0c24 0 46.2 7.5 64.4 20.3zM448 416l0-21.5c20-24.7 32-56.2 32-90.5c0-42.8-18.7-81.3-48.4-107.7C449.8 183.5 472 176 496 176l32 0c61.9 0 112 50.1 112 112c0 44.7-26.2 83.2-64 101.2l0 26.8c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32zm8-328a56 56 0 1 1 112 0A56 56 0 1 1 456 88zM576 245.7l0 84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM320 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM240 304c0 16.2 6 31 16 42.3l0-84.7c-10 11.3-16 26.1-16 42.3zm144-42.3l0 84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM448 304c0 44.7-26.2 83.2-64 101.2l0 42.8c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-42.8c-37.8-18-64-56.5-64-101.2c0-61.9 50.1-112 112-112l32 0c61.9 0 112 50.1 112 112z\"},\"child\":[]}]})(props);\n};\nexport function FaPeopleLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M360 72a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM144 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416zM496 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 217.5l0 54.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-54.5 26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 313.5l0 38.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3L18.9 340.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 313.5 88 352c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5z\"},\"child\":[]}]})(props);\n};\nexport function FaPeoplePulling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zM64 128c-35.3 0-64 28.7-64 64L0 320c0 17.7 14.3 32 32 32c9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8L123.1 352l15.7 0 30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7c8.6 3.6 18 3.1 25.9-.7c3.4-1.6 6.6-3.9 9.3-6.7c3.1-3.2 5.5-7 7.1-11.4c.1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L537 232.7l-15.3-36.8C504.5 154.8 464.3 128 419.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128l-53 0zM464 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPeopleRobbery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6L328 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-305.7c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zm-8 32c-35.3 0-64 28.7-64 64l0 96 0 .6L8 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-227.3 13 20.5c5.9 9.2 16.1 14.9 27 14.9l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-30.4 0-37.4-58.9C157.6 142 132.1 128 104.7 128L72 128z\"},\"child\":[]}]})(props);\n};\nexport function FaPeopleRoof (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M335.5 4l288 160c15.4 8.6 21 28.1 12.4 43.5s-28.1 21-43.5 12.4L320 68.6 47.5 220c-15.4 8.6-34.9 3-43.5-12.4s-3-34.9 12.4-43.5L304.5 4c9.7-5.4 21.4-5.4 31.1 0zM320 160a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM144 256a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm312 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM226.9 491.4L200 441.5l0 38.5c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-38.5L61.1 491.4c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l37.9-70.3c15.3-28.5 45.1-46.3 77.5-46.3l19.5 0c16.3 0 31.9 4.5 45.4 12.6l33.6-62.3c15.3-28.5 45.1-46.3 77.5-46.3l19.5 0c32.4 0 62.1 17.8 77.5 46.3l33.6 62.3c13.5-8.1 29.1-12.6 45.4-12.6l19.5 0c32.4 0 62.1 17.8 77.5 46.3l37.9 70.3c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8L552 441.5l0 38.5c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-38.5-26.9 49.9c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l36.3-67.5c-1.7-1.7-3.2-3.6-4.3-5.8L376 345.5l0 54.5c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-54.5-26.9 49.9c-1.2 2.2-2.6 4.1-4.3 5.8l36.3 67.5c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPepperHot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M428.3 3c11.6-6.4 26.2-2.3 32.6 9.3l4.8 8.7c19.3 34.7 19.8 75.7 3.4 110C495.8 159.6 512 197.9 512 240c0 18.5-3.1 36.3-8.9 52.8c-6.1 17.3-28.5 16.3-36.8-.1l-11.7-23.4c-4.1-8.1-12.4-13.3-21.5-13.3L360 256c-13.3 0-24-10.7-24-24l0-80c0-13.3-10.7-24-24-24l-17.1 0c-21.3 0-30-23.9-10.8-32.9C304.7 85.4 327.7 80 352 80c28.3 0 54.8 7.3 77.8 20.2c5.5-18.2 3.7-38.4-6-55.8L419 35.7c-6.4-11.6-2.3-26.2 9.3-32.6zM171.2 345.5L264 160l40 0 0 80c0 26.5 21.5 48 48 48l76.2 0 23.9 47.8C372.3 443.9 244.3 512 103.2 512l-58.8 0C19.9 512 0 492.1 0 467.6c0-20.8 14.5-38.8 34.8-43.3l49.8-11.1c37.6-8.4 69.5-33.2 86.7-67.7z\"},\"child\":[]}]})(props);\n};\nexport function FaPercent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M374.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-320 320c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l320-320zM128 128A64 64 0 1 0 0 128a64 64 0 1 0 128 0zM384 384a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonArrowDownToLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352l0-96 16 0 0 96-16 0zm-64 0l-88 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l120 0 80 0 376 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-344 0 0-191.1 28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6l-29.7 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 448zM464 64l0 242.7-25.4-25.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L528 306.7 528 64c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonArrowUpFromLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352l0-96 16 0 0 96-16 0zm-64 0l-88 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l120 0 80 0 376 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-344 0 0-191.1 28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6l-29.7 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 448zM598.6 121.4l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L464 141.3 464 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonBiking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L288 305.1 288 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-10.7-5.3-20.7-14.2-26.6L295 232.9l60.3-48.5L396 217c5.7 4.5 12.7 7 20 7l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-52.8 0zM56 384a72 72 0 1 1 144 0A72 72 0 1 1 56 384zm200 0A128 128 0 1 0 0 384a128 128 0 1 0 256 0zm184 0a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zm200 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonBooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160 64 0 0-160zm320 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-448zM224 512c17.7 0 32-14.3 32-32l0-160-64 0 0 160c0 17.7 14.3 32 32 32zM320 0c-9.3 0-18.1 4-24.2 11s-8.8 16.3-7.5 25.5l31.2 218.6L288.6 409.7c-3.5 17.3 7.8 34.2 25.1 37.7s34.2-7.8 37.7-25.1l.7-3.6c1.3 16.4 15.1 29.4 31.9 29.4c17.7 0 32-14.3 32-32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32L320 0zM112 80A48 48 0 1 0 16 80a48 48 0 1 0 96 0zm0 261.3l0-72.1 4.7 4.7c9 9 21.2 14.1 33.9 14.1l73.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-66.7 0-41.6-41.6c-14.3-14.3-33.8-22.4-54-22.4C27.6 160 0 187.6 0 221.6l0 55.7 0 .9L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 42.7L96 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-58.7c0-10.4-3.4-20.5-9.6-28.8L112 341.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonBreastfeeding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0a80 80 0 1 1 0 160A80 80 0 1 1 224 0zM436.8 382.8L373.5 462c-16.6 20.7-46.8 24.1-67.5 7.5c-17.6-14.1-22.7-38.1-13.5-57.7l-.8-.1c-38.9-5.6-74.3-25.1-99.7-54.8l0-36.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L27.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7c-4.9-2.8-9.2-6.4-12.6-10.6c-4.6-5.4-7.8-11.7-9.6-18.4c-3.3-12-1.9-25.2 4.8-36.6c.6-1.1 1.3-2.2 2-3.2L75.6 256.1c26.7-40.1 71.7-64.1 119.8-64.1l75.2 0c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4c2.9 6.7 4.3 13.8 4 20.8c-.3 10.6-4.2 21-11.2 29.4zM320 332a44 44 0 1 0 -88 0 44 44 0 1 0 88 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonBurst (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-223.1 28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6l-29.7 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L408 256.9 408 480c0 17.7 14.3 32 32 32s32-14.3 32-32zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.3-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonCane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-8 187.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7l-35.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-244.7zM352 376c0-4.4 3.6-8 8-8s8 3.6 8 8l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonChalkboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-288 56 0 64 0 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-64 192 0 0 192-192 0 0-32-64 0 0 48c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48L368 0c-26.5 0-48 21.5-48 48l0 80-76.9 0-65.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 480c0 17.7 14.3 32 32 32s32-14.3 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonCircleMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonCirclePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonCircleQuestion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6l0 6.4c0 8.8 7.2 16 16 16s16-7.2 16-16l0-6.4c0-5.3 4.3-9.6 9.6-9.6l40.5 0c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2l0 14.8c0 8.8 7.2 16 16 16s16-7.2 16-16l0-5.1 23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9l-40.5 0c-23 0-41.6 18.6-41.6 41.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonDigging (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 64a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM9.8 214.8c5.1-12.2 19.1-18 31.4-12.9L60.7 210l22.9-38.1C99.9 144.6 129.3 128 161 128c51.4 0 97 32.9 113.3 81.7l34.6 103.7 79.3 33.1 34.2-45.6c6.4-8.5 16.6-13.3 27.2-12.8s20.3 6.4 25.8 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2s-16.3 16.2-27.8 16.2l-256 0c-11.1 0-21.4-5.7-27.2-15.2s-6.4-21.2-1.4-31.1l16-32c5.4-10.8 16.5-17.7 28.6-17.7l32 0 22.5-30L22.8 246.2c-12.2-5.1-18-19.1-12.9-31.4zm82.8 91.8l112 48c11.8 5 19.4 16.6 19.4 29.4l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-74.9-60.6-26-37 111c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.6 469.9l48-144 11-33 32 13.7z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonDotsFromLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 176A88 88 0 1 0 288 0a88 88 0 1 0 0 176zM78.7 372.9c15-12.5 50-34.4 97.3-50.1L176 432l224 0 0-109.3c47.3 15.8 82.3 37.7 97.3 50.1c20.4 17 50.6 14.2 67.6-6.1s14.2-50.6-6.1-67.6c-12-10-30.1-22.5-53.2-35C497.2 278.4 481.7 288 464 288c-26.5 0-48-21.5-48-48c0-4.3 .6-8.4 1.6-12.4C379.1 215.9 335.3 208 288 208c-60.2 0-114.9 12.9-160 29.9c0 .7 0 1.4 0 2.1c0 26.5-21.5 48-48 48c-11.8 0-22.7-4.3-31-11.4c-13.1 8.1-23.7 15.9-31.7 22.5c-20.4 17-23.1 47.2-6.1 67.6s47.2 23.1 67.6 6.1zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l528 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 464zM224 280a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM96 240a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm368 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonDressBurst (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM390.2 384l17.8 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 16 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 17.8 0c10.9 0 18.6-10.7 15.2-21.1L546.7 248.1l33.9 56.3c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-53.6-89.2c-20.2-33.7-56.7-54.3-96-54.3l-11.6 0c-39.3 0-75.7 20.6-96 54.3l-53.6 89.2c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9l33.9-56.3L375 362.9c-3.5 10.4 4.3 21.1 15.2 21.1zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonDress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM88 384l-17.8 0c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2c20.3-33.7 56.7-54.3 96-54.3l11.6 0c39.3 0 75.7 20.6 96 54.3l53.6 89.2c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9l-33.9-56.3L265 362.9c3.5 10.4-4.3 21.1-15.2 21.1L232 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonDrowning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32.2c0 54.1 23.5 104 62.2 138.3l-21 146.7c7.8 2.1 15.5 3.3 22.8 3.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c12.4 8.5 26.1 14.8 39.7 18l17.7-97.6c10.7-1.2 21.3-3.1 31.9-5.5l105-23.9c17.2-3.9 28-21.1 24.1-38.3s-21.1-28-38.3-24.1L400 216.6c-41 9.3-83.7 7.5-123.7-5.2c-50.2-16-84.3-62.6-84.3-115.3L192 64zM320 192a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM306.5 389.9c-11.1-7.9-25.9-7.9-37 0C247 405.4 219.5 416 192 416c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 469.7 159 480 192 480c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 405.2 410.9 416 384 416c-27.5 0-55-10.6-77.5-26.1z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonFallingBurst (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 9.8c0 39-23.7 74-59.9 88.4C71.6 154.5 32 213 32 278.2L32 352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-73.8c0-10 1.6-19.8 4.5-29L261.1 497.4c9.6 14.8 29.4 19.1 44.3 9.5s19.1-29.4 9.5-44.3L222.6 320l1.4 0 80 0 38.4 51.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C341.3 263.1 327.1 256 312 256l-71.5 0-56.8-80.2-.2-.3c44.7-29 72.5-79 72.5-133.6l0-9.8zM96 80A48 48 0 1 0 0 80a48 48 0 1 0 96 0zM464 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 78.7-12.2c6.5-1 11.7-5.9 13.1-12.2s-1.1-13-6.5-16.7l-65.6-45.1L603 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L508.3 92.1l-29.4-74C476.4 12 470.6 8 464 8s-12.4 4-14.9 10.1l-29.4 74L343.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7c.1 .3 .1 .6 .2 .8l19.4 0c20.1 0 39.2 7.5 53.8 20.8l18.4 2.9L383 265.3l36.2 48.3c2.1 2.8 3.9 5.7 5.5 8.6L464 286.1z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonFalling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0c17.7 0 32 14.3 32 32l0 9.8c0 54.6-27.9 104.6-72.5 133.6l.2 .3L304.5 256l87.5 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L384 320l-96 0-1.4 0 92.3 142.6c9.6 14.8 5.4 34.6-9.5 44.3s-34.6 5.4-44.3-9.5L164.5 249.2c-2.9 9.2-4.5 19-4.5 29l0 73.8c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-73.8c0-65.1 39.6-123.7 100.1-147.9C232.3 115.8 256 80.8 256 41.8l0-9.8c0-17.7 14.3-32 32-32zM112 32a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonHalfDress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm8 352l0-224 6.9 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128s0 0 0 0zM58.2 182.3c19.9-33.1 55.3-53.5 93.8-54.3l0 256s0 0 0 0l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-17.8 0c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonHarassing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM59.4 304.5L88 256.9 88 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-244.7 47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7l-35.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM464 344l0 58.7-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L408.8 438l54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3c36.4 0 65.9-29.5 65.9-65.9L576 344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16l56 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-56 0c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonHiking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm51.3 182.7L224.2 307l49.7 49.7c9 9 14.1 21.2 14.1 33.9l0 89.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.7-73.9-73.9c-15.8-15.8-22.2-38.6-16.9-60.3l20.4-84c8.3-34.1 42.7-54.9 76.7-46.4c19 4.8 35.6 16.4 46.4 32.7L305.1 208l30.9 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 55.8c0 .1 0 .2 0 .2s0 .2 0 .2L384 488c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-216-39.4 0c-16 0-31-8-39.9-21.4l-13.3-20zM81.1 471.9L117.3 334c3 4.2 6.4 8.2 10.1 11.9l41.9 41.9L142.9 488.1c-4.5 17.1-22 27.3-39.1 22.8s-27.3-22-22.8-39.1zm55.5-346L101.4 266.5c-3 12.1-14.9 19.9-27.2 17.9l-47.9-8c-14-2.3-22.9-16.3-19.2-30L31.9 155c9.5-34.8 41.1-59 77.2-59l4.2 0c15.6 0 27.1 14.7 23.3 29.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonMilitaryPointing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246.9 14.1C234 15.2 224 26 224 39c0 13.8 11.2 25 25 25l151 0c8.8 0 16-7.2 16-16l0-30.6C416 8 408 .7 398.7 1.4L246.9 14.1zM240 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16L241.6 96c-1 5.2-1.6 10.5-1.6 16zM72 224c-22.1 0-40 17.9-40 40s17.9 40 40 40l152 0 0 89.4L386.8 230.5c-13.3-4.3-27.3-6.5-41.6-6.5L240 224 72 224zm345.7 20.9L246.6 416 416 416l0-46.3 53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L462.3 290.8c-11.2-18.9-26.6-34.5-44.6-45.9zM224 448l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32-192 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonMilitaryRifle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 39c0-13 10-23.8 22.9-24.9L334.7 1.4C344 .7 352 8 352 17.4L352 48c0 8.8-7.2 16-16 16L185 64c-13.8 0-25-11.2-25-25zm17.6 57l156.8 0c1 5.2 1.6 10.5 1.6 16c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L352 369.7 352 480c0 1.3-.1 2.5-.2 3.8L177.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9l50.4 0c15.9 0 31.3 2.8 45.8 7.9L421.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l13.9 8 13.9 8c7.7 4.4 10.3 14.2 5.9 21.9L416 173.9l1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L392.6 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM320 512l-128 0c-17.7 0-32-14.3-32-32l0-110.3-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8l76.1-128.8c9.4-15.8 21.7-29.3 36-40L331.1 510c-3.5 1.3-7.2 2-11.1 2zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonMilitaryToPerson (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M71 12.5c-8.6 1-15 8.2-15 16.8c0 9.3 7.5 16.8 16.7 16.9l111.4 0c8.8-.1 15.9-7.2 15.9-16L200 16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1l-122.9 0C64.9 83.8 64 89.8 64 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256l0 32c0 17.7 14.3 32 32 32l128 0c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5l0-32c0-35.3-28.7-64-64-64l-64 0c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-35.3 0-64 28.7-64 64l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-35.3-28.7-64-64-64l-64 0zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376l0 32-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0 0 32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 2.9 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9s14.1-12.4 14.1-21.9l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonPraying (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 64A64 64 0 1 0 224 64a64 64 0 1 0 128 0zM232.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36C253.6 156.7 228.6 144 202 144c-30.9 0-59.2 17.1-73.6 44.4L79.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L158.6 432 72 432c-22.1 0-40 17.9-40 40s17.9 40 40 40l208 0c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7L187.7 354l45-90z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonPregnant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM120 383c-13.8-3.6-24-16.1-24-31l0-55.1-4.6 7.6c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c15-24.9 40.3-41.5 68.7-45.6c4.1-.6 8.2-1 12.5-1l1.1 0 12.5 0 2.4 0c1.4 0 2.8 .1 4.1 .3c35.7 2.9 65.4 29.3 72.1 65l6.1 32.5c44.3 8.6 77.7 47.5 77.7 94.3l0 32c0 17.7-14.3 32-32 32l-16 0-40 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-8 0-8 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-97z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonRays (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1-28.6 47.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L328 256.9 328 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM7 7C16.4-2.3 31.6-2.3 41 7l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 41C-2.3 31.6-2.3 16.4 7 7zM471 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L471 7zM7 505c-9.4-9.4-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 505c-9.4 9.4-24.6 9.4-33.9 0zm464 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonRifle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M265.2 192c25.4 0 49.8 7.1 70.8 19.9L336 512l-192 0 0-174.3L90.4 428.3c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8L97.7 258.8c24.5-41.4 69-66.8 117.1-66.8l50.4 0zM160 80a80 80 0 1 1 160 0A80 80 0 1 1 160 80zM448 0c8.8 0 16 7.2 16 16l0 116.3c9.6 5.5 16 15.9 16 27.7l0 109.3 16-5.3 0-56c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 84.5c0 6.9-4.4 13-10.9 15.2L480 325.3l0 26.7 48 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-44 0 23 92.1c2.5 10.1-5.1 19.9-15.5 19.9L432 512c-8.8 0-16-7.2-16-16l0-96-16 0c-17.7 0-32-14.3-32-32l0-144c0-17.7 14.3-32 32-32l0-32c0-11.8 6.4-22.2 16-27.7L416 32c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 16 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonRunning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM125.7 175.5c9.9-9.9 23.4-15.5 37.5-15.5c1.9 0 3.8 .1 5.6 .3L137.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9-25.4 88.8c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l28.7-100.4c5.9-20.6-2.6-42.6-20.7-53.9L238 299l30.9-82.4 5.1 12.3C289 264.7 323.9 288 362.7 288l21.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-21.3 0c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3L57.4 153.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l23.1-23.1zM91.2 352L32 352c-17.7 0-32 14.3-32 32s14.3 32 32 32l69.6 0c19 0 36.2-11.2 43.9-28.5L157 361.6l-9.5-6c-17.5-10.9-30.5-26.8-37.9-44.9L91.2 352z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonShelter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.4L256 68.9 448 178.6 448 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm-8 280l0-88 16 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-174.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3l-37.9 70.3c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5 200 488c0 13.3 10.7 24 24 24s24-10.7 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonSkating (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM128 128c0-17.7 14.3-32 32-32l159.4 0c43.6 0 64.6 53.4 32.8 83.1l-74.4 69.4 60.2 60.2c9 9 14.1 21.2 14.1 33.9l0 73.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7-77.9-77.8c-26.6-26.6-24.6-70.3 4.3-94.4l20.4-17L160 160c-17.7 0-32-14.3-32-32zM81.4 353.4l86.9-86.9c4.6 10 11 19.3 19.3 27.5l21.8 21.8-82.7 82.7c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm322.5 95.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4L272 512c-8.8 0-16-7.2-16-16s7.2-16 16-16l88.8 0c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM135.2 478.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L4.7 411.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonSkiingNordic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM227.2 160c1.9 0 3.8 .1 5.6 .3L201.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9L291.3 464l-88.5 0 41.1-88.1-32.4-20.3c-7.8-4.9-14.7-10.7-20.6-17.3L132.2 464l-32.4 0 54.2-257.6c4.6-1.5 9-4.1 12.7-7.8l23.1-23.1c9.9-9.9 23.4-15.5 37.5-15.5zM121.4 198.6c.4 .4 .8 .8 1.3 1.2L67 464l-43 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l135.3 0c.5 0 .9 0 1.4 0l158.6 0c.5 0 1 0 1.4 0L504 512c39.8 0 72-32.2 72-72l0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8c0 13.3-10.7 24-24 24l-69.4 0 27.6-179.3c10.5-5.2 17.8-16.1 17.8-28.7c0-17.7-14.3-32-32-32l-21.3 0c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3l-23.1 23.1c-12.5 12.5-12.5 32.8 0 45.3zm308 89.4L402.3 464l-44.4 0 21.6-75.6c5.9-20.6-2.6-42.6-20.7-53.9L302 299l30.9-82.4 5.1 12.3C353 264.7 387.9 288 426.7 288l2.7 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonSkiing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.7 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM2.7 268.9c6.1-11.8 20.6-16.3 32.4-10.2L232.7 361.3l46.2-69.2-75.1-75.1c-14.6-14.6-20.4-33.9-18.4-52.1l108.8 52 39.3 39.3c16.2 16.2 18.7 41.5 6 60.6L289.8 391l128.7 66.8c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L12.9 301.3C1.2 295.2-3.4 280.7 2.7 268.9zM118.9 65.6L137 74.2l8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 16.9 54.7 26.2c1.5-.7 3.1-1.4 4.7-2.1l83.4-33.4c34.2-13.7 72.8 4.2 84.5 39.2l17.1 51.2 52.1 26.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-58.1-29c-11.4-5.7-20-15.7-24.1-27.8l-5.8-17.3-27.3 12.1-6.8 3-6.7-3.2L151.5 116.7l-9.2 18.4c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-18-17.6-8.4c-8-3.8-11.3-13.4-7.5-21.3s13.4-11.3 21.3-7.5z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonSnowboarding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M209.7 3.4c15.8-7.9 35-1.5 42.9 14.3l25 50 42.4 8.5c19.5 3.9 37.8 12.3 53.5 24.5l126.1 98.1c14 10.9 16.5 31 5.6 44.9s-31 16.5-44.9 5.6l-72.1-56.1-71.5 31.8 33.1 27.6c23.2 19.3 33.5 50 26.7 79.4l-17.4 75.2c-2.2 9.4-8.2 16.8-16.1 21l86.5 33.1c4.6 1.8 9.4 2.6 14.3 2.6l28.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-28.2 0c-10.8 0-21.4-2-31.5-5.8L60.1 371.3c-11.5-4.4-22-11.2-30.8-20L7 329c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.4 22.4c4 4 8.7 7.1 14 9.1l22.4 8.6c-.8-1.6-1.5-3.2-2.1-4.9c-5.6-16.8 3.5-34.9 20.2-40.5L192 264.9l0-53.2c0-24.2 13.7-46.4 35.4-57.2l45.2-22.6-7.5-1.5c-19.4-3.9-35.9-16.5-44.7-34.1l-25-50c-7.9-15.8-1.5-35 14.3-42.9zM139 350.1l159 60.9c-2.1-5.6-2.6-11.9-1.1-18.2l17.4-75.2c1.4-5.9-.7-12-5.3-15.9l-52.8-44 0 18.8c0 20.7-13.2 39-32.8 45.5L139 350.1zM432 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonSwimming (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M309.5 178.4L447.9 297.1c-1.6 .9-3.2 2-4.8 3c-18 12.4-40.1 20.3-59.2 20.3c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-10.1 0-21.1-2.2-31.9-6.2C163.1 193.2 262.2 96 384 96l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-26.9 0-52.3 6.6-74.5 18.4zM160 160A64 64 0 1 1 32 160a64 64 0 1 1 128 0zM306.5 325.9C329 341.4 356.5 352 384 352c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 405.7 417 416 384 416c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 341.2 165.1 352 192 352c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonThroughWindow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4C167.6 186.5 128 245 128 310.2l0 73.8s0 0 0 0l-64 0L64 64zm288 0l224 0 0 320-67.7 0-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4c44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320l-45.8 0 42.7 64L592 448c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 400c0 26.5 21.5 48 48 48l260.2 0 33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4L310.5 336l74.6 0 40 48zm-159.5 0L192 384s0 0 0 0l0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonWalkingArrowLoopLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zm347.7 119c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L461.3 384l18.7 0c88.4 0 160-71.6 160-160s-71.6-160-160-160L352 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c53 0 96 43 96 96s-43 96-96 96l-18.7 0 25.4-25.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3l80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonWalkingArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224 384 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l146.7 0-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonWalkingDashedLineArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224 384 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l146.7 0-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80zM392 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16zM392 320c-13.3 0-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16c0-13.3-10.7-24-24-24zm24 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonWalkingLuggage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM347.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L505 232.7l-15.3-36.8C472.5 154.8 432.3 128 387.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L340.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM256 274.1c-7.7-4.4-17.4-1.8-21.9 5.9l-32 55.4L147.7 304c-15.3-8.8-34.9-3.6-43.7 11.7L40 426.6c-8.8 15.3-3.6 34.9 11.7 43.7l55.4 32c15.3 8.8 34.9 3.6 43.7-11.7l64-110.9c1.5-2.6 2.6-5.2 3.3-8L261.9 296c4.4-7.7 1.8-17.4-5.9-21.9z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonWalkingWithCane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8.4 32c-36.4 0-69.6 20.5-85.9 53.1L35.4 273.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L128 231.6l0 43.2c0 17 6.7 33.3 18.7 45.3L224 397.3l0 82.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-89.4c0-12.7-5.1-24.9-14.1-33.9L224 306.7l0-93.4 70.4 93.9c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8L268.8 166.4C250.7 142.2 222.2 128 192 128l-24.4 0zM128.3 346.8L97 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l22-88.2-52.8-52.8zM450.8 505.1c5 7.3 15 9.1 22.3 4s9.1-15 4-22.3L358.9 316.1c-2.8 3.8-6.1 7.3-10.1 10.3c-5 3.8-10.5 6.4-16.2 7.9L450.8 505.1z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonWalking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM126.5 199.3c-1 .4-1.9 .8-2.9 1.2l-8 3.5c-16.4 7.3-29 21.2-34.7 38.2l-2.6 7.8c-5.6 16.8-23.7 25.8-40.5 20.2s-25.8-23.7-20.2-40.5l2.6-7.8c11.4-34.1 36.6-61.9 69.4-76.5l8-3.5c20.8-9.2 43.3-14 66.1-14c44.6 0 84.8 26.8 101.9 67.9L281 232.7l21.4 10.7c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L247 287.3c-10.3-5.2-18.4-13.8-22.8-24.5l-9.6-23-19.3 65.5 49.5 54c5.4 5.9 9.2 13 11.2 20.8l23 92.1c4.3 17.1-6.1 34.5-23.3 38.8s-34.5-6.1-38.8-23.3l-22-88.1-70.7-77.1c-14.8-16.1-20.3-38.6-14.7-59.7l16.9-63.5zM68.7 398l25-62.4c2.1 3 4.5 5.8 7 8.6l40.7 44.4-14.5 36.2c-2.4 6-6 11.5-10.6 16.1L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L68.7 398z\"},\"child\":[]}]})(props);\n};\nexport function FaPerson (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPesetaSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C46.3 32 32 46.3 32 64l0 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 96 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c77.4 0 142-55 156.8-128l3.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-3.2 0C334 87 269.4 32 192 32L64 32zM282.5 160L96 160l0-64 96 0c41.8 0 77.4 26.7 90.5 64zM96 224l186.5 0c-13.2 37.3-48.7 64-90.5 64l-96 0 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaPesoSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C46.3 32 32 46.3 32 64l0 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 80 0c68.4 0 127.7-39 156.8-96l19.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-.7 0c.5-5.3 .7-10.6 .7-16s-.2-10.7-.7-16l.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-19.2 0C303.7 71 244.4 32 176 32L64 32zm190.4 96L96 128l0-32 80 0c30.5 0 58.2 12.2 78.4 32zM96 192l190.9 0c.7 5.2 1.1 10.6 1.1 16s-.4 10.8-1.1 16L96 224l0-32zm158.4 96c-20.2 19.8-47.9 32-78.4 32l-80 0 0-32 158.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoneFlip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M347.1 24.6c7.7-18.6 28-28.5 47.4-23.2l88 24C499.9 30.2 512 46 512 64c0 247.4-200.6 448-448 448c-18 0-33.8-12.1-38.6-29.5l-24-88c-5.3-19.4 4.6-39.7 23.2-47.4l96-40c16.3-6.8 35.2-2.1 46.3 11.6L207.3 368c70.4-33.3 127.4-90.3 160.7-160.7L318.7 167c-13.7-11.2-18.4-30-11.6-46.3l40-96z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoneSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M228.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C76.1 30.2 64 46 64 64c0 107.4 37.8 206 100.8 283.1L9.2 469.1c-10.4 8.2-12.3 23.3-4.1 33.7s23.3 12.3 33.7 4.1l592-464c10.4-8.2 12.3-23.3 4.1-33.7s-23.3-12.3-33.7-4.1L253 278c-17.8-21.5-32.9-45.2-45-70.7L257.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96zm96.8 319l-91.3 72C310.7 476 407.1 512 512 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L368.7 368c-15-7.1-29.3-15.2-43-24.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoneVolume (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M280 0C408.1 0 512 103.9 512 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32-72c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24zM117.5 1.4c19.4-5.3 39.7 4.6 47.4 23.2l40 96c6.8 16.3 2.1 35.2-11.6 46.3L144 207.3c33.3 70.4 90.3 127.4 160.7 160.7L345 318.7c11.2-13.7 30-18.4 46.3-11.6l96 40c18.6 7.7 28.5 28 23.2 47.4l-24 88C481.8 499.9 466 512 448 512C200.6 512 0 311.4 0 64C0 46 12.1 30.2 29.5 25.4l88-24z\"},\"child\":[]}]})(props);\n};\nexport function FaPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\"},\"child\":[]}]})(props);\n};\nexport function FaPhotoFilm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0L576 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64l0-224c0-35.3 28.7-64 64-64zM476 106.7C471.5 100 464 96 456 96s-15.5 4-20 10.7l-56 84L362.7 169c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l80 0 48 0 144 0c8.9 0 17-4.9 21.2-12.7s3.7-17.3-1.2-24.6l-96-144zM336 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM64 128l96 0 0 256 0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32 160 0 0 64c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64zm8 64c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm0 104c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm0 104c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm336 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaPiggyBank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 96l0 .7c-5.3-.4-10.6-.7-16-.7L256 96c-16.5 0-32.5 2.1-47.8 6c-.1-2-.2-4-.2-6c0-53 43-96 96-96s96 43 96 96zm-16 32c3.5 0 7 .1 10.4 .3c4.2 .3 8.4 .7 12.6 1.3C424.6 109.1 450.8 96 480 96l11.5 0c10.4 0 18 9.8 15.5 19.9l-13.8 55.2c15.8 14.8 28.7 32.8 37.5 52.9l13.3 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-32 0c-9.1 12.1-19.9 22.9-32 32l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64c-34.9-26.2-58.7-66.3-63.2-112L68 304c-37.6 0-68-30.4-68-68s30.4-68 68-68l4 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-4 0c-11 0-20 9-20 20s9 20 20 20l31.2 0c12.1-59.8 57.7-107.5 116.3-122.8c12.9-3.4 26.5-5.2 40.5-5.2l128 0zm64 136a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPills (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 96c-26.5 0-48 21.5-48 48l0 112 96 0 0-112c0-26.5-21.5-48-48-48zM0 144C0 82.1 50.1 32 112 32s112 50.1 112 112l0 224c0 61.9-50.1 112-112 112S0 429.9 0 368L0 144zM554.9 399.4c-7.1 12.3-23.7 13.1-33.8 3.1L333.5 214.9c-10-10-9.3-26.7 3.1-33.8C360 167.7 387.1 160 416 160c88.4 0 160 71.6 160 160c0 28.9-7.7 56-21.1 79.4zm-59.5 59.5C472 472.3 444.9 480 416 480c-88.4 0-160-71.6-160-160c0-28.9 7.7-56 21.1-79.4c7.1-12.3 23.7-13.1 33.8-3.1L498.5 425.1c10 10 9.3 26.7-3.1 33.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPizzaSlice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L110.4 80c.5 0 1.1 0 1.6 0c176.7 0 320 143.3 320 320c0 .5 0 1.1 0 1.6l44.4-11.8c20.8-5.5 36.3-24.7 34.7-47.5C498.5 159.5 352.5 13.5 169.7 .9zM399.8 410.2c.1-3.4 .2-6.8 .2-10.2c0-159.1-128.9-288-288-288c-3.4 0-6.8 .1-10.2 .2L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1L399.8 410.2zM176 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaceOfWorship (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 109.3l0 108.3L183.3 242c-14.5 8.7-23.3 24.3-23.3 41.2L160 512l96 0 0-96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 96 96 0 0-228.8c0-16.9-8.8-32.5-23.3-41.2L416 217.6l0-108.3c0-8.5-3.4-16.6-9.4-22.6L331.3 11.3c-6.2-6.2-16.4-6.2-22.6 0L233.4 86.6c-6 6-9.4 14.1-9.4 22.6zM24.9 330.3C9.5 338.8 0 354.9 0 372.4L0 464c0 26.5 21.5 48 48 48l80 0 0-238.4L24.9 330.3zM592 512c26.5 0 48-21.5 48-48l0-91.6c0-17.5-9.5-33.6-24.9-42.1L512 273.6 512 512l80 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneArrival (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.3 166.9L0 68C0 57.7 9.5 50.1 19.5 52.3l35.6 7.9c10.6 2.3 19.2 9.9 23 20L96 128l127.3 37.6L181.8 20.4C178.9 10.2 186.6 0 197.2 0l40.1 0c11.6 0 22.2 6.2 27.9 16.3l109 193.8 107.2 31.7c15.9 4.7 30.8 12.5 43.7 22.8l34.4 27.6c24 19.2 18.1 57.3-10.7 68.2c-41.2 15.6-86.2 18.1-128.8 7L121.7 289.8c-11.1-2.9-21.2-8.7-29.3-16.9L9.5 189.4c-5.9-6-9.3-14.1-9.3-22.5zM32 448l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32zm96-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128-16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c-35 0-64 59.5-64 93.7l0 84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9l0 65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8l0 42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3l0-84.6C320 59.5 292 0 256 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c-35 0-64 59.5-64 93.7l0 84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9l0 65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8l0 42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3l0-84.6C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c-35 0-64 59.5-64 93.7l0 84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9l0 65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8l0 42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3l0-84.6C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneDeparture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M381 114.9L186.1 41.8c-16.7-6.2-35.2-5.3-51.1 2.7L89.1 67.4C78 73 77.2 88.5 87.6 95.2l146.9 94.5L136 240 77.8 214.1c-8.7-3.9-18.8-3.7-27.3 .6L18.3 230.8c-9.3 4.7-11.8 16.8-5 24.7l73.1 85.3c6.1 7.1 15 11.2 24.3 11.2l137.7 0c5 0 9.9-1.2 14.3-3.4L535.6 212.2c46.5-23.3 82.5-63.3 100.8-112C645.9 75 627.2 48 600.2 48l-57.4 0c-20.2 0-40.2 4.8-58.2 14L381 114.9zM0 480c0 17.7 14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 84.6 101.8 58.2C418 247.6 416 259.6 416 272l0 24.6c-17.9 10.4-30.3 29.1-31.8 50.9L320 329.1l0 70.9 57.6 43.2c4 3 6.4 7.8 6.4 12.8l0 24 0 18c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14l0-42c0-5 2.4-9.8 6.4-12.8L192 400l0-70.9-171.6 49C10.2 381.1 0 373.4 0 362.8l0-65.5c0-5.7 3.1-11 8.1-13.9L192 178.3l0-84.6zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M514.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-73.8 0L630.8 469.1c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2S28.4-3.1 38.8 5.1L238.1 161.3 197.8 20.4C194.9 10.2 202.6 0 213.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L397.7 192l116.6 0zM41.5 128.7l321 252.9L297.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L144 320l-43.2 57.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L64 256 32.5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-6.2 4-11.4 9.5-13.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 66.3L497.8 278.5c8.9 5.9 14.2 15.9 14.2 26.6l0 56.7c0 10.9-10.7 18.6-21.1 15.2L320 320l0 80 57.6 43.2c4 3 6.4 7.8 6.4 12.8l0 42c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14l0-42c0-5 2.4-9.8 6.4-12.8L192 400l0-80L21.1 377C10.7 380.4 0 372.7 0 361.8l0-56.7c0-10.7 5.3-20.7 14.2-26.6L192 160l0-66.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPlane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L112 320 68.8 377.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L32 256 .5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-7.8 6.3-14 14-14l42 0c5 0 9.8 2.4 12.8 6.4L112 192l102.9 0-49-171.6C162.9 10.2 170.6 0 181.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L365.7 192l116.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPlantWilt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 120c0-30.9 25.1-56 56-56s56 25.1 56 56l0 13c-29.3 10-48 34.5-48 70.1c0 27.9 25.3 74.8 66 111.6c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1l0-13C464 53.7 410.3 0 344 0S224 53.7 224 120l0 21.8C207.3 133 188.2 128 168 128c-66.3 0-120 53.7-120 120l0 13c-29.3 10-48 34.5-48 70.1C0 359 25.3 405.9 66 442.7c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1l0-13c0-30.9 25.1-56 56-56s56 25.1 56 56l0 32 0 200c0 17.7 14.3 32 32 32s32-14.3 32-32l0-200 0-32 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaPlateWheat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zM56 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM24 136l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80l0-16zM400 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zm80 160l0 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80zm-96 16l0 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320l456.4 0c14.8 0 26.2 12.9 24.4 27.6C502.3 397.8 464.2 437 416 446l0 2c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-2c-48.2-9-86.3-48.2-92.5-98.4z\"},\"child\":[]}]})(props);\n};\nexport function FaPlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80L0 432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z\"},\"child\":[]}]})(props);\n};\nexport function FaPlugCircleBolt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"},\"child\":[]}]})(props);\n};\nexport function FaPlugCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPlugCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaPlugCircleMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaPlugCirclePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaPlugCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPlug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2C297 398 352 333.4 352 256l0-32c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z\"},\"child\":[]}]})(props);\n};\nexport function FaPlusMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112L48 144c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0 0 112c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-112zM0 480c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z\"},\"child\":[]}]})(props);\n};\nexport function FaPodcast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M319.4 372c48.5-31.3 80.6-85.9 80.6-148c0-97.2-78.8-176-176-176S48 126.8 48 224c0 62.1 32.1 116.6 80.6 148c1.2 17.3 4 38 7.2 57.1l.2 1C56 395.8 0 316.5 0 224C0 100.3 100.3 0 224 0S448 100.3 448 224c0 92.5-56 171.9-136 206.1l.2-1.1c3.1-19.2 6-39.8 7.2-57zm-2.3-38.1c-1.6-5.7-3.9-11.1-7-16.2c-5.8-9.7-13.5-17-21.9-22.4c19.5-17.6 31.8-43 31.8-71.3c0-53-43-96-96-96s-96 43-96 96c0 28.3 12.3 53.8 31.8 71.3c-8.4 5.4-16.1 12.7-21.9 22.4c-3.1 5.1-5.4 10.5-7 16.2C99.8 307.5 80 268 80 224c0-79.5 64.5-144 144-144s144 64.5 144 144c0 44-19.8 83.5-50.9 109.9zM224 312c32.9 0 64 8.6 64 43.8c0 33-12.9 104.1-20.6 132.9c-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8c0-35.1 31.1-43.8 64-43.8zm0-144a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"},\"child\":[]}]})(props);\n};\nexport function FaPooStorm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M236.9 .2c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1c0 21.7-8.5 37.2-21.9 47.6c-13.8 10.8-34 17-57.8 17L128 112c-35.3 0-64 28.7-64 64c0 12.2 3.4 23.5 9.3 33.2C31.7 216.2 0 252.4 0 296c0 40.9 28 75.4 65.8 85.2c-5.3-18.5 1-38.5 16.2-50.7l160-128c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L285.7 320l18.3 0c20.4 0 38.5 12.9 45.3 32.1c3.7 10.6 3.5 21.8 0 31.9l10.7 0c48.6 0 88-39.4 88-88c0-43.6-31.7-79.8-73.3-86.8c5.9-9.7 9.3-21.1 9.3-33.2c0-35.3-28.7-64-64-64l-1.4 0c.9-5.4 1.4-10.9 1.4-16.6c0-48.7-36.1-88.9-83.1-95.2zm45.1 227.4c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7l70.1 0L129.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7l-70.1 0 52.4-104.8c3.4-6.7 1.6-14.9-4.3-19.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPoo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1c0 44.1-35.7 79.9-79.8 80L160 128c-35.3 0-64 28.7-64 64c0 19.1 8.4 36.3 21.7 48L104 240c-39.8 0-72 32.2-72 72c0 23.2 11 43.8 28 57c-34.1 5.7-60 35.3-60 71c0 39.8 32.2 72 72 72l368 0c39.8 0 72-32.2 72-72c0-35.7-25.9-65.3-60-71c17-13.2 28-33.8 28-57c0-39.8-32.2-72-72-72l-13.7 0c13.3-11.7 21.7-28.9 21.7-48c0-35.3-28.7-64-64-64l-5.5 0c3.5-10 5.5-20.8 5.5-32c0-48.6-36.2-88.8-83.1-95.1zM192 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm64 108.3c0 2.4-.7 4.8-2.2 6.7c-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7c0-6.8 5.5-12.3 12.3-12.3l167.4 0c6.8 0 12.3 5.5 12.3 12.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPoop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7C315.8 7.2 352 47.4 352 96c0 11.2-1.9 22-5.5 32l5.5 0c35.3 0 64 28.7 64 64c0 19.1-8.4 36.3-21.7 48l13.7 0c39.8 0 72 32.2 72 72c0 23.2-11 43.8-28 57c34.1 5.7 60 35.3 60 71c0 39.8-32.2 72-72 72L72 512c-39.8 0-72-32.2-72-72c0-35.7 25.9-65.3 60-71c-17-13.2-28-33.8-28-57c0-39.8 32.2-72 72-72l13.7 0C104.4 228.3 96 211.1 96 192c0-35.3 28.7-64 64-64l16.2 0c44.1-.1 79.8-35.9 79.8-80c0-9.2-1.5-17.9-4.3-26.1c-1.8-5.2-.8-11.1 2.8-15.4z\"},\"child\":[]}]})(props);\n};\nexport function FaPowerOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224zM143.5 120.6c13.6-11.3 15.4-31.5 4.1-45.1s-31.5-15.4-45.1-4.1C49.7 115.4 16 181.8 16 256c0 132.5 107.5 240 240 240s240-107.5 240-240c0-74.2-33.8-140.6-86.6-184.6c-13.6-11.3-33.8-9.4-45.1 4.1s-9.4 33.8 4.1 45.1c38.9 32.3 63.5 81 63.5 135.4c0 97.2-78.8 176-176 176s-176-78.8-176-176c0-54.4 24.7-103.1 63.5-135.4z\"},\"child\":[]}]})(props);\n};\nexport function FaPrescriptionBottleMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zm32 96l320 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zM160 240l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaPrescriptionBottle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zm32 96l320 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-32 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L32 384l0-64 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L32 288l0-64 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L32 192l0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaPrescription (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C14.3 0 0 14.3 0 32L0 192l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 50.7 0 128 128L137.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7l-85.8-85.8C251.4 209.1 288 164.8 288 112C288 50.1 237.9 0 176 0L32 0zM176 160L64 160l0-96 112 0c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaPrint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0C92.7 0 64 28.7 64 64l0 96 64 0 0-96 226.7 0L384 93.3l0 66.7 64 0 0-66.7c0-17-6.7-33.3-18.7-45.3L400 18.7C388 6.7 371.7 0 354.7 0L128 0zM384 352l0 32 0 64-256 0 0-64 0-16 0-16 256 0zm64 32l32 0c17.7 0 32-14.3 32-32l0-96c0-35.3-28.7-64-64-64L64 192c-35.3 0-64 28.7-64 64l0 96c0 17.7 14.3 32 32 32l32 0 0 64c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-64zM432 248a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaPumpMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 32l0 96 128 0 0-32 60.1 0c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4L256 32c0-17.7-14.3-32-32-32L160 0c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512l186.4 0c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7l-149.1 0zM216 280l0 32 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-32c0-13.3 10.7-24 24-24s24 10.7 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaPumpSoap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 32l0 96 128 0 0-32 60.1 0c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4L256 32c0-17.7-14.3-32-32-32L160 0c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512l186.4 0c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7l-149.1 0zM256 360c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9c3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C219 279.1 256 327.5 256 360z\"},\"child\":[]}]})(props);\n};\nexport function FaPuzzlePiece (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2l56.8 0c26.5 0 48 21.5 48 48l0 56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2L384 464c0 26.5-21.5 48-48 48l-56.8 0c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2L48 512c-26.5 0-48-21.5-48-48L0 343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256C10.4 256 0 245.6 0 232.8L0 176c0-26.5 21.5-48 48-48l120.8 0c12.8 0 23.2-10.4 23.2-23.2z\"},\"child\":[]}]})(props);\n};\nexport function FaQ (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 256c0 88.4 71.6 160 160 160c28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1C371.9 325.8 384 292.3 384 256c0-88.4-71.6-160-160-160S64 167.6 64 256zM344.9 444.6C310 467 268.5 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32s224 100.3 224 224c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z\"},\"child\":[]}]})(props);\n};\nexport function FaQrcode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48L0 80zM64 96l0 64 64 0 0-64L64 96zM0 336c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96zm64 16l0 64 64 0 0-64-64 0zM304 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zm80 64l-64 0 0 64 64 0 0-64zM256 304c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s7.2-16 16-16s16 7.2 16 16l0 96c0 8.8-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-160zM368 480a16 16 0 1 1 0-32 16 16 0 1 1 0 32zm64 0a16 16 0 1 1 0-32 16 16 0 1 1 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaQuestion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 160c0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64l0 3.6c0 21.8-11.1 42.1-29.4 53.8l-42.2 27.1c-25.2 16.2-40.4 44.1-40.4 74l0 1.4c0 17.7 14.3 32 32 32s32-14.3 32-32l0-1.4c0-8.2 4.2-15.8 11-20.2l42.2-27.1c36.6-23.6 58.8-64.1 58.8-107.7l0-3.6c0-70.7-57.3-128-128-128l-32 0C73.3 32 16 89.3 16 160c0 17.7 14.3 32 32 32s32-14.3 32-32zm80 320a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"},\"child\":[]}]})(props);\n};\nexport function FaQuoteLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 216C0 149.7 53.7 96 120 96l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-32 0-32 0-72zm256 0c0-66.3 53.7-120 120-120l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-32 0-32 0-72z\"},\"child\":[]}]})(props);\n};\nexport function FaQuoteRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 296c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72zm-256 0c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72z\"},\"child\":[]}]})(props);\n};\nexport function FaR (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 288 0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 95.3 0L261.8 466.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176c0-79.5-64.5-144-144-144L64 32zM176 256L64 256 64 96l112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaRadiation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 186.7c-23.9 13.8-40 39.7-40 69.3L32 256C14.3 256-.2 241.6 2 224.1C10.7 154 47.8 92.7 101.3 52c14.1-10.7 33.8-5.3 42.7 10l72 124.7zM256 336c14.6 0 28.2-3.9 40-10.7l72 124.8c8.8 15.3 3.7 35.1-12.6 41.9c-30.6 12.9-64.2 20-99.4 20s-68.9-7.1-99.4-20c-16.3-6.9-21.4-26.6-12.6-41.9l72-124.8c11.8 6.8 25.4 10.7 40 10.7zm224-80l-144 0c0-29.6-16.1-55.5-40-69.3L368 62c8.8-15.3 28.6-20.7 42.7-10c53.6 40.7 90.6 102 99.4 172.1c2.2 17.5-12.4 31.9-30 31.9zM256 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaRadio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M494.8 47c12.7-3.7 20-17.1 16.3-29.8S494-2.8 481.2 1L51.7 126.9c-9.4 2.7-17.9 7.3-25.1 13.2C10.5 151.7 0 170.6 0 192l0 4L0 304 0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-229.5 0L494.8 47zM368 240a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM80 256c0-8.8 7.2-16 16-16l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16zM64 320c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 336c-8.8 0-16-7.2-16-16zm16 64c0-8.8 7.2-16 16-16l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaRainbow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 96C178.6 96 64 210.6 64 352l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96C0 175.3 143.3 32 320 32s320 143.3 320 320l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96C576 210.6 461.4 96 320 96zm0 192c-35.3 0-64 28.7-64 64l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-70.7 57.3-128 128-128s128 57.3 128 128l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-35.3-28.7-64-64-64zM160 352l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-123.7 100.3-224 224-224s224 100.3 224 224l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-88.4-71.6-160-160-160s-160 71.6-160 160z\"},\"child\":[]}]})(props);\n};\nexport function FaRankingStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M353.8 54.1L330.2 6.3c-3.9-8.3-16.1-8.6-20.4 0L286.2 54.1l-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-17.7 0-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-128 0zM32 320c-17.7 0-32 14.3-32 32L0 480c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L32 320zm416 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaReceipt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.3-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6s14 12.4 14 21.8l0 464c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6L304 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L192 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488L0 24C0 14.6 5.5 6.1 14 2.2zM96 144c-8.8 0-16 7.2-16 16s7.2 16 16 16l192 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L96 144zM80 352c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L96 336c-8.8 0-16 7.2-16 16zM96 240c-8.8 0-16 7.2-16 16s7.2 16 16 16l192 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L96 240z\"},\"child\":[]}]})(props);\n};\nexport function FaRecordVinyl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 224a128 128 0 1 0 0-256 128 128 0 1 0 0 256zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRectangleAd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM229.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7L253.2 328l-90.3 0-5.4 10.7c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zM208 237.7L186.8 280l42.3 0L208 237.7zM392 256a24 24 0 1 0 0 48 24 24 0 1 0 0-48zm24-43.9l0-28.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 96 0 48c0 13.3-10.7 24-24 24c-6.6 0-12.6-2.7-17-7c-9.4 4.5-19.9 7-31 7c-39.8 0-72-32.2-72-72s32.2-72 72-72c8.4 0 16.5 1.4 24 4.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRectangleList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32-128a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96-248c-13.3 0-24 10.7-24 24s10.7 24 24 24l224 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-224 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l224 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-224 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l224 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-224 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRectangleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRecycle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M174.7 45.1C192.2 17 223 0 256 0s63.8 17 81.3 45.1l38.6 61.7 27-15.6c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3l-23.4 87.4c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l28.4-16.4L283 79c-5.8-9.3-16-15-27-15s-21.2 5.7-27 15l-17.5 28c-9.2 14.8-28.6 19.5-43.6 10.5c-15.3-9.2-20.2-29.2-10.7-44.4l17.5-28zM429.5 251.9c15-9 34.4-4.3 43.6 10.5l24.4 39.1c9.4 15.1 14.4 32.4 14.6 50.2c.3 53.1-42.7 96.4-95.8 96.4L320 448l0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 32 96.2 0c17.6 0 31.9-14.4 31.8-32c0-5.9-1.7-11.7-4.8-16.7l-24.4-39.1c-9.5-15.2-4.7-35.2 10.7-44.4zm-364.6-31L36 204.2c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20l87.4-23.4c12.8-3.4 26 4.2 29.4 17L182 241.2c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-26.5-15.3L68.8 335.3c-3.1 5-4.8 10.8-4.8 16.7c-.1 17.6 14.2 32 31.8 32l32.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.2 0C42.7 448-.3 404.8 0 351.6c.1-17.8 5.1-35.1 14.6-50.2l50.3-80.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRegistered (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152c0-13.3 10.7-24 24-24l88 0c44.2 0 80 35.8 80 80c0 28-14.4 52.7-36.3 67l34.1 75.1c5.5 12.1 .1 26.3-11.9 31.8s-26.3 .1-31.8-11.9L268.9 288 208 288l0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-96 0-112zm48 88l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRepeat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 224c0 17.7 14.3 32 32 32s32-14.3 32-32c0-53 43-96 96-96l160 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S320 19.1 320 32l0 32L160 64C71.6 64 0 135.6 0 224zm512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 53-43 96-96 96l-160 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 160 0c88.4 0 160-71.6 160-160z\"},\"child\":[]}]})(props);\n};\nexport function FaReplyAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M209.4 39.5c-9.1-9.6-24.3-10-33.9-.9L33.8 173.2c-19.9 18.9-19.9 50.7 0 69.6L175.5 377.4c9.6 9.1 24.8 8.7 33.9-.9s8.7-24.8-.9-33.9L66.8 208 208.5 73.4c9.6-9.1 10-24.3 .9-33.9zM352 64c0-12.6-7.4-24.1-19-29.2s-25-3-34.4 5.4l-160 144c-6.7 6.1-10.6 14.7-10.6 23.8s3.9 17.7 10.6 23.8l160 144c9.4 8.5 22.9 10.6 34.4 5.4s19-16.6 19-29.2l0-64 32 0c53 0 96 43 96 96c0 30.4-12.8 47.9-22.2 56.7c-5.5 5.1-9.8 12-9.8 19.5c0 10.9 8.8 19.7 19.7 19.7c2.8 0 5.6-.6 8.1-1.9C494.5 467.9 576 417.3 576 304c0-97.2-78.8-176-176-176l-48 0 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaReply (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M205 34.8c11.5 5.1 19 16.6 19 29.2l0 64 112 0c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96l-96 0 0 64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4z\"},\"child\":[]}]})(props);\n};\nexport function FaRepublican (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 192C0 103.6 71.6 32 160 32l224 0c88.4 0 160 71.6 160 160l0 64L0 256l0-64zm415.9-64c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L466 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm-138.3 3.4c-1.1-2.1-3.3-3.4-5.7-3.4s-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L322 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6zM127.9 128c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L178 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm.1 160l192 0 96 0 32 0 64 0 32 0 0 32 0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 44.2-35.8 80-80 80s-80-35.8-80-80l0-48-32 0 0 32 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64-192 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64 0-96 128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRestroom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-154.8c-8.1 9.2-21.1 13.2-33.5 9.4c-16.9-5.3-26.3-23.2-21-40.1l30.9-99.1C44.9 155.3 82 128 124 128l8 0c42 0 79.1 27.3 91.6 67.4l30.9 99.1c5.3 16.9-4.1 34.8-21 40.1c-12.4 3.9-25.4-.2-33.5-9.4L200 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM320 0c13.3 0 24 10.7 24 24l0 464c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-464c0-13.3 10.7-24 24-24zM464 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM440 480l0-96-17.8 0c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5c-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1c-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1L584 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRetweet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0c-17.7 0-32-14.3-32-32l0-128 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 128c0 53 43 96 96 96l112 0zM304 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0c17.7 0 32 14.3 32 32l0 128-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0 0-128c0-53-43-96-96-96L304 96z\"},\"child\":[]}]})(props);\n};\nexport function FaRibbon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M333.2 322.8s0 0 0 0l-133.9-146s0 0 0 0L146 118.6c7.8-5.1 37-22.6 78-22.6s70.2 17.4 78 22.6L245.7 180l85.6 93.4 27.4-29.8c16.3-17.7 25.3-40.9 25.3-65l0-29.5c0-19-5.6-37.5-16.1-53.3L327.8 35.6C312.9 13.4 287.9 0 261.2 0l-76 0c-25.8 0-50.1 12.5-65.1 33.5L81.9 87C70.3 103.2 64 122.8 64 142.8L64 164c0 23.2 8.4 45.6 23.6 63.1l56 64.2s0 0 0 0l83.3 95.6s0 0 0 0l91.8 105.3c10 11.5 26.8 14.3 40 6.8l54.5-31.1c17.8-10.2 21.6-34.3 7.7-49.4l-87.7-95.7zM205.2 410.6l-83.3-95.6L27.1 418.5c-13.9 15.1-10.1 39.2 7.7 49.4l55.1 31.5c13 7.4 29.3 4.9 39.4-6.1l75.9-82.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRightFromBracket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M377.9 105.9L500.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L377.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1-128 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM160 96L96 96c-17.7 0-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRightLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 96l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-64L32 160c-17.7 0-32-14.3-32-32s14.3-32 32-32zM480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96c-6-6-9.4-14.1-9.4-22.6s3.4-16.6 9.4-22.6l96-96c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 64 320 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRightLong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M334.5 414c8.8 3.8 19 2 26-4.6l144-136c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22l0 72L32 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l288 0 0 72c0 9.6 5.7 18.2 14.5 22z\"},\"child\":[]}]})(props);\n};\nexport function FaRightToBracket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M217.9 105.9L340.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L217.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1L32 320c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM352 416l64 0c17.7 0 32-14.3 32-32l0-256c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c53 0 96 43 96 96l0 256c0 53-43 96-96 96l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 208c0 7.8 4.4 18.7 17.1 30.3C126.5 214.1 188.9 200 256 200s129.5 14.1 174.9 38.3C443.6 226.7 448 215.8 448 208c0-12.3-10.8-32-47.9-50.6C364.9 139.8 314 128 256 128s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7C166.3 280.2 208.8 288 256 288s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208c0-49.6 39.4-85.8 83.3-107.8C129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8l0 96c0 49.6-39.4 85.8-83.3 107.8C382.9 434.7 321.7 448 256 448s-126.9-13.3-172.7-36.2C39.4 389.8 0 353.6 0 304l0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaRoadBarrier (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-181.7L149.2 96 64 96l0-32c0-17.7-14.3-32-32-32zM405.2 96l-74.3 0-5.4 10.7L234.8 288l74.3 0 5.4-10.7L405.2 96zM362.8 288l74.3 0 5.4-10.7L533.2 96l-74.3 0-5.4 10.7L362.8 288zM202.8 96l-5.4 10.7L106.8 288l74.3 0 5.4-10.7L277.2 96l-74.3 0zm288 192l85.2 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.7L490.8 288z\"},\"child\":[]}]})(props);\n};\nexport function FaRoadBridge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 0L608 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM480 200c-13.3 0-24 10.7-24 24l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24zm24 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64zM480 40c-13.3 0-24 10.7-24 24l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24zM32 96l256 0 0 64-40 0 0 64 40 0 0 96c-53 0-96 43-96 96l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64c0-53-43-96-96-96l0-96 72 0 0-64-40 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm168 64l-80 0 0 64 80 0 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRoadCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M213.2 32L288 32l0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 74.8 0c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8l0-42.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32l0 64L86.6 480C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRoadCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M213.2 32L288 32l0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 74.8 0c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8l0-42.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32l0 64L86.6 480C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaRoadCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M213.2 32L288 32l0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 74.8 0c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8l0-42.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32l0 64L86.6 480C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"},\"child\":[]}]})(props);\n};\nexport function FaRoadLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32l-74.8 0c-27.1 0-51.3 17.1-60.3 42.6L35.1 407.2c-2.1 5.9-3.1 12-3.1 18.2C32 455.5 56.5 480 86.6 480L288 480l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64 32 0 0-128c0-23.7 12.9-44.4 32-55.4l0-24.6c0-58.3 44.6-106.2 101.5-111.5L487.1 74.6C478 49.1 453.9 32 426.8 32L352 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 16c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaRoadSpikes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 116.8c0-15.8 20.5-22 29.3-8.9L192 256l0-139.2c0-15.8 20.5-22 29.3-8.9L320 256l0-139.2c0-15.8 20.5-22 29.3-8.9L448 256l0-139.2c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.7-26.6 49.7L512 352l-64 0-64 0-64 0-64 0-64 0L64 352l0-235.2zM32 384l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRoad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32l-74.8 0c-27.1 0-51.3 17.1-60.3 42.6L3.1 407.2C1.1 413 0 419.2 0 425.4C0 455.5 24.5 480 54.6 480L256 480l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64 201.4 0c30.2 0 54.6-24.5 54.6-54.6c0-6.2-1.1-12.4-3.1-18.2L455.1 74.6C446 49.1 421.9 32 394.8 32L320 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRobot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 0c17.7 0 32 14.3 32 32l0 64 120 0c39.8 0 72 32.2 72 72l0 272c0 39.8-32.2 72-72 72l-304 0c-39.8 0-72-32.2-72-72l0-272c0-39.8 32.2-72 72-72l120 0 0-64c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zM264 256a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm152 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM48 224l16 0 0 192-16 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-16 0 0-192 16 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M156.6 384.9L125.7 354c-8.5-8.5-11.5-20.8-7.7-32.2c3-8.9 7-20.5 11.8-33.8L24 288c-8.6 0-16.6-4.6-20.9-12.1s-4.2-16.7 .2-24.1l52.5-88.5c13-21.9 36.5-35.3 61.9-35.3l82.3 0c2.4-4 4.8-7.7 7.2-11.3C289.1-4.1 411.1-8.1 483.9 5.3c11.6 2.1 20.6 11.2 22.8 22.8c13.4 72.9 9.3 194.8-111.4 276.7c-3.5 2.4-7.3 4.8-11.3 7.2l0 82.3c0 25.4-13.4 49-35.3 61.9l-88.5 52.5c-7.4 4.4-16.6 4.5-24.1 .2s-12.1-12.2-12.1-20.9l0-107.2c-14.1 4.9-26.4 8.9-35.7 11.9c-11.2 3.6-23.4 .5-31.8-7.8zM384 168a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"},\"child\":[]}]})(props);\n};\nexport function FaRotateLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48.5 224L40 224c-13.3 0-24-10.7-24-24L16 72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8L48.5 224z\"},\"child\":[]}]})(props);\n};\nexport function FaRotateRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M463.5 224l8.5 0c13.3 0 24-10.7 24-24l0-128c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l119.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRotate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M142.9 142.9c-17.5 17.5-30.1 38-37.8 59.8c-5.9 16.7-24.2 25.4-40.8 19.5s-25.4-24.2-19.5-40.8C55.6 150.7 73.2 122 97.6 97.6c87.2-87.2 228.3-87.5 315.8-1L455 55c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 128c0 13.3-10.7 24-24 24l-8.4 0c0 0 0 0 0 0L344 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l41.1-41.1c-62.6-61.5-163.1-61.2-225.3 1zM16 312c0-13.3 10.7-24 24-24l7.6 0 .7 0L168 288c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-41.1 41.1c62.6 61.5 163.1 61.2 225.3-1c17.5-17.5 30.1-38 37.8-59.8c5.9-16.7 24.2-25.4 40.8-19.5s25.4 24.2 19.5 40.8c-10.8 30.6-28.4 59.3-52.9 83.8c-87.2 87.2-228.3 87.5-315.8 1L57 457c-6.9 6.9-17.2 8.9-26.2 5.2S16 449.7 16 440l0-119.6 0-.7 0-7.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRoute (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 96c0 50.2-59.1 125.1-84.6 155c-3.8 4.4-9.4 6.1-14.5 5L320 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96 43 96 96s-43 96-96 96l-276.4 0c8.7-9.9 19.3-22.6 30-36.8c6.3-8.4 12.8-17.6 19-27.2L416 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-53 0-96-43-96-96s43-96 96-96l39.8 0c-21-31.5-39.8-67.7-39.8-96c0-53 43-96 96-96s96 43 96 96zM117.1 489.1c-3.8 4.3-7.2 8.1-10.1 11.3l-1.8 2-.2-.2c-6 4.6-14.6 4-20-1.8C59.8 473 0 402.5 0 352c0-53 43-96 96-96s96 43 96 96c0 30-21.1 67-43.5 97.9c-10.7 14.7-21.7 28-30.8 38.5l-.6 .7zM128 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32c229.8 0 416 186.2 416 416c0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96C14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zM32 160c159.1 0 288 128.9 288 288c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRubleSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32C78.3 32 64 46.3 64 64l0 192-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-32 112 0c79.5 0 144-64.5 144-144s-64.5-144-144-144L96 32zM240 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaRug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 64l32 0 24 0 0 24 0 88 0 80 0 80 0 88 0 24-24 0-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0C10.7 112 0 101.3 0 88S10.7 64 24 64zm88 0l416 0 0 384-416 0 0-384zM640 88c0 13.3-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0-24 0 0-24 0-88 0-80 0-80 0-88 0-24 24 0 32 0c13.3 0 24 10.7 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaRulerCombined (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.2 468.9C2.7 493.1 23.1 512 48 512l96 0 320 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-48c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 368l0 96c0 1.7 .1 3.3 .2 4.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRulerHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 336c0 26.5 21.5 48 48 48l544 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0c-26.5 0-48 21.5-48 48L0 336z\"},\"child\":[]}]})(props);\n};\nexport function FaRulerVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 48C0 21.5 21.5 0 48 0L208 0c26.5 0 48 21.5 48 48l0 48-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaRuler (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l50.7-50.7 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 50.7-50.7c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRupeeSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320 64 320l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 288 0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80L64 96l0 160zm256.5 16.4c-.9 6 0 8.7 .4 9.8c.4 1.1 1.4 2.6 4.2 4.9c7.2 5.7 18.7 10 37.9 16.8l1.3 .5c16 5.6 38.7 13.6 55.7 28.1c9.5 8.1 17.9 18.6 23.1 32.3c5.1 13.7 6.1 28.5 3.8 44c-4.2 28.1-20.5 49.3-43.8 60.9c-22.1 11-48.1 12.5-73.2 8l-.2 0s0 0 0 0c-9.3-1.8-20.5-5.7-29.3-9c-6-2.3-12.6-4.9-17.7-6.9c0 0 0 0 0 0c-2.5-1-4.6-1.8-6.3-2.5c-16.5-6.4-24.6-25-18.2-41.4s24.9-24.6 41.4-18.2c2.6 1 5.2 2 7.9 3.1c0 0 0 0 0 0c4.8 1.9 9.8 3.9 15.4 6c8.8 3.3 15.3 5.4 18.7 6c15.7 2.8 26.7 .8 32.9-2.3c5-2.5 8-6 9.1-13c1-6.9 .2-10.5-.5-12.3c-.6-1.7-1.8-3.6-4.5-5.9c-6.9-5.8-18.2-10.4-36.9-17l-3-1.1c-15.5-5.4-37-13-53.3-25.9c-9.5-7.5-18.3-17.6-23.7-31c-5.5-13.4-6.6-28-4.4-43.2c8.4-57.1 67-78 116.9-68.9c6.9 1.3 27.3 5.8 35.4 8.4c16.9 5.2 26.3 23.2 21.1 40.1s-23.2 26.3-40.1 21.1c-4.7-1.4-22.3-5.5-27.9-6.5c-14.6-2.7-25.8-.4-32.6 3.2c-6.3 3.3-8.9 7.6-9.5 12z\"},\"child\":[]}]})(props);\n};\nexport function FaRupiahSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320 64 320l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 288 0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80L64 96l0 160zm256-96l80 0c61.9 0 112 50.1 112 112s-50.1 112-112 112l-48 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128 0-160c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48l-48 0 0 96 48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaS (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M99.1 105.4C79 114 68.2 127.2 65.2 144.8c-2.4 14.1-.7 23.2 2 29.4c2.8 6.3 7.9 12.4 16.7 18.6c19.2 13.4 48.3 22.1 84.9 32.5c1 .3 1.9 .6 2.9 .8c32.7 9.3 72 20.6 100.9 40.7c15.7 10.9 29.9 25.5 38.6 45.1c8.8 19.8 10.8 42 6.6 66.3c-7.3 42.5-35.3 71.7-71.8 87.3c-35.4 15.2-79.1 17.9-123.7 10.9l-.2 0s0 0 0 0c-24-3.9-62.7-17.1-87.6-25.6c-4.8-1.7-9.2-3.1-12.8-4.3C5.1 440.8-3.9 422.7 1.6 405.9s23.7-25.8 40.5-20.3c4.9 1.6 10.2 3.4 15.9 5.4c25.4 8.6 56.4 19.2 74.4 22.1c36.8 5.7 67.5 2.5 88.5-6.5c20.1-8.6 30.8-21.8 33.9-39.4c2.4-14.1 .7-23.2-2-29.4c-2.8-6.3-7.9-12.4-16.7-18.6c-19.2-13.4-48.3-22.1-84.9-32.5c-1-.3-1.9-.6-2.9-.8c-32.7-9.3-72-20.6-100.9-40.7c-15.7-10.9-29.9-25.5-38.6-45.1c-8.8-19.8-10.8-42-6.6-66.3l31.5 5.5L2.1 133.9C9.4 91.4 37.4 62.2 73.9 46.6c35.4-15.2 79.1-17.9 123.7-10.9c13 2 52.4 9.6 66.6 13.4c17.1 4.5 27.2 22.1 22.7 39.2s-22.1 27.2-39.2 22.7c-11.2-3-48.1-10.2-60.1-12l4.9-31.5-4.9 31.5c-36.9-5.8-67.5-2.5-88.6 6.5z\"},\"child\":[]}]})(props);\n};\nexport function FaSackDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 96L192 96 144.6 24.9C137.5 14.2 145.1 0 157.9 0L354.1 0c12.8 0 20.4 14.2 13.3 24.9L320 96zM192 128l128 0c3.8 2.5 8.1 5.3 13 8.4C389.7 172.7 512 250.9 512 416c0 53-43 96-96 96L96 512c-53 0-96-43-96-96C0 250.9 122.3 172.7 179 136.4c0 0 0 0 0 0s0 0 0 0c4.8-3.1 9.2-5.9 13-8.4zm84 88c0-11-9-20-20-20s-20 9-20 20l0 14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1c0 0 0 0 0 0s0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4l0 14.6c0 11 9 20 20 20s20-9 20-20l0-13.8c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15c0 0 0 0 0 0l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7l0-13.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSackXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 96l128 0 47.4-71.1C374.5 14.2 366.9 0 354.1 0L157.9 0c-12.8 0-20.4 14.2-13.3 24.9L192 96zm128 32l-128 0c-3.8 2.5-8.1 5.3-13 8.4c0 0 0 0 0 0s0 0 0 0C122.3 172.7 0 250.9 0 416c0 53 43 96 96 96l320 0c53 0 96-43 96-96c0-165.1-122.3-243.3-179-279.6c-4.8-3.1-9.2-5.9-13-8.4zM289.9 336l47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47z\"},\"child\":[]}]})(props);\n};\nexport function FaSailboat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 16c0-7 4.5-13.2 11.2-15.3s13.9 .4 17.9 6.1l224 320c3.4 4.9 3.8 11.3 1.1 16.6s-8.2 8.6-14.2 8.6l-224 0c-8.8 0-16-7.2-16-16l0-320zM212.1 96.5c7 1.9 11.9 8.2 11.9 15.5l0 224c0 8.8-7.2 16-16 16L80 352c-5.7 0-11-3-13.8-8s-2.9-11-.1-16l128-224c3.6-6.3 11-9.4 18-7.5zM5.7 404.3C2.8 394.1 10.5 384 21.1 384l533.8 0c10.6 0 18.3 10.1 15.4 20.3l-4 14.3C550.7 473.9 500.4 512 443 512L133 512C75.6 512 25.3 473.9 9.7 418.7l-4-14.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSatelliteDish (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 32c0-17.7 14.3-32 32-32C383.1 0 512 128.9 512 288c0 17.7-14.3 32-32 32s-32-14.3-32-32C448 164.3 347.7 64 224 64c-17.7 0-32-14.3-32-32zM60.6 220.6L164.7 324.7l28.4-28.4c-.7-2.6-1.1-5.4-1.1-8.3c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32c-2.9 0-5.6-.4-8.3-1.1l-28.4 28.4L291.4 451.4c14.5 14.5 11.8 38.8-7.3 46.3C260.5 506.9 234.9 512 208 512C93.1 512 0 418.9 0 304c0-26.9 5.1-52.5 14.4-76.1c7.5-19 31.8-21.8 46.3-7.3zM224 96c106 0 192 86 192 192c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-70.7-57.3-128-128-128c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSatellite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M233 7c-9.4-9.4-24.6-9.4-33.9 0l-96 96c-9.4 9.4-9.4 24.6 0 33.9l89.4 89.4-15.5 15.5C152.3 230.4 124.9 224 96 224c-31.7 0-61.5 7.7-87.8 21.2c-9 4.7-10.3 16.7-3.1 23.8L112.7 376.7 96.3 393.1c-2.6-.7-5.4-1.1-8.3-1.1c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32c0-2.9-.4-5.6-1.1-8.3l16.4-16.4L242.9 506.9c7.2 7.2 19.2 5.9 23.8-3.1C280.3 477.5 288 447.7 288 416c0-28.9-6.4-56.3-17.8-80.9l15.5-15.5L375 409c9.4 9.4 24.6 9.4 33.9 0l96-96c9.4-9.4 9.4-24.6 0-33.9l-89.4-89.4 55-55c12.5-12.5 12.5-32.8 0-45.3l-48-48c-12.5-12.5-32.8-12.5-45.3 0l-55 55L233 7zm159 351l-72.4-72.4 62.1-62.1L454.1 296 392 358.1zM226.3 192.4L153.9 120 216 57.9l72.4 72.4-62.1 62.1z\"},\"child\":[]}]})(props);\n};\nexport function FaScaleBalanced (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L398.4 96c-5.2 25.8-22.9 47.1-46.4 57.3L352 448l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-23.5-10.3-41.2-31.6-46.4-57.3L128 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288l144.9 0L512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C627.2 382 574.9 416 512 416zM126.8 195.8L54.4 320l144.9 0L126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C242 382 189.7 416 126.8 416S11.7 382 .9 337.1z\"},\"child\":[]}]})(props);\n};\nexport function FaScaleUnbalancedFlip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M117.9 62.4c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l113 37.7C265 15.8 290.7 0 320 0c44.2 0 80 35.8 80 80c0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.4 145.2c-4.5 3.2-9.3 5.9-14.4 8.2L352 480c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-21-9.2-37.2-27-44.2-49l-125.9-42zM200.4 288L128 163.8 55.6 288l144.9 0zM128 384C65.1 384 12.8 350 2 305.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C243.2 350 190.9 384 128 384zm382.8-92.2L438.4 416l144.9 0L510.8 291.8zm126 141.3C626 478 573.7 512 510.8 512s-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1z\"},\"child\":[]}]})(props);\n};\nexport function FaScaleUnbalanced (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M522.1 62.4c16.8-5.6 25.8-23.7 20.2-40.5S518.6-3.9 501.9 1.6l-113 37.7C375 15.8 349.3 0 320 0c-44.2 0-80 35.8-80 80c0 3 .2 5.9 .5 8.8L117.9 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2L288 480c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-294.7c21-9.2 37.2-27 44.2-49l125.9-42zM439.6 288L512 163.8 584.4 288l-144.9 0zM512 384c62.9 0 115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L536.1 109.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L392.7 273.1c-5.7 9.8-9.3 21.1-6.7 32.1C396.8 350 449.1 384 512 384zM129.2 291.8L201.6 416 56.7 416l72.4-124.2zM3.2 433.1C14 478 66.3 512 129.2 512s115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L153.2 237.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L9.9 401.1c-5.7 9.8-9.3 21.1-6.7 32.1z\"},\"child\":[]}]})(props);\n};\nexport function FaSchoolCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l272 0s0 0 0 0l-64 0 0-96c0-35.3 28.7-64 64-64l.3 0 .5 0c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8L640 144c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm0 128l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-99.3-43.3c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7z\"},\"child\":[]}]})(props);\n};\nexport function FaSchoolCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l272 0s0 0 0 0l-64 0 0-96c0-35.3 28.7-64 64-64l.3 0 .5 0c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8L640 144c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm0 128l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaSchoolCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l272 0s0 0 0 0l-64 0 0-96c0-35.3 28.7-64 64-64l.3 0 .5 0c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8L640 144c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm0 128l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 368z\"},\"child\":[]}]})(props);\n};\nexport function FaSchoolFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0L400 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-79.3 0 89.6 64L512 160c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-176 0 0-112c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 112L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l101.7 0L256 95.5 256 32c0-17.7 14.3-32 32-32zm48 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM80 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0zm368 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0zm384 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSchoolLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M302.2 5.4c10.7-7.2 24.8-7.2 35.5 0L473.7 96 592 96c26.5 0 48 21.5 48 48l0 128c0-61.9-50.1-112-112-112s-112 50.1-112 112l0 24.6c-19.1 11.1-32 31.7-32 55.4l-63.7 0-.3 0c-35.3 0-64 28.7-64 64l0 96 64 0s0 0 0 0L48 512c-26.5 0-48-21.5-48-48L0 144c0-26.5 21.5-48 48-48l118.3 0L302.2 5.4zM80 208l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm0 128l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm240-72a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm16-120l0 16 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16s16 7.2 16 16zm192 96c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaSchool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l208 0 0-96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 96 208 0c26.5 0 48-21.5 48-48l0-320c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64zM96 320l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64zM232 176a88 88 0 1 1 176 0 88 88 0 1 1 -176 0zm88-48c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaScissors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaScrewdriverWrench (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M78.6 5C69.1-2.4 55.6-1.5 47 7L7 47c-8.5 8.5-9.4 22-2.1 31.6l80 104c4.5 5.9 11.6 9.4 19 9.4l54.1 0 109 109c-14.7 29-10 65.4 14.3 89.6l112 112c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-112-112c-24.2-24.2-60.6-29-89.6-14.3l-109-109 0-54.1c0-7.5-3.5-14.5-9.4-19L78.6 5zM19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L233.7 374.3c-7.8-20.9-9-43.6-3.6-65.1l-61.7-61.7L19.9 396.1zM512 144c0-10.5-1.1-20.7-3.2-30.5c-2.4-11.2-16.1-14.1-24.2-6l-63.9 63.9c-3 3-7.1 4.7-11.3 4.7L352 176c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l63.9-63.9c8.1-8.1 5.2-21.8-6-24.2C388.7 1.1 378.5 0 368 0C288.5 0 224 64.5 224 144l0 .8 85.3 85.3c36-9.1 75.8 .5 104 28.7L429 274.5c49-23 83-72.8 83-130.5zM56 432a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaScrewdriver (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M465 7c-8.5-8.5-22-9.4-31.6-2.1l-104 80c-5.9 4.5-9.4 11.6-9.4 19l0 54.1-85.6 85.6c6.7 4.2 13 9.3 18.8 15.1s10.9 12.2 15.1 18.8L353.9 192l54.1 0c7.5 0 14.5-3.5 19-9.4l80-104c7.4-9.6 6.5-23.1-2.1-31.6L465 7zM121.4 281.4l-112 112c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l112-112c30.2-30.2 30.2-79.1 0-109.3s-79.1-30.2-109.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaScrollTorah (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 480L96 32C96 14.3 74.5 0 48 0S0 14.3 0 32L0 480c0 17.7 21.5 32 48 32s48-14.3 48-32zM512 32L128 32l0 448 384 0 0-448zM592 0c-26.5 0-48 14.3-48 32l0 448c0 17.7 21.5 32 48 32s48-14.3 48-32l0-448c0-17.7-21.5-32-48-32zM196 313.7c0-3.2 .9-6.4 2.5-9.2L226.7 256l-28.3-48.5c-1.6-2.8-2.5-6-2.5-9.2c0-10.1 8.2-18.3 18.3-18.3l56.7 0 31.4-53.9c3.6-6.3 10.3-10.1 17.6-10.1s13.9 3.8 17.6 10.1L369 180l56.7 0c10.1 0 18.3 8.2 18.3 18.3c0 3.2-.9 6.4-2.5 9.2L413.3 256l28.3 48.5c1.6 2.8 2.5 6 2.5 9.2c0 10.1-8.2 18.3-18.3 18.3L369 332l-31.4 53.9c-3.6 6.3-10.3 10.1-17.6 10.1s-13.9-3.8-17.6-10.1L271 332l-56.7 0c-10.1 0-18.3-8.2-18.3-18.3zm124 54.7L341.2 332l-42.4 0L320 368.4zM254.5 256l30.3 52 70.4 0 30.3-52-30.3-52-70.4 0-30.3 52zm144.9 23.8L383 308l32.8 0-16.4-28.2zM415.8 204L383 204l16.4 28.2L415.8 204zM320 143.6L298.8 180l42.4 0L320 143.6zM224.2 204l16.4 28.2L257 204l-32.8 0zM257 308l-16.4-28.2L224.2 308l32.8 0z\"},\"child\":[]}]})(props);\n};\nexport function FaScroll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 80l0 48c0 17.7 14.3 32 32 32l16 0 48 0 0-80c0-26.5-21.5-48-48-48S0 53.5 0 80zM112 32c10 13.4 16 30 16 48l0 304c0 35.3 28.7 64 64 64s64-28.7 64-64l0-5.3c0-32.4 26.3-58.7 58.7-58.7L480 320l0-192c0-53-43-96-96-96L112 32zM464 480c61.9 0 112-50.1 112-112c0-8.8-7.2-16-16-16l-245.3 0c-14.7 0-26.7 11.9-26.7 26.7l0 5.3c0 53-43 96-96 96l176 0 96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSdCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 0L141.3 0C124.3 0 108 6.7 96 18.7L18.7 96C6.7 108 0 124.3 0 141.3L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64zM160 88l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaSection (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64.9 96C67.1 84.4 73.7 76.2 86 70.6c13.8-6.2 34.8-8.9 61.2-4.5c8.8 1.4 36.1 7.1 44.1 9.3c17 4.8 34.7-5.1 39.5-22.2s-5.1-34.7-22.2-39.5c-11.1-3.1-41-9.2-50.9-10.8C123-2.7 88.3-.6 59.7 12.3C29.9 25.8 7.5 50.9 1.6 86.5c-.1 .5-.2 1.1-.2 1.6c-2.2 19.7 .3 37.9 8.1 54.1c7.7 16.1 19.4 28 32 36.9c.6 .5 1.3 .9 2 1.4C22.3 194.2 6.5 215.1 1.7 243c-.1 .6-.2 1.1-.2 1.7c-2.3 19.3 .4 37.1 8.4 53c7.9 15.6 19.8 27 32.3 35.5c22.4 15.2 51.9 24 75.4 31c0 0 0 0 0 0l3.7 1.1c27.2 8.2 46.9 14.6 59.4 23.8c5.5 4 8.2 7.6 9.5 10.9c1.3 3.2 2.6 8.6 .9 18.1c-1.7 10.1-7.7 18-20.7 23.5c-14 6-35.4 8.5-62 4.4c-12.8-2.1-35.1-9.7-54.1-16.2c0 0 0 0 0 0c-4.3-1.5-8.5-2.9-12.3-4.2C25.3 420 7.2 429.1 1.6 445.8s3.5 34.9 20.3 40.5c2.6 .8 5.7 1.9 9.2 3.1c18.6 6.3 48.5 16.6 67.3 19.6c0 0 0 0 0 0l.2 0c34.5 5.4 68.8 3.4 97.2-8.7c29.4-12.6 52.5-36.5 58.5-71.5c3.3-19.3 1.9-37.4-5-53.9c-6.3-15-16.4-26.4-27.6-35.2c16.5-13.9 28.5-33.2 32.6-58.2c3.2-19.8 1.9-38.3-4.8-55.1c-6.7-16.8-17.8-29.4-30.2-39c-22.8-17.6-53.6-27.4-77.7-35l-1.4-.5c-27.4-8.7-47.8-15.3-61.5-25c-6.1-4.4-9.5-8.5-11.4-12.4c-1.8-3.7-3.2-9.3-2.3-18.5zm76.7 208.5l-.6-.2-1.4-.4c-27.4-8.2-47.9-14.5-61.7-23.8c-6.2-4.2-9.3-7.9-11-11.3c-1.5-3-2.9-7.7-2.1-15.7c1.9-9.7 7.9-17.3 20.5-22.7c14-6 35.4-8.5 62.1-4.3l16.4 2.6c6.3 2.9 11.7 6 16.2 9.5c5.5 4.2 8.4 8.2 10 12.2c1.6 4 2.8 10.4 1.1 20.9c-2.4 14.7-12.8 26.4-37.1 31l-12.4 2.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSeedling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 32c0 113.6-84.6 207.5-194.2 222c-7.1-53.4-30.6-101.6-65.3-139.3C290.8 46.3 364 0 448 0l32 0c17.7 0 32 14.3 32 32zM0 96C0 78.3 14.3 64 32 64l32 0c123.7 0 224 100.3 224 224l0 32 0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160C100.3 320 0 219.7 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaServer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShapes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M315.4 15.5C309.7 5.9 299.2 0 288 0s-21.7 5.9-27.4 15.5l-96 160c-5.9 9.9-6.1 22.2-.4 32.2s16.3 16.2 27.8 16.2l192 0c11.5 0 22.2-6.2 27.8-16.2s5.5-22.3-.4-32.2l-96-160zM288 312l0 144c0 22.1 17.9 40 40 40l144 0c22.1 0 40-17.9 40-40l0-144c0-22.1-17.9-40-40-40l-144 0c-22.1 0-40 17.9-40 40zM128 512a128 128 0 1 0 0-256 128 128 0 1 0 0 256z\"},\"child\":[]}]})(props);\n};\nexport function FaShareFromSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 224l-46.5 0c-45 0-81.5 36.5-81.5 81.5c0 22.3 10.3 34.3 19.2 40.5c6.8 4.7 12.8 12 12.8 20.3c0 9.8-8 17.8-17.8 17.8l-2.5 0c-2.4 0-4.8-.4-7.1-1.4C210.8 374.8 128 333.4 128 240c0-79.5 64.5-144 144-144l80 0 0-61.3C352 15.5 367.5 0 386.7 0c8.6 0 16.8 3.2 23.2 8.9L548.1 133.3c7.6 6.8 11.9 16.5 11.9 26.7s-4.3 19.9-11.9 26.7l-139 125.1c-5.9 5.3-13.5 8.2-21.4 8.2l-3.7 0c-17.7 0-32-14.3-32-32l0-64zM80 96c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 44.2-35.8 80-80 80L80 512c-44.2 0-80-35.8-80-80L0 112C0 67.8 35.8 32 80 32l48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 96z\"},\"child\":[]}]})(props);\n};\nexport function FaShareNodes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z\"},\"child\":[]}]})(props);\n};\nexport function FaShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M307 34.8c-11.5 5.1-19 16.6-19 29.2l0 64-112 0C78.8 128 0 206.8 0 304C0 417.3 81.5 467.9 100.2 478.1c2.5 1.4 5.3 1.9 8.1 1.9c10.9 0 19.7-8.9 19.7-19.7c0-7.5-4.3-14.4-9.8-19.5C108.8 431.9 96 414.4 96 384c0-53 43-96 96-96l96 0 0 64c0 12.6 7.4 24.1 19 29.2s25 3 34.4-5.4l160-144c6.7-6.1 10.6-14.7 10.6-23.8s-3.8-17.7-10.6-23.8l-160-144c-9.4-8.5-22.9-10.6-34.4-5.4z\"},\"child\":[]}]})(props);\n};\nexport function FaSheetPlastic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 448c0 35.3 28.7 64 64 64l160 0 0-128c0-17.7 14.3-32 32-32l128 0 0-288c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 448zM171.3 75.3l-96 96c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l96-96c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zm96 32l-160 160c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l160-160c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM384 384l-128 0 0 128L384 384z\"},\"child\":[]}]})(props);\n};\nexport function FaShekelSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 96l128 0c35.3 0 64 28.7 64 64l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-70.7-57.3-128-128-128L32 32zM320 480c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 288c0 35.3-28.7 64-64 64l-128 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l160 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShieldCat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4l.2 0c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4l48 0c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3l.2 0c5.8 0 10.4 4.7 10.4 10.4L352 272c0 53-43 96-96 96s-96-43-96-96l0-117.6zM216 288a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm96-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShieldDog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8c35.3 0 64-28.7 64-64l0-64 44.2 0c12.1 0 23.2 6.8 28.6 17.7L320 192l64 0c8.8 0 16 7.2 16 16l0 32c0 44.2-35.8 80-80 80l-48 0 0 50.7c0 7.3-5.9 13.3-13.3 13.3c-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4c0-2.8 .6-5.5 1.9-8l15-30zM160 160l40 0 8 0 0 32 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-8.8 7.2-16 16-16zm128 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShieldHalved (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8l0 378.1C394 378 431.1 230.1 432 141.4L256 66.8s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShieldHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM144 221.3c0-33.8 27.4-61.3 61.3-61.3c16.2 0 31.8 6.5 43.3 17.9l7.4 7.4 7.4-7.4c11.5-11.5 27.1-17.9 43.3-17.9c33.8 0 61.3 27.4 61.3 61.3c0 16.2-6.5 31.8-17.9 43.3l-82.7 82.7c-6.2 6.2-16.4 6.2-22.6 0l-82.7-82.7c-11.5-11.5-17.9-27.1-17.9-43.3z\"},\"child\":[]}]})(props);\n};\nexport function FaShieldVirus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM256 112c8.8 0 16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C334.5 200.1 351 240 384 240c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C311.9 334.5 272 351 272 384c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C177.5 311.9 161 272 128 272c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C200.1 177.5 240 161 240 128c0-8.8 7.2-16 16-16zM232 256a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 32c0-17.7 14.3-32 32-32L352 0c17.7 0 32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 128 44.4 14.8c23.1 7.7 29.5 37.5 11.5 53.9l-101 92.6c-16.2 9.4-34.7 15.1-50.9 15.1c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-16.2 0-34.7-5.7-50.9-15.1l-101-92.6c-18-16.5-11.6-46.2 11.5-53.9L96 240l0-128c0-26.5 21.5-48 48-48l48 0 0-32zM160 218.7l107.8-35.9c13.1-4.4 27.3-4.4 40.5 0L416 218.7l0-90.7-256 0 0 90.7zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShirt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M211.8 0c7.8 0 14.3 5.7 16.7 13.2C240.8 51.9 277.1 80 320 80s79.2-28.1 91.5-66.8C413.9 5.7 420.4 0 428.2 0l12.6 0c22.5 0 44.2 7.9 61.5 22.3L628.5 127.4c6.6 5.5 10.7 13.5 11.4 22.1s-2.1 17.1-7.8 23.6l-56 64c-11.4 13.1-31.2 14.6-44.6 3.5L480 197.7 480 448c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-250.3-51.5 42.9c-13.3 11.1-33.1 9.6-44.6-3.5l-56-64c-5.7-6.5-8.5-15-7.8-23.6s4.8-16.6 11.4-22.1L137.7 22.3C155 7.9 176.7 0 199.2 0l12.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShoePrints (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 0C352.3 0 256 32 256 32l0 128c48 0 76 16 104 32s56 32 104 32c56.4 0 176-16 176-96S512 0 416 0zM128 96c0 35.3 28.7 64 64 64l32 0 0-128-32 0c-35.3 0-64 28.7-64 64zM288 512c96 0 224-48 224-128s-119.6-96-176-96c-48 0-76 16-104 32s-56 32-104 32l0 128s96.3 32 160 32zM0 416c0 35.3 28.7 64 64 64l32 0 0-128-32 0c-35.3 0-64 28.7-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaShopLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M36.8 192l412.8 0c20.2-19.8 47.9-32 78.4-32c30.5 0 58.1 12.2 78.3 31.9c18.9-1.6 33.7-17.4 33.7-36.7c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM384 224l-64 0 0 160-192 0 0-160-64 0 0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-80 0-32 0-128zm144 16c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaShopSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-54.8-43L576 224l-64 0 0 152L384 275.7l0-51.7-64 0 0 1.5L277.2 192l325.9 0c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L74.1 32.8 38.8 5.1zM36.8 192l85 0L21 112.5 6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM320 384l-192 0 0-160-64 0 0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-65.5-64-50.4 0 35.9z\"},\"child\":[]}]})(props);\n};\nexport function FaShop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M36.8 192l566.3 0c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM64 224l0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-80 0-160-64 0 0 160-192 0 0-160-64 0zm448 0l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 131.9C64 112.1 80.1 96 99.9 96c9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.2-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32C44.7 32 0 76.7 0 131.9L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-316.1zM256 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32-32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaShrimp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96s28.7 64 64 64l1 0c3.7 88.9 77 160 167 160l56 0 0-192-24 0L88.8 128 64 128c-17.7 0-32-14.3-32-32s14.3-32 32-32l400 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L64 32zM224 456c0 13.3 10.7 24 24 24l72 0 0-72.2-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3l0 69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111c0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6c0 4.6-.7 9-1.9 13.1L472.6 415zM336 128l-16 0 0 192 18.3 0c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM168 192a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShuffle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaShuttleSpace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M130 480c40.6 0 80.4-11 115.2-31.9L352 384l-224 0 0 96 2 0zM352 128L245.2 63.9C210.4 43 170.6 32 130 32l-2 0 0 96 224 0zM96 128l0-96L80 32C53.5 32 32 53.5 32 80l0 48 8 0c-22.1 0-40 17.9-40 40l0 16L0 328l0 16c0 22.1 17.9 40 40 40l-8 0 0 48c0 26.5 21.5 48 48 48l16 0 0-96 8 0c26.2 0 49.4-12.6 64-32l288 0c69.3 0 135-22.7 179.2-81.6c6.4-8.5 6.4-20.3 0-28.8C591 182.7 525.3 160 456 160l-288 0c-14.6-19.4-37.8-32-64-32l-8 0zM512 243.6l0 24.9c0 19.6-15.9 35.6-35.6 35.6c-2.5 0-4.4-2-4.4-4.4l0-87.1c0-2.5 2-4.4 4.4-4.4c19.6 0 35.6 15.9 35.6 35.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSignHanging (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0c17.7 0 32 14.3 32 32l0 32 352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352-32 0C14.3 128 0 113.7 0 96S14.3 64 32 64l32 0 0-32C64 14.3 78.3 0 96 0zm96 160l256 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSignal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M576 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM448 96c17.7 0 32 14.3 32 32l0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352c0-17.7 14.3-32 32-32zM352 224l0 256c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32s32 14.3 32 32zM192 288c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32zM96 416l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaSignature (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92l0 71.9c0 40 32.5 72.5 72.5 72.5c26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-83.6 0 18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3l0-7.8c0-53-43-96-96-96s-96 43-96 96l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3c-4.7 0-8.5-3.8-8.5-8.5l0-71.9c0-14.1 9.3-26.6 22.8-30.7zM24 368c-13.3 0-24 10.7-24 24s10.7 24 24 24l40.3 0c-.2-2.8-.3-5.6-.3-8.5L64 368l-40 0zm592 48c13.3 0 24-10.7 24-24s-10.7-24-24-24l-310.1 0c-6.7 16.3-14.2 32.3-22.3 48L616 416z\"},\"child\":[]}]})(props);\n};\nexport function FaSignsPost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 32L64 32C46.3 32 32 46.3 32 64l0 64c0 17.7 14.3 32 32 32l377.4 0c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7L288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32zM480 256c0-17.7-14.3-32-32-32l-160 0 0-32-64 0 0 32L70.6 224c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7L448 352c17.7 0 32-14.3 32-32l0-64zM288 480l0-96-64 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSimCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0L242.7 0c17 0 33.3 6.7 45.3 18.7L365.3 96c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0zM96 192c-17.7 0-32 14.3-32 32l0 32 64 0 0-64-32 0zM64 352l80 0 96 0 80 0 0-64-80 0-96 0-80 0 0 64zM320 224c0-17.7-14.3-32-32-32l-32 0 0 64 64 0 0-32zM160 192l0 64 64 0 0-64-64 0zM288 448c17.7 0 32-14.3 32-32l0-32-64 0 0 64 32 0zM160 384l0 64 64 0 0-64-64 0zM64 416c0 17.7 14.3 32 32 32l32 0 0-64-64 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaSink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32s14.3 32 32 32s32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96l0 192-64 0 0-24c0-30.9-25.1-56-56-56l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c4.4 0 8 3.6 8 8l0 24-80 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-24c0-4.4 3.6-8 8-8l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0c-30.9 0-56 25.1-56 56l0 24-64 0 0-192zM480 416l0-32L32 384l0 32c0 53 43 96 96 96l256 0c53 0 96-43 96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaSitemap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 80c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-8 0 0 40 152 0c30.9 0 56 25.1 56 56l0 32 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-32c0-4.4-3.6-8-8-8l-152 0 0 40 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-40-152 0c-4.4 0-8 3.6-8 8l0 32 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-32c0-30.9 25.1-56 56-56l152 0 0-40-8 0c-26.5 0-48-21.5-48-48l0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaSkullCrossbones (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 128c0 44.4-25.4 83.5-64 106.4l0 21.6c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-21.6c-38.6-23-64-62.1-64-106.4C80 57.3 144.5 0 224 0s144 57.3 144 128zM168 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM3.4 273.7c7.9-15.8 27.1-22.2 42.9-14.3L224 348.2l177.7-88.8c15.8-7.9 35-1.5 42.9 14.3s1.5 35-14.3 42.9L295.6 384l134.8 67.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L224 419.8 46.3 508.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9L152.4 384 17.7 316.6C1.9 308.7-4.5 289.5 3.4 273.7z\"},\"child\":[]}]})(props);\n};\nexport function FaSkull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 398.9c58.5-41.1 96-104.1 96-174.9C512 100.3 397.4 0 256 0S0 100.3 0 224c0 70.7 37.5 133.8 96 174.9c0 .4 0 .7 0 1.1l0 64c0 26.5 21.5 48 48 48l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 64 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 48 0c26.5 0 48-21.5 48-48l0-64c0-.4 0-.7 0-1.1zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm256-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.1 9.2C13.3-1.2 28.4-3.1 38.8 5.1l592 464c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2z\"},\"child\":[]}]})(props);\n};\nexport function FaSleigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l0 160c0 53 43 96 96 96l0 32 64 0 0-32 192 0 0 32 64 0 0-32c53 0 96-43 96-96l0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0-32 0c-17.7 0-32 14.3-32 32l0 41.3c0 30.2-24.5 54.7-54.7 54.7c-75.5 0-145.6-38.9-185.6-102.9l-4.3-6.9C174.2 67.6 125 37.6 70.7 32.7c-2.2-.5-4.4-.7-6.7-.7l-9 0L32 32zM640 384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 8c0 13.3-10.7 24-24 24L64 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l488 0c48.6 0 88-39.4 88-88l0-8z\"},\"child\":[]}]})(props);\n};\nexport function FaSliders (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 416c0 17.7 14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384c-17.7 0-32 14.3-32 32zm128 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32-80c-32.8 0-61 19.7-73.3 48L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48zM192 128a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm73.3-64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64z\"},\"child\":[]}]})(props);\n};\nexport function FaSmog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 144c0 79.5 64.5 144 144 144l123.3 0c22.6 19.9 52.2 32 84.7 32s62.1-12.1 84.7-32l27.3 0c61.9 0 112-50.1 112-112s-50.1-112-112-112c-10.7 0-21 1.5-30.8 4.3C443.8 27.7 401.1 0 352 0c-32.6 0-62.4 12.2-85.1 32.3C242.1 12.1 210.5 0 176 0C96.5 0 32 64.5 32 144zM616 368l-336 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-64 96l-112 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-192 0L24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24zM224 392c0-13.3-10.7-24-24-24L96 368c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0c13.3 0 24-10.7 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaSmoking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 32l0 11c0 38.2 15.2 74.8 42.2 101.8l21 21c21 21 32.8 49.5 32.8 79.2l0 11c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-11c0-12.7-5.1-24.9-14.1-33.9l-21-21C405.9 151.1 384 98.1 384 43l0-11c0-17.7 14.3-32 32-32s32 14.3 32 32zM576 256l0-11c0-38.2-15.2-74.8-42.2-101.8l-21-21c-21-21-32.8-49.5-32.8-79.2l0-11c0-17.7 14.3-32 32-32s32 14.3 32 32l0 11c0 12.7 5.1 24.9 14.1 33.9l21 21c39 39 60.9 91.9 60.9 147.1l0 11c0 17.7-14.3 32-32 32s-32-14.3-32-32zM0 416c0-35.3 28.7-64 64-64l352 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L64 512c-35.3 0-64-28.7-64-64l0-32zm224 0l0 32 160 0 0-32-160 0zm288-64c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSnowflake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0c17.7 0 32 14.3 32 32l0 30.1 15-15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-49 49 0 70.3 61.4-35.8 17.7-66.1c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4l-5.2 19.3 23.6-13.8c15.3-8.9 34.9-3.7 43.8 11.5s3.8 34.9-11.5 43.8l-25.3 14.8 21.7 5.8c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-67.7-18.1L287.5 256l60.9 35.5 67.7-18.1c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4l-21.7 5.8 25.3 14.8c15.3 8.9 20.4 28.5 11.5 43.8s-28.5 20.4-43.8 11.5l-23.6-13.8 5.2 19.3c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-17.7-66.1L256 311.7l0 70.3 49 49c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15 0 30.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-30.1-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l49-49 0-70.3-61.4 35.8-17.7 66.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4l5.2-19.3L48.1 395.6c-15.3 8.9-34.9 3.7-43.8-11.5s-3.7-34.9 11.5-43.8l25.3-14.8-21.7-5.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l67.7 18.1L160.5 256 99.6 220.5 31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4l21.7-5.8L15.9 171.6C.6 162.7-4.5 143.1 4.4 127.9s28.5-20.4 43.8-11.5l23.6 13.8-5.2-19.3c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l17.7 66.1L192 200.3l0-70.3L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l15 15L192 32c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSnowman (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M341.1 140.6c-2 3.9-1.6 8.6 1.2 12c7 8.5 12.9 18.1 17.2 28.4L408 160.2l0-40.2c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19.6 22.5-9.7c12.2-5.2 26.3 .4 31.5 12.6s-.4 26.3-12.6 31.5l-56 24-73.6 31.5c-.5 9.5-2.1 18.6-4.8 27.3c-1.2 3.8-.1 8 2.8 10.8C396.7 296.9 416 338.2 416 384c0 44.7-18.3 85-47.8 114.1c-9.9 9.7-23.7 13.9-37.5 13.9l-149.3 0c-13.9 0-27.7-4.2-37.5-13.9C114.3 469 96 428.7 96 384c0-45.8 19.3-87.1 50.1-116.3c2.9-2.8 4-6.9 2.8-10.8c-2.7-8.7-4.3-17.9-4.8-27.3L70.5 198.1l-56-24C2.4 168.8-3.3 154.7 1.9 142.5s19.3-17.8 31.5-12.6L56 139.6 56 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40.2L152.6 181c4.3-10.3 10.1-19.9 17.2-28.4c2.8-3.4 3.3-8.1 1.2-12C164 127.2 160 112.1 160 96c0-53 43-96 96-96s96 43 96 96c0 16.1-4 31.2-10.9 44.6zM224 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm48 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-16 80a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm16 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM288 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48 24l0 3.2c0 3.2 .8 6.3 2.3 9l9 16.9c.9 1.7 2.7 2.8 4.7 2.8s3.8-1.1 4.7-2.8l9-16.9c1.5-2.8 2.3-5.9 2.3-9l0-3.2c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaSnowplow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M298.9 64l68.6 160L256 224l-64-64 0-96 106.9 0zM445.1 242.7l-87.4-204C347.6 15.3 324.5 0 298.9 0L176 0c-26.5 0-48 21.5-48 48l0 112-32 0c-17.7 0-32 14.3-32 32l0 106.8C26.2 316.8 0 355.3 0 400c0 61.9 50.1 112 112 112l256 0c61.9 0 112-50.1 112-112c0-17.2-3.9-33.5-10.8-48l42.8 0 0 50.7c0 17 6.7 33.3 18.7 45.3l54.6 54.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L576 402.7l0-82.7 0-84.8L633 164c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-57 71.2c-9.1 11.3-14 25.4-14 40l0 52.8-64 0 0-31.3c.1-2.4-.2-4.8-.6-7.1s-1.2-4.7-2.2-6.8zM368 352c26.5 0 48 21.5 48 48s-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l256 0zM144 400a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm216 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-56-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM200 424a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaSoap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM416 32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 160c0 27.6-11.7 52.5-30.4 70.1C422.1 275.7 448 310.8 448 352c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96s43-96 96-96l88.4 0c-15.2-17-24.4-39.4-24.4-64L96 192c-53 0-96 43-96 96L0 416c0 53 43 96 96 96l320 0c53 0 96-43 96-96l0-128c0-53-43-96-96-96zM160 288c-35.3 0-64 28.7-64 64s28.7 64 64 64l192 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0-160 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSocks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M175.2 476.6c-9.7-18-15.2-38.7-15.2-60.6c0-40.3 19-78.2 51.2-102.4l64-48c8.1-6 12.8-15.5 12.8-25.6l0-144L128 96l0 144c0 20.1-9.5 39.1-25.6 51.2l-64 48C14.2 357.3 0 385.8 0 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l21.6-16.2zM128 64l160 0 0-16c0-14.5 3.9-28.2 10.7-39.9C291 3 281.9 0 272 0L176 0c-26.5 0-48 21.5-48 48l0 16zM320 96l0 144c0 20.1-9.5 39.1-25.6 51.2l-64 48C206.2 357.3 192 385.8 192 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l115.2-86.4C493 382.2 512 344.3 512 304l0-208L320 96zM512 64l0-16c0-26.5-21.5-48-48-48L368 0c-26.5 0-48 21.5-48 48l0 16 192 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSolarPanel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M122.2 0C91.7 0 65.5 21.5 59.5 51.4L8.3 307.4C.4 347 30.6 384 71 384l217 0 0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64 217 0c40.4 0 70.7-36.9 62.8-76.6l-51.2-256C574.5 21.5 548.3 0 517.8 0L122.2 0zM260.9 64l118.2 0 10.4 104-139 0L260.9 64zM202.3 168l-100.8 0L122.2 64l90.4 0L202.3 168zM91.8 216l105.6 0L187.1 320 71 320 91.8 216zm153.9 0l148.6 0 10.4 104-169.4 0 10.4-104zm196.8 0l105.6 0L569 320l-116 0L442.5 216zm96-48l-100.8 0L427.3 64l90.4 0 31.4-6.3L517.8 64l20.8 104z\"},\"child\":[]}]})(props);\n};\nexport function FaSortDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M182.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l256 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaSortUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M182.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"},\"child\":[]}]})(props);\n};\nexport function FaSort (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8L32 224c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l256 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSpa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M183.1 235.3c33.7 20.7 62.9 48.1 85.8 80.5c7 9.9 13.4 20.3 19.1 31c5.7-10.8 12.1-21.1 19.1-31c22.9-32.4 52.1-59.8 85.8-80.5C437.6 207.8 490.1 192 546 192l9.9 0c11.1 0 20.1 9 20.1 20.1C576 360.1 456.1 480 308.1 480L288 480l-20.1 0C119.9 480 0 360.1 0 212.1C0 201 9 192 20.1 192l9.9 0c55.9 0 108.4 15.8 153.1 43.3zM301.5 37.6c15.7 16.9 61.1 71.8 84.4 164.6c-38 21.6-71.4 50.8-97.9 85.6c-26.5-34.8-59.9-63.9-97.9-85.6c23.2-92.8 68.6-147.7 84.4-164.6C278 33.9 282.9 32 288 32s10 1.9 13.5 5.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSpaghettiMonsterFlying (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 64a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3C390 95.1 384 80.2 384 64c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4c7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4C527.3 262.3 532.7 264 536 264c2.5 0 4.3-.6 7.1-3.3c3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7c9.7-9.3 22.9-16.7 40.4-16.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3c-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7c-9.7 9.3-22.9 16.7-40.4 16.7c-18.5 0-32.9-8.5-44.3-18.6c-3.1 4-6.6 8.3-10.5 12.7c1.4 4.3 2.8 8.5 4 12.5c.9 3 1.8 5.8 2.6 8.6c3 9.8 5.5 18.2 8.6 25.9c3.9 9.8 7.4 15.4 10.8 18.5c2.6 2.4 5.9 4.3 12.8 4.3c8.7 0 16.9-4.2 33.7-13.2c15-8 35.7-18.8 62.3-18.8c13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2c-1 .6-2.1 1.1-3.2 1.7C559.9 414 541.4 424 520 424c-18.4 0-33.6-6.1-45.5-17.2c-11.1-10.3-17.9-23.7-22.7-36c-3.6-9-6.7-19.1-9.5-28.5c-16.4 12.3-36.1 23.6-58.9 31.3c3.6 10.8 8.4 23.5 14.4 36.2c7.5 15.9 16.2 30.4 25.8 40.5C433 460.5 441.2 464 448 464c13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8c-14.5-15.4-25.7-34.9-34.2-53c-8-17-14.1-33.8-18.3-46.9c-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9c-8.5 18.1-19.8 37.6-34.2 53C237 498.5 217.2 512 192 512c-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7c9.5-10.1 18.3-24.6 25.8-40.5c5.9-12.6 10.7-25.4 14.4-36.2c-22.8-7.7-42.5-19-58.9-31.3c-2.9 9.4-6 19.5-9.5 28.5c-4.8 12.2-11.6 25.6-22.7 36C153.6 417.9 138.4 424 120 424c-21.4 0-39.9-10-53.1-17.1c0 0 0 0 0 0c-1.1-.6-2.2-1.2-3.2-1.7c-15-8-26.3-13.2-39.7-13.2c-13.3 0-24-10.7-24-24s10.7-24 24-24c26.6 0 47.3 10.8 62.3 18.8c16.8 9 25 13.2 33.7 13.2c6.8 0 10.2-1.9 12.8-4.3c3.4-3.2 7-8.8 10.8-18.5c3-7.7 5.6-16.1 8.6-25.9c.8-2.7 1.7-5.6 2.6-8.6c1.2-4 2.6-8.2 4-12.5c-3.9-4.5-7.4-8.8-10.5-12.7C136.9 303.5 122.5 312 104 312c-17.5 0-30.7-7.4-40.4-16.7c-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4c-2.8-2.7-4.6-3.3-7.1-3.3c-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7c8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4c2.8 2.7 4.6 3.3 7.1 3.3c3.3 0 8.7-1.7 19.4-13.4c5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24c13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm208 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSpellCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 0C99.1 0 87.4 7.8 82.5 19.7l-66.7 160-13.3 32c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L66.7 224l90.7 0 5.1 12.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-13.3-32-66.7-160C136.6 7.8 124.9 0 112 0zm18.7 160l-37.3 0L112 115.2 130.7 160zM256 32l0 96 0 96c0 17.7 14.3 32 32 32l80 0c44.2 0 80-35.8 80-80c0-23.1-9.8-43.8-25.4-58.4c6-11.2 9.4-24 9.4-37.6c0-44.2-35.8-80-80-80L288 0c-17.7 0-32 14.3-32 32zm96 64l-32 0 0-32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-32 64l32 0 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0-32zM566.6 310.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L352 434.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l192-192z\"},\"child\":[]}]})(props);\n};\nexport function FaSpider (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M158.4 32.6c4.8-12.4-1.4-26.3-13.8-31s-26.3 1.4-31 13.8L81.1 100c-7.9 20.7-3 44.1 12.7 59.7l57.4 57.4L70.8 190.3c-2.4-.8-4.3-2.7-5.1-5.1L46.8 128.4C42.6 115.8 29 109 16.4 113.2S-3 131 1.2 143.6l18.9 56.8c5.6 16.7 18.7 29.8 35.4 35.4L116.1 256 55.6 276.2c-16.7 5.6-29.8 18.7-35.4 35.4L1.2 368.4C-3 381 3.8 394.6 16.4 398.8s26.2-2.6 30.4-15.2l18.9-56.8c.8-2.4 2.7-4.3 5.1-5.1l80.4-26.8L93.7 352.3C78.1 368 73.1 391.4 81.1 412l32.5 84.6c4.8 12.4 18.6 18.5 31 13.8s18.5-18.6 13.8-31l-32.5-84.6c-1.1-3-.4-6.3 1.8-8.5L160 353.9c1 52.1 43.6 94.1 96 94.1s95-41.9 96-94.1l32.3 32.3c2.2 2.2 2.9 5.6 1.8 8.5l-32.5 84.6c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8L430.9 412c7.9-20.7 3-44.1-12.7-59.7l-57.4-57.4 80.4 26.8c2.4 .8 4.3 2.7 5.1 5.1l18.9 56.8c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-18.9-56.8c-5.6-16.7-18.7-29.8-35.4-35.4L395.9 256l60.5-20.2c16.7-5.6 29.8-18.7 35.4-35.4l18.9-56.8c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-18.9 56.8c-.8 2.4-2.7 4.3-5.1 5.1l-80.4 26.8 57.4-57.4c15.6-15.6 20.6-39 12.7-59.7L398.4 15.4C393.6 3 379.8-3.2 367.4 1.6s-18.5 18.6-13.8 31l32.5 84.6c1.1 3 .4 6.3-1.8 8.5L336 174.1l0-14.1c0-31.8-18.6-59.3-45.5-72.2c-9.1-4.4-18.5 3.3-18.5 13.4l0 10.8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-10.8c0-10.1-9.4-17.7-18.5-13.4C194.6 100.7 176 128.2 176 160l0 14.1-48.3-48.3c-2.2-2.2-2.9-5.6-1.8-8.5l32.5-84.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSpinner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z\"},\"child\":[]}]})(props);\n};\nexport function FaSplotch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208.5 62.3l28.1-36.9C248.8 9.4 267.8 0 288 0c28.5 0 53.6 18.7 61.8 46l17.8 59.4c10.3 34.4 36.1 62 69.8 74.6l39.8 14.9c20.9 7.9 34.8 27.9 34.8 50.2c0 16.9-7.9 32.8-21.5 42.9l-67.3 50.5c-24.3 18.2-37.2 47.9-33.8 78.1l2.5 22.7c4.3 38.7-26 72.6-65 72.6c-14.8 0-29.3-5.1-40.8-14.3l-55.4-44.3c-4.5-3.6-9.3-6.7-14.5-9.2c-15.8-7.9-33.7-10.4-51-7.3L82.4 451.9C47.8 458.2 16 431.6 16 396.5c0-13.2 4.7-26 13.1-36.2l11.2-13.4c14.6-17.4 22.6-39.4 22.6-62.1c0-18.8-5.5-37.2-15.8-53L8.8 173.5C3.1 164.7 0 154.4 0 143.9c0-33.4 30.1-58.8 63-53.2l51.3 8.7c35.9 6.1 72.2-8.2 94.2-37.1z\"},\"child\":[]}]})(props);\n};\nexport function FaSpoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8C224 80 320 0 416 0c53 0 96 43 96 96c0 96-80 192-160.2 192c-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSprayCanSparkles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32l0 96 128 0 0-96c0-17.7-14.3-32-32-32L128 0C110.3 0 96 14.3 96 32zm0 128c-53 0-96 43-96 96L0 464c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-208c0-53-43-96-96-96L96 160zm64 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM384 48c0-1.4-1-3-2.2-3.6L352 32 339.6 2.2C339 1 337.4 0 336 0s-3 1-3.6 2.2L320 32 290.2 44.4C289 45 288 46.6 288 48c0 1.4 1 3 2.2 3.6L320 64l12.4 29.8C333 95 334.6 96 336 96s3-1 3.6-2.2L352 64l29.8-12.4C383 51 384 49.4 384 48zm76.4 45.8C461 95 462.6 96 464 96s3-1 3.6-2.2L480 64l29.8-12.4C511 51 512 49.4 512 48c0-1.4-1-3-2.2-3.6L480 32 467.6 2.2C467 1 465.4 0 464 0s-3 1-3.6 2.2L448 32 418.2 44.4C417 45 416 46.6 416 48c0 1.4 1 3 2.2 3.6L448 64l12.4 29.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L448 224l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L448 256l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 256l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6c0-1.4-1-3-2.2-3.6L480 224l-12.4-29.8zM448 144c0-1.4-1-3-2.2-3.6L416 128 403.6 98.2C403 97 401.4 96 400 96s-3 1-3.6 2.2L384 128l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L384 160l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L416 160l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSprayCan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0l64 0c17.7 0 32 14.3 32 32l0 96L96 128l0-96c0-17.7 14.3-32 32-32zM0 256c0-53 43-96 96-96l128 0c53 0 96 43 96 96l0 208c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 256zm240 80A80 80 0 1 0 80 336a80 80 0 1 0 160 0zM256 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM448 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareArrowUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24l94.1 0L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135L288 328c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24l-152 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareCaretDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareCaretLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareCaretRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareCaretUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareEnvelope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM218 271.7L64.2 172.4C66 156.4 79.5 144 96 144l256 0c16.5 0 30 12.4 31.8 28.4L230 271.7c-1.8 1.2-3.9 1.8-6 1.8s-4.2-.6-6-1.8zm29.4 26.9L384 210.4 384 336c0 17.7-14.3 32-32 32L96 368c-17.7 0-32-14.3-32-32l0-125.6 136.6 88.2c7 4.5 15.1 6.9 23.4 6.9s16.4-2.4 23.4-6.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0H512V512H0V0z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareH (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM336 152l0 104 0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-80-128 0 0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80 128 0 0-80c0-13.3 10.7-24 24-24s24 10.7 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 200l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareNfi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm75.7 64.6C68.8 162.5 64 168.8 64 176l0 160c0 8.8 7.2 16 16 16s16-7.2 16-16l0-102.2 66.3 110.5c3.7 6.2 11.1 9.1 18 7.2s11.7-8.2 11.7-15.4l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 102.2L93.7 167.8c-3.7-6.2-11.1-9.1-18-7.2zM224 176l0 64 0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-32 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zm160 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 8.8 7.2 16 16 16s16-7.2 16-16l0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareParking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM192 256l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0 0 64zm48 64l-48 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64 0-120c0-22.1 17.9-40 40-40l72 0c53 0 96 43 96 96s-43 96-96 96z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarePen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-21.4 21.4-71-71 21.4-21.4c15.6-15.6 40.9-15.6 56.6 0zM119.9 289L225.1 183.8l71 71L190.9 359.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarePersonConfined (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm96 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm80 104c0-30.9 25.1-56 56-56s56 25.1 56 56l0 102.1c0 36.4-29.5 65.9-65.9 65.9c-17.5 0-34.3-6.9-46.6-19.3L184.8 342l-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9L240 306.7l0-58.7z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarePhoneFlip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zm-90.7 96.7c-9.7-2.6-19.9 2.3-23.7 11.6l-20 48c-3.4 8.2-1 17.6 5.8 23.2L280 231.7c-16.6 35.2-45.1 63.7-80.3 80.3l-20.2-24.7c-5.6-6.8-15-9.2-23.2-5.8l-48 20c-9.3 3.9-14.2 14-11.6 23.7l12 44C111.1 378 119 384 128 384c123.7 0 224-100.3 224-224c0-9-6-16.9-14.7-19.3l-44-12z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarePhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm90.7 96.7c9.7-2.6 19.9 2.3 23.7 11.6l20 48c3.4 8.2 1 17.6-5.8 23.2L168 231.7c16.6 35.2 45.1 63.7 80.3 80.3l20.2-24.7c5.6-6.8 15-9.2 23.2-5.8l48 20c9.3 3.9 14.2 14 11.6 23.7l-12 44C336.9 378 329 384 320 384C196.3 384 96 283.7 96 160c0-9 6-16.9 14.7-19.3l44-12z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarePollHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 160c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32zm64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0zM192 352c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarePollVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 192c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zm64-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192zM320 288c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareRootVariable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M282.6 78.1c8-27.3 33-46.1 61.4-46.1l200 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L344 96 238.7 457c-3.6 12.3-14.1 21.2-26.8 22.8s-25.1-4.6-31.5-15.6L77.6 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l45.6 0c22.8 0 43.8 12.1 55.3 31.8l65.2 111.8L282.6 78.1zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0L480 274.7l41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 320l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 365.3l-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 320l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareRss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 136c0-13.3 10.7-24 24-24c137 0 248 111 248 248c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24c83.9 0 152 68.1 152 152c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104c-13.3 0-24-10.7-24-24zm0 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareShareNodes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM384 160c0 35.3-28.7 64-64 64c-15.4 0-29.5-5.4-40.6-14.5L194.1 256l85.3 46.5c11-9.1 25.2-14.5 40.6-14.5c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L174.5 300c-11.7 12.3-28.2 20-46.5 20c-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3c0-35.3 28.7-64 64-64s64 28.7 64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM160 160c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l40 40-71 71C114 302 112 306.9 112 312s2 10 5.7 13.7l36.7 36.7c3.6 3.6 8.5 5.7 13.7 5.7s10-2 13.7-5.7l71-71 40 40c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8l0-144c0-8.8-7.2-16-16-16l-144 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareVirus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM223.8 93.7c13.3 0 24 10.7 24 24c0 29.3 35.4 43.9 56.1 23.2c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.7 20.7-6 56.1 23.2 56.1c13.3 0 24 10.7 24 24s-10.7 24-24 24c-29.3 0-43.9 35.4-23.2 56.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.7-20.7-56.1-6-56.1 23.2c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-29.3-35.4-43.9-56.1-23.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.7-20.7 6-56.1-23.2-56.1c-13.3 0-24-10.7-24-24s10.7-24 24-24c29.3 0 43.9-35.4 23.2-56.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.7 20.7 56.1 6 56.1-23.2c0-13.3 10.7-24 24-24zM192 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm88 32a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm79 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z\"},\"child\":[]}]})(props);\n};\nexport function FaStaffSnake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M222.6 43.2l-.1 4.8L288 48c53 0 96 43 96 96s-43 96-96 96l-40 0 0-80 40 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-40 0-28 0-4.5 144 40.5 0c53 0 96 43 96 96s-43 96-96 96l-16 0 0-80 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-43 0-3.1 99.5L208.5 495l0 1c-.3 8.9-7.6 16-16.5 16s-16.2-7.1-16.5-16l0-1-1-31L136 464c-22.1 0-40-17.9-40-40s17.9-40 40-40l36 0-1-32-19 0c-53 0-96-43-96-96c0-47.6 34.6-87.1 80-94.7l0 94.7c0 8.8 7.2 16 16 16l16.5 0L164 128l-28 0-13.4 0c-9 18.9-28.3 32-50.6 32l-16 0c-30.9 0-56-25.1-56-56S25.1 48 56 48l8 0 8 0 89.5 0-.1-4.8L161 32c0-.7 0-1.3 0-1.9c.5-16.6 14.1-30 31-30s30.5 13.4 31 30c0 .6 0 1.3 0 1.9l-.4 11.2zM64 112a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaStairs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaStamp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M312 201.8c0-17.4 9.2-33.2 19.9-47C344.5 138.5 352 118.1 352 96c0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8c10.7 13.8 19.9 29.6 19.9 47c0 29.9-24.3 54.2-54.2 54.2L112 256C50.1 256 0 306.1 0 368c0 20.9 13.4 38.7 32 45.3L32 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-50.7c18.6-6.6 32-24.4 32-45.3c0-61.9-50.1-112-112-112l-33.8 0c-29.9 0-54.2-24.3-54.2-54.2zM416 416l0 32L96 448l0-32 320 0z\"},\"child\":[]}]})(props);\n};\nexport function FaStapler (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 299.3l0 4.7 0 128c0 26.5-21.5 48-48 48l-80 0-64 0L64 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0 0-48L96 368c-17.7 0-32-14.3-32-32l0-116.6L33.8 214C14.2 210.5 0 193.5 0 173.7c0-8.9 2.9-17.5 8.2-24.6l35.6-47.5C76.7 57.8 128.2 32 182.9 32c27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304l0-16L128 230.9l0 73.1 320 0z\"},\"child\":[]}]})(props);\n};\nexport function FaStarAndCrescent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256C0 114.6 114.6 0 256 0c33 0 64.6 6.3 93.6 17.7c7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5c-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5c7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C320.6 505.7 289 512 256 512C114.6 512 0 397.4 0 256zM375.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L261 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z\"},\"child\":[]}]})(props);\n};\nexport function FaStarHalfStroke (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 376.4l.1-.1 26.4 14.1 85.2 45.5-16.5-97.6-4.8-28.7 20.7-20.5 70.1-69.3-96.1-14.2-29.3-4.3-12.9-26.6L288.1 86.9l-.1 .3 0 289.2zm175.1 98.3c2 12-3 24.2-12.9 31.3s-23 8-33.8 2.3L288.1 439.8 159.8 508.3C149 514 135.9 513.1 126 506s-14.9-19.3-12.9-31.3L137.8 329 33.6 225.9c-8.6-8.5-11.7-21.2-7.9-32.7s13.7-19.9 25.7-21.7L195 150.3 259.4 18c5.4-11 16.5-18 28.8-18s23.4 7 28.8 18l64.3 132.3 143.6 21.2c12 1.8 22 10.2 25.7 21.7s.7 24.2-7.9 32.7L438.5 329l24.6 145.7z\"},\"child\":[]}]})(props);\n};\nexport function FaStarHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0c-12.2 .1-23.3 7-28.6 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3L288 439.8 288 0zM429.9 512c1.1 .1 2.1 .1 3.2 0l-3.2 0z\"},\"child\":[]}]})(props);\n};\nexport function FaStarOfDavid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M404.2 309.5L383.1 344l42.3 0-21.1-34.5zM371.4 256l-54-88-122.8 0-54 88 54 88 122.8 0 54-88zm65.7 0l53.4 87c3.6 5.9 5.5 12.7 5.5 19.6c0 20.7-16.8 37.4-37.4 37.4l-109.8 0-56.2 91.5C284.8 504.3 270.9 512 256 512s-28.8-7.7-36.6-20.5L163.3 400 53.4 400C32.8 400 16 383.2 16 362.6c0-6.9 1.9-13.7 5.5-19.6l53.4-87L21.5 169c-3.6-5.9-5.5-12.7-5.5-19.6C16 128.8 32.8 112 53.4 112l109.8 0 56.2-91.5C227.2 7.7 241.1 0 256 0s28.8 7.7 36.6 20.5L348.7 112l109.8 0c20.7 0 37.4 16.8 37.4 37.4c0 6.9-1.9 13.7-5.5 19.6l-53.4 87zm-54-88l21.1 34.5L425.4 168l-42.3 0zM283 112L256 68l-27 44 54 0zM128.9 168l-42.3 0 21.1 34.5L128.9 168zM107.8 309.5L86.6 344l42.3 0-21.1-34.5zM229 400l27 44 27-44-54 0z\"},\"child\":[]}]})(props);\n};\nexport function FaStarOfLife (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 140.9 122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7L352 256l122 70.4c15.3 8.8 20.6 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7L304 339.1 304 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-140.9L86 409.6c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7L160 256 38 185.6c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7C51.1 98.8 70.7 93.6 86 102.4l122 70.4L208 32z\"},\"child\":[]}]})(props);\n};\nexport function FaStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z\"},\"child\":[]}]})(props);\n};\nexport function FaSterlingSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4L48 224l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 44.5c0 17.4-4.7 34.5-13.7 49.4L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L88.5 416l.7-1.1C104.1 390 112 361.5 112 332.5l0-44.5 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-63.6z\"},\"child\":[]}]})(props);\n};\nexport function FaStethoscope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M142.4 21.9c5.6 16.8-3.5 34.9-20.2 40.5L96 71.1 96 192c0 53 43 96 96 96s96-43 96-96l0-120.9-26.1-8.7c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l26.1 8.7C334.4 19.1 352 43.5 352 71.1L352 192c0 77.2-54.6 141.6-127.3 156.7C231 404.6 278.4 448 336 448c61.9 0 112-50.1 112-112l0-70.7c-28.3-12.3-48-40.5-48-73.3c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 70.7c0 97.2-78.8 176-176 176c-92.9 0-168.9-71.9-175.5-163.1C87.2 334.2 32 269.6 32 192L32 71.1c0-27.5 17.6-52 43.8-60.7l26.1-8.7c16.8-5.6 34.9 3.5 40.5 20.2zM480 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaStop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z\"},\"child\":[]}]})(props);\n};\nexport function FaStopwatch20 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 34.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6L256 64l16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L176 0zM288 204c28.7 0 52 23.3 52 52l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-28.7 23.3-52 52-52zm-12 52l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-6.6-5.4-12-12-12s-12 5.4-12 12zM159.5 244c-5.4 0-10.2 3.5-11.9 8.6l-.6 1.7c-3.5 10.5-14.8 16.1-25.3 12.6s-16.1-14.8-12.6-25.3l.6-1.7c7.2-21.5 27.2-35.9 49.8-35.9c29 0 52.5 23.5 52.5 52.5l0 2.2c0 13.4-4.9 26.4-13.8 36.4l-39 43.9c-6.2 7-10 15.7-10.9 24.9l43.8 0c11 0 20 9 20 20s-9 20-20 20l-64 0c-11 0-20-9-20-20l0-15.7c0-20.6 7.5-40.4 21.2-55.8l39-43.9c2.4-2.7 3.7-6.2 3.7-9.8l0-2.2c0-6.9-5.6-12.5-12.5-12.5z\"},\"child\":[]}]})(props);\n};\nexport function FaStopwatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 34.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6L256 64l16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L224 0 176 0zm72 192l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-128c0-13.3 10.7-24 24-24s24 10.7 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaStoreSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.8-68 0-17.1 0-131.4c-4 1-8 1.8-12.3 2.3c0 0 0 0-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3l0 100.3L301.2 210.7c7-4.4 13.3-9.7 18.8-15.7c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4L522.3 13.1C517.2 5 508.1 0 498.4 0L141.6 0c-9.7 0-18.8 5-23.9 13.1l-22.7 36L38.8 5.1zm73.4 218.1c4 .5 8.1 .8 12.1 .8c11 0 21.4-2 31-5.6L48.9 134.5c-6.1 40.6 19.5 82.8 63.3 88.7zM160 384l0-133.4c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3L96 384l0 64c0 35.3 28.7 64 64 64l320 0c12.9 0 24.8-3.8 34.9-10.3L365.5 384 160 384z\"},\"child\":[]}]})(props);\n};\nexport function FaStore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M547.6 103.8L490.3 13.1C485.2 5 476.1 0 466.4 0L109.6 0C99.9 0 90.8 5 85.7 13.1L28.3 103.8c-29.6 46.8-3.4 111.9 51.9 119.4c4 .5 8.1 .8 12.1 .8c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4zM499.7 254.9c0 0 0 0-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3L448 384l-320 0 0-133.4c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3L64 384l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64 0-131.4c-4 1-8 1.8-12.3 2.3z\"},\"child\":[]}]})(props);\n};\nexport function FaStreetView (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 64A64 64 0 1 0 192 64a64 64 0 1 0 128 0zm-96 96c-35.3 0-64 28.7-64 64l0 48c0 17.7 14.3 32 32 32l1.8 0 11.1 99.5c1.8 16.2 15.5 28.5 31.8 28.5l38.7 0c16.3 0 30-12.3 31.8-28.5L318.2 304l1.8 0c17.7 0 32-14.3 32-32l0-48c0-35.3-28.7-64-64-64l-64 0zM132.3 394.2c13-2.4 21.7-14.9 19.3-27.9s-14.9-21.7-27.9-19.3c-32.4 5.9-60.9 14.2-82 24.8c-10.5 5.3-20.3 11.7-27.8 19.6C6.4 399.5 0 410.5 0 424c0 21.4 15.5 36.1 29.1 45c14.7 9.6 34.3 17.3 56.4 23.4C130.2 504.7 190.4 512 256 512s125.8-7.3 170.4-19.6c22.1-6.1 41.8-13.8 56.4-23.4c13.7-8.9 29.1-23.6 29.1-45c0-13.5-6.4-24.5-14-32.6c-7.5-7.9-17.3-14.3-27.8-19.6c-21-10.6-49.5-18.9-82-24.8c-13-2.4-25.5 6.3-27.9 19.3s6.3 25.5 19.3 27.9c30.2 5.5 53.7 12.8 69 20.5c3.2 1.6 5.8 3.1 7.9 4.5c3.6 2.4 3.6 7.2 0 9.6c-8.8 5.7-23.1 11.8-43 17.3C374.3 457 318.5 464 256 464s-118.3-7-157.7-17.9c-19.9-5.5-34.2-11.6-43-17.3c-3.6-2.4-3.6-7.2 0-9.6c2.1-1.4 4.8-2.9 7.9-4.5c15.3-7.7 38.8-14.9 69-20.5z\"},\"child\":[]}]})(props);\n};\nexport function FaStrikethrough (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1 .6-.2 1.1-.2 1.7c-2.8 23.9 .5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-209.9 0-.4-.1-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9 337.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3c0 0 0 0 0 0s0 0 0 0c24.9 8.5 63.6 21.7 87.6 25.6c0 0 0 0 0 0l.2 0c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1l-75.7 0c7 5.6 11.4 11.2 13.9 17.2z\"},\"child\":[]}]})(props);\n};\nexport function FaStroopwafel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM312.6 63.7c-6.2-6.2-16.4-6.2-22.6 0L256 97.6 222.1 63.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l33.9 33.9-45.3 45.3-56.6-56.6c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l56.6 56.6-45.3 45.3L86.3 199.4c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L97.6 256 63.7 289.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 45.3 45.3-56.6 56.6c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56.6-56.6 45.3 45.3-33.9 33.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L256 414.4l33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 45.3-45.3 56.6 56.6c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-56.6-56.6 45.3-45.3 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L414.4 256l33.9-33.9c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-33.9 33.9-45.3-45.3 56.6-56.6c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-56.6 56.6-45.3-45.3 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6zM142.9 256l45.3-45.3L233.4 256l-45.3 45.3L142.9 256zm67.9 67.9L256 278.6l45.3 45.3L256 369.1l-45.3-45.3zM278.6 256l45.3-45.3L369.1 256l-45.3 45.3L278.6 256zm22.6-67.9L256 233.4l-45.3-45.3L256 142.9l45.3 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSubscript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l15.3 0 89.6 128L47.3 384 32 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0L215.1 256l89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64L32 64zM480 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 361.5 404.3 368 416 368l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaSuitcaseMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40 0 32 0 352 256 0 0-352 0-32 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM96 96L64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l32 0L96 96zM416 480l32 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-32 0 0 384zM224 208c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaSuitcaseRolling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 56c0-4.4 3.6-8 8-8l80 0c4.4 0 8 3.6 8 8l0 72-96 0 0-72zm176 72l-32 0 0-72c0-30.9-25.1-56-56-56L152 0C121.1 0 96 25.1 96 56l0 72-32 0c-35.3 0-64 28.7-64 64L0 416c0 35.3 28.7 64 64 64c0 17.7 14.3 32 32 32s32-14.3 32-32l128 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64zM112 224l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 128l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaSuitcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 56l0 40 160 0 0-40c0-4.4-3.6-8-8-8L184 48c-4.4 0-8 3.6-8 8zM128 96l0-40c0-30.9 25.1-56 56-56L328 0c30.9 0 56 25.1 56 56l0 40 0 32 0 352-256 0 0-352 0-32zM64 96l32 0 0 384-32 0c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64zM448 480l-32 0 0-384 32 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaSunPlantWilt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 0c-6.3 0-12 3.7-14.6 9.5L120.6 64.9 63.9 43.2c-5.9-2.3-12.6-.8-17 3.6s-5.9 11.1-3.6 17l21.7 56.7L9.5 145.4C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8L43.2 256.1c-2.3 5.9-.8 12.6 3.6 17s11.1 5.9 17 3.6l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.7 21.7c5.9 2.3 12.6 .8 17-3.6s5.9-11.1 3.6-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7c2.3-5.9 .8-12.6-3.6-17s-11.1-5.9-17-3.6L199.4 64.9 174.6 9.5C172 3.7 166.3 0 160 0zm0 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm312 16c0-17.7 14.3-32 32-32s32 14.3 32 32l0 53.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C624 318 640 290.7 640 274c0-21.5-9.2-37-24-44.6l0-53.4c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 22.7c-9.8-4.3-20.6-6.7-32-6.7c-44.2 0-80 35.8-80 80l0 21.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C400 382 416 354.7 416 338c0-21.5-9.2-37-24-44.6l0-21.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 8 0 168L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-104 0 0-168 0-8 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaSun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM160 256a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zm224 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSuperscript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 73.5 404.3 80 416 80l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128zM32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l15.3 0 89.6 128L47.3 384 32 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0L215.1 256l89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64L32 64z\"},\"child\":[]}]})(props);\n};\nexport function FaSwatchbook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32C0 14.3 14.3 0 32 0L160 0c17.7 0 32 14.3 32 32l0 384c0 53-43 96-96 96s-96-43-96-96L0 32zM223.6 425.9c.3-3.3 .4-6.6 .4-9.9l0-262 75.4-75.4c12.5-12.5 32.8-12.5 45.3 0l90.5 90.5c12.5 12.5 12.5 32.8 0 45.3L223.6 425.9zM182.8 512l192-192L480 320c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-297.2 0zM128 64L64 64l0 64 64 0 0-64zM64 192l0 64 64 0 0-64-64 0zM96 440a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaSynagogue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M309.8 3.7c5.9-4.9 14.6-4.9 20.5 0l121 100.8C469.5 119.7 480 142.2 480 166l0 114.1L480 512l-16 0-112 0 0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96-112 0-16 0 0-231.9L160 166c0-23.7 10.5-46.3 28.8-61.5L309.8 3.7zM512 512l0-267.5 28.1-31.2c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3l63.8 70.9c7.9 8.8 12.3 20.3 12.3 32.1L640 448c0 35.3-28.7 64-64 64l-64 0zM128 244.5L128 512l-64 0c-35.3 0-64-28.7-64-64L0 316.3c0-11.9 4.4-23.3 12.3-32.1l63.8-70.9c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3L128 244.5zM327 124.3c-3.1-5.4-10.9-5.4-13.9 0l-15.9 28.1-32.3-.3c-6.2-.1-10.1 6.7-7 12.1L274.3 192l-16.4 27.8c-3.2 5.4 .7 12.1 7 12.1l32.3-.3L313 259.7c3.1 5.4 10.9 5.4 13.9 0l15.9-28.1 32.3 .3c6.2 .1 10.1-6.7 7-12.1L365.7 192l16.4-27.8c3.2-5.4-.7-12.1-7-12.1l-32.3 .3L327 124.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSyringe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M441 7l32 32 32 32c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15L417.9 128l55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72L295 73c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l55 55L422.1 56 407 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0zM210.3 155.7l61.1-61.1c.3 .3 .6 .7 1 1l16 16 56 56 56 56 16 16c.3 .3 .6 .6 1 1l-191 191c-10.5 10.5-24.7 16.4-39.6 16.4l-88.8 0L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57 0-88.8c0-14.9 5.9-29.1 16.4-39.6l43.3-43.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57z\"},\"child\":[]}]})(props);\n};\nexport function FaT (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l128 0 0 352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaTableCellsColumnLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 65.1c-37.8 5.4-69.4 29.6-85.2 62.9L360 224l0 64 56 0 0 8.6c-19.1 11.1-32 31.7-32 55.4l-24 0 0 64 24 0 0 64L64 480c-35.3 0-64-28.7-64-64L0 96zm208 0l0 64 88 0 0-64-88 0zm240 0l-88 0 0 64 88 0 0-64zM208 224l0 64 88 0 0-64-88 0zm0 128l0 64 88 0 0-64-88 0zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaTableCellsLarge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96l0 128-160 0 0-128 160 0zm0 192l0 128-160 0 0-128 160 0zM224 224L64 224 64 96l160 0 0 128zM64 288l160 0 0 128L64 416l0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"},\"child\":[]}]})(props);\n};\nexport function FaTableCellsRowLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 65.1c-37.8 5.4-69.4 29.6-85.2 62.9L360 224l0 64 56 0 0 8.6c-19.1 11.1-32 31.7-32 55.4l-24 0 0 64 24 0 0 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 224l0 64 88 0 0-64-88 0zm232 0l-88 0 0 64 88 0 0-64zM152 352l-88 0 0 64 88 0 0-64zm56 0l0 64 88 0 0-64-88 0zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaTableCellsRowUnlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 65.1c-37.8 5.4-69.4 29.6-85.2 62.9L360 224l0 64 56 0 0 8.6c-19.1 11.1-32 31.7-32 55.4l-24 0 0 64 24 0 0 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 224l0 64 88 0 0-64-88 0zm232 0l-88 0 0 64 88 0 0-64zM152 352l-88 0 0 64 88 0 0-64zm56 0l0 64 88 0 0-64-88 0zm288-80l0 48 32 0 32 0 48 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48c0-44.2 35.8-80 80-80s80 35.8 80 80l-48 0c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaTableCells (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 64l0 64-88 0 0-64 88 0zm56 0l88 0 0 64-88 0 0-64zm240 0l0 64-88 0 0-64 88 0zM64 224l88 0 0 64-88 0 0-64zm232 0l0 64-88 0 0-64 88 0zm64 0l88 0 0 64-88 0 0-64zM152 352l0 64-88 0 0-64 88 0zm56 0l88 0 0 64-88 0 0-64zm240 0l0 64-88 0 0-64 88 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTableColumns (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 64l0 256 160 0 0-256L64 160zm384 0l-160 0 0 256 160 0 0-256z\"},\"child\":[]}]})(props);\n};\nexport function FaTableList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 0l0 64 64 0 0-64L64 96zm384 0L192 96l0 64 256 0 0-64zM64 224l0 64 64 0 0-64-64 0zm384 0l-256 0 0 64 256 0 0-64zM64 352l0 64 64 0 0-64-64 0zm384 0l-256 0 0 64 256 0 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTableTennisPaddleBall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 288c-50.1 0-93.6 28.8-114.6 70.8L68.9 126.3l.6-.6 60.1-60.1c87.5-87.5 229.3-87.5 316.8 0c67.1 67.1 82.7 166.3 46.8 248.3C471.8 297.6 445 288 416 288zM49.3 151.9L290.1 392.7c-1.4 7.5-2.1 15.3-2.1 23.3c0 23.2 6.2 44.9 16.9 63.7c-3 .2-6.1 .3-9.2 .3l-2.7 0c-33.9 0-66.5-13.5-90.5-37.5l-9.8-9.8c-13.1-13.1-34.6-12.4-46.8 1.7L88.2 501c-5.8 6.7-14.2 10.7-23 11s-17.5-3.1-23.8-9.4l-32-32C3.1 464.3-.3 455.7 0 446.9s4.3-17.2 11-23l66.6-57.7c14-12.2 14.8-33.7 1.7-46.8l-9.8-9.8C45.5 285.5 32 252.9 32 219l0-2.7c0-22.8 6.1-44.9 17.3-64.3zM416 320a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaTable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 256l0-96 160 0 0 96L64 256zm0 64l160 0 0 96L64 416l0-96zm224 96l0-96 160 0 0 96-160 0zM448 256l-160 0 0-96 160 0 0 96zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"},\"child\":[]}]})(props);\n};\nexport function FaTabletButton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM224 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTabletScreenButton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM256 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 64L64 64l0 320 320 0 0-320z\"},\"child\":[]}]})(props);\n};\nexport function FaTablet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 432l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaTablets (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M614.3 247c-5.2 7.9-16.2 8.5-22.9 1.8L391.2 48.6c-6.7-6.7-6.2-17.8 1.8-22.9C418.1 9.4 447.9 0 480 0c88.4 0 160 71.6 160 160c0 32.1-9.4 61.9-25.7 87zM567 294.3c-25 16.3-54.9 25.7-87 25.7c-88.4 0-160-71.6-160-160c0-32.1 9.4-61.9 25.7-87c5.2-7.9 16.2-8.5 22.9-1.8L568.8 271.4c6.7 6.7 6.2 17.8-1.8 22.9zM301.5 368c9.5 0 16.9 8.2 15 17.5C301.1 457.8 236.9 512 160 512S18.9 457.8 3.5 385.5c-2-9.3 5.5-17.5 15-17.5l283.1 0zm0-32L18.5 336c-9.5 0-16.9-8.2-15-17.5C18.9 246.2 83.1 192 160 192s141.1 54.2 156.5 126.5c2 9.3-5.5 17.5-15 17.5z\"},\"child\":[]}]})(props);\n};\nexport function FaTachographDigital (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l512 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm32 64l224 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 256c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM64 368c0-8.8 7.2-16 16-16l256 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16zm320 0c0-8.8 7.2-16 16-16l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16zM80 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 80L0 229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7L48 32C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTags (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M345 39.1L472.8 168.4c52.4 53 52.4 138.2 0 191.2L360.8 472.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L438.6 325.9c33.9-34.3 33.9-89.4 0-123.7L310.9 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM0 229.5L0 80C0 53.5 21.5 32 48 32l149.5 0c17 0 33.3 6.7 45.3 18.7l168 168c25 25 25 65.5 0 90.5L277.3 442.7c-25 25-65.5 25-90.5 0l-168-168C6.7 262.7 0 246.5 0 229.5zM144 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.8 416c41.5-40.7 67.2-97.3 67.2-160C448 132.3 347.7 32 224 32S0 132.3 0 256S100.3 480 224 480l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-163.2 0zM224 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm64 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTarpDroplet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 160c-35.3 0-64-26.9-64-60c0-24 33.7-70.1 52.2-93.5c6.1-7.7 17.5-7.7 23.6 0C318.3 29.9 352 76 352 100c0 33.1-28.7 60-64 60zM64 128l133.5 0c13.2 37.3 48.7 64 90.5 64s77.4-26.7 90.5-64L512 128c35.3 0 64 28.7 64 64l0 160-128 0c-17.7 0-32 14.3-32 32l0 128L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64zM448 512l0-128 128 0L448 512zM96 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaTarp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M576 128c0-35.3-28.7-64-64-64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l352 0 0-128c0-17.7 14.3-32 32-32l128 0 0-160zM448 448L576 320l-128 0 0 128zM96 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTaxi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0c-17.7 0-32 14.3-32 32l0 32 0 .2c-38.6 2.2-72.3 27.3-85.2 64.1L39.6 228.8C16.4 238.4 0 261.3 0 288L0 432l0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 320 0 0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 0-144c0-26.7-16.4-49.6-39.6-59.2L437.2 128.3c-12.9-36.8-46.6-62-85.2-64.1l0-.2 0-32c0-17.7-14.3-32-32-32L192 0zM165.4 128l181.2 0c13.6 0 25.7 8.6 30.2 21.4L402.9 224l-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zM96 288a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm288 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTeethOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32C43 32 0 75 0 128l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-53-43-96-96-96L96 32zM224 96c26.5 0 48 21.5 48 48l0 56c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-56c0-26.5 21.5-48 48-48zm80 48c0-26.5 21.5-48 48-48s48 21.5 48 48l0 56c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-56zM96 128c26.5 0 48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24c0-26.5 21.5-48 48-48zm336 48c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zM96 480l384 0c53 0 96-43 96-96l0-32c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 32c0 53 43 96 96 96zm0-64c-26.5 0-48-21.5-48-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48zm80-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48s-48-21.5-48-48zm176 48c-26.5 0-48-21.5-48-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48zm80-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48s-48-21.5-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaTeeth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 128C0 75 43 32 96 32l384 0c53 0 96 43 96 96l0 256c0 53-43 96-96 96L96 480c-53 0-96-43-96-96L0 128zm176 48l0 56c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-56c0-26.5-21.5-48-48-48s-48 21.5-48 48zm176-48c-26.5 0-48 21.5-48 48l0 56c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-56c0-26.5-21.5-48-48-48zM48 208l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zM96 384c26.5 0 48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24c0 26.5 21.5 48 48 48zm80-48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24zm176 48c26.5 0 48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24c0 26.5 21.5 48 48 48zm80-176l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zm48 176c26.5 0 48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24c0 26.5 21.5 48 48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5L128 112zM176 0C114.1 0 64 50.1 64 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L288 112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3l0-50.7c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 50.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zm336-64l-32 0 0-288c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 288-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5L128 112zM176 0C114.1 0 64 50.1 64 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L288 112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3L192 112c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 210.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zM480 160l32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-288z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureEmpty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C233.8 332.6 240 349.5 240 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5L112 112zM160 0C98.1 0 48 50.2 48 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C27.2 304.2 16 334.8 16 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L272 112C272 50.2 221.9 0 160 0zm0 416a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3L144 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 210.7c18.6 6.6 32 24.4 32 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3L144 208c0-8.8 7.2-16 16-16s16 7.2 16 16l0 114.7c18.6 6.6 32 24.4 32 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 128A96 96 0 1 0 416 0a96 96 0 1 0 0 192zM96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5L96 112zM144 0C82.1 0 32 50.2 32 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L256 112C256 50.2 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3L160 112c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 210.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureLow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 96a96 96 0 1 1 192 0A96 96 0 1 1 320 96zM144 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C70.2 332.6 64 349.5 64 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L192 112c0-26.5-21.5-48-48-48zM32 112C32 50.2 82.1 0 144 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S0 447.5 0 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L32 112zM192 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3l0-50.7c0-8.8 7.2-16 16-16s16 7.2 16 16l0 50.7c18.6 6.6 32 24.4 32 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureQuarter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3l0-50.7c0-8.8 7.2-16 16-16s16 7.2 16 16l0 50.7c18.6 6.6 32 24.4 32 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureThreeQuarters (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3L144 144c0-8.8 7.2-16 16-16s16 7.2 16 16l0 178.7c18.6 6.6 32 24.4 32 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaTengeSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM0 192c0-17.7 14.3-32 32-32l160 0 160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0 0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224L32 224c-17.7 0-32-14.3-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaTentArrowDownToLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M241.8 111.9c8.9 9.9 8.1 25-1.8 33.9l-80 72c-9.1 8.2-23 8.2-32.1 0l-80-72c-9.9-8.9-10.7-24-1.8-33.9s24-10.7 33.9-1.8l39.9 36L120 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 122.1 39.9-36c9.9-8.9 25-8.1 33.9 1.8zm122.8 22.6c11.5-8.7 27.3-8.7 38.8 0l168 128c6.6 5 11 12.5 12.3 20.7l24 160 .7 4.7c17.5 .2 31.6 14.4 31.6 32c0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l127.6 0 .7-4.7 24-160c1.2-8.2 5.6-15.7 12.3-20.7l168-128zM384 448l80 0L402.7 325.5c-1.7-3.4-5.1-5.5-8.8-5.5c-5.5 0-9.9 4.4-9.9 9.9L384 448z\"},\"child\":[]}]})(props);\n};\nexport function FaTentArrowLeftRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488.1 6.2c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9L489.5 72 86.5 72l33.5-30.2c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120l402.9 0-33.5 30.2c-9.9 8.9-10.7 24-1.8 33.9s24 10.7 33.9 1.8l80-72c5.1-4.6 7.9-11 7.9-17.8s-2.9-13.3-7.9-17.8l-80-72zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"},\"child\":[]}]})(props);\n};\nexport function FaTentArrowTurnLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120.1 41.8c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120 456 120c39.8 0 72 32.2 72 72l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-66.3-53.7-120-120-120L86.5 72l33.5-30.2zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"},\"child\":[]}]})(props);\n};\nexport function FaTentArrowsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M209.8 111.9c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L136 24c0-13.3-10.7-24-24-24S88 10.7 88 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zm352 0c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L488 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"},\"child\":[]}]})(props);\n};\nexport function FaTent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M269.4 6C280.5-2 295.5-2 306.6 6l224 160c7.4 5.3 12.2 13.5 13.2 22.5l32 288c1 9-1.9 18.1-8 24.9s-14.7 10.7-23.8 10.7l-80 0-28.2 0c-12.1 0-23.2-6.8-28.6-17.7L306.7 293.5c-1.7-3.4-5.1-5.5-8.8-5.5c-5.5 0-9.9 4.4-9.9 9.9L288 480c0 17.7-14.3 32-32 32l-16 0L32 512c-9.1 0-17.8-3.9-23.8-10.7s-9-15.8-8-24.9l32-288c1-9 5.8-17.2 13.2-22.5L269.4 6z\"},\"child\":[]}]})(props);\n};\nexport function FaTents (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M396.6 6.5L235.8 129.1c9.6 1.8 18.9 5.8 27 12l168 128c13.2 10.1 22 24.9 24.5 41.4l6.2 41.5L608 352c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128c-11.5-8.7-27.3-8.7-38.8 0zm-153.2 160c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S22.7 512 32 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"},\"child\":[]}]})(props);\n};\nexport function FaTerminal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.4 86.6C-3.1 74.1-3.1 53.9 9.4 41.4s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L178.7 256 9.4 86.6zM256 416l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaTextHeight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 128l0-32 64 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320 64 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-26.5-21.5-48-48-48L160 32 48 32C21.5 32 0 53.5 0 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32zM502.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 192-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0 0-192 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTextSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96 503 96 497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32L376.1 32l-.3 0L204.5 32c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96l116.7 0L301.3 210.8l-94.5-74.1zM243.3 416L192 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-42.2 0 17.6-62.1L272.9 311 243.3 416z\"},\"child\":[]}]})(props);\n};\nexport function FaTextWidth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 128l0-32 128 0 0 128-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-128 128 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-26.5-21.5-48-48-48L224 32 48 32C21.5 32 0 53.5 0 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32zM9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 192 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 32-192 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaThermometer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 382.1l0-88.8c0-14.9 5.9-29.1 16.4-39.6l27.3-27.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 45.5-45.5C355.2 10.9 381.4 0 408.8 0C465.8 0 512 46.2 512 103.2c0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4l-88.8 0L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l89-89z\"},\"child\":[]}]})(props);\n};\nexport function FaThumbsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.4 479.1c26-5.2 42.9-30.5 37.7-56.5l-2.3-11.4c-5.3-26.7-15.1-52.1-28.8-75.2l144 0c26.5 0 48-21.5 48-48c0-18.5-10.5-34.6-25.9-42.6C497 236.6 504 223.1 504 208c0-23.4-16.8-42.9-38.9-47.1c4.4-7.3 6.9-15.8 6.9-24.9c0-21.3-13.9-39.4-33.1-45.6c.7-3.3 1.1-6.8 1.1-10.4c0-26.5-21.5-48-48-48l-97.5 0c-19 0-37.5 5.6-53.3 16.1L202.7 73.8C176 91.6 160 121.6 160 153.7l0 38.3 0 48 0 24.9c0 29.2 13.3 56.7 36 75l7.4 5.9c26.5 21.2 44.6 51 51.2 84.2l2.3 11.4c5.2 26 30.5 42.9 56.5 37.7zM32 384l64 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32L32 96C14.3 96 0 110.3 0 128L0 352c0 17.7 14.3 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaThumbsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2l144 0c26.5 0 48 21.5 48 48c0 18.5-10.5 34.6-25.9 42.6C497 275.4 504 288.9 504 304c0 23.4-16.8 42.9-38.9 47.1c4.4 7.3 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48l-97.5 0c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3l0-38.3 0-48 0-24.9c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192l64 0c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32L0 224c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaThumbtackSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L481.4 352c9.8-.4 18.9-5.3 24.6-13.3c6-8.3 7.7-19.1 4.4-28.8l-1-3c-13.8-41.5-42.8-74.8-79.5-94.7L418.5 64 448 64c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l29.5 0-6.1 79.5L38.8 5.1zM324.9 352L177.1 235.6c-20.9 18.9-37.2 43.3-46.5 71.3l-1 3c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3l164.9 0zM288 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaThumbtack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C32 14.3 46.3 0 64 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-29.5 0 11.4 148.2c36.7 19.9 65.7 53.2 79.5 94.7l1 3c3.3 9.8 1.6 20.5-4.4 28.8s-15.7 13.3-26 13.3L32 352c-10.3 0-19.9-4.9-26-13.3s-7.7-19.1-4.4-28.8l1-3c13.8-41.5 42.8-74.8 79.5-94.7L93.5 64 64 64C46.3 64 32 49.7 32 32zM160 384l64 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaTicketSimple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 64c0 8.8-7.4 15.7-15.7 18.6C541.5 217.1 528 235 528 256s13.5 38.9 32.3 45.4c8.3 2.9 15.7 9.8 15.7 18.6l0 64c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64l0-64c0-8.8 7.4-15.7 15.7-18.6C34.5 294.9 48 277 48 256s-13.5-38.9-32.3-45.4C7.4 207.7 0 200.8 0 192l0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTicket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C28.7 64 0 92.7 0 128l0 64c0 8.8 7.4 15.7 15.7 18.6C34.5 217.1 48 235 48 256s-13.5 38.9-32.3 45.4C7.4 304.3 0 311.2 0 320l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-8.8-7.4-15.7-15.7-18.6C541.5 294.9 528 277 528 256s13.5-38.9 32.3-45.4c8.3-2.9 15.7-9.8 15.7-18.6l0-64c0-35.3-28.7-64-64-64L64 64zm64 112l0 160c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-160c0-8.8-7.2-16-16-16l-288 0c-8.8 0-16 7.2-16 16zM96 160c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-320 0c-17.7 0-32-14.3-32-32l0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaTimeline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32 97.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3L96 224l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0 54.7c-28.3 12.3-48 40.5-48 73.3c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-54.7 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-54.7c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3l0 54.7-320 0 0-54.7zM488 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM320 392a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaToggleOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 128c70.7 0 128 57.3 128 128s-57.3 128-128 128l-192 0c-70.7 0-128-57.3-128-128s57.3-128 128-128l192 0zM576 256c0-106-86-192-192-192L192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192zM192 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"},\"child\":[]}]})(props);\n};\nexport function FaToggleOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192s-86-192-192-192L192 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaToiletPaperSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-109.7-86C569.9 374 608 291.9 608 192C608 86 565 0 512 0s-96 86-96 192c0 49.1 9.2 93.9 24.4 127.9l-59-46.2c1.6-24.8 2.6-52 2.6-81.6c0-65.5 13.2-142.4 60.2-192L160 0c-24.8 0-47.4 18.8-64.4 49.6L38.8 5.1zM367.3 385.4L66.5 148.4C64.9 162.4 64 177 64 192c0 101.5-11.7 170.8-23 213.9c-5.1 19.4-10.7 39.9-20.5 57.7c-5.9 9.9-6.1 22.1-.4 32.2S36.5 512 48 512l237.9 0c22.3 0 45.4-12.1 55.4-36.1c7.4-17.7 17.5-47.2 26-90.6zM544 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64z\"},\"child\":[]}]})(props);\n};\nexport function FaToiletPaper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M444.2 0C397.2 49.6 384 126.5 384 192c0 158.8-27.3 247-42.7 283.9c-10 24-33.2 36.1-55.4 36.1L48 512c-11.5 0-22.2-6.2-27.8-16.2s-5.6-22.3 .4-32.2c9.8-17.7 15.4-38.2 20.5-57.7C52.3 362.8 64 293.5 64 192C64 86 107 0 160 0L444.2 0zM512 384c-53 0-96-86-96-192S459 0 512 0s96 86 96 192s-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64s-32 28.7-32 64s14.3 64 32 64zM144 208a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm64 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm80-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaToiletPortable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32L0 64l320 0 0-32c0-17.7-14.3-32-32-32L32 0C14.3 0 0 14.3 0 32zM24 96L0 96l0 24L0 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 224 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-368 0-24-24 0L24 96zM256 240l0 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaToilet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 148.9c-1.9 1.4-3.8 2.9-5.6 4.4C10.9 214.5 0 232.9 0 256c0 46.9 14.3 84.1 37 112.5c14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3l256 0c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8c22.7-28.4 37-65.5 37-112.5c0-23.1-10.9-41.5-26.4-54.6c-1.8-1.5-3.7-3-5.6-4.4L416 48l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 0zM384 256.3c0 1-.3 2.6-3.8 5.6c-4.8 4.1-14 9-29.3 13.4C320.5 284 276.1 288 224 288s-96.5-4-126.9-12.8c-15.3-4.4-24.5-9.3-29.3-13.4c-3.5-3-3.8-4.6-3.8-5.6l0-.3c0 0 0-.1 0-.1c0-1 0-2.5 3.8-5.8c4.8-4.1 14-9 29.3-13.4C127.5 228 171.9 224 224 224s96.5 4 126.9 12.8c15.3 4.4 24.5 9.3 29.3 13.4c3.8 3.2 3.8 4.8 3.8 5.8c0 0 0 .1 0 .1l0 .3zM328.2 384l-.2 .5 0-.5 .2 0zM112 64l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaToiletsPortable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0L224 0c17.7 0 32 14.3 32 32l0 32L0 64 0 32C0 14.3 14.3 0 32 0zM0 96l24 0 208 0 24 0 0 24 0 368c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8L48 480l0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24L0 120 0 96zM192 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zM352 0L544 0c17.7 0 32 14.3 32 32l0 32L320 64l0-32c0-17.7 14.3-32 32-32zM320 96l24 0 208 0 24 0 0 24 0 368c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-160 0 0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-368 0-24zM512 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaToolbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 88l0 40 160 0 0-40c0-4.4-3.6-8-8-8L184 80c-4.4 0-8 3.6-8 8zm-48 40l0-40c0-30.9 25.1-56 56-56l144 0c30.9 0 56 25.1 56 56l0 40 28.1 0c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9l0 92.1-128 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32-128 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L0 320l0-92.1c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1l28.1 0zM0 416l0-64 128 0c0 17.7 14.3 32 32 32s32-14.3 32-32l128 0c0 17.7 14.3 32 32 32s32-14.3 32-32l128 0 0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.1 52.1C169.3 39.1 148.7 32 127.5 32C74.7 32 32 74.7 32 127.5l0 6.2c0 15.8 3.7 31.3 10.7 45.5l23.5 47.1c4.5 8.9 7.6 18.4 9.4 28.2l36.7 205.8c2 11.2 11.6 19.4 22.9 19.8s21.4-7.4 24-18.4l28.9-121.3C192.2 323.7 207 312 224 312s31.8 11.7 35.8 28.3l28.9 121.3c2.6 11.1 12.7 18.8 24 18.4s20.9-8.6 22.9-19.8l36.7-205.8c1.8-9.8 4.9-19.3 9.4-28.2l23.5-47.1c7.1-14.1 10.7-29.7 10.7-45.5l0-2.1c0-55-44.6-99.6-99.6-99.6c-24.1 0-47.4 8.8-65.6 24.6l-3.2 2.8 19.5 15.2c7 5.4 8.2 15.5 2.8 22.5s-15.5 8.2-22.5 2.8l-24.4-19-37-28.8z\"},\"child\":[]}]})(props);\n};\nexport function FaToriiGate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 80c0 26.5 21.5 48 48 48l16 0 0 64 64 0 0-64 96 0 0 64 64 0 0-64 96 0 0 64 64 0 0-64 16 0c26.5 0 48-21.5 48-48l0-66.6C512 6 506 0 498.6 0c-1.7 0-3.4 .3-5 1l-49 19.6C425.7 28.1 405.5 32 385.2 32L126.8 32c-20.4 0-40.5-3.9-59.4-11.4L18.4 1c-1.6-.6-3.3-1-5-1C6 0 0 6 0 13.4L0 80zM64 288l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0 0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTornado (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32L0 45.6C0 62.7 1.7 79.6 5 96l352.8 0c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16C416 10.1 405.9 0 393.4 0L32 0C14.3 0 0 14.3 0 32zm352.2 96L13.6 128c12.2 35.9 32.3 68.7 58.8 96L412 224l-47.2-62.9c-7.3-9.7-11.6-21.2-12.6-33.1zm-226 138.2l116.4 68.5c8.2 4.8 15.8 10.7 22.5 17.3L445 352c2-9.8 3-19.9 3-30.1c0-23-5.3-45.5-15.3-65.9l-322.5 0c5.2 3.6 10.5 7 16 10.2zM288 384c10.3 21.4 13.8 45.5 9.9 69l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4c5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c12.8-12.8 23.1-27.7 30.4-43.9L288 384z\"},\"child\":[]}]})(props);\n};\nexport function FaTowerBroadcast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80.3 44C69.8 69.9 64 98.2 64 128s5.8 58.1 16.3 84c6.6 16.4-1.3 35-17.7 41.7s-35-1.3-41.7-17.7C7.4 202.6 0 166.1 0 128S7.4 53.4 20.9 20C27.6 3.6 46.2-4.3 62.6 2.3S86.9 27.6 80.3 44zM555.1 20C568.6 53.4 576 89.9 576 128s-7.4 74.6-20.9 108c-6.6 16.4-25.3 24.3-41.7 17.7S489.1 228.4 495.7 212c10.5-25.9 16.3-54.2 16.3-84s-5.8-58.1-16.3-84C489.1 27.6 497 9 513.4 2.3s35 1.3 41.7 17.7zM352 128c0 23.7-12.9 44.4-32 55.4L320 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-296.6c-19.1-11.1-32-31.7-32-55.4c0-35.3 28.7-64 64-64s64 28.7 64 64zM170.6 76.8C163.8 92.4 160 109.7 160 128s3.8 35.6 10.6 51.2c7.1 16.2-.3 35.1-16.5 42.1s-35.1-.3-42.1-16.5c-10.3-23.6-16-49.6-16-76.8s5.7-53.2 16-76.8c7.1-16.2 25.9-23.6 42.1-16.5s23.6 25.9 16.5 42.1zM464 51.2c10.3 23.6 16 49.6 16 76.8s-5.7 53.2-16 76.8c-7.1 16.2-25.9 23.6-42.1 16.5s-23.6-25.9-16.5-42.1c6.8-15.6 10.6-32.9 10.6-51.2s-3.8-35.6-10.6-51.2c-7.1-16.2 .3-35.1 16.5-42.1s35.1 .3 42.1 16.5z\"},\"child\":[]}]})(props);\n};\nexport function FaTowerCell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M62.6 2.3C46.2-4.3 27.6 3.6 20.9 20C7.4 53.4 0 89.9 0 128s7.4 74.6 20.9 108c6.6 16.4 25.3 24.3 41.7 17.7S86.9 228.4 80.3 212C69.8 186.1 64 157.8 64 128s5.8-58.1 16.3-84C86.9 27.6 79 9 62.6 2.3zm450.8 0C497 9 489.1 27.6 495.7 44C506.2 69.9 512 98.2 512 128s-5.8 58.1-16.3 84c-6.6 16.4 1.3 35 17.7 41.7s35-1.3 41.7-17.7c13.5-33.4 20.9-69.9 20.9-108s-7.4-74.6-20.9-108C548.4 3.6 529.8-4.3 513.4 2.3zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9L177.7 448l220.6 0 20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM369.2 384l-162.4 0 14.5-32 133.3 0 14.5 32zM288 205.3L325.6 288l-75.2 0L288 205.3zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z\"},\"child\":[]}]})(props);\n};\nexport function FaTowerObservation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M241.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9C439 137.5 427.7 144 416 144l0 80c0 17.7-14.3 32-32 32l-4.9 0 32 192 68.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-95.5 0c-.4 0-.8 0-1.1 0l-254.8 0c-.4 0-.8 0-1.1 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l68.9 0 32-192-4.9 0c-17.7 0-32-14.3-32-32l0-80c-11.7 0-23-6.5-28.6-17.7c-7.9-15.8-1.5-35 14.3-42.9l160-80zM314.5 448L256 399.2 197.5 448l117 0zM197.8 256l-4.7 28.3L256 336.8l62.9-52.5L314.2 256l-116.5 0zm-13.9 83.2l-11.2 67L218.5 368l-34.6-28.8zM293.5 368l45.8 38.1-11.2-67L293.5 368zM176 128c-8.8 0-16 7.2-16 16s7.2 16 16 16l160 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-160 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTractor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 64c0-35.3 28.7-64 64-64L266.3 0c26.2 0 49.7 15.9 59.4 40.2L373.7 160 480 160l0-33.8c0-24.8 5.8-49.3 16.9-71.6l2.5-5c7.9-15.8 27.1-22.2 42.9-14.3s22.2 27.1 14.3 42.9l-2.5 5c-6.7 13.3-10.1 28-10.1 42.9l0 33.8 56 0c22.1 0 40 17.9 40 40l0 45.4c0 16.5-8.5 31.9-22.6 40.7l-43.3 27.1c-14.2-5.9-29.8-9.2-46.1-9.2c-39.3 0-74.1 18.9-96 48l-80 0c0 17.7-14.3 32-32 32l-8.2 0c-1.7 4.8-3.7 9.5-5.8 14.1l5.8 5.8c12.5 12.5 12.5 32.8 0 45.3l-22.6 22.6c-12.5 12.5-32.8 12.5-45.3 0l-5.8-5.8c-4.6 2.2-9.3 4.1-14.1 5.8l0 8.2c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-8.2c-4.8-1.7-9.5-3.7-14.1-5.8l-5.8 5.8c-12.5 12.5-32.8 12.5-45.3 0L40.2 449.1c-12.5-12.5-12.5-32.8 0-45.3l5.8-5.8c-2.2-4.6-4.1-9.3-5.8-14.1L32 384c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l8.2 0c1.7-4.8 3.7-9.5 5.8-14.1l-5.8-5.8c-12.5-12.5-12.5-32.8 0-45.3l22.6-22.6c9-9 21.9-11.5 33.1-7.6l0-.6 0-32 0-96zm170.3 0L160 64l0 96 32 0 112.7 0L266.3 64zM176 256a80 80 0 1 0 0 160 80 80 0 1 0 0-160zM528 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0 64c-48.6 0-88-39.4-88-88c0-29.8 14.8-56.1 37.4-72c14.3-10.1 31.8-16 50.6-16c2.7 0 5.3 .1 7.9 .3c44.9 4 80.1 41.7 80.1 87.7c0 48.6-39.4 88-88 88z\"},\"child\":[]}]})(props);\n};\nexport function FaTrademark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M345.6 108.8c-8.3-11-22.7-15.5-35.7-11.2S288 114.2 288 128l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 86.4 115.2c6 8.1 15.5 12.8 25.6 12.8s19.6-4.7 25.6-12.8L576 224l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-13.8-8.8-26-21.9-30.4s-27.5 .1-35.7 11.2L464 266.7 345.6 108.8zM0 128c0 17.7 14.3 32 32 32l64 0 0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 96C14.3 96 0 110.3 0 128z\"},\"child\":[]}]})(props);\n};\nexport function FaTrafficLight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 352c0 88.4 71.6 160 160 160s160-71.6 160-160l0-288c0-35.3-28.7-64-64-64L64 0zm96 416a48 48 0 1 1 0-96 48 48 0 1 1 0 96zm48-176a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm-48-80a48 48 0 1 1 0-96 48 48 0 1 1 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaTrailer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 32C21.5 32 0 53.5 0 80L0 336c0 26.5 21.5 48 48 48l17.1 0c7.8-54.3 54.4-96 110.9-96s103.1 41.7 110.9 96L488 384l8 0 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-240c0-26.5-21.5-48-48-48L48 32zM80 96c8.8 0 16 7.2 16 16l0 131.2c-11.4 5.9-22.2 12.9-32 21L64 112c0-8.8 7.2-16 16-16zm96 128c-5.4 0-10.7 .2-16 .7L160 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112.7c-5.3-.5-10.6-.7-16-.7zm80 19.2L256 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 152.2c-9.8-8.1-20.6-15.2-32-21zM368 96c8.8 0 16 7.2 16 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16zm112 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16s16 7.2 16 16zM176 480a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-112a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTrainSubway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C43 0 0 43 0 96L0 352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512l39.7 0c8.5 0 16.6-3.4 22.6-9.4L160 448l128 0 54.6 54.6c6 6 14.1 9.4 22.6 9.4l39.7 0c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9l0-256c0-53-43-96-96-96L96 0zM64 128c0-17.7 14.3-32 32-32l80 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-80 0c-17.7 0-32-14.3-32-32l0-96zM272 96l80 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-80 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM64 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm288-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTrainTram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M86.8 48c-12.2 0-23.6 5.5-31.2 15L42.7 79C34.5 89.3 19.4 91 9 82.7S-3 59.4 5.3 49L18 33C34.7 12.2 60 0 86.8 0L361.2 0c26.7 0 52 12.2 68.7 33l12.8 16c8.3 10.4 6.6 25.5-3.8 33.7s-25.5 6.6-33.7-3.7L392.5 63c-7.6-9.5-19.1-15-31.2-15L248 48l0 48 40 0c53 0 96 43 96 96l0 160c0 30.6-14.3 57.8-36.6 75.4l65.5 65.5c7.1 7.1 2.1 19.1-7.9 19.1l-39.7 0c-8.5 0-16.6-3.4-22.6-9.4L288 448l-128 0-54.6 54.6c-6 6-14.1 9.4-22.6 9.4L43 512c-10 0-15-12.1-7.9-19.1l65.5-65.5C78.3 409.8 64 382.6 64 352l0-160c0-53 43-96 96-96l40 0 0-48L86.8 48zM160 160c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-128 0zm32 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaTrain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C43 0 0 43 0 96L0 352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512l39.7 0c8.5 0 16.6-3.4 22.6-9.4L160 448l128 0 54.6 54.6c6 6 14.1 9.4 22.6 9.4l39.7 0c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9l0-256c0-53-43-96-96-96L96 0zM64 96c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L96 224c-17.7 0-32-14.3-32-32l0-96zM224 288a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaTransgender (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-31 31L112 78.1l7-7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-7 7 15.2 15.2C187.7 107.6 220.5 96 256 96s68.3 11.6 94.9 31.2l68.8-68.8-31-31c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l96 0c8.8 0 16 7.2 16 16l0 96c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-31-31-68.8 68.8C404.4 187.7 416 220.5 416 256c0 80.2-59 146.6-136 158.2l0 17.8 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-17.8C155 402.6 96 336.2 96 256c0-35.5 11.6-68.3 31.2-94.9L112 145.9l-7 7c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l7-7L58.3 92.3l-31 31c-4.6 4.6-11.5 5.9-17.4 3.5S0 118.5 0 112L0 16C0 7.2 7.2 0 16 0l96 0zM352 256a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTrashArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128l384 0L394.8 467c-1.6 25.3-22.6 45-47.9 45l-245.8 0c-25.3 0-46.3-19.7-47.9-45L32 128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39L200 408c0 13.3 10.7 24 24 24s24-10.7 24-24l0-134.1 39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"},\"child\":[]}]})(props);\n};\nexport function FaTrashCanArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39L200 408c0 13.3 10.7 24 24 24s24-10.7 24-24l0-134.1 39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"},\"child\":[]}]})(props);\n};\nexport function FaTrashCan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaTrash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M135.2 17.7L128 32 32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0-7.2-14.3C307.4 6.8 296.3 0 284.2 0L163.8 0c-12.1 0-23.2 6.8-28.6 17.7zM416 128L32 128 53.2 467c1.6 25.3 22.6 45 47.9 45l245.8 0c25.3 0 46.3-19.7 47.9-45L416 128z\"},\"child\":[]}]})(props);\n};\nexport function FaTreeCity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 144 40 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 24 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0-96 0c-26.5 0-48-21.5-48-48l0-416zm64 32l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 272l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM224 160c0 6-1 11-2 16c20 14 34 38 34 64c0 45-36 80-80 80l-16 0 0 160c0 18-15 32-32 32c-18 0-32-14-32-32l0-160-16 0c-45 0-80-35-80-80c0-26 13-50 33-64c-1-5-1-10-1-16c0-53 42-96 96-96c53 0 96 43 96 96z\"},\"child\":[]}]})(props);\n};\nexport function FaTree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M210.6 5.9L62 169.4c-3.9 4.2-6 9.8-6 15.5C56 197.7 66.3 208 79.1 208l24.9 0L30.6 281.4c-4.2 4.2-6.6 10-6.6 16C24 309.9 34.1 320 46.6 320L80 320 5.4 409.5C1.9 413.7 0 419 0 424.5c0 13 10.5 23.5 23.5 23.5L192 448l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 168.5 0c13 0 23.5-10.5 23.5-23.5c0-5.5-1.9-10.8-5.4-15L368 320l33.4 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L344 208l24.9 0c12.7 0 23.1-10.3 23.1-23.1c0-5.7-2.1-11.3-6-15.5L237.4 5.9C234 2.1 229.1 0 224 0s-10 2.1-13.4 5.9z\"},\"child\":[]}]})(props);\n};\nexport function FaTriangleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTrophy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 0L176 0c-26.5 0-48.1 21.8-47.1 48.2c.2 5.3 .4 10.6 .7 15.8L24 64C10.7 64 0 74.7 0 88c0 92.6 33.5 157 78.5 200.7c44.3 43.1 98.3 64.8 138.1 75.8c23.4 6.5 39.4 26 39.4 45.6c0 20.9-17 37.9-37.9 37.9L192 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-26.1 0C337 448 320 431 320 410.1c0-19.6 15.9-39.2 39.4-45.6c39.9-11 93.9-32.7 138.2-75.8C542.5 245 576 180.6 576 88c0-13.3-10.7-24-24-24L446.4 64c.3-5.2 .5-10.4 .7-15.8C448.1 21.8 426.5 0 400 0zM48.9 112l84.4 0c9.1 90.1 29.2 150.3 51.9 190.6c-24.9-11-50.8-26.5-73.2-48.3c-32-31.1-58-76-63-142.3zM464.1 254.3c-22.4 21.8-48.3 37.3-73.2 48.3c22.7-40.3 42.8-100.5 51.9-190.6l84.4 0c-5.1 66.3-31.1 111.2-63 142.3z\"},\"child\":[]}]})(props);\n};\nexport function FaTrowelBricks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240.8 4.8C250.3 10.6 256 20.9 256 32l0 72 89 0c3.6-13.8 16.1-24 31-24l88 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-88 0c-14.9 0-27.4-10.2-31-24l-89 0 0 72c0 11.1-5.7 21.4-15.2 27.2s-21.2 6.4-31.1 1.4l-192-96C6.8 151.2 0 140.1 0 128s6.8-23.2 17.7-28.6l192-96c9.9-5 21.7-4.4 31.1 1.4zM288 256c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-64zM32 384l96 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm192 0l256 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaTrowel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M343.9 213.4L245.3 312l65.4 65.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9S-2.1 481.8 1.5 470.5l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L200 266.7l98.6-98.6c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 48C0 21.5 21.5 0 48 0L368 0c26.5 0 48 21.5 48 48l0 48 50.7 0c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3l0 18.7 0 32 0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 48zM416 256l128 0 0-18.7L466.7 160 416 160l0 96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM257 95c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39L96 168c-13.3 0-24 10.7-24 24s10.7 24 24 24l166.1 0-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9L257 95z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckDroplet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 48C0 21.5 21.5 0 48 0L368 0c26.5 0 48 21.5 48 48l0 48 50.7 0c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3l0 18.7 0 32 0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 48zM416 256l128 0 0-18.7L466.7 160 416 160l0 96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM208 272c39.8 0 72-29.6 72-66c0-27-39.4-82.9-59.9-110.3c-6.1-8.2-18.1-8.2-24.2 0C175.4 123 136 179 136 206c0 36.5 32.2 66 72 66z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckFast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 0C85.5 0 64 21.5 64 48l0 48L16 96c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 208 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L64 160l-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l16 0 176 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L64 224l-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 144 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L64 288l0 128c0 53 43 96 96 96s96-43 96-96l128 0c0 53 43 96 96 96s96-43 96-96l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64 0-32 0-18.7c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7L416 96l0-48c0-26.5-21.5-48-48-48L112 0zM544 237.3l0 18.7-128 0 0-96 50.7 0L544 237.3zM160 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm272 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckFieldUn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32C60.7 32 32 60.7 32 96l0 32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c0 53 43 96 96 96s96-43 96-96l128 0c0 53 43 96 96 96s96-43 96-96l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-32c0-35.3-28.7-64-64-64l-4.2 0c-.4-1.1-.9-2.1-1.3-3.2L485.7 102c-10.3-23.1-33.2-38-58.5-38l-51.8 0C364.4 44.9 343.7 32 320 32L96 32zm288 96l43.2 0 42.7 96L384 224l0-96zM112 384a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM253.3 135.1l34.7 52 0-43.2c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM128 144l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckField (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 96c0-35.3 28.7-64 64-64l224 0c23.7 0 44.4 12.9 55.4 32l51.8 0c25.3 0 48.2 14.9 58.5 38l52.8 118.8c.5 1.1 .9 2.1 1.3 3.2l4.2 0c35.3 0 64 28.7 64 64l0 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-32c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l0-32zM384 224l85.9 0-42.7-96L384 128l0 96zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckFront (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 80C0 35.8 35.8 0 80 0L432 0c44.2 0 80 35.8 80 80l0 288c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-256 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48C12.6 417.4 0 394.2 0 368L0 80zm129.9 72.2L112 224l288 0-17.9-71.8C378.5 138 365.7 128 351 128l-190 0c-14.7 0-27.5 10-31 24.2zM128 320a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 48C0 21.5 21.5 0 48 0L368 0c26.5 0 48 21.5 48 48l0 48 50.7 0c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3l0 18.7 0 32 0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 48zM416 256l128 0 0-18.7L466.7 160 416 160l0 96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM176 80l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckMonster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 64l0 64 128 0L368 64l-80 0zM419.2 25.6L496 128l80 0c17.7 0 32 14.3 32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64l-64 0c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l160 0 0-80c0-26.5 21.5-48 48-48l96 0c20.1 0 39.1 9.5 51.2 25.6zM152 256l16 0c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.7 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.3 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8l0 16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.3 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.8 3.7-14.1 6.8-21.7 9C190.1 503.1 180.1 512 168 512l-16 0c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2L63.8 468.9c-8.6-8.6-9.3-21.9-2.3-31.3c-3.7-6.9-6.8-14.1-9-21.8C40.9 414.1 32 404.1 32 392l0-16c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.3-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9c1.7-11.6 11.7-20.6 23.8-20.6zm8 176a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM448.2 276.6c1.7-11.6 11.7-20.6 23.8-20.6l16 0c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.8 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.2 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8l0 16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.2 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.9 3.7-14.1 6.8-21.8 9C510.1 503.1 500.1 512 488 512l-16 0c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2l-11.3-11.3c-8.6-8.6-9.3-21.9-2.2-31.3c-3.7-6.9-6.8-14.1-9-21.8C360.9 414.1 352 404.1 352 392l0-16c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.2-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9zM528 384a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckMoving (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 304l0 80 0 16c0 44.2 35.8 80 80 80c26.2 0 49.4-12.6 64-32c14.6 19.4 37.8 32 64 32c44.2 0 80-35.8 80-80c0-5.5-.6-10.8-1.6-16L416 384l33.6 0c-1 5.2-1.6 10.5-1.6 16c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16l1.6 0c17.7 0 32-14.3 32-32l0-64 0-16 0-10.3c0-9.2-3.2-18.2-9-25.3l-58.8-71.8c-10.6-13-26.5-20.5-43.3-20.5L480 144l0-48c0-35.3-28.7-64-64-64L64 32zM585 256l-105 0 0-64 48.8 0c2.4 0 4.7 1.1 6.2 2.9L585 256zM528 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM176 400a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM80 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckPickup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368.6 96l76.8 96L288 192l0-96 80.6 0zM224 80l0 112L64 192c-17.7 0-32 14.3-32 32l0 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l33.1 0c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16l66.3 0c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16l33.1 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c0-17.7-14.3-32-32-32l-48.6 0L418.6 56c-12.1-15.2-30.5-24-50-24L272 32c-26.5 0-48 21.5-48 48zm0 288a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm288 0a48 48 0 1 1 -96 0 48 48 0 1 1 96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckPlane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M200 0c-30.6 0-56 54.7-56 86.1l0 106.5L7.8 274.3C2.9 277.2 0 282.4 0 288l0 64c0 5.1 2.4 9.8 6.4 12.8s9.3 3.9 14.1 2.5l123.4-37 0 81.2-50 40c-3.8 3-6 7.6-6 12.5l0 32c0 5.1 2.5 10 6.6 13s9.5 3.8 14.4 2.2L200 480.9 290.4 511c-1.6-4.7-2.4-9.8-2.4-15l0-32.6c-18.2-10.5-30.7-29.7-31.9-51.8l-.1-.1 0-3.5 0-82.5L256 184l0-1.1s0 0 0 0l0-96.9C256 54.7 231.5 0 200 0zm88 176l0 224c0 20.9 13.4 38.7 32 45.3l0 42.7c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-40 160 0 0 40c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-42.7c18.6-6.6 32-24.4 32-45.3l0-224c0-26.5-21.5-48-48-48l-256 0c-26.5 0-48 21.5-48 48zm79.8 78.7c3.3-8.7 11.2-14.7 20.5-14.7l151.4 0c9.2 0 17.2 6 20.5 14.7L576 304l-224 0 15.8-49.3zM568 352a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM336 376a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckRampBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 0l0 400c0 61.9-50.1 112-112 112c-61 0-110.5-48.7-112-109.3L48.4 502.9c-17.1 4.6-34.6-5.4-39.3-22.5s5.4-34.6 22.5-39.3L352 353.8 352 64c0-35.3 28.7-64 64-64L640 0zM576 400a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM23.1 207.7c-4.6-17.1 5.6-34.6 22.6-39.2l46.4-12.4 20.7 77.3c2.3 8.5 11.1 13.6 19.6 11.3l30.9-8.3c8.5-2.3 13.6-11.1 11.3-19.6l-20.7-77.3 46.4-12.4c17.1-4.6 34.6 5.6 39.2 22.6l41.4 154.5c4.6 17.1-5.6 34.6-22.6 39.2L103.7 384.9c-17.1 4.6-34.6-5.6-39.2-22.6L23.1 207.7z\"},\"child\":[]}]})(props);\n};\nexport function FaTruck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 368c0 26.5 21.5 48 48 48l16 0c0 53 43 96 96 96s96-43 96-96l128 0c0 53 43 96 96 96s96-43 96-96l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64 0-32 0-18.7c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7L416 96l0-48c0-26.5-21.5-48-48-48L48 0zM416 160l50.7 0L544 237.3l0 18.7-128 0 0-96zM112 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaTty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.3 241.3L15.1 200.6c-9.2-16.2-8.4-36.5 4.5-50C61.4 106.8 144.7 48 256 48s194.6 58.8 236.4 102.6c12.9 13.5 13.7 33.8 4.5 50l-23.1 40.7c-7.5 13.2-23.3 19.3-37.8 14.6l-81.1-26.6c-13.1-4.3-22-16.6-22-30.4l0-54.8c-49.6-18.1-104-18.1-153.6 0l0 54.8c0 13.8-8.9 26.1-22 30.4L76.1 255.8c-14.5 4.7-30.3-1.4-37.8-14.6zM32 336c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm0 96c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM144 320l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 432c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaTurkishLiraSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32c17.7 0 32 14.3 32 32l0 35.3L247.2 65.2c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 165.9l0 29.4 119.2-34.1c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 261.9 128 416l63.8 0c68.2 0 124.4-53.5 127.8-121.6l.4-8c.9-17.7 15.9-31.2 33.6-30.4s31.2 15.9 30.4 33.6l-.4 8C378.5 399.8 294.1 480 191.8 480L96 480c-17.7 0-32-14.3-32-32l0-167.9-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 213.6l0-29.4-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 117.6 64 64c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaTurnDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M350 334.5c3.8 8.8 2 19-4.6 26l-136 144c-4.5 4.8-10.8 7.5-17.4 7.5s-12.9-2.7-17.4-7.5l-136-144c-6.6-7-8.4-17.2-4.6-26s12.5-14.5 22-14.5l88 0 0-192c0-17.7-14.3-32-32-32L32 96C14.3 96 0 81.7 0 64L0 32C0 14.3 14.3 0 32 0l80 0c70.7 0 128 57.3 128 128l0 192 88 0c9.6 0 18.2 5.7 22 14.5z\"},\"child\":[]}]})(props);\n};\nexport function FaTurnUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M350 177.5c3.8-8.8 2-19-4.6-26l-136-144C204.9 2.7 198.6 0 192 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26s12.5 14.5 22 14.5l88 0 0 192c0 17.7-14.3 32-32 32l-80 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l80 0c70.7 0 128-57.3 128-128l0-192 88 0c9.6 0 18.2-5.7 22-14.5z\"},\"child\":[]}]})(props);\n};\nexport function FaTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64l0 288 512 0 0-288L64 64zM0 64C0 28.7 28.7 0 64 0L576 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 416c-35.3 0-64-28.7-64-64L0 64zM128 448l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaU (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32c17.7 0 32 14.3 32 32l0 224c0 70.7 57.3 128 128 128s128-57.3 128-128l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32l0 224c0 106-86 192-192 192S0 394 0 288L0 64C0 46.3 14.3 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaUmbrellaBeach (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M346.3 271.8l-60.1-21.9L214 448 32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-261.9 0 64.1-176.2zm121.1-.2l-3.3 9.1 67.7 24.6c18.1 6.6 38-4.2 39.6-23.4c6.5-78.5-23.9-155.5-80.8-208.5c2 8 3.2 16.3 3.4 24.8l.2 6c1.8 57-7.3 113.8-26.8 167.4zM462 99.1c-1.1-34.4-22.5-64.8-54.4-77.4c-.9-.4-1.9-.7-2.8-1.1c-33-11.7-69.8-2.4-93.1 23.8l-4 4.5C272.4 88.3 245 134.2 226.8 184l-3.3 9.1L434 269.7l3.3-9.1c18.1-49.8 26.6-102.5 24.9-155.5l-.2-6zM107.2 112.9c-11.1 15.7-2.8 36.8 15.3 43.4l71 25.8 3.3-9.1c19.5-53.6 49.1-103 87.1-145.5l4-4.5c6.2-6.9 13.1-13 20.5-18.2c-79.6 2.5-154.7 42.2-201.2 108z\"},\"child\":[]}]})(props);\n};\nexport function FaUmbrella (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0c17.7 0 32 14.3 32 32l0 17.7C451.8 63.4 557.7 161 573.9 285.9c2 15.6-17.3 24.4-27.8 12.7C532.1 283 504.8 272 480 272c-38.7 0-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C359 299.5 326.7 272 288 272s-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C167 299.5 134.7 272 96 272c-24.8 0-52.1 11-66.1 26.7C19.4 310.4 .1 301.5 2.1 285.9C18.3 161 124.2 63.4 256 49.7L256 32c0-17.7 14.3-32 32-32zm0 304c12.3 0 23.5 4.6 32 12.2l0 114.3c0 45-36.5 81.4-81.4 81.4c-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6c9.6 0 17.4-7.8 17.4-17.4l0-114.3c8.5-7.6 19.7-12.2 32-12.2z\"},\"child\":[]}]})(props);\n};\nexport function FaUnderline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 64c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 88.4-71.6 160-160 160s-160-71.6-160-160L64 96 48 96C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaUniversalAccess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm161.5-86.1c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3l0 50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6l0-50.1c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"},\"child\":[]}]})(props);\n};\nexport function FaUnlockKeyhole (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 64c-44.2 0-80 35.8-80 80l0 48 240 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256c0-35.3 28.7-64 64-64l16 0 0-48C80 64.5 144.5 0 224 0c57.5 0 107 33.7 130.1 82.3c7.6 16 .8 35.1-15.2 42.6s-35.1 .8-42.6-15.2C283.4 82.6 255.9 64 224 64zm32 320c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUnlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 144c0-44.2 35.8-80 80-80c31.9 0 59.4 18.6 72.3 45.7c7.6 16 26.7 22.8 42.6 15.2s22.8-26.7 15.2-42.6C331 33.7 281.5 0 224 0C144.5 0 80 64.5 80 144l0 48-16 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-240 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaUpDownLeftRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 96-96 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 96 0 0 96-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0 0-96 96 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 32-96 0 0-96 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaUpDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M145.6 7.7C141 2.8 134.7 0 128 0s-13 2.8-17.6 7.7l-104 112c-6.5 7-8.2 17.2-4.4 25.9S14.5 160 24 160l56 0 0 192-56 0c-9.5 0-18.2 5.7-22 14.4s-2.1 18.9 4.4 25.9l104 112c4.5 4.9 10.9 7.7 17.6 7.7s13-2.8 17.6-7.7l104-112c6.5-7 8.2-17.2 4.4-25.9s-12.5-14.4-22-14.4l-56 0 0-192 56 0c9.5 0 18.2-5.7 22-14.4s2.1-18.9-4.4-25.9l-104-112z\"},\"child\":[]}]})(props);\n};\nexport function FaUpLong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M318 177.5c3.8-8.8 2-19-4.6-26l-136-144C172.9 2.7 166.6 0 160 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26S14.4 192 24 192l72 0 0 288c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-288 72 0c9.6 0 18.2-5.7 22-14.5z\"},\"child\":[]}]})(props);\n};\nexport function FaUpRightAndDownLeftFromCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z\"},\"child\":[]}]})(props);\n};\nexport function FaUpRightFromSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-128c0-17.7-14.3-32-32-32L352 0zM80 32C35.8 32 0 67.8 0 112L0 432c0 44.2 35.8 80 80 80l320 0c44.2 0 80-35.8 80-80l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-320c0-8.8 7.2-16 16-16l112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z\"},\"child\":[]}]})(props);\n};\nexport function FaUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 109.3L288 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-242.7-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352l128 0c0 35.3 28.7 64 64 64s64-28.7 64-64l128 0c35.3 0 64 28.7 64 64l0 32c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64l0-32c0-35.3 28.7-64 64-64zM432 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaUserAstronaut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M370.7 96.1C346.1 39.5 289.7 0 224 0S101.9 39.5 77.3 96.1C60.9 97.5 48 111.2 48 128l0 64c0 16.8 12.9 30.5 29.3 31.9C101.9 280.5 158.3 320 224 320s122.1-39.5 146.7-96.1c16.4-1.4 29.3-15.1 29.3-31.9l0-64c0-16.8-12.9-30.5-29.3-31.9zM336 144l0 16c0 53-43 96-96 96l-32 0c-53 0-96-43-96-96l0-16c0-26.5 21.5-48 48-48l128 0c26.5 0 48 21.5 48 48zM189.3 162.7l-6-21.2c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6zM112.7 316.5C46.7 342.6 0 407 0 482.3C0 498.7 13.3 512 29.7 512l98.3 0 0-64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 64 98.3 0c16.4 0 29.7-13.3 29.7-29.7c0-75.3-46.7-139.7-112.7-165.8C303.9 338.8 265.5 352 224 352s-79.9-13.2-111.3-35.5zM176 448c-8.8 0-16 7.2-16 16l0 48 32 0 0-48c0-8.8-7.2-16-16-16zm96 32a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaUserCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM625 177L497 305c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L591 143c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaUserClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304l91.4 0c20.6 0 40.4 3.5 58.8 9.9C323 331 320 349.1 320 368c0 59.5 29.5 112.1 74.8 144L29.7 512C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-80c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-48c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaUserDoctor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-96 55.2C54 332.9 0 401.3 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7c0-81-54-149.4-128-171.1l0 50.8c27.6 7.1 48 32.2 48 62l0 40c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l0-24c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 24c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-40c0-29.8 20.4-54.9 48-62l0-57.1c-6-.6-12.1-.9-18.3-.9l-91.4 0c-6.2 0-12.3 .3-18.3 .9l0 65.4c23.1 6.9 40 28.3 40 53.7c0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.4 16.9-46.8 40-53.7l0-59.1zM144 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaUserGear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304l91.4 0c11.8 0 23.4 1.2 34.5 3.3c-2.1 18.5 7.4 35.6 21.8 44.8c-16.6 10.6-26.7 31.6-20 53.3c4 12.9 9.4 25.5 16.4 37.6s15.2 23.1 24.4 33c15.7 16.9 39.6 18.4 57.2 8.7l0 .9c0 9.2 2.7 18.5 7.9 26.3L29.7 512C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM436 218.2c0-7 4.5-13.3 11.3-14.8c10.5-2.4 21.5-3.7 32.7-3.7s22.2 1.3 32.7 3.7c6.8 1.5 11.3 7.8 11.3 14.8l0 30.6c7.9 3.4 15.4 7.7 22.3 12.8l24.9-14.3c6.1-3.5 13.7-2.7 18.5 2.4c7.6 8.1 14.3 17.2 20.1 27.2s10.3 20.4 13.5 31c2.1 6.7-1.1 13.7-7.2 17.2l-25 14.4c.4 4 .7 8.1 .7 12.3s-.2 8.2-.7 12.3l25 14.4c6.1 3.5 9.2 10.5 7.2 17.2c-3.3 10.6-7.8 21-13.5 31s-12.5 19.1-20.1 27.2c-4.8 5.1-12.5 5.9-18.5 2.4l-24.9-14.3c-6.9 5.1-14.3 9.4-22.3 12.8l0 30.6c0 7-4.5 13.3-11.3 14.8c-10.5 2.4-21.5 3.7-32.7 3.7s-22.2-1.3-32.7-3.7c-6.8-1.5-11.3-7.8-11.3-14.8l0-30.5c-8-3.4-15.6-7.7-22.5-12.9l-24.7 14.3c-6.1 3.5-13.7 2.7-18.5-2.4c-7.6-8.1-14.3-17.2-20.1-27.2s-10.3-20.4-13.5-31c-2.1-6.7 1.1-13.7 7.2-17.2l24.8-14.3c-.4-4.1-.7-8.2-.7-12.4s.2-8.3 .7-12.4L343.8 325c-6.1-3.5-9.2-10.5-7.2-17.2c3.3-10.6 7.7-21 13.5-31s12.5-19.1 20.1-27.2c4.8-5.1 12.4-5.9 18.5-2.4l24.8 14.3c6.9-5.1 14.5-9.4 22.5-12.9l0-30.5zm92.1 133.5a48.1 48.1 0 1 0 -96.1 0 48.1 48.1 0 1 0 96.1 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUserGraduate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M219.3 .5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9l0 57.1c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-57.1L48 93.3l0 65.1 15.7 78.4c.9 4.7-.3 9.6-3.3 13.3s-7.6 5.9-12.4 5.9l-32 0c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4l0-71.8C6.5 83.3 0 74.3 0 64C0 52.6 8.1 42.7 19.3 40.5l200-40zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7L30.7 512C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6z\"},\"child\":[]}]})(props);\n};\nexport function FaUserGroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM609.3 512l-137.8 0c5.4-9.4 8.6-20.3 8.6-32l0-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2l61.4 0C567.8 320 640 392.2 640 481.3c0 17-13.8 30.7-30.7 30.7zM432 256c-31 0-59-12.6-79.3-32.9C372.4 196.5 384 163.6 384 128c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112z\"},\"child\":[]}]})(props);\n};\nexport function FaUserInjured (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 80l102.7 0c-7.9-19.5-20.4-36.5-36.2-49.9L240 80zm37.7-68.2C261.3 4.2 243.2 0 224 0c-53.7 0-99.7 33.1-118.7 80l81.4 0 91-68.2zM224 256c70.7 0 128-57.3 128-128c0-5.4-.3-10.8-1-16L97 112c-.7 5.2-1 10.6-1 16c0 70.7 57.3 128 128 128zM124 312.4c-9.7 3.1-19.1 7-28 11.7L96 512l147.7 0L181.5 408.2 124 312.4zm33-7.2L204.3 384l67.7 0c44.2 0 80 35.8 80 80c0 18-6 34.6-16 48l82.3 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0c-7.2 0-14.3 .4-21.3 1.3zM0 482.3C0 498.7 13.3 512 29.7 512L64 512l0-166.6C24.9 378.1 0 427.3 0 482.3zM320 464c0-26.5-21.5-48-48-48l-48.5 0 57.1 95.2C303 507.2 320 487.6 320 464z\"},\"child\":[]}]})(props);\n};\nexport function FaUserLargeSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L381.9 274c48.5-23.2 82.1-72.7 82.1-130C464 64.5 399.5 0 320 0C250.4 0 192.4 49.3 178.9 114.9L38.8 5.1zM545.5 512L528 512 284.3 320l-59 0C136.2 320 64 392.2 64 481.3c0 17 13.8 30.7 30.7 30.7l450.6 0 .3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUserLarge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 288A144 144 0 1 0 256 0a144 144 0 1 0 0 288zm-94.7 32C72.2 320 0 392.2 0 481.3c0 17 13.8 30.7 30.7 30.7l450.6 0c17 0 30.7-13.8 30.7-30.7C512 392.2 439.8 320 350.7 320l-189.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUserLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l362.8 0c-5.4-9.4-8.6-20.3-8.6-32l0-128c0-2.1 .1-4.2 .3-6.3c-31-26-71-41.7-114.6-41.7l-91.4 0zM528 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaUserMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM472 200l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaUserNinja (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256c-57.2 0-105.6-37.5-122-89.3c-1.1 1.3-2.2 2.6-3.5 3.8c-15.8 15.8-38.8 20.7-53.6 22.1c-8.1 .8-14.6-5.7-13.8-13.8c1.4-14.7 6.3-37.8 22.1-53.6c5.8-5.8 12.6-10.1 19.6-13.4c-7-3.2-13.8-7.6-19.6-13.4C37.4 82.7 32.6 59.7 31.1 44.9c-.8-8.1 5.7-14.6 13.8-13.8c14.7 1.4 37.8 6.3 53.6 22.1c4.8 4.8 8.7 10.4 11.7 16.1C131.4 28.2 174.4 0 224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128zM0 482.3C0 399.5 56.4 330 132.8 309.9c6-1.6 12.2 .9 15.9 5.8l62.5 83.3c6.4 8.5 19.2 8.5 25.6 0l62.5-83.3c3.7-4.9 9.9-7.4 15.9-5.8C391.6 330 448 399.5 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM160 96c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L160 96z\"},\"child\":[]}]})(props);\n};\nexport function FaUserNurse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 128l0-57.8c0-13.3 8.3-25.3 20.8-30l96-36c7.2-2.7 15.2-2.7 22.5 0l96 36c12.5 4.7 20.8 16.6 20.8 30l0 57.8-.3 0c.2 2.6 .3 5.3 .3 8l0 40c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-40c0-2.7 .1-5.4 .3-8l-.3 0zm48 48c0 44.2 35.8 80 80 80s80-35.8 80-80l0-16-160 0 0 16zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7L30.7 512C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6zM208 48l0 16-16 0c-4.4 0-8 3.6-8 8l0 16c0 4.4 3.6 8 8 8l16 0 0 16c0 4.4 3.6 8 8 8l16 0c4.4 0 8-3.6 8-8l0-16 16 0c4.4 0 8-3.6 8-8l0-16c0-4.4-3.6-8-8-8l-16 0 0-16c0-4.4-3.6-8-8-8l-16 0c-4.4 0-8 3.6-8 8z\"},\"child\":[]}]})(props);\n};\nexport function FaUserPen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l293.1 0c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7l40.3-40.3c-32.1-31-75.7-50.1-123.9-50.1l-91.4 0zm435.5-68.3c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM375.9 417c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L576.1 358.7l-71-71L375.9 417z\"},\"child\":[]}]})(props);\n};\nexport function FaUserPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM504 312l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaUserSecret (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 16c-6.7 0-10.8-2.8-15.5-6.1C201.9 5.4 194 0 176 0c-30.5 0-52 43.7-66 89.4C62.7 98.1 32 112.2 32 128c0 14.3 25 27.1 64.6 35.9c-.4 4-.6 8-.6 12.1c0 17 3.3 33.2 9.3 48l-59.9 0C38 224 32 230 32 237.4c0 1.7 .3 3.4 1 5l38.8 96.9C28.2 371.8 0 423.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7c0-58.5-28.2-110.4-71.7-143L415 242.4c.6-1.6 1-3.3 1-5c0-7.4-6-13.4-13.4-13.4l-59.9 0c6-14.8 9.3-31 9.3-48c0-4.1-.2-8.1-.6-12.1C391 155.1 416 142.3 416 128c0-15.8-30.7-29.9-78-38.6C324 43.7 302.5 0 272 0c-18 0-25.9 5.4-32.5 9.9c-4.8 3.3-8.8 6.1-15.5 6.1zm56 208l-12.4 0c-16.5 0-31.1-10.6-36.3-26.2c-2.3-7-12.2-7-14.5 0c-5.2 15.6-19.9 26.2-36.3 26.2L168 224c-22.1 0-40-17.9-40-40l0-14.4c28.2 4.1 61 6.4 96 6.4s67.8-2.3 96-6.4l0 14.4c0 22.1-17.9 40-40 40zm-88 96l16 32L176 480 128 288l64 32zm128-32L272 480 240 352l16-32 64-32z\"},\"child\":[]}]})(props);\n};\nexport function FaUserShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c1.8 0 3.5-.2 5.3-.5c-76.3-55.1-99.8-141-103.1-200.2c-16.1-4.8-33.1-7.3-50.7-7.3l-91.4 0zm308.8-78.3l-120 48C358 277.4 352 286.2 352 296c0 63.3 25.9 168.8 134.8 214.2c5.9 2.5 12.6 2.5 18.5 0C614.1 464.8 640 359.3 640 296c0-9.8-6-18.6-15.1-22.3l-120-48c-5.7-2.3-12.1-2.3-17.8 0zM591.4 312c-3.9 50.7-27.2 116.7-95.4 149.7l0-187.8L591.4 312z\"},\"child\":[]}]})(props);\n};\nexport function FaUserSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L353.3 251.6C407.9 237 448 187.2 448 128C448 57.3 390.7 0 320 0C250.2 0 193.5 55.8 192 125.2L38.8 5.1zM264.3 304.3C170.5 309.4 96 387.2 96 482.3c0 16.4 13.3 29.7 29.7 29.7l388.6 0c3.9 0 7.6-.7 11-2.1l-261-205.6z\"},\"child\":[]}]})(props);\n};\nexport function FaUserTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c10 0 18.8-4.9 24.2-12.5l-99.2-99.2c-14.9-14.9-23.3-35.1-23.3-56.1l0-33c-15.9-4.7-32.8-7.2-50.3-7.2l-91.4 0zM384 224c-17.7 0-32 14.3-32 32l0 82.7c0 17 6.7 33.3 18.7 45.3L478.1 491.3c18.7 18.7 49.1 18.7 67.9 0l73.4-73.4c18.7-18.7 18.7-49.1 0-67.9L512 242.7c-12-12-28.3-18.7-45.3-18.7L384 224zm24 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUserTie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 128a128 128 0 1 0 256 0A128 128 0 1 0 96 128zm94.5 200.2l18.6 31L175.8 483.1l-36-146.9c-2-8.1-9.8-13.4-17.9-11.3C51.9 342.4 0 405.8 0 481.3c0 17 13.8 30.7 30.7 30.7l131.7 0c0 0 0 0 .1 0l5.5 0 112 0 5.5 0c0 0 0 0 .1 0l131.7 0c17 0 30.7-13.8 30.7-30.7c0-75.5-51.9-138.9-121.9-156.4c-8.1-2-15.9 3.3-17.9 11.3l-36 146.9L238.9 359.2l18.6-31c6.4-10.7-1.3-24.2-13.7-24.2L224 304l-19.7 0c-12.4 0-20.1 13.6-13.7 24.2z\"},\"child\":[]}]})(props);\n};\nexport function FaUserXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM471 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUsersBetweenLines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 24C0 10.7 10.7 0 24 0L616 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 48C10.7 48 0 37.3 0 24zM0 488c0-13.3 10.7-24 24-24l592 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24zM83.2 160a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 320c0-35.3 28.7-64 64-64l96 0c12.2 0 23.7 3.4 33.4 9.4c-37.2 15.1-65.6 47.2-75.8 86.6L64 352c-17.7 0-32-14.3-32-32zm461.6 32c-10.3-40.1-39.6-72.6-77.7-87.4c9.4-5.5 20.4-8.6 32.1-8.6l96 0c35.3 0 64 28.7 64 64c0 17.7-14.3 32-32 32l-82.4 0zM391.2 290.4c32.1 7.4 58.1 30.9 68.9 61.6c3.5 10 5.5 20.8 5.5 32c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32c0-11.2 1.9-22 5.5-32c10.5-29.7 35.3-52.8 66.1-60.9c7.8-2.1 16-3.1 24.5-3.1l96 0c7.4 0 14.7 .8 21.6 2.4zm44-130.4a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM321.6 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaUsersGear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 160A80 80 0 1 0 144 0a80 80 0 1 0 0 160zm368 0A80 80 0 1 0 512 0a80 80 0 1 0 0 160zM0 298.7C0 310.4 9.6 320 21.3 320l213.3 0c.2 0 .4 0 .7 0c-26.6-23.5-43.3-57.8-43.3-96c0-7.6 .7-15 1.9-22.3c-13.6-6.3-28.7-9.7-44.6-9.7l-42.7 0C47.8 192 0 239.8 0 298.7zM320 320c24 0 45.9-8.8 62.7-23.3c2.5-3.7 5.2-7.3 8-10.7c2.7-3.3 5.7-6.1 9-8.3C410 262.3 416 243.9 416 224c0-53-43-96-96-96s-96 43-96 96s43 96 96 96zm65.4 60.2c-10.3-5.9-18.1-16.2-20.8-28.2l-103.2 0C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7l300.6 0c-2.1-5.2-3.2-10.9-3.2-16.4l0-3c-1.3-.7-2.7-1.5-4-2.3l-2.6 1.5c-16.8 9.7-40.5 8-54.7-9.7c-4.5-5.6-8.6-11.5-12.4-17.6l-.1-.2-.1-.2-2.4-4.1-.1-.2-.1-.2c-3.4-6.2-6.4-12.6-9-19.3c-8.2-21.2 2.2-42.6 19-52.3l2.7-1.5c0-.8 0-1.5 0-2.3s0-1.5 0-2.3l-2.7-1.5zM533.3 192l-42.7 0c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 17.4-3.5 33.9-9.7 49c2.5 .9 4.9 2 7.1 3.3l2.6 1.5c1.3-.8 2.6-1.6 4-2.3l0-3c0-19.4 13.3-39.1 35.8-42.6c7.9-1.2 16-1.9 24.2-1.9s16.3 .6 24.2 1.9c22.5 3.5 35.8 23.2 35.8 42.6l0 3c1.3 .7 2.7 1.5 4 2.3l2.6-1.5c16.8-9.7 40.5-8 54.7 9.7c2.3 2.8 4.5 5.8 6.6 8.7c-2.1-57.1-49-102.7-106.6-102.7zm91.3 163.9c6.3-3.6 9.5-11.1 6.8-18c-2.1-5.5-4.6-10.8-7.4-15.9l-2.3-4c-3.1-5.1-6.5-9.9-10.2-14.5c-4.6-5.7-12.7-6.7-19-3l-2.9 1.7c-9.2 5.3-20.4 4-29.6-1.3s-16.1-14.5-16.1-25.1l0-3.4c0-7.3-4.9-13.8-12.1-14.9c-6.5-1-13.1-1.5-19.9-1.5s-13.4 .5-19.9 1.5c-7.2 1.1-12.1 7.6-12.1 14.9l0 3.4c0 10.6-6.9 19.8-16.1 25.1s-20.4 6.6-29.6 1.3l-2.9-1.7c-6.3-3.6-14.4-2.6-19 3c-3.7 4.6-7.1 9.5-10.2 14.6l-2.3 3.9c-2.8 5.1-5.3 10.4-7.4 15.9c-2.6 6.8 .5 14.3 6.8 17.9l2.9 1.7c9.2 5.3 13.7 15.8 13.7 26.4s-4.5 21.1-13.7 26.4l-3 1.7c-6.3 3.6-9.5 11.1-6.8 17.9c2.1 5.5 4.6 10.7 7.4 15.8l2.4 4.1c3 5.1 6.4 9.9 10.1 14.5c4.6 5.7 12.7 6.7 19 3l2.9-1.7c9.2-5.3 20.4-4 29.6 1.3s16.1 14.5 16.1 25.1l0 3.4c0 7.3 4.9 13.8 12.1 14.9c6.5 1 13.1 1.5 19.9 1.5s13.4-.5 19.9-1.5c7.2-1.1 12.1-7.6 12.1-14.9l0-3.4c0-10.6 6.9-19.8 16.1-25.1s20.4-6.6 29.6-1.3l2.9 1.7c6.3 3.6 14.4 2.6 19-3c3.7-4.6 7.1-9.4 10.1-14.5l2.4-4.2c2.8-5.1 5.3-10.3 7.4-15.8c2.6-6.8-.5-14.3-6.8-17.9l-3-1.7c-9.2-5.3-13.7-15.8-13.7-26.4s4.5-21.1 13.7-26.4l3-1.7zM472 384a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUsersLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M211.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM32 256c0 17.7 14.3 32 32 32l85.6 0c10.1-39.4 38.6-71.5 75.8-86.6c-9.7-6-21.2-9.4-33.4-9.4l-96 0c-35.3 0-64 28.7-64 64zm461.6 32l82.4 0c17.7 0 32-14.3 32-32c0-35.3-28.7-64-64-64l-96 0c-11.7 0-22.7 3.1-32.1 8.6c38.1 14.8 67.4 47.3 77.7 87.4zM391.2 226.4c-6.9-1.6-14.2-2.4-21.6-2.4l-96 0c-8.5 0-16.7 1.1-24.5 3.1c-30.8 8.1-55.6 31.1-66.1 60.9c-3.5 10-5.5 20.8-5.5 32c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32c0-11.2-1.9-22-5.5-32c-10.8-30.7-36.8-54.2-68.9-61.6zM563.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM321.6 192a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z\"},\"child\":[]}]})(props);\n};\nexport function FaUsersRays (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M41 7C31.6-2.3 16.4-2.3 7 7S-2.3 31.6 7 41l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41 7zM599 7L527 79c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7 505c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 471c-9.4 9.4-9.4 24.6 0 33.9zm592 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM212.1 336c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-.5-1.4-1-2.7-1.6-4c-9.4-22.3-29.8-38.9-54.3-43c-3.9-.7-7.9-1-12-1l-80 0c-4.1 0-8.1 .3-12 1c-.8 .1-1.7 .3-2.5 .5c-24.9 5.1-45.1 23-53.4 46.5zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7l56.1 0c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4l-69.3 0zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3l-69.3 0c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6l56.1 0zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaUsersRectangle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l448 0c53 0 96-43 96-96l0-320c0-53-43-96-96-96L96 0zM64 96c0-17.7 14.3-32 32-32l448 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32L64 96zm159.8 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM96 309.3c0 14.7 11.9 26.7 26.7 26.7l56.1 0c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4l-69.3 0C119.9 256 96 279.9 96 309.3zM461.2 336l56.1 0c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3l-69.3 0c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6zM372 289c-3.9-.7-7.9-1-12-1l-80 0c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-8.6-24.3-29.9-42.6-55.9-47zM512 176a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"},\"child\":[]}]})(props);\n};\nexport function FaUsersSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320l178.1 0c11.8 0 21.3-9.6 21.3-21.3C640 239.8 592.2 192 533.3 192l-42.7 0c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 30.2-10.5 58-28 79.9l-25.2-19.7C408.1 267.7 416 246.8 416 224c0-53-43-96-96-96c-31.1 0-58.7 14.8-76.3 37.7l-40.6-31.8c13-14.2 20.9-33.1 20.9-53.9c0-44.2-35.8-80-80-80C116.3 0 91.9 14.1 77.5 35.5L38.8 5.1zM106.7 192C47.8 192 0 239.8 0 298.7C0 310.4 9.6 320 21.3 320l213.3 0c.2 0 .4 0 .7 0c-20.6-18.2-35.2-42.8-40.8-70.8L121.8 192l-15.2 0zM261.3 352C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7l330.7 0c10.5 0 19.5-6 23.9-14.8L324.9 352l-63.6 0zM512 160A80 80 0 1 0 512 0a80 80 0 1 0 0 160z\"},\"child\":[]}]})(props);\n};\nexport function FaUsersViewfinder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 48l88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L32 0C14.3 0 0 14.3 0 32L0 136c0 13.3 10.7 24 24 24s24-10.7 24-24l0-88zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7l56.1 0c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4l-69.3 0zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3l-69.3 0c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6l56.1 0zm-89.4 0c-8.6-24.3-29.9-42.6-55.9-47c-3.9-.7-7.9-1-12-1l-80 0c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80-32a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM504 48l88 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-17.7-14.3-32-32-32L504 0c-13.3 0-24 10.7-24 24s10.7 24 24 24zM48 464l0-88c0-13.3-10.7-24-24-24s-24 10.7-24 24L0 480c0 17.7 14.3 32 32 32l104 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0zm456 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0c17.7 0 32-14.3 32-32l0-104c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 88-88 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUsers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192l42.7 0c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0L21.3 320C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7l42.7 0C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3l-213.3 0zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352l117.3 0C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7l-330.7 0c-14.7 0-26.7-11.9-26.7-26.7z\"},\"child\":[]}]})(props);\n};\nexport function FaUtensils (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 0C400 0 288 32 288 176l0 112c0 35.3 28.7 64 64 64l32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 0-112 0-208c0-17.7-14.3-32-32-32zM64 16C64 7.8 57.9 1 49.7 .1S34.2 4.6 32.4 12.5L2.1 148.8C.7 155.1 0 161.5 0 167.9c0 45.9 35.1 83.6 80 87.7L80 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224.4c44.9-4.1 80-41.8 80-87.7c0-6.4-.7-12.8-2.1-19.1L191.6 12.5c-1.8-8-9.3-13.3-17.4-12.4S160 7.8 160 16l0 134.2c0 5.4-4.4 9.8-9.8 9.8c-5.1 0-9.3-3.9-9.8-9L127.9 14.6C127.2 6.3 120.3 0 112 0s-15.2 6.3-15.9 14.6L83.7 151c-.5 5.1-4.7 9-9.8 9c-5.4 0-9.8-4.4-9.8-9.8L64 16zm48.3 152l-.3 0-.3 0 .3-.7 .3 .7z\"},\"child\":[]}]})(props);\n};\nexport function FaV (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.7 34.5c16.3-6.8 35 .9 41.8 17.2L192 364.8 322.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7L2.5 76.3c-6.8-16.3 .9-35 17.2-41.8z\"},\"child\":[]}]})(props);\n};\nexport function FaVanShuttle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 104l0 88 96 0 0-96L72 96c-4.4 0-8 3.6-8 8zm482 88L465.1 96 384 96l0 96 162 0zm-226 0l0-96-96 0 0 96 96 0zM592 384l-16 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 104C0 64.2 32.2 32 72 32l120 0 160 0 113.1 0c18.9 0 36.8 8.3 49 22.8L625 186.5c9.7 11.5 15 26.1 15 41.2L640 336c0 26.5-21.5 48-48 48zm-64 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaVault (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 416c0 35.3 28.7 64 64 64l16 0 16 32 64 0 16-32 224 0 16 32 64 0 16-32 16 0c35.3 0 64-28.7 64-64l0-352c0-35.3-28.7-64-64-64L64 0zM224 320a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-240a160 160 0 1 1 0 320 160 160 0 1 1 0-320zM480 221.3L480 336c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-114.7c-18.6-6.6-32-24.4-32-45.3c0-26.5 21.5-48 48-48s48 21.5 48 48c0 20.9-13.4 38.7-32 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaVectorSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 80l32 0 0 32-32 0 0-32zM352 32c-17.7 0-32 14.3-32 32L128 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64l0 64c0 17.7 14.3 32 32 32l0 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l192 0c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-192c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zM96 160c17.7 0 32-14.3 32-32l192 0c0 17.7 14.3 32 32 32l0 192c-17.7 0-32 14.3-32 32l-192 0c0-17.7-14.3-32-32-32l0-192zM48 400l32 0 0 32-32 0 0-32zm320 32l0-32 32 0 0 32-32 0zM48 112l0-32 32 0 0 32-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaVenusDouble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM368 176c0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9C78.1 334.1 16 262.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176zM344 318c14.6-15.6 26.8-33.4 36-53c18.8 14.4 42.4 23 68 23c61.9 0 112-50.1 112-112s-50.1-112-112-112c-25.6 0-49.1 8.6-68 23c-9.3-19.5-21.5-37.4-36-53C373.1 12.6 409.1 0 448 0c97.2 0 176 78.8 176 176c0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9c-26.6-4.9-51.1-15.7-72-31.1z\"},\"child\":[]}]})(props);\n};\nexport function FaVenusMars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM352 176c0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9C62.1 334.1 0 262.3 0 176C0 78.8 78.8 0 176 0s176 78.8 176 176zM271.9 360.6c19.3-10.1 36.9-23.1 52.1-38.4c20 18.5 46.7 29.8 76.1 29.8c61.9 0 112-50.1 112-112s-50.1-112-112-112c-7.2 0-14.3 .7-21.1 2c-4.9-21.5-13-41.7-24-60.2C369.3 66 384.4 64 400 64c37 0 71.4 11.4 99.8 31l20.6-20.6L487 41c-6.9-6.9-8.9-17.2-5.2-26.2S494.3 0 504 0L616 0c13.3 0 24 10.7 24 24l0 112c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L545 140.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176c-50.5 0-96-21.3-128.1-55.4z\"},\"child\":[]}]})(props);\n};\nexport function FaVenus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9z\"},\"child\":[]}]})(props);\n};\nexport function FaVestPatches (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M151.2 69.7l55.9 167.7-11 33.1c-2.7 8.2-4.1 16.7-4.1 25.3L192 464c0 14.5 3.9 28.2 10.7 39.9C195 509 185.9 512 176 512L48 512c-26.5 0-48-21.5-48-48L0 270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6L64 128l0-73.7L64 48C64 21.5 85.5 0 112 0l4.5 0c.2 0 .4 0 .6 0c.4 0 .8 0 1.2 0c18.8 0 34.1 9.7 44.1 18.8C171.6 27.2 190.8 40 224 40s52.4-12.8 61.7-21.2C295.7 9.7 311 0 329.7 0c.4 0 .8 0 1.2 0c.2 0 .4 0 .6 0L336 0c26.5 0 48 21.5 48 48l0 6.3 0 73.7 0 17.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6L448 464c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-168.2c0-5.2 .8-10.3 2.5-15.2L296.8 69.7C279.4 79.7 255.4 88 224 88s-55.4-8.3-72.8-18.3zM96 456a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305l15.5 15.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288l15.5-15.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280l0 8 0 32c0 8.8 7.2 16 16 16l32 0 8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaVest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M207.1 237.4L151.2 69.7C168.6 79.7 192.6 88 224 88s55.4-8.3 72.8-18.3L226.5 280.6c-1.6 4.9-2.5 10-2.5 15.2L224 464c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-193.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6l0-17.5 0-73.7 0-6.3c0-26.5-21.5-48-48-48l-4.5 0c-.2 0-.4 0-.6 0c-.4 0-.8 0-1.2 0C311 0 295.7 9.7 285.7 18.8C276.4 27.2 257.2 40 224 40s-52.4-12.8-61.7-21.2C152.3 9.7 137 0 118.3 0c-.4 0-.8 0-1.2 0c-.2 0-.4 0-.6 0L112 0C85.5 0 64 21.5 64 48l0 6.3L64 128l0 17.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5L0 464c0 26.5 21.5 48 48 48l128 0c9.9 0 19-3 26.7-8.1C195.9 492.2 192 478.5 192 464l0-168.2c0-8.6 1.4-17.1 4.1-25.3l11-33.1zM347.3 356.7l48 48c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-48-48c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zm-294.6 48l48-48c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-48 48c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaVialCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l64 0 64 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 170.8c-20.2 28.6-32 63.5-32 101.2c0 25.2 5.3 49.1 14.8 70.8C189.5 463.7 160.6 480 128 480c-53 0-96-43-96-96L32 96C14.3 96 0 81.7 0 64zM96 96l0 96 64 0 0-96L96 96zM224 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L352 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaVialVirus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l0 288c0 53 43 96 96 96c28.6 0 54.2-12.5 71.8-32.3c.1-14.2 5.6-28.3 16.4-39.1c.2-.2 .1-.6-.2-.6c-30.9 0-56-25.1-56-56s25.1-56 56-56c.3 0 .4-.4 .2-.6c-21.9-21.9-21.9-57.3 0-79.2c2.4-2.4 5-4.6 7.8-6.5L224 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0L96 32 32 32zM96 192l0-96 64 0 0 96-64 0zM216 376c28.8 0 43.2 34.8 22.9 55.2c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9c0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9C444.8 410.8 459.2 376 488 376c13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0C410.8 259.2 376 244.8 376 216c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2c-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-88a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm40 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaVial (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L28.1 342.6C10.1 360.6 0 385 0 410.5L0 416c0 53 43 96 96 96l5.5 0c25.5 0 49.9-10.1 67.9-28.1L448 205.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-32-32-96-96-32-32zM205.3 256L352 109.3 402.7 160l-96 96-101.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaVials (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l56 0 48 0 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 304c0 44.2-35.8 80-80 80s-80-35.8-80-80L32 96C14.3 96 0 81.7 0 64zM136 96L88 96l0 160 48 0 0-160zM288 64c0-17.7 14.3-32 32-32l56 0 48 0 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 304c0 44.2-35.8 80-80 80s-80-35.8-80-80l0-304c-17.7 0-32-14.3-32-32zM424 96l-48 0 0 160 48 0 0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaVideoSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.4-67.7 13.8 9.2c9.8 6.5 22.4 7.2 32.9 1.6s16.9-16.4 16.9-28.2l0-256c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64L448 174.9l0 17.1 0 128 0 5.8-32-25.1L416 128c0-35.3-28.7-64-64-64L113.9 64 38.8 5.1zM407 416.7L32.3 121.5c-.2 2.1-.3 4.3-.3 6.5l0 256c0 35.3 28.7 64 64 64l256 0c23.4 0 43.9-12.6 55-31.3z\"},\"child\":[]}]})(props);\n};\nexport function FaVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 128C0 92.7 28.7 64 64 64l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2l0 256c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1l0-17.1 0-128 0-17.1 14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z\"},\"child\":[]}]})(props);\n};\nexport function FaVihara (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M281 22L305.8 4.7c1.3-.9 2.7-1.8 4.1-2.4C313.1 .7 316.6 0 320 0s6.9 .7 10.1 2.2c1.4 .7 2.8 1.5 4.1 2.4L359 22C393 45.8 430.8 63.5 470.8 74.4l23 6.3c1.8 .5 3.6 1.1 5.2 2c3.2 1.7 5.9 4 8.1 6.8c3.8 4.9 5.6 11.3 4.7 17.8c-.4 2.8-1.2 5.4-2.5 7.8c-1.7 3.2-4 5.9-6.8 8.1c-4.3 3.2-9.6 5.1-15.1 4.9l-7.5 0 0 56.1 6.4 5.1 5.2 4.1c21.1 16.7 45 29.6 70.5 38.1l28.9 9.6c1.6 .5 3.2 1.2 4.6 2c3.1 1.7 5.8 4.1 7.8 6.9s3.5 6.1 4.1 9.6c.5 2.7 .6 5.5 .1 8.3s-1.4 5.4-2.7 7.8c-1.7 3.1-4.1 5.8-6.9 7.8s-6.1 3.5-9.6 4.1c-1.6 .3-3.3 .4-5 .4L544 288l0 65.9c20.5 22.8 47.4 39.2 77.4 46.7C632 403 640 412.6 640 424c0 13.3-10.7 24-24 24l-40 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-160 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-160 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-40 0c-13.3 0-24-10.7-24-24c0-11.4 8-21 18.6-23.4c30-7.6 56.9-23.9 77.4-46.7L96 288l-39.4 0c-1.7 0-3.4-.1-5-.4c-3.5-.7-6.8-2.1-9.6-4.1s-5.2-4.7-7-7.8c-1.3-2.4-2.3-5-2.7-7.8s-.4-5.6 .1-8.3c.7-3.5 2.1-6.8 4.1-9.6s4.7-5.2 7.8-6.9c1.4-.8 3-1.5 4.6-2l28.9-9.6c25.5-8.5 49.4-21.4 70.5-38.1l5.2-4.1 6.4-5.1 0-8.1 0-48-7.5 0c-5.5 .1-10.8-1.7-15.1-4.9c-2.8-2.1-5.1-4.8-6.8-8.1c-1.2-2.4-2.1-5-2.5-7.8c-.9-6.5 .9-12.8 4.7-17.8c2.1-2.8 4.8-5.1 8.1-6.8c1.6-.8 3.4-1.5 5.2-2l23-6.3C209.2 63.5 247 45.8 281 22zM416 128l-96 0-96 0 0 64 72 0 48 0 72 0 0-64zM160 288l0 64 136 0 24 0 24 0 136 0 0-64-136 0-24 0s0 0 0 0l-24 0-136 0z\"},\"child\":[]}]})(props);\n};\nexport function FaVirusCovidSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c11.4-19.5 19.1-41.4 22.3-64.7l33.6 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-33.6 0c-4.2-30.7-16.3-58.8-34.1-82.3L484 125.9l11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L472.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L450.1 92l-23.8 23.8C402.8 97.9 374.7 85.8 344 81.6L344 48l16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L280 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.6c-30.7 4.2-58.8 16.3-82.3 34.1L189.9 92l11.3-11.3c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L134.1 79.8 38.8 5.1zM149.2 213.5c-1.5 6-2.7 12.2-3.5 18.5L112 232l0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 33.6 0c4.2 30.7 16.3 58.8 34.1 82.3L156 386.1l-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L189.9 420l23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1l0 33.6-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0-33.6c20.4-2.8 39.7-9.1 57.3-18.2L149.2 213.5z\"},\"child\":[]}]})(props);\n};\nexport function FaVirusCovid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 33.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L420 125.9l-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3l33.6 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-33.6 0c-4.2 30.7-16.3 58.8-34.1 82.3L420 386.1l11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L386.1 420l-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1l0 33.6 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-33.6c-30.7-4.2-58.8-16.3-82.3-34.1L125.9 420l11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L92 386.1l23.8-23.8C97.9 338.8 85.8 310.7 81.6 280L48 280l0 16c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-80c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 33.6 0c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92l23.8 23.8c23.5-17.9 51.7-29.9 82.3-34.1L232 48l-16 0c-13.3 0-24-10.7-24-24zm48 200a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm64 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaVirusSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-154.3-121c-2-30.1 20.8-60.1 56-60.1l11.5 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-11.5 0c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C412.3 118.4 352 93.4 352 43.5L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11.5c0 49.9-60.3 74.9-95.6 39.6L184.2 75c-12.5-12.5-32.8-12.5-45.3 0c-1.6 1.6-3.1 3.4-4.3 5.3L38.8 5.1zm225.8 177c6.9-3.9 14.9-6.1 23.4-6.1c26.5 0 48 21.5 48 48c0 4.4-.6 8.7-1.7 12.7l-69.7-54.6zM402 412.7L144.7 210c-9.5 8.5-22.2 14-37.2 14L96 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l11.5 0c49.9 0 74.9 60.3 39.6 95.6l-8.2 8.2c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6l0 11.5c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11.5c0-31.2 23.6-52.7 50-55.7z\"},\"child\":[]}]})(props);\n};\nexport function FaVirus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11.5c0 49.9-60.3 74.9-95.6 39.6L120.2 75C107.7 62.5 87.5 62.5 75 75s-12.5 32.8 0 45.3l8.2 8.2C118.4 163.7 93.4 224 43.5 224L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l11.5 0c49.9 0 74.9 60.3 39.6 95.6L75 391.8c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6l0 11.5c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11.5c0-49.9 60.3-74.9 95.6-39.6l8.2 8.2c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-8.2-8.2c-35.3-35.3-10.3-95.6 39.6-95.6l11.5 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-11.5 0c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C348.3 118.4 288 93.4 288 43.5L288 32zM176 224a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaViruses (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0c13.3 0 24 10.7 24 24l0 13.5c0 35.6 43.1 53.5 68.3 28.3l9.5-9.5c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-9.5 9.5C293 124.9 310.9 168 346.5 168l13.5 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-13.5 0c-35.6 0-53.5 43.1-28.3 68.3l9.5 9.5c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-9.5-9.5C259.1 293 216 310.9 216 346.5l0 13.5c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-13.5c0-35.6-43.1-53.5-68.3-28.3l-9.5 9.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l9.5-9.5C91 259.1 73.1 216 37.5 216L24 216c-13.3 0-24-10.7-24-24s10.7-24 24-24l13.5 0c35.6 0 53.5-43.1 28.3-68.3l-9.5-9.5c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l9.5 9.5C124.9 91 168 73.1 168 37.5L168 24c0-13.3 10.7-24 24-24zm48 224a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48-64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm320 80c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C574.5 312.1 591 352 624 352c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C551.9 446.5 512 463 512 496c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C417.5 423.9 401 384 368 384c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C440.1 289.5 480 273 480 240c0-8.8 7.2-16 16-16s16 7.2 16 16zm0 112a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaVoicemail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 320a80 80 0 1 1 0-160 80 80 0 1 1 0 160zm119.8 0c15.3-22.9 24.2-50.4 24.2-80c0-79.5-64.5-144-144-144S0 160.5 0 240s64.5 144 144 144l352 0c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144c0 29.6 8.9 57.1 24.2 80l-112.5 0zM496 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaVolcano (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15C212.4 12.4 232.7 0 256 0s43.6 12.4 54.8 31C322 21.6 336.3 16 352 16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8c19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9c11.3 0 21.8-5.6 28-15l9.7-14.6-58.9-66.3c-9.1-10.2-22.2-16.1-35.9-16.1l-41.8 0c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4L144 352zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2l41.8 0c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7c0 28.8-23.4 52.2-52.2 52.2L52.2 512C23.4 512 0 488.6 0 459.8c0-12.8 4.7-25.1 13.2-34.7l150.2-169z\"},\"child\":[]}]})(props);\n};\nexport function FaVolleyball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M511.8 267.4c-26.1 8.7-53.4 13.8-81 15.1c9.2-105.3-31.5-204.2-103.2-272.4C434.1 41.1 512 139.5 512 256c0 3.8-.1 7.6-.2 11.4zm-3.9 34.7c-5.8 32-17.6 62-34.2 88.7c-97.5 48.5-217.7 42.6-311.9-24.5c23.7-36.2 55.4-67.7 94.5-91.8c79.9 43.2 170.1 50.8 251.6 27.6zm-236-55.5c-2.5-90.9-41.1-172.7-101.9-231.7C196.8 5.2 225.8 0 256 0c2.7 0 5.3 0 7.9 .1c90.8 60.2 145.7 167.2 134.7 282.3c-43.1-2.4-86.4-14.1-126.8-35.9zM138 28.8c20.6 18.3 38.7 39.4 53.7 62.6C95.9 136.1 30.6 220.8 7.3 316.9C2.5 297.4 0 277 0 256C0 157.2 56 71.5 138 28.8zm69.6 90.5c19.5 38.6 31 81.9 32.3 127.7C162.5 294.6 110.9 368.9 90.2 451C66 430.4 45.6 405.4 30.4 377.2c6.7-108.7 71.9-209.9 177.1-257.9zM256 512c-50.7 0-98-14.7-137.8-40.2c5.6-27 14.8-53.1 27.4-77.7C232.2 454.6 338.1 468.8 433 441c-46 44-108.3 71-177 71z\"},\"child\":[]}]})(props);\n};\nexport function FaVolumeHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M533.6 32.5C598.5 85.2 640 165.8 640 256s-41.5 170.7-106.4 223.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C557.5 398.2 592 331.2 592 256s-34.5-142.2-88.7-186.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM473.1 107c43.2 35.2 70.9 88.9 70.9 149s-27.7 113.8-70.9 149c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C475.3 341.3 496 301.1 496 256s-20.7-85.3-53.2-111.8c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zm-60.5 74.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM301.1 34.8C312.6 40 320 51.4 320 64l0 384c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352 64 352c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l67.8 0L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3z\"},\"child\":[]}]})(props);\n};\nexport function FaVolumeLow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M301.1 34.8C312.6 40 320 51.4 320 64l0 384c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352 64 352c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l67.8 0L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM412.6 181.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5z\"},\"child\":[]}]})(props);\n};\nexport function FaVolumeOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 64c0-12.6-7.4-24-18.9-29.2s-25-3.1-34.4 5.3L131.8 160 64 160c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l67.8 0L266.7 471.9c9.4 8.4 22.9 10.4 34.4 5.3S320 460.6 320 448l0-384z\"},\"child\":[]}]})(props);\n};\nexport function FaVolumeXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M301.1 34.8C312.6 40 320 51.4 320 64l0 384c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352 64 352c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l67.8 0L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM425 167l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaVrCardboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M576 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l120.4 0c24.2 0 46.4-13.7 57.2-35.4l32-64c8.8-17.5 26.7-28.6 46.3-28.6s37.5 11.1 46.3 28.6l32 64c10.8 21.7 33 35.4 57.2 35.4L576 448c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64zM96 240a64 64 0 1 1 128 0A64 64 0 1 1 96 240zm384-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaW (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.8 34c16.5-6.2 35 2.2 41.2 18.7l110.2 294L257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23l85.1 291.7L514 52.8c6.2-16.5 24.6-24.9 41.2-18.7s24.9 24.7 18.7 41.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z\"},\"child\":[]}]})(props);\n};\nexport function FaWalkieTalkie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 24c0-13.3-10.7-24-24-24S64 10.7 64 24l0 72L48 96C21.5 96 0 117.5 0 144L0 300.1c0 12.7 5.1 24.9 14.1 33.9l3.9 3.9c9 9 14.1 21.2 14.1 33.9L32 464c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-92.1c0-12.7 5.1-24.9 14.1-33.9l3.9-3.9c9-9 14.1-21.2 14.1-33.9L384 144c0-26.5-21.5-48-48-48l-16 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l-32 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l-48 0 0-72zm0 136l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaWallet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L80 128c-8.8 0-16-7.2-16-16s7.2-16 16-16l368 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM416 272a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaWandMagicSparkles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M234.7 42.7L197 56.8c-3 1.1-5 4-5 7.2s2 6.1 5 7.2l37.7 14.1L248.8 123c1.1 3 4 5 7.2 5s6.1-2 7.2-5l14.1-37.7L315 71.2c3-1.1 5-4 5-7.2s-2-6.1-5-7.2L277.3 42.7 263.2 5c-1.1-3-4-5-7.2-5s-6.1 2-7.2 5L234.7 42.7zM46.1 395.4c-18.7 18.7-18.7 49.1 0 67.9l34.6 34.6c18.7 18.7 49.1 18.7 67.9 0L529.9 116.5c18.7-18.7 18.7-49.1 0-67.9L495.3 14.1c-18.7-18.7-49.1-18.7-67.9 0L46.1 395.4zM484.6 82.6l-105 105-23.3-23.3 105-105 23.3 23.3zM7.5 117.2C3 118.9 0 123.2 0 128s3 9.1 7.5 10.8L64 160l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L128 160l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L128 96 106.8 39.5C105.1 35 100.8 32 96 32s-9.1 3-10.8 7.5L64 96 7.5 117.2zm352 256c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 416l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 416l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 352l-21.2-56.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 352l-56.5 21.2z\"},\"child\":[]}]})(props);\n};\nexport function FaWandMagic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.1 463.3c-18.7-18.7-18.7-49.1 0-67.9L395.4 14.1c18.7-18.7 49.1-18.7 67.9 0l34.6 34.6c18.7 18.7 18.7 49.1 0 67.9L116.5 497.9c-18.7 18.7-49.1 18.7-67.9 0L14.1 463.3zM347.6 187.6l105-105L429.4 59.3l-105 105 23.3 23.3z\"},\"child\":[]}]})(props);\n};\nexport function FaWandSparkles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7l0 21.4c0 8.8-7.2 16-16 16l-15.8 0c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9C94.3 508 85.3 512 75.8 512c-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7C3.5 453.4 0 445 0 436.2c0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9l0-27.6c0-8.8 7.2-16 16-16l34.6 0c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8L87.7 218.2c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8L72.3 69.8c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM208 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z\"},\"child\":[]}]})(props);\n};\nexport function FaWarehouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 488L0 171.3c0-26.2 15.9-49.7 40.2-59.4L308.1 4.8c7.6-3.1 16.1-3.1 23.8 0L599.8 111.9c24.3 9.7 40.2 33.3 40.2 59.4L640 488c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-264c0-17.7-14.3-32-32-32l-384 0c-17.7 0-32 14.3-32 32l0 264c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zm488 24l-336 0c-13.3 0-24-10.7-24-24l0-56 384 0 0 56c0 13.3-10.7 24-24 24zM128 400l0-64 384 0 0 64-384 0zm0-96l0-80 384 0 0 80-384 0z\"},\"child\":[]}]})(props);\n};\nexport function FaWaterLadder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 127.7C128 74.9 170.9 32 223.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7l0 96.3 192 0 0-96.3C384 74.9 426.9 32 479.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7L448 361c-1.6 1-3.3 2-4.8 3.1c-18 12.4-40.1 20.3-59.2 20.3c0 0 0 0 0 0l0-96.5-192 0 0 96.5c-19 0-41.2-7.9-59.1-20.3c-1.6-1.1-3.2-2.2-4.9-3.1l0-233.3zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"},\"child\":[]}]})(props);\n};\nexport function FaWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M269.5 69.9c11.1-7.9 25.9-7.9 37 0C329 85.4 356.5 96 384 96c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 149.7 417 160 384 160c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4C42.8 92.6 61 83.5 75.3 71.6c11.1-9.5 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 85.2 165.1 96 192 96c27.5 0 55-10.6 77.5-26.1zm37 288C329 373.4 356.5 384 384 384c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 437.7 417 448 384 448c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 373.2 165.1 384 192 384c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0zm0-144C329 229.4 356.5 240 384 240c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 293.7 417 304 384 304c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.5 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 229.2 165.1 240 192 240c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"},\"child\":[]}]})(props);\n};\nexport function FaWaveSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 64c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 352 96 0 0-160c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 160c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-352-96 0 0 160c0 17.7-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaWeightHanging (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 96a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm122.5 32c3.5-10 5.5-20.8 5.5-32c0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32L120 128c-22 0-41.2 15-46.6 36.4l-72 288c-3.6 14.3-.4 29.5 8.7 41.2S33.2 512 48 512l416 0c14.8 0 28.7-6.8 37.8-18.5s12.3-26.8 8.7-41.2l-72-288C433.2 143 414 128 392 128l-45.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaWeightScale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 176a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zM391.8 64C359.5 24.9 310.7 0 256 0S152.5 24.9 120.2 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-56.2 0zM296 224c0-10.6-4.1-20.2-10.9-27.4l33.6-78.3c3.5-8.1-.3-17.5-8.4-21s-17.5 .3-21 8.4L255.7 184c-22 .1-39.7 18-39.7 40c0 22.1 17.9 40 40 40s40-17.9 40-40z\"},\"child\":[]}]})(props);\n};\nexport function FaWheatAwnCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c22.5 22.5 53.3 31.5 82.4 27c0-1 0-2.1 0-3.1c0-33.1 9.1-64.1 25-90.6c-15.5-8.7-32.5-13.8-49.8-15.5l31.9-31.9 12.2 12.2c6 6 12.6 11.1 19.7 15.2c27.5-34 67.3-57.5 112.6-63.8c-4.1-3.8-8.4-7.3-12.9-10.5L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaWheatAwn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0L486.5 231c6.2-6.2 6.2-16.4 0-22.6L475.2 197c-5.2-5.2-10.6-9.8-16.4-13.9L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3z\"},\"child\":[]}]})(props);\n};\nexport function FaWheelchairMove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM204.5 121.3c-5.4-2.5-11.7-1.9-16.4 1.7l-40.9 30.7c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l40.9-30.7c23.7-17.8 55.3-21 82.1-8.4l90.4 42.5c29.1 13.7 36.8 51.6 15.2 75.5L299.1 224l97.4 0c30.3 0 53 27.7 47.1 57.4L415.4 422.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L377 288l-70.3 0c8.6 19.6 13.3 41.2 13.3 64c0 88.4-71.6 160-160 160S0 440.4 0 352s71.6-160 160-160c11.1 0 22 1.1 32.4 3.3l54.2-54.2-42.1-19.8zM160 448a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"},\"child\":[]}]})(props);\n};\nexport function FaWheelchair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM120.5 247.2c12.4-4.7 18.7-18.5 14-30.9s-18.5-18.7-30.9-14C43.1 225.1 0 283.5 0 352c0 88.4 71.6 160 160 160c61.2 0 114.3-34.3 141.2-84.7c6.2-11.7 1.8-26.2-9.9-32.5s-26.2-1.8-32.5 9.9C240 440 202.8 464 160 464C98.1 464 48 413.9 48 352c0-47.9 30.1-88.8 72.5-104.8zM259.8 176l-1.9-9.7c-4.5-22.3-24-38.3-46.8-38.3c-30.1 0-52.7 27.5-46.8 57l23.1 115.5c6 29.9 32.2 51.4 62.8 51.4l5.1 0c.4 0 .8 0 1.3 0l94.1 0c6.7 0 12.6 4.1 15 10.4L402 459.2c6 16.1 23.8 24.6 40.1 19.1l48-16c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-18.7 6.2-25.5-68c-11.7-31.2-41.6-51.9-74.9-51.9l-68.5 0-9.6-48 63.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-76.2 0z\"},\"child\":[]}]})(props);\n};\nexport function FaWhiskeyGlass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32c-9.3 0-18.1 4-24.2 11.1S-1 59.4 .3 68.6l50 342.9c5.7 39.3 39.4 68.5 79.2 68.5l253 0c39.7 0 73.4-29.1 79.2-68.5l50-342.9c1.3-9.2-1.4-18.5-7.5-25.5S489.3 32 480 32L32 32zM87.7 224L69 96l374 0L424.3 224 87.7 224z\"},\"child\":[]}]})(props);\n};\nexport function FaWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M54.2 202.9C123.2 136.7 216.8 96 320 96s196.8 40.7 265.8 106.9c12.8 12.2 33 11.8 45.2-.9s11.8-33-.9-45.2C549.7 79.5 440.4 32 320 32S90.3 79.5 9.8 156.7C-2.9 169-3.3 189.2 8.9 202s32.5 13.2 45.2 .9zM320 256c56.8 0 108.6 21.1 148.2 56c13.3 11.7 33.5 10.4 45.2-2.8s10.4-33.5-2.8-45.2C459.8 219.2 393 192 320 192s-139.8 27.2-190.5 72c-13.3 11.7-14.5 31.9-2.8 45.2s31.9 14.5 45.2 2.8c39.5-34.9 91.3-56 148.2-56zm64 160a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaWind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c53 0 96-43 96-96s-43-96-96-96L320 0c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32l32 0c53 0 96-43 96-96s-43-96-96-96L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32 14.3-32 32zM128 512l32 0c53 0 96-43 96-96s-43-96-96-96L32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaWindowMaximize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 96l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaWindowMinimize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z\"},\"child\":[]}]})(props);\n};\nexport function FaWindowRestore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 64L208 64c-8.8 0-16 7.2-16 16l0 16-64 0 0-16c0-44.2 35.8-80 80-80L432 0c44.2 0 80 35.8 80 80l0 224c0 44.2-35.8 80-80 80l-16 0 0-64 16 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zM0 192c0-35.3 28.7-64 64-64l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192zm64 32c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 192c-17.7 0-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaWineBottle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M393.4 9.4c12.5-12.5 32.8-12.5 45.3 0l64 64c12.5 12.5 12.5 32.8 0 45.3c-11.8 11.8-30.7 12.5-43.2 1.9l-9.5 9.5-48.8 48.8c-9.2 9.2-11.5 22.9-8.6 35.6c9.4 40.9-1.9 85.6-33.8 117.5L197.3 493.3c-25 25-65.5 25-90.5 0l-88-88c-25-25-25-65.5 0-90.5L180.2 153.3c31.9-31.9 76.6-43.1 117.5-33.8c12.6 2.9 26.4 .5 35.5-8.6l48.8-48.8 9.5-9.5c-10.6-12.6-10-31.4 1.9-43.2zM99.3 347.3l65.4 65.4c6.2 6.2 16.4 6.2 22.6 0l97.4-97.4c6.2-6.2 6.2-16.4 0-22.6l-65.4-65.4c-6.2-6.2-16.4-6.2-22.6 0L99.3 324.7c-6.2 6.2-6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaWineGlassEmpty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6l0 99.6-48 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0 0-99.6c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0L64 0zM81.9 203.1L93.4 64l133.1 0 11.6 139.1C242 248.8 205.9 288 160 288s-82-39.2-78.1-84.9z\"},\"child\":[]}]})(props);\n};\nexport function FaWineGlass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32.1 29.3C33.5 12.8 47.4 0 64 0L256 0c16.6 0 30.5 12.8 31.9 29.3l14 168.4c6 72-42.5 135.2-109.9 150.6l0 99.6 48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-80 0-80 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0 0-99.6C60.6 333 12.1 269.8 18.1 197.8l14-168.4zm56 98.7l143.8 0-5.3-64L93.4 64l-5.3 64z\"},\"child\":[]}]})(props);\n};\nexport function FaWonSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M62.4 53.9C56.8 37.1 38.6 28.1 21.9 33.6S-3.9 57.4 1.6 74.1L51.6 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l40.9 0 56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288l46 0L321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288l40.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-19.6 0 50-149.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2L392.9 224l-64 0L287 56.2C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L183 224l-64 0L62.4 53.9zm78 234.1l26.6 0-11.4 45.6L140.4 288zM249 224l7-28.1 7 28.1-14 0zm96 64l26.6 0-15.2 45.6L345 288z\"},\"child\":[]}]})(props);\n};\nexport function FaWorm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 96c0-53 43-96 96-96l38.4 0C439.9 0 480 40.1 480 89.6l0 86.4 0 16 0 184c0 75.1-60.9 136-136 136s-136-60.9-136-136l0-80c0-22.1-17.9-40-40-40s-40 17.9-40 40l0 168c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-168c0-75.1 60.9-136 136-136s136 60.9 136 136l0 80c0 22.1 17.9 40 40 40s40-17.9 40-40l0-184-32 0c-53 0-96-43-96-96zm144-8a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaWrench (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7L336 192c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaXRay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 320c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 96C14.3 96 0 81.7 0 64zM256 96c-8.8 0-16 7.2-16 16l0 32-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 48-112 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l112 0 0 70.6L189.1 307c-5.2-2-10.6-3-16.2-3l-2.1 0c-23.6 0-42.8 19.2-42.8 42.8c0 9.6 3.2 18.9 9.1 26.4l18.2 23.2c9.7 12.4 24.6 19.6 40.3 19.6l120.8 0c15.7 0 30.6-7.2 40.3-19.6l18.2-23.2c5.9-7.5 9.1-16.8 9.1-26.4c0-23.6-19.2-42.8-42.8-42.8l-2.2 0c-5.5 0-11 1-16.2 3L272 326.6l0-70.6 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-112 0 0-48 80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-80 0 0-32c0-8.8-7.2-16-16-16zM208 352a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm80 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z\"},\"child\":[]}]})(props);\n};\nexport function FaXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z\"},\"child\":[]}]})(props);\n};\nexport function FaXmarksLines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55L7 311c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55L41 167c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaY (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-149.7L378 82.6c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z\"},\"child\":[]}]})(props);\n};\nexport function FaYenSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M58.6 46.3C48.8 31.5 29 27.6 14.2 37.4S-4.4 67 5.4 81.8L100.2 224 48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0 0 32-80 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-32 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-52.2 0L314.6 81.8c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L160 198.3 58.6 46.3z\"},\"child\":[]}]})(props);\n};\nexport function FaYinYang (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64c53 0 96 43 96 96s-43 96-96 96s-96 43-96 96s43 96 96 96C150 448 64 362 64 256S150 64 256 64zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm32-352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaZ (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l320 0c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96 32 96C14.3 96 0 81.7 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegAddressBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 48c8.8 0 16 7.2 16 16l0 384c0 8.8-7.2 16-16 16L96 464c-8.8 0-16-7.2-16-16L80 64c0-8.8 7.2-16 16-16l288 0zM96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM240 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 192c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegAddressCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM208 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0zM376 144c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegBellSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L542.6 400c2.7-7.8 1.3-16.5-3.9-23l-14.9-18.6C495.5 322.9 480 278.8 480 233.4l0-33.4c0-75.8-55.5-138.6-128-150.1L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 17.9c-43.9 7-81.5 32.7-104.4 68.7L38.8 5.1zM221.7 148.4C239.6 117.1 273.3 96 312 96l8 0 8 0c57.4 0 104 46.6 104 104l0 33.4c0 32.7 6.4 64.8 18.7 94.5L221.7 148.4zM406.2 416l-60.9-48-176.9 0c21.2-32.8 34.4-70.3 38.4-109.1L160 222.1l0 11.4c0 45.4-15.5 89.5-43.8 124.9L101.3 377c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l286.2 0zM384 448l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegBell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0c-17.7 0-32 14.3-32 32l0 19.2C119 66 64 130.6 64 208l0 25.4c0 45.4-15.5 89.5-43.8 124.9L5.3 377c-5.8 7.2-6.9 17.1-2.9 25.4S14.8 416 24 416l400 0c9.2 0 17.6-5.3 21.6-13.6s2.9-18.2-2.9-25.4l-14.9-18.6C399.5 322.9 384 278.8 384 233.4l0-25.4c0-77.4-55-142-128-156.8L256 32c0-17.7-14.3-32-32-32zm0 96c61.9 0 112 50.1 112 112l0 25.4c0 47.9 13.9 94.6 39.7 134.6L72.3 368C98.1 328 112 281.3 112 233.4l0-25.4c0-61.9 50.1-112 112-112zm64 352l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 48C0 21.5 21.5 0 48 0l0 48 0 393.4 130.1-92.9c8.3-6 19.6-6 27.9 0L336 441.4 336 48 48 48 48 0 336 0c26.5 0 48 21.5 48 48l0 440c0 9-5 17.2-13 21.3s-17.6 3.4-24.9-1.8L192 397.5 37.9 507.5c-7.3 5.2-16.9 5.9-24.9 1.8S0 497 0 488L0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegBuilding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0-64c0-26.5 21.5-48 48-48s48 21.5 48 48l0 64 80 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16L64 48zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm88 40c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48zM232 88l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16zM88 232c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48zm144-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zM329 297L217 409c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 95-95c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarDays (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l80 0 0 56-80 0 0-56zm0 104l80 0 0 64-80 0 0-64zm128 0l96 0 0 64-96 0 0-64zm144 0l80 0 0 64-80 0 0-64zm80-48l-80 0 0-56 80 0 0 56zm0 160l0 40c0 8.8-7.2 16-16 16l-64 0 0-56 80 0zm-128 0l0 56-96 0 0-56 96 0zm-144 0l0 56-64 0c-8.8 0-16-7.2-16-16l0-40 80 0zM272 248l-96 0 0-56 96 0 0 56z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zM296 352l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l352 0 0 256c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256zm176 40c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zm-95 89l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l352 0 0 256c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256z\"},\"child\":[]}]})(props);\n};\nexport function FaRegChartBar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 32c13.3 0 24 10.7 24 24l0 352c0 13.3 10.7 24 24 24l416 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L72 480c-39.8 0-72-32.2-72-72L0 56C0 42.7 10.7 32 24 32zM128 136c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24zm24 72l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96l272 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-272 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegChessBishop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M104 0C90.7 0 80 10.7 80 24c0 11.2 7.6 20.6 18 23.2c-7.8 8-16.1 17-24.4 27C38.2 116.7 0 178.8 0 250.9c0 44.8 24.6 72.2 48 87.8L48 352l48 0 0-27c0-9-5-17.2-13-21.3c-18-9.3-35-24.7-35-52.7c0-55.5 29.8-106.8 62.4-145.9c16-19.2 32.1-34.8 44.2-45.5c1.9-1.7 3.7-3.2 5.3-4.6c1.7 1.4 3.4 3 5.3 4.6c12.1 10.7 28.2 26.3 44.2 45.5c5.3 6.3 10.5 13 15.5 20L159 191c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57.8-57.8c12.8 25.9 21.2 54.3 21.2 83.8c0 28-17 43.4-35 52.7c-8 4.1-13 12.3-13 21.3l0 27 48 0 0-13.3c23.4-15.6 48-42.9 48-87.8c0-72.1-38.2-134.2-73.6-176.7c-8.3-9.9-16.6-19-24.4-27c10.3-2.7 18-12.1 18-23.2c0-13.3-10.7-24-24-24L160 0 104 0zM52.7 464l16.6-32 181.6 0 16.6 32L52.7 464zm207.9-80l-201 0c-12 0-22.9 6.7-28.4 17.3L4.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C0 493.8 18.2 512 40.8 512l238.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2c-5.5-10.6-16.5-17.3-28.4-17.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegChessKing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 40L59.6 144C26.7 144 0 170.7 0 203.6c0 8.2 1.7 16.3 4.9 23.8L59.1 352l52.3 0L49 208.2c-.6-1.5-1-3-1-4.6c0-6.4 5.2-11.6 11.6-11.6L224 192l164.4 0c6.4 0 11.6 5.2 11.6 11.6c0 1.6-.3 3.2-1 4.6L336.5 352l52.3 0 54.2-124.6c3.3-7.5 4.9-15.6 4.9-23.8c0-32.9-26.7-59.6-59.6-59.6L248 144l0-40 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32zM101.2 432l245.6 0 16.6 32L84.7 464l16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3l-265 0c-12 0-22.9 6.7-28.4 17.3L36.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C32 493.8 50.2 512 72.8 512l302.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z\"},\"child\":[]}]})(props);\n};\nexport function FaRegChessKnight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M226.6 48L117.3 48l17.1 12.8c6 4.5 9.6 11.6 9.6 19.2s-3.6 14.7-9.6 19.2l-6.5 4.9c-10 7.5-16 19.3-16 31.9l-.3 91c0 10.2 4.9 19.9 13.2 25.8l1.9 1.3c9.9 7.1 23.3 7 33.2-.1l49.9-36.3c10.7-7.8 25.7-5.4 33.5 5.3s5.4 25.7-5.3 33.5l-49.9 36.3-53.8 39.1c-7.3 5.3-13 12.2-16.9 20.1l-50.7 0c5.3-22.1 17.8-41.9 35.9-56.3c-1.3-.8-2.6-1.7-3.8-2.6L97 291.8c-21-15-33.4-39.2-33.3-65l.3-91c.1-19.8 6.7-38.7 18.6-53.9l-.4-.3C70.7 73 64 59.6 64 45.3C64 20.3 84.3 0 109.3 0L226.6 0C331.2 0 416 84.8 416 189.4c0 11.1-1 22.2-2.9 33.2L390.1 352l-48.8 0 24.5-137.8c1.5-8.2 2.2-16.5 2.2-24.8C368 111.3 304.7 48 226.6 48zM85.2 432L68.7 464l310.7 0-16.6-32L85.2 432zm315.7-30.7l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L56.8 512C34.2 512 16 493.8 16 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C52.5 390.7 63.5 384 75.5 384l297 0c12 0 22.9 6.7 28.4 17.3zM172 128a20 20 0 1 1 0 40 20 20 0 1 1 0-40z\"},\"child\":[]}]})(props);\n};\nexport function FaRegChessPawn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 152A72 72 0 1 0 88 152a72 72 0 1 0 144 0zm24 120l-12.6 0 10.7 80-48.4 0L195 272l-35 0-35 0-10.7 80-48.4 0 10.7-80L64 272c-13.3 0-24-10.7-24-24s10.7-24 24-24c-15.1-20.1-24-45-24-72C40 85.7 93.7 32 160 32s120 53.7 120 120c0 27-8.9 51.9-24 72c13.3 0 24 10.7 24 24s-10.7 24-24 24zM52.7 464l214.7 0-16.6-32L69.2 432 52.7 464zm207.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L40.8 512C18.2 512 0 493.8 0 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C36.5 390.7 47.5 384 59.5 384l201 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegChessQueen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-95.2-8c-18.1 0-31.3 12.8-35.6 26.9c-8 26.2-32.4 45.2-61.2 45.2c-10 0-19.4-2.3-27.7-6.3c-7.6-3.7-16.7-3.3-24 1.2C.7 162.1-3.1 177.1 3.7 188.9L97.6 352l55.4 0-83-144.1c40.5-2.2 75.3-25.9 93.1-59.8c22 26.8 55.4 43.9 92.8 43.9s70.8-17.1 92.8-43.9c17.8 34 52.6 57.7 93.1 59.8L359 352l55.4 0 93.9-163.1c6.8-11.7 3-26.7-8.6-33.8c-7.3-4.5-16.4-4.9-24-1.2c-8.4 4-17.7 6.3-27.7 6.3c-28.8 0-53.2-19-61.2-45.2C382.5 100.8 369.3 88 351.2 88c-14.5 0-26.3 8.5-32.4 19.3c-12.4 22-35.9 36.7-62.8 36.7s-50.4-14.8-62.8-36.7C187.1 96.5 175.4 88 160.8 88zM133.2 432l245.6 0 16.6 32-278.7 0 16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3l-265 0c-12 0-22.9 6.7-28.4 17.3L68.6 452.5c-3 5.8-4.6 12.2-4.6 18.7c0 22.5 18.2 40.8 40.8 40.8l302.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z\"},\"child\":[]}]})(props);\n};\nexport function FaRegChessRook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 80l0 112c0 2.5 1.2 4.9 3.2 6.4l51.2 38.4c6.8 5.1 10.4 13.4 9.5 21.9L133.5 352l-48.3 0 9.4-85L54.4 236.8C40.3 226.2 32 209.6 32 192L32 72c0-22.1 17.9-40 40-40l304 0c22.1 0 40 17.9 40 40l0 120c0 17.6-8.3 34.2-22.4 44.8L353.4 267l9.4 85-48.3 0-10.4-93.3c-.9-8.4 2.7-16.8 9.5-21.9l51.2-38.4c2-1.5 3.2-3.9 3.2-6.4l0-112-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24L80 80zm4.7 384l278.7 0-16.6-32-245.6 0L84.7 464zm271.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L72.8 512C50.2 512 32 493.8 32 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C68.5 390.7 79.5 384 91.5 384l265 0zM208 288c-8.8 0-16-7.2-16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 8.8-7.2 16-16 16l-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleDot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 464a208 208 0 1 1 0-416 208 208 0 1 1 0 416zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM128 256l0 32L256 416 384 288l0-32-80 0 0-128-96 0 0 128-80 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 256a208 208 0 1 1 416 0A208 208 0 1 1 48 256zm464 0A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM256 128l-32 0L96 256 224 384l32 0 0-80 128 0 0-96-128 0 0-80z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCirclePause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm224-72l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24zm112 0l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCirclePlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9l0-176c0-8.7 4.7-16.7 12.3-20.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleQuestion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm169.8-90.7c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM294.6 151.2c-4.2-4.6-10.1-7.2-16.4-7.2C266 144 256 154 256 166.3l0 41.7-96 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l96 0 0 41.7c0 12.3 10 22.3 22.3 22.3c6.2 0 12.1-2.6 16.4-7.2l84-91c3.5-3.8 5.4-8.7 5.4-13.9s-1.9-10.1-5.4-13.9l-84-91z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleStop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm192-96l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM151.2 217.4c-4.6 4.2-7.2 10.1-7.2 16.4c0 12.3 10 22.3 22.3 22.3l41.7 0 0 96c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-96 41.7 0c12.3 0 22.3-10 22.3-22.3c0-6.2-2.6-12.1-7.2-16.4l-91-84c-3.8-3.5-8.7-5.4-13.9-5.4s-10.1 1.9-13.9 5.4l-91 84z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M406.5 399.6C387.4 352.9 341.5 320 288 320l-64 0c-53.5 0-99.4 32.9-118.5 79.6C69.9 362.2 48 311.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 55.7-21.9 106.2-57.5 143.6zm-40.1 32.7C334.4 452.4 296.6 464 256 464s-78.4-11.6-110.5-31.7c7.3-36.7 39.7-64.3 78.5-64.3l64 0c38.8 0 71.2 27.6 78.5 64.3zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-272a40 40 0 1 1 0-80 40 40 0 1 1 0 80zm-88-40a88 88 0 1 0 176 0 88 88 0 1 0 -176 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"},\"child\":[]}]})(props);\n};\nexport function FaRegClipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M280 64l40 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l40 0 9.6 0C121 27.5 153.3 0 192 0s71 27.5 78.4 64l9.6 0zM64 112c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16l-16 0 0 24c0 13.3-10.7 24-24 24l-88 0-88 0c-13.3 0-24-10.7-24-24l0-24-16 0zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegClone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 464l224 0c8.8 0 16-7.2 16-16l0-64 48 0 0 64c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l64 0 0 48-64 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16zM224 304l224 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16L224 48c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16zm-64-16l0-224c0-35.3 28.7-64 64-64L448 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-224 0c-35.3 0-64-28.7-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegClosedCaptioning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCommentDots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168.2 384.9c-15-5.4-31.7-3.1-44.6 6.4c-8.2 6-22.3 14.8-39.4 22.7c5.6-14.7 9.9-31.3 11.3-49.4c1-12.9-3.3-25.7-11.8-35.5C60.4 302.8 48 272 48 240c0-79.5 83.3-160 208-160s208 80.5 208 160s-83.3 160-208 160c-31.6 0-61.3-5.5-87.8-15.1zM26.3 423.8c-1.6 2.7-3.3 5.4-5.1 8.1l-.3 .5c-1.6 2.3-3.2 4.6-4.8 6.9c-3.5 4.7-7.3 9.3-11.3 13.5c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c5.1 0 10.2-.3 15.3-.8l.7-.1c4.4-.5 8.8-1.1 13.2-1.9c.8-.1 1.6-.3 2.4-.5c17.8-3.5 34.9-9.5 50.1-16.1c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9zM144 272a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm80 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegComment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M123.6 391.3c12.9-9.4 29.6-11.8 44.6-6.4c26.5 9.6 56.2 15.1 87.8 15.1c124.7 0 208-80.5 208-160s-83.3-160-208-160S48 160.5 48 240c0 32 12.4 62.8 35.7 89.2c8.6 9.7 12.8 22.5 11.8 35.5c-1.4 18.1-5.7 34.7-11.3 49.4c17-7.9 31.1-16.7 39.4-22.7zM21.2 431.9c1.8-2.7 3.5-5.4 5.1-8.1c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208s-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6c-15.1 6.6-32.3 12.6-50.1 16.1c-.8 .2-1.6 .3-2.4 .5c-4.4 .8-8.7 1.5-13.2 1.9c-.2 0-.5 .1-.7 .1c-5.1 .5-10.2 .8-15.3 .8c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c4.1-4.2 7.8-8.7 11.3-13.5c1.7-2.3 3.3-4.6 4.8-6.9l.3-.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRegComments (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128s-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6c-10.4-2-21.2-.6-30.7 4.2c-4.1 2.1-8.3 4.1-12.6 6c-16 7.2-32.9 13.5-49.9 18c2.8-4.6 5.4-9.1 7.9-13.6c1.1-1.9 2.2-3.9 3.2-5.9zM208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 41.8 17.2 80.1 45.9 110.3c-.9 1.7-1.9 3.5-2.8 5.1c-10.3 18.4-22.3 36.5-36.6 52.1c-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7c4.8-2.2 9.6-4.5 14.2-6.8c15.1 3 30.9 4.5 47.1 4.5zM432 480c16.2 0 31.9-1.6 47.1-4.5c4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5c3.8-8.8 2-19-4.6-25.9c-14.2-15.6-26.2-33.7-36.6-52.1c-.9-1.7-1.9-3.4-2.8-5.1C622.8 384.1 640 345.8 640 304c0-94.4-87.9-171.5-198.2-175.8c4.1 15.2 6.2 31.2 6.2 47.8l0 .6c87.2 6.7 144 67.5 144 127.4c0 28-11.4 54.9-32.7 77.2c-14.3 15-17.3 37.6-7.5 55.8c1.1 2 2.2 4 3.2 5.9c2.5 4.5 5.2 9 7.9 13.6c-17-4.5-33.9-10.7-49.9-18c-4.3-1.9-8.5-3.9-12.6-6c-9.5-4.8-20.3-6.2-30.7-4.2c-12.1 2.4-24.8 3.6-37.8 3.6c-61.7 0-110-26.5-136.8-62.3c-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm306.7 69.1L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 336l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l140.1 0L400 115.9 400 320c0 8.8-7.2 16-16 16zM192 384l192 0c35.3 0 64-28.7 64-64l0-204.1c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1L192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-32-48 0 0 32c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l32 0 0-48-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCopyright (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c-31.2-31.2-31.2-81.9 0-113.1s81.9-31.2 113.1 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-50-50-131-50-181 0s-50 131 0 181s131 50 181 0c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-31.2 31.2-81.9 31.2-113.1 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCreditCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 80c8.8 0 16 7.2 16 16l0 32L48 128l0-32c0-8.8 7.2-16 16-16l448 0zm16 144l0 192c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-192 480 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm56 304c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegEnvelopeOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.4 48.2c.2-.1 .4-.2 .6-.2s.4 .1 .6 .2L460.6 194c2.1 1.5 3.4 3.9 3.4 6.5l0 13.6L291.5 355.7c-20.7 17-50.4 17-71.1 0L48 214.1l0-13.6c0-2.6 1.2-5 3.4-6.5L255.4 48.2zM48 276.2L190 392.8c38.4 31.5 93.7 31.5 132 0L464 276.2 464 456c0 4.4-3.6 8-8 8L56 464c-4.4 0-8-3.6-8-8l0-179.8zM256 0c-10.2 0-20.2 3.2-28.5 9.1L23.5 154.9C8.7 165.4 0 182.4 0 200.5L0 456c0 30.9 25.1 56 56 56l400 0c30.9 0 56-25.1 56-56l0-255.5c0-18.1-8.7-35.1-23.4-45.6L284.5 9.1C276.2 3.2 266.2 0 256 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegEnvelope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 112c-8.8 0-16 7.2-16 16l0 22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1l0-22.1c0-8.8-7.2-16-16-16L64 112zM48 212.2L48 384c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-171.8L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128z\"},\"child\":[]}]})(props);\n};\nexport function FaRegEyeSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRegEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceAngry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm72.4-118.5c9.7-9 10.2-24.2 1.2-33.9C315.3 344.3 290.6 328 256 328s-59.3 16.3-73.5 31.6c-9 9.7-8.5 24.9 1.2 33.9s24.9 8.5 33.9-1.2c7.4-7.9 20-16.4 38.5-16.4s31.1 8.5 38.5 16.4c9 9.7 24.2 10.2 33.9 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceDizzy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM103 135c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9zm192 0c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceFlushed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM160.4 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0zM160 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm144-80a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceFrownOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceFrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM174.6 384.1c-4.5 12.5-18.2 18.9-30.7 14.4s-18.9-18.2-14.4-30.7C146.9 319.4 198.9 288 256 288s109.1 31.4 126.6 79.9c4.5 12.5-2 26.2-14.4 30.7s-26.2-2-30.7-14.4C328.2 358.5 297.2 336 256 336s-72.2 22.5-81.4 48.1zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrimace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM168 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l8 0 0-48-8 0zm40 48l32 0 0-48-32 0 0 48zm96 0l0-48-32 0 0 48 32 0zm32 0l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0 48zM168 288l176 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-176 0c-30.9 0-56-25.1-56-56s25.1-56 56-56zm-23.6-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinBeamSweat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M476.8 126.3C497.1 120.8 512 102.7 512 81c0-20-28.6-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0c-9.5 12.6-27.1 37.2-36 57.5c-.3 .7-.6 1.4-.9 2.1C417.8 69.7 416 76 416 81c0 26 21.5 47 48 47c4.4 0 8.7-.6 12.8-1.7zM395.4 41.2C355.3 15.2 307.4 0 256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256c0-35.8-7.3-69.9-20.6-100.8c-8.6 3.1-17.8 4.8-27.4 4.8c-8.9 0-17.6-1.5-25.7-4.2C454.7 185.5 464 219.7 464 256c0 114.9-93.1 208-208 208S48 370.9 48 256S141.1 48 256 48c48.7 0 93.4 16.7 128.9 44.7c-.6-3.8-.9-7.7-.9-11.7c0-11.4 3.8-22.4 7.1-30.5c1.3-3.1 2.7-6.2 4.3-9.3zM375 336.5c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5zM217.6 228.8s0 0 0 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0zm160 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0c0 0 0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM217.6 228.8s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinHearts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM215.3 137.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm122.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinSquintTears (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-14.8 14.8-65.7 23.6-88.3 26.7c-5.6 .9-10.3-3.9-9.5-9.5C403.3 79.9 412 29 426.8 14.2zM75 75C158.2-8.3 284.5-22.2 382.2 33.2c-1.5 4.8-2.9 9.6-4.1 14.3c-3.1 12.2-5.5 24.6-7.3 35c-80.8-53.6-190.7-44.8-261.9 26.4C37.7 180.1 28.9 290 82.5 370.8c-10.5 1.8-22.9 4.2-35 7.3c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75zm389.6 58.9c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c3.1-12.2 5.5-24.6 7.3-35c80.8 53.6 190.7 44.8 261.9-26.4c71.2-71.2 80-181.1 26.4-261.9c10.5-1.8 22.9-4.2 35-7.3zm-105.4 93c10.1-16.3 33.9-16.9 37.9 1.9c9.5 44.4-3.7 93.5-39.3 129.1s-84.8 48.8-129.1 39.3c-18.7-4-18.2-27.8-1.9-37.9c25.2-15.7 50.2-35.4 73.6-58.8s43.1-48.4 58.8-73.6zM92 265.3l97.4-29.7c11.6-3.5 22.5 7.3 19 19l-29.7 97.4c-2.6 8.6-13.4 11.3-19.8 4.9c-2-2-3.2-4.6-3.4-7.3l-5.1-56.1-56.1-5.1c-2.8-.3-5.4-1.5-7.3-3.4c-6.3-6.3-3.6-17.2 4.9-19.8zm193-178.2c2 2 3.2 4.6 3.4 7.3l5.1 56.1 56.1 5.1c2.8 .3 5.4 1.5 7.3 3.4c6.3 6.3 3.6 17.2-4.9 19.8l-97.4 29.7c-11.6 3.5-22.5-7.3-19-19L265.3 92c2.6-8.6 13.4-11.3 19.8-4.9zM14.9 497.1c-19.6-19.6-20-51-.7-70.3C29 412 79.8 403.2 102.4 400.1c5.6-.9 10.3 3.9 9.5 9.5c-3.2 22.5-11.9 73.5-26.7 88.3C66 517 34.5 516.6 14.9 497.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinSquint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zm-216-161.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinStars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM183.2 132.6c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L176 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L242.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm160 0c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L336 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L402.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm6.3 175.8c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5c10.4-16.1-6.8-32.5-25.5-28.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinTears (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M516.1 325.5c1 3 2.1 6 3.3 8.9c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c1.2-2.9 2.3-5.9 3.3-8.9C152.5 406.2 229.5 464 320 464s167.5-57.8 196.1-138.5zM320 48c-101.4 0-185.8 72.5-204.3 168.5c-6.7-3.1-14.3-4.3-22.3-3.1c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-8-1.2-15.7 .1-22.3 3.1C505.8 120.5 421.4 48 320 48zM78.5 341.1C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7zm483 0c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zM439 336.5C414.4 374.6 370.3 400 319.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1zM281.6 228.8c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0zm160 0s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinTongueSquint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4l0-23.3c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6l0 22.9c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm116-98.9c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 416l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinTongueWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M348.3 442.4c2.4-8.4 3.7-17.3 3.7-26.4l0-52.5c8.8-8 16.6-17.1 23-27c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c6.5 10 14.3 19.1 23.1 27.1l0 52.4c0 9.2 1.3 18 3.7 26.4C95.1 408.4 48 337.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 81.7-47.1 152.4-115.7 186.4zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm176.7 12a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-.4-72a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM320 416c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-37.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6l0 37.4z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinTongue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4l0-52.4c-8.9-8-16.7-17.1-23.1-27.1c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1c-6.4 9.9-14.2 19-23 27l0 52.5c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 416l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinWide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM224 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm96 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceKissBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 41.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 427.1 257.4 432 240 432c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-68.9s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceKissWinkHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M338.9 446.8c-25.4 11-53.4 17.2-82.9 17.2C141.1 464 48 370.9 48 256S141.1 48 256 48s208 93.1 208 208c0 22.4-3.5 43.9-10.1 64.1c3.1 4.5 5.7 9.4 7.8 14.6c12.7-1.6 25.1 .4 36.2 5c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-6.5-25.3zM296 316c0-6.9-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4C258.7 276.9 241.4 272 224 272c-3.6 0-6.8 2.5-7.7 6s.6 7.2 3.8 9c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c-2.5 1.4-4.1 4.1-4.1 7s1.6 5.6 4.1 7c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-3.2 1.8-4.7 5.5-3.8 9s4.1 6 7.7 6c17.4 0 34.7-4.9 47.9-12.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3s-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4c-2.7-1.5-5.7-3-8.7-4.3c3.1-1.3 6-2.7 8.7-4.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm159.3-20c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C375.7 186.8 355 180 335.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceKiss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 25.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 411.1 257.4 416 240 416c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.8-.5-.1-.1-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceLaughBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm86.9-85.1s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceLaughSquint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm2.8-183.3l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 141.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceLaughWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceLaugh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceMehBlank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceMeh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM184 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceRollingEyes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM168 376c0 13.3 10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0c-13.3 0-24 10.7-24 24zm-8-104c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm192-32c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceSadCry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 406.1L400 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 152.6c-28.7 15-61.4 23.4-96 23.4s-67.3-8.5-96-23.4L160 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 118.1C72.6 368.2 48 315 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 59-24.6 112.2-64 150.1zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm166.6 9.7c5.5-5.8 14.8-9.7 25.4-9.7s19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C391.7 186.8 371 180 351.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9zM208 320l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceSadTear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M175.9 448c-35-.1-65.5-22.6-76-54.6C67.6 356.8 48 308.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208s-93.1 208-208 208c-28.4 0-55.5-5.7-80.1-16zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM128 369c0 26 21.5 47 48 47s48-21 48-47c0-20-28.4-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0C156.6 308.6 128 349 128 369zm128-65c-13.3 0-24 10.7-24 24s10.7 24 24 24c30.7 0 58.7 11.5 80 30.6c9.9 8.8 25 8 33.9-1.9s8-25-1.9-33.9C338.3 320.2 299 304 256 304zm47.6-96a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm-128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceSmileBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zm40-89.3s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceSmileWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceSmile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceSurprise (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceTired (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.5 64.3C196.1 302.1 223.8 288 256 288s59.9 14.1 79.5 32.3C354.5 338.1 368 362 368 384c0 5.4-2.7 10.4-7.2 13.4s-10.2 3.4-15.2 1.3l-17.2-7.5c-22.8-10-47.5-15.1-72.4-15.1s-49.6 5.2-72.4 15.1l-17.2 7.5c-4.9 2.2-10.7 1.7-15.2-1.3s-7.2-8-7.2-13.4c0-22 13.5-45.9 32.5-63.7zm-43-173.6l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileAudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 464l256 0c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM192 272l0 128c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L129.4 376 112 376c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16l17.4 0 35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8zm85.8-4c11.6 20 18.2 43.3 18.2 68s-6.6 48-18.2 68c-6.6 11.5-21.3 15.4-32.8 8.8s-15.4-21.3-8.8-32.8c7.5-12.9 11.8-27.9 11.8-44s-4.3-31.1-11.8-44c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm97 289c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L79 303c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 31-31zM257 255c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9l-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileExcel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 448L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm90.9 233.3c-8.1-10.5-23.2-12.3-33.7-4.2s-12.3 23.2-4.2 33.7L161.6 320l-44.5 57.3c-8.1 10.5-6.3 25.5 4.2 33.7s25.5 6.3 33.7-4.2L192 359.1l37.1 47.6c8.1 10.5 23.2 12.3 33.7 4.2s12.3-23.2 4.2-33.7L222.4 320l44.5-57.3c8.1-10.5 6.3-25.5-4.2-33.7s-25.5-6.3-33.7 4.2L192 280.9l-37.1-47.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm96 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm69.2 46.9c-3-4.3-7.9-6.9-13.2-6.9s-10.2 2.6-13.2 6.9l-41.3 59.7-11.9-19.1c-2.9-4.7-8.1-7.5-13.6-7.5s-10.6 2.8-13.6 7.5l-40 64c-3.1 4.9-3.2 11.1-.4 16.2s8.2 8.2 14 8.2l48 0 32 0 40 0 72 0c6 0 11.4-3.3 14.2-8.6s2.4-11.6-1-16.5l-72-104z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileLines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm56 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFilePdf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 464l48 0 0 48-48 0c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 304l-48 0 0-144-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16zM176 352l32 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-16 0 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-80c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0 48 16 0zm96-80l32 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16l0-128c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-16 0 0 96 16 0zm80-112c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFilePowerpoint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm72 208c-13.3 0-24 10.7-24 24l0 104 0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 44 0c42 0 76-34 76-76s-34-76-76-76l-68 0zm68 104l-44 0 0-56 44 0c15.5 0 28 12.5 28 28s-12.5 28-28 28z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 464c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM80 288c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 16 44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3l0 103.4c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1L240 368l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileWord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 448L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm55 241.1c-3.8-12.7-17.2-19.9-29.9-16.1s-19.9 17.2-16.1 29.9l48 160c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l25-83.4 25 83.4c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l48-160c3.8-12.7-3.4-26.1-16.1-29.9s-26.1 3.4-29.9 16.1l-25 83.4-25-83.4c-3-10.2-12.4-17.1-23-17.1s-19.9 7-23 17.1l-25 83.4-25-83.4z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileZipper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l48 0c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l48 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm48 112c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm-6.3 71.8L82.1 335.9c-1.4 5.4-2.1 10.9-2.1 16.4c0 35.2 28.8 63.7 64 63.7s64-28.5 64-63.7c0-5.5-.7-11.1-2.1-16.4l-23.5-88.2c-3.7-14-16.4-23.8-30.9-23.8l-14.8 0c-14.5 0-27.2 9.7-30.9 23.8zM128 336l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 464c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 64 0 350.5 0 400l0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-100 80.3-20.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-279.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L48 52l0-28zm0 77.5l96.6-24.2c27-6.7 55.5-3.6 80.4 8.8c54.9 27.4 118.7 29.7 175 6.8l0 241.8-24.4 9.1c-33.7 12.6-71.2 10.7-103.4-5.4c-48.2-24.1-103.3-30.1-155.6-17.1L48 338.5l0-237z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFloppyDisk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 96l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-245.5c0-4.2-1.7-8.3-4.7-11.3l33.9-33.9c12 12 18.7 28.3 18.7 45.3L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l245.5 0c17 0 33.3 6.7 45.3 18.7l74.5 74.5-33.9 33.9L320.8 84.7c-.3-.3-.5-.5-.8-.8L320 184c0 13.3-10.7 24-24 24l-192 0c-13.3 0-24-10.7-24-24L80 80 64 80c-8.8 0-16 7.2-16 16zm80-16l0 80 144 0 0-80L128 80zm32 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFolderClosed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M251.7 127.6s0 0 0 0c10.5 10.5 24.7 16.4 39.6 16.4L448 144c8.8 0 16 7.2 16 16l0 32L48 192l0-96c0-8.8 7.2-16 16-16l133.5 0c4.2 0 8.3 1.7 11.3 4.7l33.9-33.9L208.8 84.7l42.9 42.9zM48 240l416 0 0 176c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-176zM285.7 93.7L242.7 50.7c-12-12-28.3-18.7-45.3-18.7L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L291.3 96c-2.1 0-4.2-.8-5.7-2.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFolderOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 480l48 0c11.4 0 21.9-6 27.6-15.9l112-192c5.8-9.9 5.8-22.1 .1-32.1S555.5 224 544 224l-400 0c-11.4 0-21.9 6-27.6 15.9L48 357.1 48 96c0-8.8 7.2-16 16-16l117.5 0c4.2 0 8.3 1.7 11.3 4.7l26.5 26.5c21 21 49.5 32.8 79.2 32.8L416 144c8.8 0 16 7.2 16 16l0 32 48 0 0-32c0-35.3-28.7-64-64-64L298.5 96c-17 0-33.3-6.7-45.3-18.7L226.7 50.7c-12-12-28.3-18.7-45.3-18.7L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l23.7 0L384 480z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l132.1 0c19.1 0 37.4 7.6 50.9 21.1L289.9 96 448 96c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16l-161.4 0c-10.6 0-20.8-4.2-28.3-11.7L213.1 87c-4.5-4.5-10.6-7-17-7L64 80z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFontAwesome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M91.7 96C106.3 86.8 116 70.5 116 52C116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 3 0 48 0 256 0 48 0 64 48 0 0-64 389.6 0c14.6 0 26.4-11.8 26.4-26.4c0-3.7-.8-7.3-2.3-10.7L432 272l61.7-138.9c1.5-3.4 2.3-7 2.3-10.7c0-14.6-11.8-26.4-26.4-26.4L91.7 96zM80 400l0-256 356.4 0L388.1 252.5c-5.5 12.4-5.5 26.6 0 39L436.4 400 80 400z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFutbol (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M435.4 361.4l-89.7-6c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-22 87.2c-14.4 3.2-29.4 4.8-44.8 4.8s-30.3-1.7-44.8-4.8l-22-87.2c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-89.7 6C61.7 335.9 51.9 307 49 276.2L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15L100.4 118c19.9-22.4 44.6-40.5 72.4-52.7l69.1 57.6c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l69.1-57.6c27.8 12.2 52.5 30.3 72.4 52.7l-33.4 83.4c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9L463 276.2c-3 30.8-12.7 59.7-27.6 85.2zM256 48l.9 0-1.8 0 .9 0zM56.7 196.2c.9-3 1.9-6.1 2.9-9.1l-2.9 9.1zM132 423l3.8 2.7c-1.3-.9-2.5-1.8-3.8-2.7zm248.1-.1c-1.3 1-2.6 2-4 2.9l4-2.9zm75.2-226.7l-3-9.2c1.1 3 2.1 6.1 3 9.2zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGem (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168.5 72L256 165l87.5-93-175 0zM383.9 99.1L311.5 176l129 0L383.9 99.1zm50 124.9L256 224 78.1 224 256 420.3 433.9 224zM71.5 176l129 0L128.1 99.1 71.5 176zm434.3 40.1l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandBackFist (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 64c0-8.8 7.2-16 16-16s16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16l0 104c0 31.3-20 58-48 67.9c-9.6 3.4-16 12.5-16 22.6L304 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-117.8c38-20.1 64-60.1 64-106.2l0-104c0-35.3-28.7-64-64-64c-2.8 0-5.6 .2-8.3 .5C332.8 77.1 311.9 64 288 64c-2.8 0-5.6 .2-8.3 .5C268.8 45.1 247.9 32 224 32c-2.8 0-5.6 .2-8.3 .5C204.8 13.1 183.9 0 160 0C124.7 0 96 28.7 96 64l0 64.3c-11.7 7.4-22.5 16.4-32 26.9l17.8 16.1L64 155.2l-9.4 10.5C40 181.8 32 202.8 32 224.6l0 12.8c0 49.6 24.2 96.1 64.8 124.5l13.8-19.7L96.8 361.9l8.9 6.2c6.9 4.8 14.4 8.6 22.3 11.3L128 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-128.1c0-12.6-9.8-23.1-22.4-23.9c-7.3-.5-14.3-2.9-20.3-7.1l-13.1 18.7 13.1-18.7-8.9-6.2C96.6 303.1 80 271.3 80 237.4l0-12.8c0-9.9 3.7-19.4 10.3-26.8l9.4-10.5c3.8-4.2 7.9-8.1 12.3-11.6l0 32.3c0 8.8 7.2 16 16 16s16-7.2 16-16l0-65.7 0-14.3 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandLizard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M72 112c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0c4.5 0 8.9 1.3 12.7 3.6l64 40c7 4.4 11.3 12.1 11.3 20.4l0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-10.7L281.1 384 136 384c-39.8 0-72-32.2-72-72s32.2-72 72-72l104 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L72 208c-39.8 0-72-32.2-72-72S32.2 64 72 64l209.6 0c46.7 0 90.9 21.5 119.7 58.3l78.4 100.1c20.9 26.7 32.3 59.7 32.3 93.7L512 424c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-107.9c0-23.2-7.8-45.8-22.1-64.1L363.5 151.9c-19.7-25.2-49.9-39.9-81.9-39.9L72 112z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPeace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M250.8 1.4c-35.2-3.7-66.6 21.8-70.3 57L174 119 156.7 69.6C145 36.3 108.4 18.8 75.1 30.5S24.2 78.8 35.9 112.1L88.7 262.2C73.5 276.7 64 297.3 64 320c0 0 0 0 0 0l0 24c0 92.8 75.2 168 168 168l48 0c92.8 0 168-75.2 168-168l0-72 0-16 0-32c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4c-10.4-21.3-32.3-36-57.6-36c-.7 0-1.5 0-2.2 0l5.9-56.3c3.7-35.2-21.8-66.6-57-70.3zm-.2 155.4C243.9 166.9 240 179 240 192l0 48c0 .7 0 1.4 0 2c-5.1-1.3-10.5-2-16-2l-7.4 0-5.4-15.3 17-161.3c.9-8.8 8.8-15.2 17.6-14.2s15.2 8.8 14.2 17.6l-9.5 90.1zM111.4 85.6L165.7 240 144 240c-4 0-8 .3-11.9 .9L81.2 96.2c-2.9-8.3 1.5-17.5 9.8-20.4s17.5 1.5 20.4 9.8zM288 192c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48zm38.4 108c10.4 21.3 32.3 36 57.6 36c5.5 0 10.9-.7 16-2l0 10c0 66.3-53.7 120-120 120l-48 0c-66.3 0-120-53.7-120-120l0-24s0 0 0 0c0-17.7 14.3-32 32-32l80 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c35.3 0 64-28.7 64-64c0-.7 0-1.4 0-2c5.1 1.3 10.5 2 16 2c7.9 0 15.4-1.4 22.4-4zM400 272c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 0 16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 448l0-177.6c5.2 1 10.5 1.6 16 1.6l16 0 0 32 0 144c0 8.8-7.2 16-16 16s-16-7.2-16-16zM80 224c-17.7 0-32-14.3-32-32c0 0 0 0 0 0l0-24c0-66.3 53.7-120 120-120l48 0c52.5 0 97.1 33.7 113.4 80.7c-3.1-.5-6.2-.7-9.4-.7c-20 0-37.9 9.2-49.7 23.6c-9-4.9-19.4-7.6-30.3-7.6c-15.1 0-29 5.3-40 14c-11-8.8-24.9-14-40-14l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0-40 0zM0 192s0 0 0 0c0 18 6 34.6 16 48l0 208c0 35.3 28.7 64 64 64s64-28.7 64-64l0-82c5.1 1.3 10.5 2 16 2c25.3 0 47.2-14.7 57.6-36c7 2.6 14.5 4 22.4 4c20 0 37.9-9.2 49.7-23.6c9 4.9 19.4 7.6 30.3 7.6c35.3 0 64-28.7 64-64l0-64 0-24C384 75.2 308.8 0 216 0L168 0C75.2 0 0 75.2 0 168l0 24zm336 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64zM160 272c5.5 0 10.9-.7 16-2l0 2 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 16 0zm64-24l0-40c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 128l177.6 0c-1 5.2-1.6 10.5-1.6 16l0 16-32 0L64 160c-8.8 0-16-7.2-16-16s7.2-16 16-16zm224 16c0-17.7 14.3-32 32-32c0 0 0 0 0 0l24 0c66.3 0 120 53.7 120 120l0 48c0 52.5-33.7 97.1-80.7 113.4c.5-3.1 .7-6.2 .7-9.4c0-20-9.2-37.9-23.6-49.7c4.9-9 7.6-19.4 7.6-30.3c0-15.1-5.3-29-14-40c8.8-11 14-24.9 14-40l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-40 0-40zm32-80s0 0 0 0c-18 0-34.6 6-48 16L64 80C28.7 80 0 108.7 0 144s28.7 64 64 64l82 0c-1.3 5.1-2 10.5-2 16c0 25.3 14.7 47.2 36 57.6c-2.6 7-4 14.5-4 22.4c0 20 9.2 37.9 23.6 49.7c-4.9 9-7.6 19.4-7.6 30.3c0 35.3 28.7 64 64 64l64 0 24 0c92.8 0 168-75.2 168-168l0-48c0-92.8-75.2-168-168-168l-24 0zM256 400c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0zM240 224c0 5.5 .7 10.9 2 16l-2 0-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0 16zm24 64l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l24 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 128l-177.6 0c1 5.2 1.6 10.5 1.6 16l0 16 32 0 144 0c8.8 0 16-7.2 16-16s-7.2-16-16-16zM224 144c0-17.7-14.3-32-32-32c0 0 0 0 0 0l-24 0c-66.3 0-120 53.7-120 120l0 48c0 52.5 33.7 97.1 80.7 113.4c-.5-3.1-.7-6.2-.7-9.4c0-20 9.2-37.9 23.6-49.7c-4.9-9-7.6-19.4-7.6-30.3c0-15.1 5.3-29 14-40c-8.8-11-14-24.9-14-40l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-40 0-40zM192 64s0 0 0 0c18 0 34.6 6 48 16l208 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-82 0c1.3 5.1 2 10.5 2 16c0 25.3-14.7 47.2-36 57.6c2.6 7 4 14.5 4 22.4c0 20-9.2 37.9-23.6 49.7c4.9 9 7.6 19.4 7.6 30.3c0 35.3-28.7 64-64 64l-64 0-24 0C75.2 448 0 372.8 0 280l0-48C0 139.2 75.2 64 168 64l24 0zm64 336c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0zm16-176c0 5.5-.7 10.9-2 16l2 0 32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0 16zm-24 64l-40 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-24 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64l0 177.6c5.2-1 10.5-1.6 16-1.6l16 0 0-32L96 64c0-8.8-7.2-16-16-16s-16 7.2-16 16zM80 288c-17.7 0-32 14.3-32 32c0 0 0 0 0 0l0 24c0 66.3 53.7 120 120 120l48 0c52.5 0 97.1-33.7 113.4-80.7c-3.1 .5-6.2 .7-9.4 .7c-20 0-37.9-9.2-49.7-23.6c-9 4.9-19.4 7.6-30.3 7.6c-15.1 0-29-5.3-40-14c-11 8.8-24.9 14-40 14l-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l40 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-40 0-40 0zM0 320s0 0 0 0c0-18 6-34.6 16-48L16 64C16 28.7 44.7 0 80 0s64 28.7 64 64l0 82c5.1-1.3 10.5-2 16-2c25.3 0 47.2 14.7 57.6 36c7-2.6 14.5-4 22.4-4c20 0 37.9 9.2 49.7 23.6c9-4.9 19.4-7.6 30.3-7.6c35.3 0 64 28.7 64 64l0 64 0 24c0 92.8-75.2 168-168 168l-48 0C75.2 512 0 436.8 0 344l0-24zm336-64c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48 0 16c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM160 240c5.5 0 10.9 .7 16 2l0-2 0-32c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32 16 0zm64 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 0-16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 136c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c8.8 0 16 7.2 16 16c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c7.8 0 14.3 5.6 15.7 13c1.6 8.2 7.3 15.1 15.1 18s16.7 1.6 23.3-3.6c2.7-2.1 6.1-3.4 9.9-3.4c8.8 0 16 7.2 16 16l0 16 0 104c0 39.8-32.2 72-72 72l-56 0-59.8 0-.9 0c-37.4 0-72.4-18.7-93.2-49.9L50.7 312.9c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4L116 353.2c5.9 8.8 16.8 12.7 26.9 9.7s17-12.4 17-23l0-19.9 0-256zM176 0c-35.3 0-64 28.7-64 64l0 197.7C91.2 238 55.5 232.8 28.5 250.7C-.9 270.4-8.9 310.1 10.8 339.5L78.3 440.8c29.7 44.5 79.6 71.2 133.1 71.2l.9 0 59.8 0 56 0c66.3 0 120-53.7 120-120l0-104 0-16c0-35.3-28.7-64-64-64c-4.5 0-8.8 .5-13 1.3c-11.7-15.4-30.2-25.3-51-25.3c-6.9 0-13.5 1.1-19.7 3.1C288.7 170.7 269.6 160 248 160c-2.7 0-5.4 .2-8 .5L240 64c0-35.3-28.7-64-64-64zm48 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandScissors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.2 276.3c-1.2-35.3 26.4-65 61.7-66.2l3.3-.1L57 208.1C22.5 200.5 .7 166.3 8.3 131.8S50.2 75.5 84.7 83.2l173 38.3c2.3-2.9 4.7-5.7 7.1-8.5l18.4-20.3C299.9 74.5 323.5 64 348.3 64l10.2 0c54.1 0 104.1 28.7 131.3 75.4l1.5 2.6c13.6 23.2 20.7 49.7 20.7 76.6L512 344c0 66.3-53.7 120-120 120l-8 0-96 0c-35.3 0-64-28.7-64-64c0-2.8 .2-5.6 .5-8.3c-19.4-11-32.5-31.8-32.5-55.7c0-.8 0-1.6 0-2.4L66.4 338c-35.3 1.2-65-26.4-66.2-61.7zm63.4-18.2c-8.8 .3-15.7 7.7-15.4 16.5s7.7 15.7 16.5 15.4l161.5-5.6c9.8-.3 18.7 5.3 22.7 14.2s2.2 19.3-4.5 26.4c-2.8 2.9-4.4 6.7-4.4 11c0 8.8 7.2 16 16 16c9.1 0 17.4 5.1 21.5 13.3s3.2 17.9-2.3 25.1c-2 2.7-3.2 6-3.2 9.6c0 8.8 7.2 16 16 16l96 0 8 0c39.8 0 72-32.2 72-72l0-125.4c0-18.4-4.9-36.5-14.2-52.4l-1.5-2.6c-18.6-32-52.8-51.6-89.8-51.6l-10.2 0c-11.3 0-22 4.8-29.6 13.1l-17.5-15.9 17.5 15.9-18.4 20.3c-.6 .6-1.1 1.3-1.7 1.9l57 13.2c8.6 2 14 10.6 12 19.2s-10.6 14-19.2 12l-85.6-19.7L74.3 130c-8.6-1.9-17.2 3.5-19.1 12.2s3.5 17.2 12.2 19.1l187.5 41.6c10.2 2.3 17.8 10.9 18.7 21.4l.1 1c.6 6.6-1.5 13.1-5.8 18.1s-10.6 7.9-17.2 8.2L63.6 258.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandSpock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M170.2 80.8C161 47 180.8 12 214.6 2.4c34-9.6 69.4 10.2 79 44.2l30.3 107.1L337.1 84c6.6-34.7 40.1-57.5 74.8-50.9c31.4 6 53 33.9 52 64.9c10-2.6 20.8-2.8 31.5-.1c34.3 8.6 55.1 43.3 46.6 77.6L486.7 397.2C469.8 464.7 409.2 512 339.6 512l-33.7 0c-56.9 0-112.2-19-157.2-53.9l-92-71.6c-27.9-21.7-32.9-61.9-11.2-89.8s61.9-32.9 89.8-11.2l17 13.2L100.5 167.5c-13-32.9 3.2-70.1 36-83c11.1-4.4 22.7-5.4 33.7-3.7zm77.1-21.2c-2.4-8.5-11.2-13.4-19.7-11s-13.4 11.2-11 19.7l54.8 182.4c3.5 12.3-3.3 25.2-15.4 29.3s-25.3-2-30-13.9L174.9 138.1c-3.2-8.2-12.5-12.3-20.8-9s-12.3 12.5-9 20.8l73.3 185.6c12 30.3-23.7 57-49.4 37l-63.1-49.1c-7-5.4-17-4.2-22.5 2.8s-4.2 17 2.8 22.5l92 71.6c36.5 28.4 81.4 43.8 127.7 43.8l33.7 0c47.5 0 89-32.4 100.5-78.5l55.4-221.6c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-26 104C435.6 271.8 425 280 413 280c-16.5 0-28.9-15-25.8-31.2L415.7 99c1.7-8.7-4-17.1-12.7-18.7s-17.1 4-18.7 12.7L352.5 260c-2.2 11.6-12.4 20-24.2 20c-11 0-20.7-7.3-23.7-17.9L247.4 59.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c-25.3 0-47.2 14.7-57.6 36c-7-2.6-14.5-4-22.4-4c-35.3 0-64 28.7-64 64l0 165.5-2.7-2.7c-25-25-65.5-25-90.5 0s-25 65.5 0 90.5L106.5 437c48 48 113.1 75 181 75l8.5 0 8 0c1.5 0 3-.1 4.5-.4c91.7-6.2 165-79.4 171.1-171.1c.3-1.5 .4-3 .4-4.5l0-176c0-35.3-28.7-64-64-64c-5.5 0-10.9 .7-16 2l0-2c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4C303.2 14.7 281.3 0 256 0zM240 96.1l0-.1 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 31.9 0 .1 0 136c0 13.3 10.7 24 24 24s24-10.7 24-24l0-136c0 0 0 0 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16l0 55.9c0 0 0 .1 0 .1l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-71.9c0 0 0-.1 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16l0 172.9c-.1 .6-.1 1.3-.2 1.9c-3.4 69.7-59.3 125.6-129 129c-.6 0-1.3 .1-1.9 .2l-4.9 0-8.5 0c-55.2 0-108.1-21.9-147.1-60.9L52.7 315.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L119 336.4c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2L160 96c0-8.8 7.2-16 16-16c8.8 0 16 7.1 16 15.9L192 232c0 13.3 10.7 24 24 24s24-10.7 24-24l0-135.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandshake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272.2 64.6l-51.1 51.1c-15.3 4.2-29.5 11.9-41.5 22.5L153 161.9C142.8 171 129.5 176 115.8 176L96 176l0 128c20.4 .6 39.8 8.9 54.3 23.4l35.6 35.6 7 7c0 0 0 0 0 0L219.9 397c6.2 6.2 16.4 6.2 22.6 0c1.7-1.7 3-3.7 3.7-5.8c2.8-7.7 9.3-13.5 17.3-15.3s16.4 .6 22.2 6.5L296.5 393c11.6 11.6 30.4 11.6 41.9 0c5.4-5.4 8.3-12.3 8.6-19.4c.4-8.8 5.6-16.6 13.6-20.4s17.3-3 24.4 2.1c9.4 6.7 22.5 5.8 30.9-2.6c9.4-9.4 9.4-24.6 0-33.9L340.1 243l-35.8 33c-27.3 25.2-69.2 25.6-97 .9c-31.7-28.2-32.4-77.4-1.6-106.5l70.1-66.2C303.2 78.4 339.4 64 377.1 64c36.1 0 71 13.3 97.9 37.2L505.1 128l38.9 0 40 0 40 0c8.8 0 16 7.2 16 16l0 208c0 17.7-14.3 32-32 32l-32 0c-11.8 0-22.2-6.4-27.7-16l-84.9 0c-3.4 6.7-7.9 13.1-13.5 18.7c-17.1 17.1-40.8 23.8-63 20.1c-3.6 7.3-8.5 14.1-14.6 20.2c-27.3 27.3-70 30-100.4 8.1c-25.1 20.8-62.5 19.5-86-4.1L159 404l-7-7-35.6-35.6c-5.5-5.5-12.7-8.7-20.4-9.3C96 369.7 81.6 384 64 384l-32 0c-17.7 0-32-14.3-32-32L0 144c0-8.8 7.2-16 16-16l40 0 40 0 19.8 0c2 0 3.9-.7 5.3-2l26.5-23.6C175.5 77.7 211.4 64 248.7 64L259 64c4.4 0 8.9 .2 13.2 .6zM544 320l0-144-48 0c-5.9 0-11.6-2.2-15.9-6.1l-36.9-32.8c-18.2-16.2-41.7-25.1-66.1-25.1c-25.4 0-49.8 9.7-68.3 27.1l-70.1 66.2c-10.3 9.8-10.1 26.3 .5 35.7c9.3 8.3 23.4 8.1 32.5-.3l71.9-66.4c9.7-9 24.9-8.4 33.9 1.4s8.4 24.9-1.4 33.9l-.8 .8 74.4 74.4c10 10 16.5 22.3 19.4 35.1l74.8 0zM64 336a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm528 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHardDrive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 80c-8.8 0-16 7.2-16 16l0 162c5.1-1.3 10.5-2 16-2l384 0c5.5 0 10.9 .7 16 2l0-162c0-8.8-7.2-16-16-16L64 80zM48 320l0 96c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L64 304c-8.8 0-16 7.2-16 16zM0 320L0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 224 0 96c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-96zm280 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHospital (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 0c-39.8 0-72 32.2-72 72l0 8L72 80C32.2 80 0 112.2 0 152L0 440c0 39.8 32.2 72 72 72l.2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0s0 0 0 0l272 0 8 0s0 0 0 0l104 0c39.8 0 72-32.2 72-72l0-288c0-39.8-32.2-72-72-72l-88 0 0-8c0-39.8-32.2-72-72-72L232 0zM480 128l88 0c13.3 0 24 10.7 24 24l0 40-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 104c0 13.3-10.7 24-24 24l-88 0 0-128 0-208zM72 128l88 0 0 336c0 0 0 0-.1 0l-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0c-13.2 0-24-10.7-24-24l0-104 56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0-48 56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0-40c0-13.3 10.7-24 24-24zM208 72c0-13.3 10.7-24 24-24l176 0c13.3 0 24 10.7 24 24l0 264 0 128-64 0 0-64c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 64-64 0 0-392zm88 24l0 24-24 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l24 0 0 24c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-24 24 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-24 0 0-24c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHourglassHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 24C0 10.7 10.7 0 24 0L360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 19c0 40.3-16 79-44.5 107.5L225.9 256l81.5 81.5C336 366 352 404.7 352 445l0 19 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-19c0-40.3 16-79 44.5-107.5L158.1 256 76.5 174.5C48 146 32 107.3 32 67l0-19-8 0C10.7 48 0 37.3 0 24zM110.5 371.5c-3.9 3.9-7.5 8.1-10.7 12.5l184.4 0c-3.2-4.4-6.8-8.6-10.7-12.5L192 289.9l-81.5 81.5zM284.2 128C297 110.4 304 89 304 67l0-19L80 48l0 19c0 22.1 7 43.4 19.8 61l184.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHourglass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 19c0 40.3 16 79 44.5 107.5L158.1 256 76.5 337.5C48 366 32 404.7 32 445l0 19-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-19c0-40.3-16-79-44.5-107.5L225.9 256l81.5-81.5C336 146 352 107.3 352 67l0-19 8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 0zM192 289.9l81.5 81.5C293 391 304 417.4 304 445l0 19L80 464l0-19c0-27.6 11-54 30.5-73.5L192 289.9zm0-67.9l-81.5-81.5C91 121 80 94.6 80 67l0-19 224 0 0 19c0 27.6-11 54-30.5 73.5L192 222.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRegIdBadge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48l0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16l-64 0zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM160 320l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 416c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegIdCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 160l0 256c0 8.8-7.2 16-16 16l-192 0c0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80l-32 0c-8.8 0-16-7.2-16-16l0-256 480 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM272 256a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm104-48c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 80c8.8 0 16 7.2 16 16l0 319.8-5-6.5-136-176c-4.5-5.9-11.6-9.3-19-9.3s-14.4 3.4-19 9.3L202 340.7l-30.5-42.7C167 291.7 159.8 288 152 288s-15 3.7-19.5 10.1l-80 112L48 416.3l0-.3L48 96c0-8.8 7.2-16 16-16l384 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaRegImages (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 80l352 0c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-21.2 0L388.1 178.9c-4.4-6.8-12-10.9-20.1-10.9s-15.7 4.1-20.1 10.9l-52.2 79.8-12.4-16.9c-4.5-6.2-11.7-9.8-19.4-9.8s-14.8 3.6-19.4 9.8L175.6 336 160 336c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16zM96 96l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32c-35.3 0-64 28.7-64 64zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 344c0 75.1 60.9 136 136 136l320 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-320 0c-48.6 0-88-39.4-88-88l0-224zm208 24a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegKeyboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 320l224 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm-72-72c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLemon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 80c-3.2 0-6.2 .4-8.9 1.3C340 86.8 313 91.9 284.8 84.6C227.4 69.7 160.2 92 110.1 142.1S37.7 259.4 52.6 316.8c7.3 28.2 2.2 55.2-3.3 74.3c-.8 2.8-1.3 5.8-1.3 8.9c0 17.7 14.3 32 32 32c3.2 0 6.2-.4 8.9-1.3c19.1-5.5 46.1-10.7 74.3-3.3c57.4 14.9 124.6-7.4 174.7-57.5s72.4-117.3 57.5-174.7c-7.3-28.2-2.2-55.2 3.3-74.3c.8-2.8 1.3-5.8 1.3-8.9c0-17.7-14.3-32-32-32zm0-48c44.2 0 80 35.8 80 80c0 7.7-1.1 15.2-3.1 22.3c-4.6 15.8-7.1 32.9-3 48.9c20.1 77.6-10.9 161.5-70 220.7s-143.1 90.2-220.7 70c-16-4.1-33-1.6-48.9 3c-7.1 2-14.6 3.1-22.3 3.1c-44.2 0-80-35.8-80-80c0-7.7 1.1-15.2 3.1-22.3c4.6-15.8 7.1-32.9 3-48.9C-14 251.3 17 167.3 76.2 108.2S219.3 18 296.8 38.1c16 4.1 33 1.6 48.9-3c7.1-2 14.6-3.1 22.3-3.1zM246.7 167c-52 15.2-96.5 59.7-111.7 111.7c-3.7 12.7-17.1 20-29.8 16.3s-20-17.1-16.3-29.8c19.8-67.7 76.6-124.5 144.3-144.3c12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLifeRing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M385.1 419.1C349.7 447.2 304.8 464 256 464s-93.7-16.8-129.1-44.9l80.4-80.4c14.3 8.4 31 13.3 48.8 13.3s34.5-4.8 48.8-13.3l80.4 80.4zm68.1 .2C489.9 374.9 512 318.1 512 256s-22.1-118.9-58.8-163.3L465 81c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L419.3 58.8C374.9 22.1 318.1 0 256 0S137.1 22.1 92.7 58.8L81 47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L58.8 92.7C22.1 137.1 0 193.9 0 256s22.1 118.9 58.8 163.3L47 431c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l11.8-11.8C137.1 489.9 193.9 512 256 512s118.9-22.1 163.3-58.8L431 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.8-11.8zm-34.1-34.1l-80.4-80.4c8.4-14.3 13.3-31 13.3-48.8s-4.8-34.5-13.3-48.8l80.4-80.4C447.2 162.3 464 207.2 464 256s-16.8 93.7-44.9 129.1zM385.1 92.9l-80.4 80.4c-14.3-8.4-31-13.3-48.8-13.3s-34.5 4.8-48.8 13.3L126.9 92.9C162.3 64.8 207.2 48 256 48s93.7 16.8 129.1 44.9zM173.3 304.8L92.9 385.1C64.8 349.7 48 304.8 48 256s16.8-93.7 44.9-129.1l80.4 80.4c-8.4 14.3-13.3 31-13.3 48.8s4.8 34.5 13.3 48.8zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLightbulb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M297.2 248.9C311.6 228.3 320 203.2 320 176c0-70.7-57.3-128-128-128S64 105.3 64 176c0 27.2 8.4 52.3 22.8 72.9c3.7 5.3 8.1 11.3 12.8 17.7c0 0 0 0 0 0c12.9 17.7 28.3 38.9 39.8 59.8c10.4 19 15.7 38.8 18.3 57.5L109 384c-2.2-12-5.9-23.7-11.8-34.5c-9.9-18-22.2-34.9-34.5-51.8c0 0 0 0 0 0s0 0 0 0c-5.2-7.1-10.4-14.2-15.4-21.4C27.6 247.9 16 213.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176c0 37.3-11.6 71.9-31.4 100.3c-5 7.2-10.2 14.3-15.4 21.4c0 0 0 0 0 0s0 0 0 0c-12.3 16.8-24.6 33.7-34.5 51.8c-5.9 10.8-9.6 22.5-11.8 34.5l-48.6 0c2.6-18.7 7.9-38.6 18.3-57.5c11.5-20.9 26.9-42.1 39.8-59.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0c4.7-6.4 9-12.4 12.7-17.7zM192 128c-26.5 0-48 21.5-48 48c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16s-7.2 16-16 16zm0 384c-44.2 0-80-35.8-80-80l0-16 160 0 0 16c0 44.2-35.8 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M565.6 36.2C572.1 40.7 576 48.1 576 56l0 336c0 10-6.2 18.9-15.5 22.4l-168 64c-5.2 2-10.9 2.1-16.1 .3L192.5 417.5l-160 61c-7.4 2.8-15.7 1.8-22.2-2.7S0 463.9 0 456L0 120c0-10 6.1-18.9 15.5-22.4l168-64c5.2-2 10.9-2.1 16.1-.3L383.5 94.5l160-61c7.4-2.8 15.7-1.8 22.2 2.7zM48 136.5l0 284.6 120-45.7 0-284.6L48 136.5zM360 422.7l0-285.4-144-48 0 285.4 144 48zm48-1.5l120-45.7 0-284.6L408 136.5l0 284.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMessage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 368c26.5 0 48 21.5 48 48l0 16 72.5-54.4c8.3-6.2 18.4-9.6 28.8-9.6L448 368c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16L64 48c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l96 0zm48 124l-.2 .2-5.1 3.8-17.1 12.8c-4.8 3.6-11.3 4.2-16.8 1.5s-8.8-8.2-8.8-14.3l0-21.3 0-6.4 0-.3 0-4 0-48-48 0-48 0c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0L448 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64l-138.7 0L208 492z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMoneyBill1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 112c0 35.3-28.7 64-64 64l0 160c35.3 0 64 28.7 64 64l352 0c0-35.3 28.7-64 64-64l0-160c-35.3 0-64-28.7-64-64l-352 0zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm80-48c0 8.8 7.2 16 16 16l0 64-8 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l24 0 24 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-8 0 0-80c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144.7 98.7c-21 34.1-33.1 74.3-33.1 117.3c0 98 62.8 181.4 150.4 211.7c-12.4 2.8-25.3 4.3-38.6 4.3C126.6 432 48 353.3 48 256c0-68.9 39.4-128.4 96.8-157.3zm62.1-66C91.1 41.2 0 137.9 0 256C0 379.7 100 480 223.5 480c47.8 0 92-15 128.4-40.6c1.9-1.3 3.7-2.7 5.5-4c4.8-3.6 9.4-7.4 13.9-11.4c2.7-2.4 5.3-4.8 7.9-7.3c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-3.7 .6-7.4 1.2-11.1 1.6c-5 .5-10.1 .9-15.3 1c-1.2 0-2.5 0-3.7 0l-.3 0c-96.8-.2-175.2-78.9-175.2-176c0-54.8 24.9-103.7 64.1-136c1-.9 2.1-1.7 3.2-2.6c4-3.2 8.2-6.2 12.5-9c3.1-2 6.3-4 9.6-5.8c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-3.6-.3-7.1-.5-10.7-.6c-2.7-.1-5.5-.1-8.2-.1c-3.3 0-6.5 .1-9.8 .2c-2.3 .1-4.6 .2-6.9 .4z\"},\"child\":[]}]})(props);\n};\nexport function FaRegNewspaper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168 80c-13.3 0-24 10.7-24 24l0 304c0 8.4-1.4 16.5-4.1 24L440 432c13.3 0 24-10.7 24-24l0-304c0-13.3-10.7-24-24-24L168 80zM72 480c-39.8 0-72-32.2-72-72L0 112C0 98.7 10.7 88 24 88s24 10.7 24 24l0 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-39.8 32.2-72 72-72l272 0c39.8 0 72 32.2 72 72l0 304c0 39.8-32.2 72-72 72L72 480zM176 136c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24l0 80c0 13.3-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24l0-80zm200-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM200 272l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegNoteSticky (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l224 0 0-80c0-17.7 14.3-32 32-32l80 0 0-224c0-8.8-7.2-16-16-16L64 80zM288 480L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 224 0 5.5c0 17-6.7 33.3-18.7 45.3l-90.5 90.5c-12 12-28.3 18.7-45.3 18.7l-5.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegObjectGroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 115.8C38.2 107 32 94.2 32 80c0-26.5 21.5-48 48-48c14.2 0 27 6.2 35.8 16l344.4 0c8.8-9.8 21.6-16 35.8-16c26.5 0 48 21.5 48 48c0 14.2-6.2 27-16 35.8l0 280.4c9.8 8.8 16 21.6 16 35.8c0 26.5-21.5 48-48 48c-14.2 0-27-6.2-35.8-16l-344.4 0c-8.8 9.8-21.6 16-35.8 16c-26.5 0-48-21.5-48-48c0-14.2 6.2-27 16-35.8l0-280.4zM125.3 96c-4.8 13.6-15.6 24.4-29.3 29.3l0 261.5c13.6 4.8 24.4 15.6 29.3 29.3l325.5 0c4.8-13.6 15.6-24.4 29.3-29.3l0-261.5c-13.6-4.8-24.4-15.6-29.3-29.3L125.3 96zm2.7 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-96zM256 320l32 0c35.3 0 64-28.7 64-64l0-32 64 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegObjectUngroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48.2 66.8c-.1-.8-.2-1.7-.2-2.5l0-.2c0-8.8 7.2-16 16-16c.9 0 1.9 .1 2.8 .2C74.3 49.5 80 56.1 80 64c0 8.8-7.2 16-16 16c-7.9 0-14.5-5.7-15.8-13.2zM0 64c0 26.9 16.5 49.9 40 59.3l0 105.3C16.5 238.1 0 261.1 0 288c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40L123.3 40C113.9 16.5 90.9 0 64 0C28.7 0 0 28.7 0 64zm368 0a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM324.7 88c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-105.3c16-6.5 28.9-19.3 35.3-35.3l201.3 0zM384 272a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM80 288c0 7.9-5.7 14.5-13.2 15.8c-.8 .1-1.7 .2-2.5 .2l-.2 0c-8.8 0-16-7.2-16-16c0-.9 .1-1.9 .2-2.8C49.5 277.7 56.1 272 64 272c8.8 0 16 7.2 16 16zm391.3-40l45.4 0c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-36.7-48 0 0 36.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40L448 200l0 16.4c9.8 8.8 17.8 19.5 23.3 31.6zm88.9-26.7a16 16 0 1 1 31.5 5.5 16 16 0 1 1 -31.5-5.5zM271.8 450.7a16 16 0 1 1 -31.5-5.5 16 16 0 1 1 31.5 5.5zm307-18.5a16 16 0 1 1 -5.5 31.5 16 16 0 1 1 5.5-31.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRegPaperPlane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.1 260.2c-22.6 12.9-20.5 47.3 3.6 57.3L160 376l0 103.3c0 18.1 14.6 32.7 32.7 32.7c9.7 0 18.9-4.3 25.1-11.8l62-74.3 123.9 51.6c18.9 7.9 40.8-4.5 43.9-24.7l64-416c1.9-12.1-3.4-24.3-13.5-31.2s-23.3-7.5-34-1.4l-448 256zm52.1 25.5L409.7 90.6 190.1 336l1.2 1L68.2 285.7zM403.3 425.4L236.7 355.9 450.8 116.6 403.3 425.4z\"},\"child\":[]}]})(props);\n};\nexport function FaRegPaste (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M104.6 48L64 48C28.7 48 0 76.7 0 112L0 384c0 35.3 28.7 64 64 64l96 0 0-48-96 0c-8.8 0-16-7.2-16-16l0-272c0-8.8 7.2-16 16-16l16 0c0 17.7 14.3 32 32 32l72.4 0C202 108.4 227.6 96 256 96l62 0c-7.1-27.6-32.2-48-62-48l-40.6 0C211.6 20.9 188.2 0 160 0s-51.6 20.9-55.4 48zM144 56a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM448 464l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l140.1 0L464 243.9 464 448c0 8.8-7.2 16-16 16zM256 512l192 0c35.3 0 64-28.7 64-64l0-204.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L256 128c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegPenToSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152L0 424c0 48.6 39.4 88 88 88l272 0c48.6 0 88-39.4 88-88l0-112c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 22.1-17.9 40-40 40L88 464c-22.1 0-40-17.9-40-40l0-272c0-22.1 17.9-40 40-40l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegRectangleList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm96 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm104 0c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm-72-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegRectangleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm175 79c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegRegistered (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152l0 112 0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 60.9 0 37.2 81.9c5.5 12.1 19.7 17.4 31.8 11.9s17.4-19.7 11.9-31.8L315.7 275c21.8-14.3 36.3-39 36.3-67c0-44.2-35.8-80-80-80l-88 0c-13.3 0-24 10.7-24 24zm48 88l0-64 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegShareFromSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 255.4l0-15.4 0-32c0-8.8-7.2-16-16-16l-32 0-16 0-46.5 0c-50.9 0-93.9 33.5-108.3 79.6c-3.3-9.4-5.2-19.8-5.2-31.6c0-61.9 50.1-112 112-112l48 0 16 0 32 0c8.8 0 16-7.2 16-16l0-32 0-15.4L506 160 400 255.4zM336 240l16 0 0 48c0 17.7 14.3 32 32 32l3.7 0c7.9 0 15.5-2.9 21.4-8.2l139-125.1c7.6-6.8 11.9-16.5 11.9-26.7s-4.3-19.9-11.9-26.7L409.9 8.9C403.5 3.2 395.3 0 386.7 0C367.5 0 352 15.5 352 34.7L352 80l-16 0-32 0-16 0c-88.4 0-160 71.6-160 160c0 60.4 34.6 99.1 63.9 120.9c5.9 4.4 11.5 8.1 16.7 11.2c4.4 2.7 8.5 4.9 11.9 6.6c3.4 1.7 6.2 3 8.2 3.9c2.2 1 4.6 1.4 7.1 1.4l2.5 0c9.8 0 17.8-8 17.8-17.8c0-7.8-5.3-14.7-11.6-19.5c0 0 0 0 0 0c-.4-.3-.7-.5-1.1-.8c-1.7-1.1-3.4-2.5-5-4.1c-.8-.8-1.7-1.6-2.5-2.6s-1.6-1.9-2.4-2.9c-1.8-2.5-3.5-5.3-5-8.5c-2.6-6-4.3-13.3-4.3-22.4c0-36.1 29.3-65.5 65.5-65.5l14.5 0 32 0zM72 32C32.2 32 0 64.2 0 104L0 440c0 39.8 32.2 72 72 72l336 0c39.8 0 72-32.2 72-72l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64c0 13.3-10.7 24-24 24L72 464c-13.3 0-24-10.7-24-24l0-336c0-13.3 10.7-24 24-24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L72 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSnowflake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0c13.3 0 24 10.7 24 24l0 46.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-57 57 0 76.5 66.2-38.2 20.9-77.8c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4L373 142.2l37.1-21.4c11.5-6.6 26.2-2.7 32.8 8.8s2.7 26.2-8.8 32.8L397 183.8l31.5 8.4c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-77.8-20.9L272 256l66.2 38.2 77.8-20.9c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4L397 328.2l37.1 21.4c11.5 6.6 15.4 21.3 8.8 32.8s-21.3 15.4-32.8 8.8L373 369.8l8.4 31.5c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-20.9-77.8L248 297.6l0 76.5 57 57c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23 0 46.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-46.1-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57 0-76.5-66.2 38.2-20.9 77.8c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4L75 369.8 37.9 391.2c-11.5 6.6-26.2 2.7-32.8-8.8s-2.7-26.2 8.8-32.8L51 328.2l-31.5-8.4c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l77.8 20.9L176 256l-66.2-38.2L31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4L51 183.8 13.9 162.4c-11.5-6.6-15.4-21.3-8.8-32.8s21.3-15.4 32.8-8.8L75 142.2l-8.4-31.5c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l20.9 77.8L200 214.4l0-76.5L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23L200 24c0-13.3 10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquareCaretDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 432c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0zm64-16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquareCaretLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 416c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320zm16 64c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480zm64-224c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquareCaretRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 96c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320zM384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquareCaretUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm224 64c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquareCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquareFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 48l0 416L48 464 48 48l416 0zM48 0L0 0 0 48 0 464l0 48 48 0 416 0 48 0 0-48 0-416 0-48L464 0 48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquareMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM152 232l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquarePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegStarHalfStroke (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M309.5 13.5C305.5 5.2 297.1 0 287.9 0s-17.6 5.2-21.6 13.5L197.7 154.8 44.5 177.5c-9 1.3-16.5 7.6-19.3 16.3s-.5 18.1 5.9 24.5L142.2 328.4 116 483.9c-1.5 9 2.2 18.1 9.7 23.5s17.3 6 25.3 1.7l137-73.2 137 73.2c8.1 4.3 17.9 3.7 25.3-1.7s11.2-14.5 9.7-23.5L433.6 328.4 544.8 218.2c6.5-6.4 8.7-15.9 5.9-24.5s-10.3-14.9-19.3-16.3L378.1 154.8 309.5 13.5zM288 384.7l0-305.6 52.5 108.1c3.5 7.1 10.2 12.1 18.1 13.3l118.3 17.5L391 303c-5.5 5.5-8.1 13.3-6.8 21l20.2 119.6L299.2 387.5c-3.5-1.9-7.4-2.8-11.2-2.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegStarHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M293.3 .6c10.9 2.5 18.6 12.2 18.6 23.4l0 384.7c0 8.9-4.9 17-12.7 21.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.3c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5c4.9-10.1 16.1-15.4 27-12.9zM263.9 128.4l-28.6 58.8c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l92.5-49.4 0-265.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3 153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4l26.2 155.6c1.5 9-2.2 18.1-9.7 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5C270.4 5.2 278.7 0 287.9 0zm0 79L235.4 187.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2L384.2 324.1c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1L358.6 200.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M375.7 19.7c-1.5-8-6.9-14.7-14.4-17.8s-16.1-2.2-22.8 2.4L256 61.1 173.5 4.2c-6.7-4.6-15.3-5.5-22.8-2.4s-12.9 9.8-14.4 17.8l-18.1 98.5L19.7 136.3c-8 1.5-14.7 6.9-17.8 14.4s-2.2 16.1 2.4 22.8L61.1 256 4.2 338.5c-4.6 6.7-5.5 15.3-2.4 22.8s9.8 13 17.8 14.4l98.5 18.1 18.1 98.5c1.5 8 6.9 14.7 14.4 17.8s16.1 2.2 22.8-2.4L256 450.9l82.5 56.9c6.7 4.6 15.3 5.5 22.8 2.4s12.9-9.8 14.4-17.8l18.1-98.5 98.5-18.1c8-1.5 14.7-6.9 17.8-14.4s2.2-16.1-2.4-22.8L450.9 256l56.9-82.5c4.6-6.7 5.5-15.3 2.4-22.8s-9.8-12.9-17.8-14.4l-98.5-18.1L375.7 19.7zM269.6 110l65.6-45.2 14.4 78.3c1.8 9.8 9.5 17.5 19.3 19.3l78.3 14.4L402 242.4c-5.7 8.2-5.7 19 0 27.2l45.2 65.6-78.3 14.4c-9.8 1.8-17.5 9.5-19.3 19.3l-14.4 78.3L269.6 402c-8.2-5.7-19-5.7-27.2 0l-65.6 45.2-14.4-78.3c-1.8-9.8-9.5-17.5-19.3-19.3L64.8 335.2 110 269.6c5.7-8.2 5.7-19 0-27.2L64.8 176.8l78.3-14.4c9.8-1.8 17.5-9.5 19.3-19.3l14.4-78.3L242.4 110c8.2 5.7 19 5.7 27.2 0zM256 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM192 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegThumbsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M323.8 477.2c-38.2 10.9-78.1-11.2-89-49.4l-5.7-20c-3.7-13-10.4-25-19.5-35l-51.3-56.4c-8.9-9.8-8.2-25 1.6-33.9s25-8.2 33.9 1.6l51.3 56.4c14.1 15.5 24.4 34 30.1 54.1l5.7 20c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7l-5.7-20c-5.7-19.9-14.7-38.7-26.6-55.5c-5.2-7.3-5.8-16.9-1.7-24.9s12.3-13 21.3-13L448 288c8.8 0 16-7.2 16-16c0-6.8-4.3-12.7-10.4-15c-7.4-2.8-13-9-14.9-16.7s.1-15.8 5.3-21.7c2.5-2.8 4-6.5 4-10.6c0-7.8-5.6-14.3-13-15.7c-8.2-1.6-15.1-7.3-18-15.2s-1.6-16.7 3.6-23.3c2.1-2.7 3.4-6.1 3.4-9.9c0-6.7-4.2-12.6-10.2-14.9c-11.5-4.5-17.7-16.9-14.4-28.8c.4-1.3 .6-2.8 .6-4.3c0-8.8-7.2-16-16-16l-97.5 0c-12.6 0-25 3.7-35.5 10.7l-61.7 41.1c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l61.7-41.1c18.4-12.3 40-18.8 62.1-18.8L384 32c34.7 0 62.9 27.6 64 62c14.6 11.7 24 29.7 24 50c0 4.5-.5 8.8-1.3 13c15.4 11.7 25.3 30.2 25.3 51c0 6.5-1 12.8-2.8 18.7C504.8 238.3 512 254.3 512 272c0 35.3-28.6 64-64 64l-92.3 0c4.7 10.4 8.7 21.2 11.8 32.2l5.7 20c10.9 38.2-11.2 78.1-49.4 89zM32 384c-17.7 0-32-14.3-32-32L0 128c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32l-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegThumbsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M323.8 34.8c-38.2-10.9-78.1 11.2-89 49.4l-5.7 20c-3.7 13-10.4 25-19.5 35l-51.3 56.4c-8.9 9.8-8.2 25 1.6 33.9s25 8.2 33.9-1.6l51.3-56.4c14.1-15.5 24.4-34 30.1-54.1l5.7-20c3.6-12.7 16.9-20.1 29.7-16.5s20.1 16.9 16.5 29.7l-5.7 20c-5.7 19.9-14.7 38.7-26.6 55.5c-5.2 7.3-5.8 16.9-1.7 24.9s12.3 13 21.3 13L448 224c8.8 0 16 7.2 16 16c0 6.8-4.3 12.7-10.4 15c-7.4 2.8-13 9-14.9 16.7s.1 15.8 5.3 21.7c2.5 2.8 4 6.5 4 10.6c0 7.8-5.6 14.3-13 15.7c-8.2 1.6-15.1 7.3-18 15.2s-1.6 16.7 3.6 23.3c2.1 2.7 3.4 6.1 3.4 9.9c0 6.7-4.2 12.6-10.2 14.9c-11.5 4.5-17.7 16.9-14.4 28.8c.4 1.3 .6 2.8 .6 4.3c0 8.8-7.2 16-16 16l-97.5 0c-12.6 0-25-3.7-35.5-10.7l-61.7-41.1c-11-7.4-25.9-4.4-33.3 6.7s-4.4 25.9 6.7 33.3l61.7 41.1c18.4 12.3 40 18.8 62.1 18.8l97.5 0c34.7 0 62.9-27.6 64-62c14.6-11.7 24-29.7 24-50c0-4.5-.5-8.8-1.3-13c15.4-11.7 25.3-30.2 25.3-51c0-6.5-1-12.8-2.8-18.7C504.8 273.7 512 257.7 512 240c0-35.3-28.6-64-64-64l-92.3 0c4.7-10.4 8.7-21.2 11.8-32.2l5.7-20c10.9-38.2-11.2-78.1-49.4-89zM32 192c-17.7 0-32 14.3-32 32L0 448c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32l-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegTrashCan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M170.5 51.6L151.5 80l145 0-19-28.4c-1.5-2.2-4-3.6-6.7-3.6l-93.7 0c-2.7 0-5.2 1.3-6.7 3.6zm147-26.6L354.2 80 368 80l48 0 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 304c0 44.2-35.8 80-80 80l-224 0c-44.2 0-80-35.8-80-80l0-304-8 0c-13.3 0-24-10.7-24-24S10.7 80 24 80l8 0 48 0 13.8 0 36.7-55.1C140.9 9.4 158.4 0 177.1 0l93.7 0c18.7 0 36.2 9.4 46.6 24.9zM80 128l0 304c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-304L80 128zm80 64l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464l349.5 0c-8.9-63.3-63.3-112-129-112l-91.4 0c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegWindowMaximize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.3 89.5C.1 91.6 0 93.8 0 96L0 224 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-192 0-128c0-35.3-28.7-64-64-64L64 32c-2.2 0-4.4 .1-6.5 .3c-9.2 .9-17.8 3.8-25.5 8.2C21.8 46.5 13.4 55.1 7.7 65.5c-3.9 7.3-6.5 15.4-7.4 24zM48 224l416 0 0 192c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaRegWindowMinimize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 432c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 432z\"},\"child\":[]}]})(props);\n};\nexport function FaRegWindowRestore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 48L208 48c-17.7 0-32 14.3-32 32l0 16-48 0 0-16c0-44.2 35.8-80 80-80L432 0c44.2 0 80 35.8 80 80l0 224c0 44.2-35.8 80-80 80l-16 0 0-48 16 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32zM48 448c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-192L48 256l0 192zM64 128l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64z\"},\"child\":[]}]})(props);\n};\n"],"names":["FaDiscord","props","GenIcon","FaGithub"],"sourceRoot":"","ignoreList":[0]} \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/876-fbf33384517dafbf.js b/opencut-ui/_next/static/chunks/876-fbf33384517dafbf.js new file mode 100644 index 0000000..83811e9 --- /dev/null +++ b/opencut-ui/_next/static/chunks/876-fbf33384517dafbf.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[876],{5672:(e,t,r)=>{r.d(t,{jH:()=>l});var n=r(74188);r(28064);var o=n.createContext(void 0);function l(e){let t=n.useContext(o);return e||t||"ltr"}},28056:(e,t,r)=>{r.d(t,{Eq:()=>s});var n=new WeakMap,o=new WeakMap,l={},a=0,i=function(e){return e&&(e.host||i(e.parentNode))},u=function(e,t,r,u){var s=(Array.isArray(e)?e:[e]).map(function(e){if(t.contains(e))return e;var r=i(e);return r&&t.contains(r)?r:(console.error("aria-hidden",e,"in not contained inside",t,". Doing nothing"),null)}).filter(function(e){return!!e});l[r]||(l[r]=new WeakMap);var c=l[r],d=[],f=new Set,p=new Set(s),v=function(e){!e||f.has(e)||(f.add(e),v(e.parentNode))};s.forEach(v);var h=function(e){!e||p.has(e)||Array.prototype.forEach.call(e.children,function(e){if(f.has(e))h(e);else try{var t=e.getAttribute(u),l=null!==t&&"false"!==t,a=(n.get(e)||0)+1,i=(c.get(e)||0)+1;n.set(e,a),c.set(e,i),d.push(e),1===a&&l&&o.set(e,!0),1===i&&e.setAttribute(r,"true"),l||e.setAttribute(u,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return h(t),f.clear(),a++,function(){d.forEach(function(e){var t=n.get(e)-1,l=c.get(e)-1;n.set(e,t),c.set(e,l),t||(o.has(e)||e.removeAttribute(u),o.delete(e)),l||e.removeAttribute(r)}),--a||(n=new WeakMap,n=new WeakMap,o=new WeakMap,l={})}},s=function(e,t,r){void 0===r&&(r="data-aria-hidden");var n=Array.from(Array.isArray(e)?e:[e]),o=t||("undefined"==typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body);return o?(n.push.apply(n,Array.from(o.querySelectorAll("[aria-live], script"))),u(n,o,r,"aria-hidden")):function(){return null}}},41490:(e,t,r)=>{r.d(t,{G5:()=>eV,H_:()=>eF,JU:()=>eL,Mz:()=>eN,Pb:()=>eH,UC:()=>eA,UE:()=>P,VF:()=>eK,YJ:()=>eO,ZL:()=>eP,ZP:()=>ez,bL:()=>eT,hN:()=>eG,i3:()=>eW,q7:()=>e_,wv:()=>eU,z6:()=>eB});var n=r(74188),o=r(48841),l=r(96007),a=r(89607),i=r(68533),u=r(5672),s=r(98370),c=r(59103),d=r(97676),f=r(39636),p=r(59078),v=r(58496),h=r(24847),m=r(98765),g=r(69834),w=r(8059),y=r(36432),x=r(28056),b=r(58779),C=r(28064),S=["Enter"," "],R=["ArrowUp","PageDown","End"],E=["ArrowDown","PageUp","Home",...R],M={ltr:[...S,"ArrowRight"],rtl:[...S,"ArrowLeft"]},j={ltr:["ArrowLeft"],rtl:["ArrowRight"]},D="Menu",[I,k,T]=(0,l.N)(D),[N,P]=(0,i.A)(D,[T,p.Bk,g.RG]),A=(0,p.Bk)(),O=(0,g.RG)(),[L,_]=N(D),[F,B]=N(D),G=e=>{let{__scopeMenu:t,open:r=!1,children:o,dir:l,onOpenChange:a,modal:i=!0}=e,s=A(t),[c,d]=n.useState(null),f=n.useRef(!1),v=(0,y.c)(a),h=(0,u.jH)(l);return n.useEffect(()=>{let e=()=>{f.current=!0,document.addEventListener("pointerdown",t,{capture:!0,once:!0}),document.addEventListener("pointermove",t,{capture:!0,once:!0})},t=()=>f.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",t,{capture:!0}),document.removeEventListener("pointermove",t,{capture:!0})}},[]),(0,C.jsx)(p.bL,{...s,children:(0,C.jsx)(L,{scope:t,open:r,onOpenChange:v,content:c,onContentChange:d,children:(0,C.jsx)(F,{scope:t,onClose:n.useCallback(()=>v(!1),[v]),isUsingKeyboardRef:f,dir:h,modal:i,children:o})})})};G.displayName=D;var K=n.forwardRef((e,t)=>{let{__scopeMenu:r,...n}=e,o=A(r);return(0,C.jsx)(p.Mz,{...o,...n,ref:t})});K.displayName="MenuAnchor";var U="MenuPortal",[W,H]=N(U,{forceMount:void 0}),z=e=>{let{__scopeMenu:t,forceMount:r,children:n,container:o}=e,l=_(U,t);return(0,C.jsx)(W,{scope:t,forceMount:r,children:(0,C.jsx)(h.C,{present:r||l.open,children:(0,C.jsx)(v.Portal,{asChild:!0,container:o,children:n})})})};z.displayName=U;var V="MenuContent",[q,X]=N(V),Y=n.forwardRef((e,t)=>{let r=H(V,e.__scopeMenu),{forceMount:n=r.forceMount,...o}=e,l=_(V,e.__scopeMenu),a=B(V,e.__scopeMenu);return(0,C.jsx)(I.Provider,{scope:e.__scopeMenu,children:(0,C.jsx)(h.C,{present:n||l.open,children:(0,C.jsx)(I.Slot,{scope:e.__scopeMenu,children:a.modal?(0,C.jsx)(Z,{...o,ref:t}):(0,C.jsx)(J,{...o,ref:t})})})})}),Z=n.forwardRef((e,t)=>{let r=_(V,e.__scopeMenu),l=n.useRef(null),i=(0,a.s)(t,l);return n.useEffect(()=>{let e=l.current;if(e)return(0,x.Eq)(e)},[]),(0,C.jsx)($,{...e,ref:i,trapFocus:r.open,disableOutsidePointerEvents:r.open,disableOutsideScroll:!0,onFocusOutside:(0,o.m)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>r.onOpenChange(!1)})}),J=n.forwardRef((e,t)=>{let r=_(V,e.__scopeMenu);return(0,C.jsx)($,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>r.onOpenChange(!1)})}),Q=(0,w.TL)("MenuContent.ScrollLock"),$=n.forwardRef((e,t)=>{let{__scopeMenu:r,loop:l=!1,trapFocus:i,onOpenAutoFocus:u,onCloseAutoFocus:f,disableOutsidePointerEvents:v,onEntryFocus:h,onEscapeKeyDown:m,onPointerDownOutside:w,onFocusOutside:y,onInteractOutside:x,onDismiss:S,disableOutsideScroll:M,...j}=e,D=_(V,r),I=B(V,r),T=A(r),N=O(r),P=k(r),[L,F]=n.useState(null),G=n.useRef(null),K=(0,a.s)(t,G,D.onContentChange),U=n.useRef(0),W=n.useRef(""),H=n.useRef(0),z=n.useRef(null),X=n.useRef("right"),Y=n.useRef(0),Z=M?b.A:n.Fragment;n.useEffect(()=>()=>window.clearTimeout(U.current),[]),(0,c.Oh)();let J=n.useCallback(e=>{var t,r;return X.current===(null==(t=z.current)?void 0:t.side)&&function(e,t){return!!t&&function(e,t){let{x:r,y:n}=e,o=!1;for(let e=0,l=t.length-1;en!=d>n&&r<(c-u)*(n-s)/(d-s)+u&&(o=!o)}return o}({x:e.clientX,y:e.clientY},t)}(e,null==(r=z.current)?void 0:r.area)},[]);return(0,C.jsx)(q,{scope:r,searchRef:W,onItemEnter:n.useCallback(e=>{J(e)&&e.preventDefault()},[J]),onItemLeave:n.useCallback(e=>{var t;J(e)||(null==(t=G.current)||t.focus(),F(null))},[J]),onTriggerLeave:n.useCallback(e=>{J(e)&&e.preventDefault()},[J]),pointerGraceTimerRef:H,onPointerGraceIntentChange:n.useCallback(e=>{z.current=e},[]),children:(0,C.jsx)(Z,{...M?{as:Q,allowPinchZoom:!0}:void 0,children:(0,C.jsx)(d.n,{asChild:!0,trapped:i,onMountAutoFocus:(0,o.m)(u,e=>{var t;e.preventDefault(),null==(t=G.current)||t.focus({preventScroll:!0})}),onUnmountAutoFocus:f,children:(0,C.jsx)(s.qW,{asChild:!0,disableOutsidePointerEvents:v,onEscapeKeyDown:m,onPointerDownOutside:w,onFocusOutside:y,onInteractOutside:x,onDismiss:S,children:(0,C.jsx)(g.bL,{asChild:!0,...N,dir:I.dir,orientation:"vertical",loop:l,currentTabStopId:L,onCurrentTabStopIdChange:F,onEntryFocus:(0,o.m)(h,e=>{I.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,C.jsx)(p.UC,{role:"menu","aria-orientation":"vertical","data-state":ej(D.open),"data-radix-menu-content":"",dir:I.dir,...T,...j,ref:K,style:{outline:"none",...j.style},onKeyDown:(0,o.m)(j.onKeyDown,e=>{let t=e.target.closest("[data-radix-menu-content]")===e.currentTarget,r=e.ctrlKey||e.altKey||e.metaKey,n=1===e.key.length;t&&("Tab"===e.key&&e.preventDefault(),!r&&n&&(e=>{var t,r;let n=W.current+e,o=P().filter(e=>!e.disabled),l=document.activeElement,a=null==(t=o.find(e=>e.ref.current===l))?void 0:t.textValue,i=function(e,t,r){var n;let o=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,l=r?e.indexOf(r):-1,a=(n=Math.max(l,0),e.map((t,r)=>e[(n+r)%e.length]));1===o.length&&(a=a.filter(e=>e!==r));let i=a.find(e=>e.toLowerCase().startsWith(o.toLowerCase()));return i!==r?i:void 0}(o.map(e=>e.textValue),n,a),u=null==(r=o.find(e=>e.textValue===i))?void 0:r.ref.current;!function e(t){W.current=t,window.clearTimeout(U.current),""!==t&&(U.current=window.setTimeout(()=>e(""),1e3))}(n),u&&setTimeout(()=>u.focus())})(e.key));let o=G.current;if(e.target!==o||!E.includes(e.key))return;e.preventDefault();let l=P().filter(e=>!e.disabled).map(e=>e.ref.current);R.includes(e.key)&&l.reverse(),function(e){let t=document.activeElement;for(let r of e)if(r===t||(r.focus(),document.activeElement!==t))return}(l)}),onBlur:(0,o.m)(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(U.current),W.current="")}),onPointerMove:(0,o.m)(e.onPointerMove,ek(e=>{let t=e.target,r=Y.current!==e.clientX;e.currentTarget.contains(t)&&r&&(X.current=e.clientX>Y.current?"right":"left",Y.current=e.clientX)}))})})})})})})});Y.displayName=V;var ee=n.forwardRef((e,t)=>{let{__scopeMenu:r,...n}=e;return(0,C.jsx)(m.sG.div,{role:"group",...n,ref:t})});ee.displayName="MenuGroup";var et=n.forwardRef((e,t)=>{let{__scopeMenu:r,...n}=e;return(0,C.jsx)(m.sG.div,{...n,ref:t})});et.displayName="MenuLabel";var er="MenuItem",en="menu.itemSelect",eo=n.forwardRef((e,t)=>{let{disabled:r=!1,onSelect:l,...i}=e,u=n.useRef(null),s=B(er,e.__scopeMenu),c=X(er,e.__scopeMenu),d=(0,a.s)(t,u),f=n.useRef(!1);return(0,C.jsx)(el,{...i,ref:d,disabled:r,onClick:(0,o.m)(e.onClick,()=>{let e=u.current;if(!r&&e){let t=new CustomEvent(en,{bubbles:!0,cancelable:!0});e.addEventListener(en,e=>null==l?void 0:l(e),{once:!0}),(0,m.hO)(e,t),t.defaultPrevented?f.current=!1:s.onClose()}}),onPointerDown:t=>{var r;null==(r=e.onPointerDown)||r.call(e,t),f.current=!0},onPointerUp:(0,o.m)(e.onPointerUp,e=>{var t;f.current||null==(t=e.currentTarget)||t.click()}),onKeyDown:(0,o.m)(e.onKeyDown,e=>{let t=""!==c.searchRef.current;r||t&&" "===e.key||S.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});eo.displayName=er;var el=n.forwardRef((e,t)=>{let{__scopeMenu:r,disabled:l=!1,textValue:i,...u}=e,s=X(er,r),c=O(r),d=n.useRef(null),f=(0,a.s)(t,d),[p,v]=n.useState(!1),[h,w]=n.useState("");return n.useEffect(()=>{let e=d.current;if(e){var t;w((null!=(t=e.textContent)?t:"").trim())}},[u.children]),(0,C.jsx)(I.ItemSlot,{scope:r,disabled:l,textValue:null!=i?i:h,children:(0,C.jsx)(g.q7,{asChild:!0,...c,focusable:!l,children:(0,C.jsx)(m.sG.div,{role:"menuitem","data-highlighted":p?"":void 0,"aria-disabled":l||void 0,"data-disabled":l?"":void 0,...u,ref:f,onPointerMove:(0,o.m)(e.onPointerMove,ek(e=>{l?s.onItemLeave(e):(s.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:(0,o.m)(e.onPointerLeave,ek(e=>s.onItemLeave(e))),onFocus:(0,o.m)(e.onFocus,()=>v(!0)),onBlur:(0,o.m)(e.onBlur,()=>v(!1))})})})}),ea=n.forwardRef((e,t)=>{let{checked:r=!1,onCheckedChange:n,...l}=e;return(0,C.jsx)(ev,{scope:e.__scopeMenu,checked:r,children:(0,C.jsx)(eo,{role:"menuitemcheckbox","aria-checked":eD(r)?"mixed":r,...l,ref:t,"data-state":eI(r),onSelect:(0,o.m)(l.onSelect,()=>null==n?void 0:n(!!eD(r)||!r),{checkForDefaultPrevented:!1})})})});ea.displayName="MenuCheckboxItem";var ei="MenuRadioGroup",[eu,es]=N(ei,{value:void 0,onValueChange:()=>{}}),ec=n.forwardRef((e,t)=>{let{value:r,onValueChange:n,...o}=e,l=(0,y.c)(n);return(0,C.jsx)(eu,{scope:e.__scopeMenu,value:r,onValueChange:l,children:(0,C.jsx)(ee,{...o,ref:t})})});ec.displayName=ei;var ed="MenuRadioItem",ef=n.forwardRef((e,t)=>{let{value:r,...n}=e,l=es(ed,e.__scopeMenu),a=r===l.value;return(0,C.jsx)(ev,{scope:e.__scopeMenu,checked:a,children:(0,C.jsx)(eo,{role:"menuitemradio","aria-checked":a,...n,ref:t,"data-state":eI(a),onSelect:(0,o.m)(n.onSelect,()=>{var e;return null==(e=l.onValueChange)?void 0:e.call(l,r)},{checkForDefaultPrevented:!1})})})});ef.displayName=ed;var ep="MenuItemIndicator",[ev,eh]=N(ep,{checked:!1}),em=n.forwardRef((e,t)=>{let{__scopeMenu:r,forceMount:n,...o}=e,l=eh(ep,r);return(0,C.jsx)(h.C,{present:n||eD(l.checked)||!0===l.checked,children:(0,C.jsx)(m.sG.span,{...o,ref:t,"data-state":eI(l.checked)})})});em.displayName=ep;var eg=n.forwardRef((e,t)=>{let{__scopeMenu:r,...n}=e;return(0,C.jsx)(m.sG.div,{role:"separator","aria-orientation":"horizontal",...n,ref:t})});eg.displayName="MenuSeparator";var ew=n.forwardRef((e,t)=>{let{__scopeMenu:r,...n}=e,o=A(r);return(0,C.jsx)(p.i3,{...o,...n,ref:t})});ew.displayName="MenuArrow";var ey="MenuSub",[ex,eb]=N(ey),eC=e=>{let{__scopeMenu:t,children:r,open:o=!1,onOpenChange:l}=e,a=_(ey,t),i=A(t),[u,s]=n.useState(null),[c,d]=n.useState(null),v=(0,y.c)(l);return n.useEffect(()=>(!1===a.open&&v(!1),()=>v(!1)),[a.open,v]),(0,C.jsx)(p.bL,{...i,children:(0,C.jsx)(L,{scope:t,open:o,onOpenChange:v,content:c,onContentChange:d,children:(0,C.jsx)(ex,{scope:t,contentId:(0,f.B)(),triggerId:(0,f.B)(),trigger:u,onTriggerChange:s,children:r})})})};eC.displayName=ey;var eS="MenuSubTrigger",eR=n.forwardRef((e,t)=>{let r=_(eS,e.__scopeMenu),l=B(eS,e.__scopeMenu),i=eb(eS,e.__scopeMenu),u=X(eS,e.__scopeMenu),s=n.useRef(null),{pointerGraceTimerRef:c,onPointerGraceIntentChange:d}=u,f={__scopeMenu:e.__scopeMenu},p=n.useCallback(()=>{s.current&&window.clearTimeout(s.current),s.current=null},[]);return n.useEffect(()=>p,[p]),n.useEffect(()=>{let e=c.current;return()=>{window.clearTimeout(e),d(null)}},[c,d]),(0,C.jsx)(K,{asChild:!0,...f,children:(0,C.jsx)(el,{id:i.triggerId,"aria-haspopup":"menu","aria-expanded":r.open,"aria-controls":i.contentId,"data-state":ej(r.open),...e,ref:(0,a.t)(t,i.onTriggerChange),onClick:t=>{var n;null==(n=e.onClick)||n.call(e,t),e.disabled||t.defaultPrevented||(t.currentTarget.focus(),r.open||r.onOpenChange(!0))},onPointerMove:(0,o.m)(e.onPointerMove,ek(t=>{u.onItemEnter(t),!t.defaultPrevented&&(e.disabled||r.open||s.current||(u.onPointerGraceIntentChange(null),s.current=window.setTimeout(()=>{r.onOpenChange(!0),p()},100)))})),onPointerLeave:(0,o.m)(e.onPointerLeave,ek(e=>{var t,n;p();let o=null==(t=r.content)?void 0:t.getBoundingClientRect();if(o){let t=null==(n=r.content)?void 0:n.dataset.side,l="right"===t,a=o[l?"left":"right"],i=o[l?"right":"left"];u.onPointerGraceIntentChange({area:[{x:e.clientX+(l?-5:5),y:e.clientY},{x:a,y:o.top},{x:i,y:o.top},{x:i,y:o.bottom},{x:a,y:o.bottom}],side:t}),window.clearTimeout(c.current),c.current=window.setTimeout(()=>u.onPointerGraceIntentChange(null),300)}else{if(u.onTriggerLeave(e),e.defaultPrevented)return;u.onPointerGraceIntentChange(null)}})),onKeyDown:(0,o.m)(e.onKeyDown,t=>{let n=""!==u.searchRef.current;if(!e.disabled&&(!n||" "!==t.key)&&M[l.dir].includes(t.key)){var o;r.onOpenChange(!0),null==(o=r.content)||o.focus(),t.preventDefault()}})})})});eR.displayName=eS;var eE="MenuSubContent",eM=n.forwardRef((e,t)=>{let r=H(V,e.__scopeMenu),{forceMount:l=r.forceMount,...i}=e,u=_(V,e.__scopeMenu),s=B(V,e.__scopeMenu),c=eb(eE,e.__scopeMenu),d=n.useRef(null),f=(0,a.s)(t,d);return(0,C.jsx)(I.Provider,{scope:e.__scopeMenu,children:(0,C.jsx)(h.C,{present:l||u.open,children:(0,C.jsx)(I.Slot,{scope:e.__scopeMenu,children:(0,C.jsx)($,{id:c.contentId,"aria-labelledby":c.triggerId,...i,ref:f,align:"start",side:"rtl"===s.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{var t;s.isUsingKeyboardRef.current&&(null==(t=d.current)||t.focus()),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:(0,o.m)(e.onFocusOutside,e=>{e.target!==c.trigger&&u.onOpenChange(!1)}),onEscapeKeyDown:(0,o.m)(e.onEscapeKeyDown,e=>{s.onClose(),e.preventDefault()}),onKeyDown:(0,o.m)(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),r=j[s.dir].includes(e.key);if(t&&r){var n;u.onOpenChange(!1),null==(n=c.trigger)||n.focus(),e.preventDefault()}})})})})})});function ej(e){return e?"open":"closed"}function eD(e){return"indeterminate"===e}function eI(e){return eD(e)?"indeterminate":e?"checked":"unchecked"}function ek(e){return t=>"mouse"===t.pointerType?e(t):void 0}eM.displayName=eE;var eT=G,eN=K,eP=z,eA=Y,eO=ee,eL=et,e_=eo,eF=ea,eB=ec,eG=ef,eK=em,eU=eg,eW=ew,eH=eC,ez=eR,eV=eM},43850:(e,t,r)=>{r.d(t,{q:()=>n});function n(e,[t,r]){return Math.min(r,Math.max(t,e))}},58779:(e,t,r)=>{r.d(t,{A:()=>V});var n,o,l=function(){return(l=Object.assign||function(e){for(var t,r=1,n=arguments.length;rt.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r}Object.create;Object.create;var i=("function"==typeof SuppressedError&&SuppressedError,r(74188)),u="right-scroll-bar-position",s="width-before-scroll-bar";function c(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var d="undefined"!=typeof window?i.useLayoutEffect:i.useEffect,f=new WeakMap;function p(e){return e}var v=function(e){void 0===e&&(e={});var t,r,n,o=(void 0===t&&(t=p),r=[],n=!1,{read:function(){if(n)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return r.length?r[r.length-1]:null},useMedium:function(e){var o=t(e,n);return r.push(o),function(){r=r.filter(function(e){return e!==o})}},assignSyncMedium:function(e){for(n=!0;r.length;){var t=r;r=[],t.forEach(e)}r={push:function(t){return e(t)},filter:function(){return r}}},assignMedium:function(e){n=!0;var t=[];if(r.length){var o=r;r=[],o.forEach(e),t=r}var l=function(){var r=t;t=[],r.forEach(e)},a=function(){return Promise.resolve().then(l)};a(),r={push:function(e){t.push(e),a()},filter:function(e){return t=t.filter(e),r}}}});return o.options=l({async:!0,ssr:!1},e),o}(),h=function(){},m=i.forwardRef(function(e,t){var r,n,o,u,s=i.useRef(null),p=i.useState({onScrollCapture:h,onWheelCapture:h,onTouchMoveCapture:h}),m=p[0],g=p[1],w=e.forwardProps,y=e.children,x=e.className,b=e.removeScrollBar,C=e.enabled,S=e.shards,R=e.sideCar,E=e.noRelative,M=e.noIsolation,j=e.inert,D=e.allowPinchZoom,I=e.as,k=e.gapMode,T=a(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),N=(r=[s,t],n=function(e){return r.forEach(function(t){return c(t,e)})},(o=(0,i.useState)(function(){return{value:null,callback:n,facade:{get current(){return o.value},set current(value){var e=o.value;e!==value&&(o.value=value,o.callback(value,e))}}}})[0]).callback=n,u=o.facade,d(function(){var e=f.get(u);if(e){var t=new Set(e),n=new Set(r),o=u.current;t.forEach(function(e){n.has(e)||c(e,null)}),n.forEach(function(e){t.has(e)||c(e,o)})}f.set(u,r)},[r]),u),P=l(l({},T),m);return i.createElement(i.Fragment,null,C&&i.createElement(R,{sideCar:v,removeScrollBar:b,shards:S,noRelative:E,noIsolation:M,inert:j,setCallbacks:g,allowPinchZoom:!!D,lockRef:s,gapMode:k}),w?i.cloneElement(i.Children.only(y),l(l({},P),{ref:N})):i.createElement(void 0===I?"div":I,l({},P,{className:x,ref:N}),y))});m.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},m.classNames={fullWidth:s,zeroRight:u};var g=function(e){var t=e.sideCar,r=a(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var n=t.read();if(!n)throw Error("Sidecar medium not found");return i.createElement(n,l({},r))};g.isSideCarExport=!0;var w=function(){var e=0,t=null;return{add:function(n){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=o||r.nc;return t&&e.setAttribute("nonce",t),e}())){var l,a;(l=t).styleSheet?l.styleSheet.cssText=n:l.appendChild(document.createTextNode(n)),a=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(a)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},y=function(){var e=w();return function(t,r){i.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&r])}},x=function(){var e=y();return function(t){return e(t.styles,t.dynamic),null}},b={left:0,top:0,right:0,gap:0},C=function(e){return parseInt(e||"",10)||0},S=function(e){var t=window.getComputedStyle(document.body),r=t["padding"===e?"paddingLeft":"marginLeft"],n=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[C(r),C(n),C(o)]},R=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return b;var t=S(e),r=document.documentElement.clientWidth,n=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,n-r+t[2]-t[0])}},E=x(),M="data-scroll-locked",j=function(e,t,r,n){var o=e.left,l=e.top,a=e.right,i=e.gap;return void 0===r&&(r="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(n,";\n padding-right: ").concat(i,"px ").concat(n,";\n }\n body[").concat(M,"] {\n overflow: hidden ").concat(n,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(n,";"),"margin"===r&&"\n padding-left: ".concat(o,"px;\n padding-top: ").concat(l,"px;\n padding-right: ").concat(a,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(i,"px ").concat(n,";\n "),"padding"===r&&"padding-right: ".concat(i,"px ").concat(n,";")].filter(Boolean).join(""),"\n }\n \n .").concat(u," {\n right: ").concat(i,"px ").concat(n,";\n }\n \n .").concat(s," {\n margin-right: ").concat(i,"px ").concat(n,";\n }\n \n .").concat(u," .").concat(u," {\n right: 0 ").concat(n,";\n }\n \n .").concat(s," .").concat(s," {\n margin-right: 0 ").concat(n,";\n }\n \n body[").concat(M,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(i,"px;\n }\n")},D=function(){var e=parseInt(document.body.getAttribute(M)||"0",10);return isFinite(e)?e:0},I=function(){i.useEffect(function(){return document.body.setAttribute(M,(D()+1).toString()),function(){var e=D()-1;e<=0?document.body.removeAttribute(M):document.body.setAttribute(M,e.toString())}},[])},k=function(e){var t=e.noRelative,r=e.noImportant,n=e.gapMode,o=void 0===n?"margin":n;I();var l=i.useMemo(function(){return R(o)},[o]);return i.createElement(E,{styles:j(l,!t,o,r?"":"!important")})},T=!1;if("undefined"!=typeof window)try{var N=Object.defineProperty({},"passive",{get:function(){return T=!0,!0}});window.addEventListener("test",N,N),window.removeEventListener("test",N,N)}catch(e){T=!1}var P=!!T&&{passive:!1},A=function(e,t){if(!(e instanceof Element))return!1;var r=window.getComputedStyle(e);return"hidden"!==r[t]&&(r.overflowY!==r.overflowX||"TEXTAREA"===e.tagName||"visible"!==r[t])},O=function(e,t){var r=t.ownerDocument,n=t;do{if("undefined"!=typeof ShadowRoot&&n instanceof ShadowRoot&&(n=n.host),L(e,n)){var o=_(e,n);if(o[1]>o[2])return!0}n=n.parentNode}while(n&&n!==r.body);return!1},L=function(e,t){return"v"===e?A(t,"overflowY"):A(t,"overflowX")},_=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},F=function(e,t,r,n,o){var l,a=(l=window.getComputedStyle(t).direction,"h"===e&&"rtl"===l?-1:1),i=a*n,u=r.target,s=t.contains(u),c=!1,d=i>0,f=0,p=0;do{if(!u)break;var v=_(e,u),h=v[0],m=v[1]-v[2]-a*h;(h||m)&&L(e,u)&&(f+=m,p+=h);var g=u.parentNode;u=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!s&&u!==document.body||s&&(t.contains(u)||t===u));return d&&(o&&1>Math.abs(f)||!o&&i>f)?c=!0:!d&&(o&&1>Math.abs(p)||!o&&-i>p)&&(c=!0),c},B=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},G=function(e){return[e.deltaX,e.deltaY]},K=function(e){return e&&"current"in e?e.current:e},U=0,W=[];let H=(n=function(e){var t=i.useRef([]),r=i.useRef([0,0]),n=i.useRef(),o=i.useState(U++)[0],l=i.useState(x)[0],a=i.useRef(e);i.useEffect(function(){a.current=e},[e]),i.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=(function(e,t,r){if(r||2==arguments.length)for(var n,o=0,l=t.length;oMath.abs(s)?"h":"v";if("touches"in e&&"h"===d&&"range"===c.type)return!1;var f=O(d,c);if(!f)return!0;if(f?o=d:(o="v"===d?"h":"v",f=O(d,c)),!f)return!1;if(!n.current&&"changedTouches"in e&&(u||s)&&(n.current=o),!o)return!0;var p=n.current||o;return F(p,t,e,"h"===p?u:s,!0)},[]),s=i.useCallback(function(e){if(W.length&&W[W.length-1]===l){var r="deltaY"in e?G(e):B(e),n=t.current.filter(function(t){var n;return t.name===e.type&&(t.target===e.target||e.target===t.shadowParent)&&(n=t.delta,n[0]===r[0]&&n[1]===r[1])})[0];if(n&&n.should){e.cancelable&&e.preventDefault();return}if(!n){var o=(a.current.shards||[]).map(K).filter(Boolean).filter(function(t){return t.contains(e.target)});(o.length>0?u(e,o[0]):!a.current.noIsolation)&&e.cancelable&&e.preventDefault()}}},[]),c=i.useCallback(function(e,r,n,o){var l={name:e,delta:r,target:n,should:o,shadowParent:function(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}(n)};t.current.push(l),setTimeout(function(){t.current=t.current.filter(function(e){return e!==l})},1)},[]),d=i.useCallback(function(e){r.current=B(e),n.current=void 0},[]),f=i.useCallback(function(t){c(t.type,G(t),t.target,u(t,e.lockRef.current))},[]),p=i.useCallback(function(t){c(t.type,B(t),t.target,u(t,e.lockRef.current))},[]);i.useEffect(function(){return W.push(l),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:p}),document.addEventListener("wheel",s,P),document.addEventListener("touchmove",s,P),document.addEventListener("touchstart",d,P),function(){W=W.filter(function(e){return e!==l}),document.removeEventListener("wheel",s,P),document.removeEventListener("touchmove",s,P),document.removeEventListener("touchstart",d,P)}},[]);var v=e.removeScrollBar,h=e.inert;return i.createElement(i.Fragment,null,h?i.createElement(l,{styles:"\n .block-interactivity-".concat(o," {pointer-events: none;}\n .allow-interactivity-").concat(o," {pointer-events: all;}\n")}):null,v?i.createElement(k,{noRelative:e.noRelative,gapMode:e.gapMode}):null)},v.useMedium(n),g);var z=i.forwardRef(function(e,t){return i.createElement(m,l({},e,{ref:t,sideCar:H}))});z.classNames=m.classNames;let V=z},59044:(e,t,r)=>{r.d(t,{Z:()=>o});var n=r(74188);function o(e){let t=n.useRef({value:e,previous:e});return n.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}},59103:(e,t,r)=>{r.d(t,{Oh:()=>l});var n=r(74188),o=0;function l(){n.useEffect(()=>{var e,t;let r=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",null!=(e=r[0])?e:a()),document.body.insertAdjacentElement("beforeend",null!=(t=r[1])?t:a()),o++,()=>{1===o&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),o--}},[])}function a(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}},68522:(e,t,r)=>{r.r(t),r.d(t,{Close:()=>el,Content:()=>er,Description:()=>eo,Dialog:()=>R,DialogClose:()=>z,DialogContent:()=>L,DialogDescription:()=>W,DialogOverlay:()=>N,DialogPortal:()=>k,DialogTitle:()=>K,DialogTrigger:()=>M,Overlay:()=>et,Portal:()=>ee,Root:()=>Q,Title:()=>en,Trigger:()=>$,WarningProvider:()=>X,createDialogScope:()=>b});var n=r(74188),o=r(48841),l=r(89607),a=r(68533),i=r(39636),u=r(14392),s=r(98370),c=r(97676),d=r(58496),f=r(24847),p=r(98765),v=r(59103),h=r(58779),m=r(28056),g=r(8059),w=r(28064),y="Dialog",[x,b]=(0,a.A)(y),[C,S]=x(y),R=e=>{let{__scopeDialog:t,children:r,open:o,defaultOpen:l,onOpenChange:a,modal:s=!0}=e,c=n.useRef(null),d=n.useRef(null),[f,p]=(0,u.i)({prop:o,defaultProp:null!=l&&l,onChange:a,caller:y});return(0,w.jsx)(C,{scope:t,triggerRef:c,contentRef:d,contentId:(0,i.B)(),titleId:(0,i.B)(),descriptionId:(0,i.B)(),open:f,onOpenChange:p,onOpenToggle:n.useCallback(()=>p(e=>!e),[p]),modal:s,children:r})};R.displayName=y;var E="DialogTrigger",M=n.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,a=S(E,r),i=(0,l.s)(t,a.triggerRef);return(0,w.jsx)(p.sG.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":V(a.open),...n,ref:i,onClick:(0,o.m)(e.onClick,a.onOpenToggle)})});M.displayName=E;var j="DialogPortal",[D,I]=x(j,{forceMount:void 0}),k=e=>{let{__scopeDialog:t,forceMount:r,children:o,container:l}=e,a=S(j,t);return(0,w.jsx)(D,{scope:t,forceMount:r,children:n.Children.map(o,e=>(0,w.jsx)(f.C,{present:r||a.open,children:(0,w.jsx)(d.Portal,{asChild:!0,container:l,children:e})}))})};k.displayName=j;var T="DialogOverlay",N=n.forwardRef((e,t)=>{let r=I(T,e.__scopeDialog),{forceMount:n=r.forceMount,...o}=e,l=S(T,e.__scopeDialog);return l.modal?(0,w.jsx)(f.C,{present:n||l.open,children:(0,w.jsx)(A,{...o,ref:t})}):null});N.displayName=T;var P=(0,g.TL)("DialogOverlay.RemoveScroll"),A=n.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,o=S(T,r);return(0,w.jsx)(h.A,{as:P,allowPinchZoom:!0,shards:[o.contentRef],children:(0,w.jsx)(p.sG.div,{"data-state":V(o.open),...n,ref:t,style:{pointerEvents:"auto",...n.style}})})}),O="DialogContent",L=n.forwardRef((e,t)=>{let r=I(O,e.__scopeDialog),{forceMount:n=r.forceMount,...o}=e,l=S(O,e.__scopeDialog);return(0,w.jsx)(f.C,{present:n||l.open,children:l.modal?(0,w.jsx)(_,{...o,ref:t}):(0,w.jsx)(F,{...o,ref:t})})});L.displayName=O;var _=n.forwardRef((e,t)=>{let r=S(O,e.__scopeDialog),a=n.useRef(null),i=(0,l.s)(t,r.contentRef,a);return n.useEffect(()=>{let e=a.current;if(e)return(0,m.Eq)(e)},[]),(0,w.jsx)(B,{...e,ref:i,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,o.m)(e.onCloseAutoFocus,e=>{var t;e.preventDefault(),null==(t=r.triggerRef.current)||t.focus()}),onPointerDownOutside:(0,o.m)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;(2===t.button||r)&&e.preventDefault()}),onFocusOutside:(0,o.m)(e.onFocusOutside,e=>e.preventDefault())})}),F=n.forwardRef((e,t)=>{let r=S(O,e.__scopeDialog),o=n.useRef(!1),l=n.useRef(!1);return(0,w.jsx)(B,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{var n,a;null==(n=e.onCloseAutoFocus)||n.call(e,t),t.defaultPrevented||(o.current||null==(a=r.triggerRef.current)||a.focus(),t.preventDefault()),o.current=!1,l.current=!1},onInteractOutside:t=>{var n,a;null==(n=e.onInteractOutside)||n.call(e,t),t.defaultPrevented||(o.current=!0,"pointerdown"===t.detail.originalEvent.type&&(l.current=!0));let i=t.target;(null==(a=r.triggerRef.current)?void 0:a.contains(i))&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&l.current&&t.preventDefault()}})}),B=n.forwardRef((e,t)=>{let{__scopeDialog:r,trapFocus:o,onOpenAutoFocus:a,onCloseAutoFocus:i,...u}=e,d=S(O,r),f=n.useRef(null),p=(0,l.s)(t,f);return(0,v.Oh)(),(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(c.n,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:a,onUnmountAutoFocus:i,children:(0,w.jsx)(s.qW,{role:"dialog",id:d.contentId,"aria-describedby":d.descriptionId,"aria-labelledby":d.titleId,"data-state":V(d.open),...u,ref:p,onDismiss:()=>d.onOpenChange(!1)})}),(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(Z,{titleId:d.titleId}),(0,w.jsx)(J,{contentRef:f,descriptionId:d.descriptionId})]})]})}),G="DialogTitle",K=n.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,o=S(G,r);return(0,w.jsx)(p.sG.h2,{id:o.titleId,...n,ref:t})});K.displayName=G;var U="DialogDescription",W=n.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,o=S(U,r);return(0,w.jsx)(p.sG.p,{id:o.descriptionId,...n,ref:t})});W.displayName=U;var H="DialogClose",z=n.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,l=S(H,r);return(0,w.jsx)(p.sG.button,{type:"button",...n,ref:t,onClick:(0,o.m)(e.onClick,()=>l.onOpenChange(!1))})});function V(e){return e?"open":"closed"}z.displayName=H;var q="DialogTitleWarning",[X,Y]=(0,a.q)(q,{contentName:O,titleName:G,docsSlug:"dialog"}),Z=e=>{let{titleId:t}=e,r=Y(q),o="`".concat(r.contentName,"` requires a `").concat(r.titleName,"` for the component to be accessible for screen reader users.\n\nIf you want to hide the `").concat(r.titleName,"`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/").concat(r.docsSlug);return n.useEffect(()=>{t&&document.getElementById(t)},[o,t]),null},J=e=>{let{contentRef:t,descriptionId:r}=e,o=Y("DialogDescriptionWarning"),l="Warning: Missing `Description` or `aria-describedby={undefined}` for {".concat(o.contentName,"}.");return n.useEffect(()=>{var e;let n=null==(e=t.current)?void 0:e.getAttribute("aria-describedby");r&&n&&document.getElementById(r)},[l,t,r]),null},Q=R,$=M,ee=k,et=N,er=L,en=K,eo=W,el=z},69834:(e,t,r)=>{r.d(t,{RG:()=>b,bL:()=>k,q7:()=>T});var n=r(74188),o=r(48841),l=r(96007),a=r(89607),i=r(68533),u=r(39636),s=r(98765),c=r(36432),d=r(14392),f=r(5672),p=r(28064),v="rovingFocusGroup.onEntryFocus",h={bubbles:!1,cancelable:!0},m="RovingFocusGroup",[g,w,y]=(0,l.N)(m),[x,b]=(0,i.A)(m,[y]),[C,S]=x(m),R=n.forwardRef((e,t)=>(0,p.jsx)(g.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,p.jsx)(g.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,p.jsx)(E,{...e,ref:t})})}));R.displayName=m;var E=n.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:r,orientation:l,loop:i=!1,dir:u,currentTabStopId:g,defaultCurrentTabStopId:y,onCurrentTabStopIdChange:x,onEntryFocus:b,preventScrollOnEntryFocus:S=!1,...R}=e,E=n.useRef(null),M=(0,a.s)(t,E),j=(0,f.jH)(u),[D,k]=(0,d.i)({prop:g,defaultProp:null!=y?y:null,onChange:x,caller:m}),[T,N]=n.useState(!1),P=(0,c.c)(b),A=w(r),O=n.useRef(!1),[L,_]=n.useState(0);return n.useEffect(()=>{let e=E.current;if(e)return e.addEventListener(v,P),()=>e.removeEventListener(v,P)},[P]),(0,p.jsx)(C,{scope:r,orientation:l,dir:j,loop:i,currentTabStopId:D,onItemFocus:n.useCallback(e=>k(e),[k]),onItemShiftTab:n.useCallback(()=>N(!0),[]),onFocusableItemAdd:n.useCallback(()=>_(e=>e+1),[]),onFocusableItemRemove:n.useCallback(()=>_(e=>e-1),[]),children:(0,p.jsx)(s.sG.div,{tabIndex:T||0===L?-1:0,"data-orientation":l,...R,ref:M,style:{outline:"none",...e.style},onMouseDown:(0,o.m)(e.onMouseDown,()=>{O.current=!0}),onFocus:(0,o.m)(e.onFocus,e=>{let t=!O.current;if(e.target===e.currentTarget&&t&&!T){let t=new CustomEvent(v,h);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=A().filter(e=>e.focusable);I([e.find(e=>e.active),e.find(e=>e.id===D),...e].filter(Boolean).map(e=>e.ref.current),S)}}O.current=!1}),onBlur:(0,o.m)(e.onBlur,()=>N(!1))})})}),M="RovingFocusGroupItem",j=n.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:l=!0,active:a=!1,tabStopId:i,children:c,...d}=e,f=(0,u.B)(),v=i||f,h=S(M,r),m=h.currentTabStopId===v,y=w(r),{onFocusableItemAdd:x,onFocusableItemRemove:b,currentTabStopId:C}=h;return n.useEffect(()=>{if(l)return x(),()=>b()},[l,x,b]),(0,p.jsx)(g.ItemSlot,{scope:r,id:v,focusable:l,active:a,children:(0,p.jsx)(s.sG.span,{tabIndex:m?0:-1,"data-orientation":h.orientation,...d,ref:t,onMouseDown:(0,o.m)(e.onMouseDown,e=>{l?h.onItemFocus(v):e.preventDefault()}),onFocus:(0,o.m)(e.onFocus,()=>h.onItemFocus(v)),onKeyDown:(0,o.m)(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void h.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var n;let o=(n=e.key,"rtl"!==r?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(o))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(o)))return D[o]}(e,h.orientation,h.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let r=y().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)r.reverse();else if("prev"===t||"next"===t){"prev"===t&&r.reverse();let n=r.indexOf(e.currentTarget);r=h.loop?function(e,t){return e.map((r,n)=>e[(t+n)%e.length])}(r,n+1):r.slice(n+1)}setTimeout(()=>I(r))}}),children:"function"==typeof c?c({isCurrentTabStop:m,hasTabStop:null!=C}):c})})});j.displayName=M;var D={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function I(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=document.activeElement;for(let n of e)if(n===r||(n.focus({preventScroll:t}),document.activeElement!==r))return}var k=R,T=j},70554:(e,t,r)=>{r.r(t),r.d(t,{Arrow:()=>X,CheckboxItem:()=>W,Content:()=>B,DropdownMenu:()=>w,DropdownMenuArrow:()=>N,DropdownMenuCheckboxItem:()=>j,DropdownMenuContent:()=>S,DropdownMenuGroup:()=>R,DropdownMenuItem:()=>M,DropdownMenuItemIndicator:()=>k,DropdownMenuLabel:()=>E,DropdownMenuPortal:()=>b,DropdownMenuRadioGroup:()=>D,DropdownMenuRadioItem:()=>I,DropdownMenuSeparator:()=>T,DropdownMenuSub:()=>P,DropdownMenuSubContent:()=>O,DropdownMenuSubTrigger:()=>A,DropdownMenuTrigger:()=>x,Group:()=>G,Item:()=>U,ItemIndicator:()=>V,Label:()=>K,Portal:()=>F,RadioGroup:()=>H,RadioItem:()=>z,Root:()=>L,Separator:()=>q,Sub:()=>Y,SubContent:()=>J,SubTrigger:()=>Z,Trigger:()=>_,createDropdownMenuScope:()=>v});var n=r(74188),o=r(48841),l=r(89607),a=r(68533),i=r(14392),u=r(98765),s=r(41490),c=r(39636),d=r(28064),f="DropdownMenu",[p,v]=(0,a.A)(f,[s.UE]),h=(0,s.UE)(),[m,g]=p(f),w=e=>{let{__scopeDropdownMenu:t,children:r,dir:o,open:l,defaultOpen:a,onOpenChange:u,modal:p=!0}=e,v=h(t),g=n.useRef(null),[w,y]=(0,i.i)({prop:l,defaultProp:null!=a&&a,onChange:u,caller:f});return(0,d.jsx)(m,{scope:t,triggerId:(0,c.B)(),triggerRef:g,contentId:(0,c.B)(),open:w,onOpenChange:y,onOpenToggle:n.useCallback(()=>y(e=>!e),[y]),modal:p,children:(0,d.jsx)(s.bL,{...v,open:w,onOpenChange:y,dir:o,modal:p,children:r})})};w.displayName=f;var y="DropdownMenuTrigger",x=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:r,disabled:n=!1,...a}=e,i=g(y,r),c=h(r);return(0,d.jsx)(s.Mz,{asChild:!0,...c,children:(0,d.jsx)(u.sG.button,{type:"button",id:i.triggerId,"aria-haspopup":"menu","aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":i.open?"open":"closed","data-disabled":n?"":void 0,disabled:n,...a,ref:(0,l.t)(t,i.triggerRef),onPointerDown:(0,o.m)(e.onPointerDown,e=>{!n&&0===e.button&&!1===e.ctrlKey&&(i.onOpenToggle(),i.open||e.preventDefault())}),onKeyDown:(0,o.m)(e.onKeyDown,e=>{!n&&(["Enter"," "].includes(e.key)&&i.onOpenToggle(),"ArrowDown"===e.key&&i.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(e.key)&&e.preventDefault())})})})});x.displayName=y;var b=e=>{let{__scopeDropdownMenu:t,...r}=e,n=h(t);return(0,d.jsx)(s.ZL,{...n,...r})};b.displayName="DropdownMenuPortal";var C="DropdownMenuContent",S=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:r,...l}=e,a=g(C,r),i=h(r),u=n.useRef(!1);return(0,d.jsx)(s.UC,{id:a.contentId,"aria-labelledby":a.triggerId,...i,...l,ref:t,onCloseAutoFocus:(0,o.m)(e.onCloseAutoFocus,e=>{var t;u.current||null==(t=a.triggerRef.current)||t.focus(),u.current=!1,e.preventDefault()}),onInteractOutside:(0,o.m)(e.onInteractOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey,n=2===t.button||r;(!a.modal||n)&&(u.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});S.displayName=C;var R=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:r,...n}=e,o=h(r);return(0,d.jsx)(s.YJ,{...o,...n,ref:t})});R.displayName="DropdownMenuGroup";var E=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:r,...n}=e,o=h(r);return(0,d.jsx)(s.JU,{...o,...n,ref:t})});E.displayName="DropdownMenuLabel";var M=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:r,...n}=e,o=h(r);return(0,d.jsx)(s.q7,{...o,...n,ref:t})});M.displayName="DropdownMenuItem";var j=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:r,...n}=e,o=h(r);return(0,d.jsx)(s.H_,{...o,...n,ref:t})});j.displayName="DropdownMenuCheckboxItem";var D=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:r,...n}=e,o=h(r);return(0,d.jsx)(s.z6,{...o,...n,ref:t})});D.displayName="DropdownMenuRadioGroup";var I=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:r,...n}=e,o=h(r);return(0,d.jsx)(s.hN,{...o,...n,ref:t})});I.displayName="DropdownMenuRadioItem";var k=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:r,...n}=e,o=h(r);return(0,d.jsx)(s.VF,{...o,...n,ref:t})});k.displayName="DropdownMenuItemIndicator";var T=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:r,...n}=e,o=h(r);return(0,d.jsx)(s.wv,{...o,...n,ref:t})});T.displayName="DropdownMenuSeparator";var N=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:r,...n}=e,o=h(r);return(0,d.jsx)(s.i3,{...o,...n,ref:t})});N.displayName="DropdownMenuArrow";var P=e=>{let{__scopeDropdownMenu:t,children:r,open:n,onOpenChange:o,defaultOpen:l}=e,a=h(t),[u,c]=(0,i.i)({prop:n,defaultProp:null!=l&&l,onChange:o,caller:"DropdownMenuSub"});return(0,d.jsx)(s.Pb,{...a,open:u,onOpenChange:c,children:r})},A=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:r,...n}=e,o=h(r);return(0,d.jsx)(s.ZP,{...o,...n,ref:t})});A.displayName="DropdownMenuSubTrigger";var O=n.forwardRef((e,t)=>{let{__scopeDropdownMenu:r,...n}=e,o=h(r);return(0,d.jsx)(s.G5,{...o,...n,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});O.displayName="DropdownMenuSubContent";var L=w,_=x,F=b,B=S,G=R,K=E,U=M,W=j,H=D,z=I,V=k,q=T,X=N,Y=P,Z=A,J=O},89188:(e,t,r)=>{r.r(t),r.d(t,{Arrow:()=>eV,Content:()=>eL,Group:()=>eF,Icon:()=>eA,Item:()=>eG,ItemIndicator:()=>eU,ItemText:()=>eK,Label:()=>eB,Portal:()=>eO,Root:()=>eT,ScrollDownButton:()=>eH,ScrollUpButton:()=>eW,Select:()=>G,SelectArrow:()=>eM,SelectContent:()=>X,SelectGroup:()=>eu,SelectIcon:()=>z,SelectItem:()=>ev,SelectItemIndicator:()=>ew,SelectItemText:()=>em,SelectLabel:()=>ec,SelectPortal:()=>V,SelectScrollDownButton:()=>eC,SelectScrollUpButton:()=>ex,SelectSeparator:()=>eR,SelectTrigger:()=>U,SelectValue:()=>H,SelectViewport:()=>eo,Separator:()=>ez,Trigger:()=>eN,Value:()=>eP,Viewport:()=>e_,createSelectScope:()=>A});var n=r(74188),o=r(82749),l=r(43850),a=r(48841),i=r(96007),u=r(89607),s=r(68533),c=r(5672),d=r(98370),f=r(59103),p=r(97676),v=r(39636),h=r(59078),m=r(58496),g=r(98765),w=r(8059),y=r(36432),x=r(14392),b=r(92672),C=r(59044),S=r(85965),R=r(28056),E=r(58779),M=r(28064),j=[" ","Enter","ArrowUp","ArrowDown"],D=[" ","Enter"],I="Select",[k,T,N]=(0,i.N)(I),[P,A]=(0,s.A)(I,[N,h.Bk]),O=(0,h.Bk)(),[L,_]=P(I),[F,B]=P(I),G=e=>{let{__scopeSelect:t,children:r,open:o,defaultOpen:l,onOpenChange:a,value:i,defaultValue:u,onValueChange:s,dir:d,name:f,autoComplete:p,disabled:m,required:g,form:w}=e,y=O(t),[b,C]=n.useState(null),[S,R]=n.useState(null),[E,j]=n.useState(!1),D=(0,c.jH)(d),[T,N]=(0,x.i)({prop:o,defaultProp:null!=l&&l,onChange:a,caller:I}),[P,A]=(0,x.i)({prop:i,defaultProp:u,onChange:s,caller:I}),_=n.useRef(null),B=!b||w||!!b.closest("form"),[G,K]=n.useState(new Set),U=Array.from(G).map(e=>e.props.value).join(";");return(0,M.jsx)(h.bL,{...y,children:(0,M.jsxs)(L,{required:g,scope:t,trigger:b,onTriggerChange:C,valueNode:S,onValueNodeChange:R,valueNodeHasChildren:E,onValueNodeHasChildrenChange:j,contentId:(0,v.B)(),value:P,onValueChange:A,open:T,onOpenChange:N,dir:D,triggerPointerDownPosRef:_,disabled:m,children:[(0,M.jsx)(k.Provider,{scope:t,children:(0,M.jsx)(F,{scope:e.__scopeSelect,onNativeOptionAdd:n.useCallback(e=>{K(t=>new Set(t).add(e))},[]),onNativeOptionRemove:n.useCallback(e=>{K(t=>{let r=new Set(t);return r.delete(e),r})},[]),children:r})}),B?(0,M.jsxs)(ej,{"aria-hidden":!0,required:g,tabIndex:-1,name:f,autoComplete:p,value:P,onChange:e=>A(e.target.value),disabled:m,form:w,children:[void 0===P?(0,M.jsx)("option",{value:""}):null,Array.from(G)]},U):null]})})};G.displayName=I;var K="SelectTrigger",U=n.forwardRef((e,t)=>{let{__scopeSelect:r,disabled:o=!1,...l}=e,i=O(r),s=_(K,r),c=s.disabled||o,d=(0,u.s)(t,s.onTriggerChange),f=T(r),p=n.useRef("touch"),[v,m,w]=eI(e=>{let t=f().filter(e=>!e.disabled),r=t.find(e=>e.value===s.value),n=ek(t,e,r);void 0!==n&&s.onValueChange(n.value)}),y=e=>{c||(s.onOpenChange(!0),w()),e&&(s.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,M.jsx)(h.Mz,{asChild:!0,...i,children:(0,M.jsx)(g.sG.button,{type:"button",role:"combobox","aria-controls":s.contentId,"aria-expanded":s.open,"aria-required":s.required,"aria-autocomplete":"none",dir:s.dir,"data-state":s.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":eD(s.value)?"":void 0,...l,ref:d,onClick:(0,a.m)(l.onClick,e=>{e.currentTarget.focus(),"mouse"!==p.current&&y(e)}),onPointerDown:(0,a.m)(l.onPointerDown,e=>{p.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&"mouse"===e.pointerType&&(y(e),e.preventDefault())}),onKeyDown:(0,a.m)(l.onKeyDown,e=>{let t=""!==v.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||m(e.key),(!t||" "!==e.key)&&j.includes(e.key)&&(y(),e.preventDefault())})})})});U.displayName=K;var W="SelectValue",H=n.forwardRef((e,t)=>{let{__scopeSelect:r,className:n,style:o,children:l,placeholder:a="",...i}=e,s=_(W,r),{onValueNodeHasChildrenChange:c}=s,d=void 0!==l,f=(0,u.s)(t,s.onValueNodeChange);return(0,b.N)(()=>{c(d)},[c,d]),(0,M.jsx)(g.sG.span,{...i,ref:f,style:{pointerEvents:"none"},children:eD(s.value)?(0,M.jsx)(M.Fragment,{children:a}):l})});H.displayName=W;var z=n.forwardRef((e,t)=>{let{__scopeSelect:r,children:n,...o}=e;return(0,M.jsx)(g.sG.span,{"aria-hidden":!0,...o,ref:t,children:n||"▼"})});z.displayName="SelectIcon";var V=e=>(0,M.jsx)(m.Portal,{asChild:!0,...e});V.displayName="SelectPortal";var q="SelectContent",X=n.forwardRef((e,t)=>{let r=_(q,e.__scopeSelect),[l,a]=n.useState();return((0,b.N)(()=>{a(new DocumentFragment)},[]),r.open)?(0,M.jsx)(Q,{...e,ref:t}):l?o.createPortal((0,M.jsx)(Y,{scope:e.__scopeSelect,children:(0,M.jsx)(k.Slot,{scope:e.__scopeSelect,children:(0,M.jsx)("div",{children:e.children})})}),l):null});X.displayName=q;var[Y,Z]=P(q),J=(0,w.TL)("SelectContent.RemoveScroll"),Q=n.forwardRef((e,t)=>{let{__scopeSelect:r,position:o="item-aligned",onCloseAutoFocus:l,onEscapeKeyDown:i,onPointerDownOutside:s,side:c,sideOffset:v,align:h,alignOffset:m,arrowPadding:g,collisionBoundary:w,collisionPadding:y,sticky:x,hideWhenDetached:b,avoidCollisions:C,...S}=e,j=_(q,r),[D,I]=n.useState(null),[k,N]=n.useState(null),P=(0,u.s)(t,e=>I(e)),[A,O]=n.useState(null),[L,F]=n.useState(null),B=T(r),[G,K]=n.useState(!1),U=n.useRef(!1);n.useEffect(()=>{if(D)return(0,R.Eq)(D)},[D]),(0,f.Oh)();let W=n.useCallback(e=>{let[t,...r]=B().map(e=>e.ref.current),[n]=r.slice(-1),o=document.activeElement;for(let r of e)if(r===o||(null==r||r.scrollIntoView({block:"nearest"}),r===t&&k&&(k.scrollTop=0),r===n&&k&&(k.scrollTop=k.scrollHeight),null==r||r.focus(),document.activeElement!==o))return},[B,k]),H=n.useCallback(()=>W([A,D]),[W,A,D]);n.useEffect(()=>{G&&H()},[G,H]);let{onOpenChange:z,triggerPointerDownPosRef:V}=j;n.useEffect(()=>{if(D){let e={x:0,y:0},t=t=>{var r,n,o,l;e={x:Math.abs(Math.round(t.pageX)-(null!=(o=null==(r=V.current)?void 0:r.x)?o:0)),y:Math.abs(Math.round(t.pageY)-(null!=(l=null==(n=V.current)?void 0:n.y)?l:0))}},r=r=>{e.x<=10&&e.y<=10?r.preventDefault():D.contains(r.target)||z(!1),document.removeEventListener("pointermove",t),V.current=null};return null!==V.current&&(document.addEventListener("pointermove",t),document.addEventListener("pointerup",r,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",r,{capture:!0})}}},[D,z,V]),n.useEffect(()=>{let e=()=>z(!1);return window.addEventListener("blur",e),window.addEventListener("resize",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("resize",e)}},[z]);let[X,Z]=eI(e=>{let t=B().filter(e=>!e.disabled),r=t.find(e=>e.ref.current===document.activeElement),n=ek(t,e,r);n&&setTimeout(()=>n.ref.current.focus())}),Q=n.useCallback((e,t,r)=>{let n=!U.current&&!r;(void 0!==j.value&&j.value===t||n)&&(O(e),n&&(U.current=!0))},[j.value]),et=n.useCallback(()=>null==D?void 0:D.focus(),[D]),er=n.useCallback((e,t,r)=>{let n=!U.current&&!r;(void 0!==j.value&&j.value===t||n)&&F(e)},[j.value]),en="popper"===o?ee:$,eo=en===ee?{side:c,sideOffset:v,align:h,alignOffset:m,arrowPadding:g,collisionBoundary:w,collisionPadding:y,sticky:x,hideWhenDetached:b,avoidCollisions:C}:{};return(0,M.jsx)(Y,{scope:r,content:D,viewport:k,onViewportChange:N,itemRefCallback:Q,selectedItem:A,onItemLeave:et,itemTextRefCallback:er,focusSelectedItem:H,selectedItemText:L,position:o,isPositioned:G,searchRef:X,children:(0,M.jsx)(E.A,{as:J,allowPinchZoom:!0,children:(0,M.jsx)(p.n,{asChild:!0,trapped:j.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:(0,a.m)(l,e=>{var t;null==(t=j.trigger)||t.focus({preventScroll:!0}),e.preventDefault()}),children:(0,M.jsx)(d.qW,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:i,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>j.onOpenChange(!1),children:(0,M.jsx)(en,{role:"listbox",id:j.contentId,"data-state":j.open?"open":"closed",dir:j.dir,onContextMenu:e=>e.preventDefault(),...S,...eo,onPlaced:()=>K(!0),ref:P,style:{display:"flex",flexDirection:"column",outline:"none",...S.style},onKeyDown:(0,a.m)(S.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||Z(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=B().filter(e=>!e.disabled).map(e=>e.ref.current);if(["ArrowUp","End"].includes(e.key)&&(t=t.slice().reverse()),["ArrowUp","ArrowDown"].includes(e.key)){let r=e.target,n=t.indexOf(r);t=t.slice(n+1)}setTimeout(()=>W(t)),e.preventDefault()}})})})})})})});Q.displayName="SelectContentImpl";var $=n.forwardRef((e,t)=>{let{__scopeSelect:r,onPlaced:o,...a}=e,i=_(q,r),s=Z(q,r),[c,d]=n.useState(null),[f,p]=n.useState(null),v=(0,u.s)(t,e=>p(e)),h=T(r),m=n.useRef(!1),w=n.useRef(!0),{viewport:y,selectedItem:x,selectedItemText:C,focusSelectedItem:S}=s,R=n.useCallback(()=>{if(i.trigger&&i.valueNode&&c&&f&&y&&x&&C){let e=i.trigger.getBoundingClientRect(),t=f.getBoundingClientRect(),r=i.valueNode.getBoundingClientRect(),n=C.getBoundingClientRect();if("rtl"!==i.dir){let o=n.left-t.left,a=r.left-o,i=e.left-a,u=e.width+i,s=Math.max(u,t.width),d=window.innerWidth-10,f=(0,l.q)(a,[10,Math.max(10,d-s)]);c.style.minWidth=u+"px",c.style.left=f+"px"}else{let o=t.right-n.right,a=window.innerWidth-r.right-o,i=window.innerWidth-e.right-a,u=e.width+i,s=Math.max(u,t.width),d=window.innerWidth-10,f=(0,l.q)(a,[10,Math.max(10,d-s)]);c.style.minWidth=u+"px",c.style.right=f+"px"}let a=h(),u=window.innerHeight-20,s=y.scrollHeight,d=window.getComputedStyle(f),p=parseInt(d.borderTopWidth,10),v=parseInt(d.paddingTop,10),g=parseInt(d.borderBottomWidth,10),w=p+v+s+parseInt(d.paddingBottom,10)+g,b=Math.min(5*x.offsetHeight,w),S=window.getComputedStyle(y),R=parseInt(S.paddingTop,10),E=parseInt(S.paddingBottom,10),M=e.top+e.height/2-10,j=x.offsetHeight/2,D=p+v+(x.offsetTop+j);if(D<=M){let e=a.length>0&&x===a[a.length-1].ref.current;c.style.bottom="0px";let t=Math.max(u-M,j+(e?E:0)+(f.clientHeight-y.offsetTop-y.offsetHeight)+g);c.style.height=D+t+"px"}else{let e=a.length>0&&x===a[0].ref.current;c.style.top="0px";let t=Math.max(M,p+y.offsetTop+(e?R:0)+j);c.style.height=t+(w-D)+"px",y.scrollTop=D-M+y.offsetTop}c.style.margin="".concat(10,"px 0"),c.style.minHeight=b+"px",c.style.maxHeight=u+"px",null==o||o(),requestAnimationFrame(()=>m.current=!0)}},[h,i.trigger,i.valueNode,c,f,y,x,C,i.dir,o]);(0,b.N)(()=>R(),[R]);let[E,j]=n.useState();(0,b.N)(()=>{f&&j(window.getComputedStyle(f).zIndex)},[f]);let D=n.useCallback(e=>{e&&!0===w.current&&(R(),null==S||S(),w.current=!1)},[R,S]);return(0,M.jsx)(et,{scope:r,contentWrapper:c,shouldExpandOnScrollRef:m,onScrollButtonChange:D,children:(0,M.jsx)("div",{ref:d,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:E},children:(0,M.jsx)(g.sG.div,{...a,ref:v,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});$.displayName="SelectItemAlignedPosition";var ee=n.forwardRef((e,t)=>{let{__scopeSelect:r,align:n="start",collisionPadding:o=10,...l}=e,a=O(r);return(0,M.jsx)(h.UC,{...a,...l,ref:t,align:n,collisionPadding:o,style:{boxSizing:"border-box",...l.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});ee.displayName="SelectPopperPosition";var[et,er]=P(q,{}),en="SelectViewport",eo=n.forwardRef((e,t)=>{let{__scopeSelect:r,nonce:o,...l}=e,i=Z(en,r),s=er(en,r),c=(0,u.s)(t,i.onViewportChange),d=n.useRef(0);return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:o}),(0,M.jsx)(k.Slot,{scope:r,children:(0,M.jsx)(g.sG.div,{"data-radix-select-viewport":"",role:"presentation",...l,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...l.style},onScroll:(0,a.m)(l.onScroll,e=>{let t=e.currentTarget,{contentWrapper:r,shouldExpandOnScrollRef:n}=s;if((null==n?void 0:n.current)&&r){let e=Math.abs(d.current-t.scrollTop);if(e>0){let n=window.innerHeight-20,o=Math.max(parseFloat(r.style.minHeight),parseFloat(r.style.height));if(o0?i:0,r.style.justifyContent="flex-end")}}}d.current=t.scrollTop})})})]})});eo.displayName=en;var el="SelectGroup",[ea,ei]=P(el),eu=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,o=(0,v.B)();return(0,M.jsx)(ea,{scope:r,id:o,children:(0,M.jsx)(g.sG.div,{role:"group","aria-labelledby":o,...n,ref:t})})});eu.displayName=el;var es="SelectLabel",ec=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,o=ei(es,r);return(0,M.jsx)(g.sG.div,{id:o.id,...n,ref:t})});ec.displayName=es;var ed="SelectItem",[ef,ep]=P(ed),ev=n.forwardRef((e,t)=>{let{__scopeSelect:r,value:o,disabled:l=!1,textValue:i,...s}=e,c=_(ed,r),d=Z(ed,r),f=c.value===o,[p,h]=n.useState(null!=i?i:""),[m,w]=n.useState(!1),y=(0,u.s)(t,e=>{var t;return null==(t=d.itemRefCallback)?void 0:t.call(d,e,o,l)}),x=(0,v.B)(),b=n.useRef("touch"),C=()=>{l||(c.onValueChange(o),c.onOpenChange(!1))};if(""===o)throw Error("A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,M.jsx)(ef,{scope:r,value:o,disabled:l,textId:x,isSelected:f,onItemTextChange:n.useCallback(e=>{h(t=>{var r;return t||(null!=(r=null==e?void 0:e.textContent)?r:"").trim()})},[]),children:(0,M.jsx)(k.ItemSlot,{scope:r,value:o,disabled:l,textValue:p,children:(0,M.jsx)(g.sG.div,{role:"option","aria-labelledby":x,"data-highlighted":m?"":void 0,"aria-selected":f&&m,"data-state":f?"checked":"unchecked","aria-disabled":l||void 0,"data-disabled":l?"":void 0,tabIndex:l?void 0:-1,...s,ref:y,onFocus:(0,a.m)(s.onFocus,()=>w(!0)),onBlur:(0,a.m)(s.onBlur,()=>w(!1)),onClick:(0,a.m)(s.onClick,()=>{"mouse"!==b.current&&C()}),onPointerUp:(0,a.m)(s.onPointerUp,()=>{"mouse"===b.current&&C()}),onPointerDown:(0,a.m)(s.onPointerDown,e=>{b.current=e.pointerType}),onPointerMove:(0,a.m)(s.onPointerMove,e=>{if(b.current=e.pointerType,l){var t;null==(t=d.onItemLeave)||t.call(d)}else"mouse"===b.current&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,a.m)(s.onPointerLeave,e=>{if(e.currentTarget===document.activeElement){var t;null==(t=d.onItemLeave)||t.call(d)}}),onKeyDown:(0,a.m)(s.onKeyDown,e=>{var t;((null==(t=d.searchRef)?void 0:t.current)===""||" "!==e.key)&&(D.includes(e.key)&&C()," "===e.key&&e.preventDefault())})})})})});ev.displayName=ed;var eh="SelectItemText",em=n.forwardRef((e,t)=>{let{__scopeSelect:r,className:l,style:a,...i}=e,s=_(eh,r),c=Z(eh,r),d=ep(eh,r),f=B(eh,r),[p,v]=n.useState(null),h=(0,u.s)(t,e=>v(e),d.onItemTextChange,e=>{var t;return null==(t=c.itemTextRefCallback)?void 0:t.call(c,e,d.value,d.disabled)}),m=null==p?void 0:p.textContent,w=n.useMemo(()=>(0,M.jsx)("option",{value:d.value,disabled:d.disabled,children:m},d.value),[d.disabled,d.value,m]),{onNativeOptionAdd:y,onNativeOptionRemove:x}=f;return(0,b.N)(()=>(y(w),()=>x(w)),[y,x,w]),(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(g.sG.span,{id:d.textId,...i,ref:h}),d.isSelected&&s.valueNode&&!s.valueNodeHasChildren?o.createPortal(i.children,s.valueNode):null]})});em.displayName=eh;var eg="SelectItemIndicator",ew=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e;return ep(eg,r).isSelected?(0,M.jsx)(g.sG.span,{"aria-hidden":!0,...n,ref:t}):null});ew.displayName=eg;var ey="SelectScrollUpButton",ex=n.forwardRef((e,t)=>{let r=Z(ey,e.__scopeSelect),o=er(ey,e.__scopeSelect),[l,a]=n.useState(!1),i=(0,u.s)(t,o.onScrollButtonChange);return(0,b.N)(()=>{if(r.viewport&&r.isPositioned){let e=function(){a(t.scrollTop>0)},t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),l?(0,M.jsx)(eS,{...e,ref:i,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}}):null});ex.displayName=ey;var eb="SelectScrollDownButton",eC=n.forwardRef((e,t)=>{let r=Z(eb,e.__scopeSelect),o=er(eb,e.__scopeSelect),[l,a]=n.useState(!1),i=(0,u.s)(t,o.onScrollButtonChange);return(0,b.N)(()=>{if(r.viewport&&r.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;a(Math.ceil(t.scrollTop)t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),l?(0,M.jsx)(eS,{...e,ref:i,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null});eC.displayName=eb;var eS=n.forwardRef((e,t)=>{let{__scopeSelect:r,onAutoScroll:o,...l}=e,i=Z("SelectScrollButton",r),u=n.useRef(null),s=T(r),c=n.useCallback(()=>{null!==u.current&&(window.clearInterval(u.current),u.current=null)},[]);return n.useEffect(()=>()=>c(),[c]),(0,b.N)(()=>{var e;let t=s().find(e=>e.ref.current===document.activeElement);null==t||null==(e=t.ref.current)||e.scrollIntoView({block:"nearest"})},[s]),(0,M.jsx)(g.sG.div,{"aria-hidden":!0,...l,ref:t,style:{flexShrink:0,...l.style},onPointerDown:(0,a.m)(l.onPointerDown,()=>{null===u.current&&(u.current=window.setInterval(o,50))}),onPointerMove:(0,a.m)(l.onPointerMove,()=>{var e;null==(e=i.onItemLeave)||e.call(i),null===u.current&&(u.current=window.setInterval(o,50))}),onPointerLeave:(0,a.m)(l.onPointerLeave,()=>{c()})})}),eR=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e;return(0,M.jsx)(g.sG.div,{"aria-hidden":!0,...n,ref:t})});eR.displayName="SelectSeparator";var eE="SelectArrow",eM=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,o=O(r),l=_(eE,r),a=Z(eE,r);return l.open&&"popper"===a.position?(0,M.jsx)(h.i3,{...o,...n,ref:t}):null});eM.displayName=eE;var ej=n.forwardRef((e,t)=>{let{__scopeSelect:r,value:o,...l}=e,a=n.useRef(null),i=(0,u.s)(t,a),s=(0,C.Z)(o);return n.useEffect(()=>{let e=a.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(s!==o&&t){let r=new Event("change",{bubbles:!0});t.call(e,o),e.dispatchEvent(r)}},[s,o]),(0,M.jsx)(g.sG.select,{...l,style:{...S.Qg,...l.style},ref:i,defaultValue:o})});function eD(e){return""===e||void 0===e}function eI(e){let t=(0,y.c)(e),r=n.useRef(""),o=n.useRef(0),l=n.useCallback(e=>{let n=r.current+e;t(n),function e(t){r.current=t,window.clearTimeout(o.current),""!==t&&(o.current=window.setTimeout(()=>e(""),1e3))}(n)},[t]),a=n.useCallback(()=>{r.current="",window.clearTimeout(o.current)},[]);return n.useEffect(()=>()=>window.clearTimeout(o.current),[]),[r,l,a]}function ek(e,t,r){var n,o;let l=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,a=r?e.indexOf(r):-1,i=(n=e,o=Math.max(a,0),n.map((e,t)=>n[(o+t)%n.length]));1===l.length&&(i=i.filter(e=>e!==r));let u=i.find(e=>e.textValue.toLowerCase().startsWith(l.toLowerCase()));return u!==r?u:void 0}ej.displayName="SelectBubbleInput";var eT=G,eN=U,eP=H,eA=z,eO=V,eL=X,e_=eo,eF=eu,eB=ec,eG=ev,eK=em,eU=ew,eW=ex,eH=eC,ez=eR,eV=eM},96007:(e,t,r)=>{function n(e,t,r){if(!t.has(e))throw TypeError("attempted to "+r+" private field on non-instance");return t.get(e)}function o(e,t){var r=n(e,t,"get");return r.get?r.get.call(e):r.value}function l(e,t,r){var o=n(e,t,"set");if(o.set)o.set.call(e,r);else{if(!o.writable)throw TypeError("attempted to set read only private field");o.value=r}return r}r.d(t,{N:()=>f,C:()=>g});var a,i=r(74188),u=r(68533),s=r(89607),c=r(8059),d=r(28064);function f(e){let t=e+"CollectionProvider",[r,n]=(0,u.A)(t),[o,l]=r(t,{collectionRef:{current:null},itemMap:new Map}),a=e=>{let{scope:t,children:r}=e,n=i.useRef(null),l=i.useRef(new Map).current;return(0,d.jsx)(o,{scope:t,itemMap:l,collectionRef:n,children:r})};a.displayName=t;let f=e+"CollectionSlot",p=(0,c.TL)(f),v=i.forwardRef((e,t)=>{let{scope:r,children:n}=e,o=l(f,r),a=(0,s.s)(t,o.collectionRef);return(0,d.jsx)(p,{ref:a,children:n})});v.displayName=f;let h=e+"CollectionItemSlot",m="data-radix-collection-item",g=(0,c.TL)(h),w=i.forwardRef((e,t)=>{let{scope:r,children:n,...o}=e,a=i.useRef(null),u=(0,s.s)(t,a),c=l(h,r);return i.useEffect(()=>(c.itemMap.set(a,{ref:a,...o}),()=>void c.itemMap.delete(a))),(0,d.jsx)(g,{...{[m]:""},ref:u,children:n})});return w.displayName=h,[{Provider:a,Slot:v,ItemSlot:w},function(t){let r=l(e+"CollectionConsumer",t);return i.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll("[".concat(m,"]")));return Array.from(r.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[r.collectionRef,r.itemMap])},n]}var p=new WeakMap,v=(a=new WeakMap,class e extends Map{set(e,t){return p.get(this)&&(this.has(e)?o(this,a)[o(this,a).indexOf(e)]=e:o(this,a).push(e)),super.set(e,t),this}insert(e,t,r){let n,l=this.has(t),i=o(this,a).length,u=m(e),s=u>=0?u:i+u,c=s<0||s>=i?-1:s;if(c===this.size||l&&c===this.size-1||-1===c)return this.set(t,r),this;let d=this.size+ +!l;u<0&&s++;let f=[...o(this,a)],p=!1;for(let e=s;e=this.size&&(n=this.size-1),this.at(n)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.keyAt(n)}find(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return n;r++}}findIndex(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return r;r++}return -1}filter(t,r){let n=[],o=0;for(let e of this)Reflect.apply(t,r,[e,o,this])&&n.push(e),o++;return new e(n)}map(t,r){let n=[],o=0;for(let e of this)n.push([e[0],Reflect.apply(t,r,[e,o,this])]),o++;return new e(n)}reduce(){for(var e=arguments.length,t=Array(e),r=0;r=0;e--){let r=this.at(e);l=e===this.size-1&&1===t.length?r:Reflect.apply(n,this,[l,r,e,this])}return l}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),n=this.get(r);t.set(r,n)}return t}toSpliced(){for(var t=arguments.length,r=Array(t),n=0;n0&&(o=r-1);for(let e=t;e<=o;e++){let t=this.keyAt(e),r=this.get(t);n.set(t,r)}return n}every(e,t){let r=0;for(let n of this){if(!Reflect.apply(e,t,[n,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return!0;r++}return!1}constructor(e){super(e),function(e,t,r){if(t.has(e))throw TypeError("Cannot initialize the same private elements twice on an object");t.set(e,r)}(this,a,{writable:!0,value:void 0}),l(this,a,[...super.keys()]),p.set(this,!0)}});function h(e,t){if("at"in Array.prototype)return Array.prototype.at.call(e,t);let r=function(e,t){let r=e.length,n=m(t),o=n>=0?n:r+n;return o<0||o>=r?-1:o}(e,t);return -1===r?void 0:e[r]}function m(e){return e!=e||0===e?0:Math.trunc(e)}function g(e){let t=e+"CollectionProvider",[r,n]=(0,u.A)(t),[o,l]=r(t,{collectionElement:null,collectionRef:{current:null},collectionRefObject:{current:null},itemMap:new v,setItemMap:()=>void 0}),a=e=>{let{state:t,...r}=e;return t?(0,d.jsx)(p,{...r,state:t}):(0,d.jsx)(f,{...r})};a.displayName=t;let f=e=>{let t=C();return(0,d.jsx)(p,{...e,state:t})};f.displayName=t+"Init";let p=e=>{let{scope:t,children:r,state:n}=e,l=i.useRef(null),[a,u]=i.useState(null),c=(0,s.s)(l,u),[f,p]=n;return i.useEffect(()=>{var e;if(!a)return;let t=(e=()=>{},new MutationObserver(t=>{for(let r of t)if("childList"===r.type)return void e()}));return t.observe(a,{childList:!0,subtree:!0}),()=>{t.disconnect()}},[a]),(0,d.jsx)(o,{scope:t,itemMap:f,setItemMap:p,collectionRef:c,collectionRefObject:l,collectionElement:a,children:r})};p.displayName=t+"Impl";let h=e+"CollectionSlot",m=(0,c.TL)(h),g=i.forwardRef((e,t)=>{let{scope:r,children:n}=e,o=l(h,r),a=(0,s.s)(t,o.collectionRef);return(0,d.jsx)(m,{ref:a,children:n})});g.displayName=h;let y=e+"CollectionItemSlot",x=(0,c.TL)(y),b=i.forwardRef((e,t)=>{let{scope:r,children:n,...o}=e,a=i.useRef(null),[u,c]=i.useState(null),f=(0,s.s)(t,a,c),{setItemMap:p}=l(y,r),h=i.useRef(o);!function(e,t){if(e===t)return!0;if("object"!=typeof e||"object"!=typeof t||null==e||null==t)return!1;let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let n of r)if(!Object.prototype.hasOwnProperty.call(t,n)||e[n]!==t[n])return!1;return!0}(h.current,o)&&(h.current=o);let m=h.current;return i.useEffect(()=>(p(e=>u?e.has(u)?e.set(u,{...m,element:u}).toSorted(w):(e.set(u,{...m,element:u}),e.toSorted(w)):e),()=>{p(e=>u&&e.has(u)?(e.delete(u),new v(e)):e)}),[u,m,p]),(0,d.jsx)(x,{"data-radix-collection-item":"",ref:f,children:n})});function C(){return i.useState(new v)}return b.displayName=y,[{Provider:a,Slot:g,ItemSlot:b},{createCollectionScope:n,useCollection:function(t){let{itemMap:r}=l(e+"CollectionConsumer",t);return r},useInitCollection:C}]}function w(e,t){var r;return e[1].element&&t[1].element?(r=e[1].element,t[1].element.compareDocumentPosition(r)&Node.DOCUMENT_POSITION_PRECEDING)?-1:1:0}},97676:(e,t,r)=>{r.d(t,{n:()=>d});var n=r(74188),o=r(89607),l=r(98765),a=r(36432),i=r(28064),u="focusScope.autoFocusOnMount",s="focusScope.autoFocusOnUnmount",c={bubbles:!1,cancelable:!0},d=n.forwardRef((e,t)=>{let{loop:r=!1,trapped:d=!1,onMountAutoFocus:m,onUnmountAutoFocus:g,...w}=e,[y,x]=n.useState(null),b=(0,a.c)(m),C=(0,a.c)(g),S=n.useRef(null),R=(0,o.s)(t,e=>x(e)),E=n.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;n.useEffect(()=>{if(d){let e=function(e){if(E.paused||!y)return;let t=e.target;y.contains(t)?S.current=t:v(S.current,{select:!0})},t=function(e){if(E.paused||!y)return;let t=e.relatedTarget;null!==t&&(y.contains(t)||v(S.current,{select:!0}))};document.addEventListener("focusin",e),document.addEventListener("focusout",t);let r=new MutationObserver(function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&v(y)});return y&&r.observe(y,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),r.disconnect()}}},[d,y,E.paused]),n.useEffect(()=>{if(y){h.add(E);let e=document.activeElement;if(!y.contains(e)){let t=new CustomEvent(u,c);y.addEventListener(u,b),y.dispatchEvent(t),t.defaultPrevented||(function(e){let{select:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=document.activeElement;for(let n of e)if(v(n,{select:t}),document.activeElement!==r)return}(f(y).filter(e=>"A"!==e.tagName),{select:!0}),document.activeElement===e&&v(y))}return()=>{y.removeEventListener(u,b),setTimeout(()=>{let t=new CustomEvent(s,c);y.addEventListener(s,C),y.dispatchEvent(t),t.defaultPrevented||v(null!=e?e:document.body,{select:!0}),y.removeEventListener(s,C),h.remove(E)},0)}}},[y,b,C,E]);let M=n.useCallback(e=>{if(!r&&!d||E.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,n=document.activeElement;if(t&&n){let t=e.currentTarget,[o,l]=function(e){let t=f(e);return[p(t,e),p(t.reverse(),e)]}(t);o&&l?e.shiftKey||n!==l?e.shiftKey&&n===o&&(e.preventDefault(),r&&v(l,{select:!0})):(e.preventDefault(),r&&v(o,{select:!0})):n===t&&e.preventDefault()}},[r,d,E.paused]);return(0,i.jsx)(l.sG.div,{tabIndex:-1,...w,ref:R,onKeyDown:M})});function f(e){let t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}function p(e,t){for(let r of e)if(!function(e,t){let{upTo:r}=t;if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===r||e!==r);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}(r,{upTo:t}))return r}function v(e){let{select:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(e&&e.focus){var r;let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&(r=e)instanceof HTMLInputElement&&"select"in r&&t&&e.select()}}d.displayName="FocusScope";var h=function(){let e=[];return{add(t){let r=e[0];t!==r&&(null==r||r.pause()),(e=m(e,t)).unshift(t)},remove(t){var r;null==(r=(e=m(e,t))[0])||r.resume()}}}();function m(e,t){let r=[...e],n=r.indexOf(t);return -1!==n&&r.splice(n,1),r}}}]); +//# sourceMappingURL=876-fbf33384517dafbf.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/876-fbf33384517dafbf.js.map b/opencut-ui/_next/static/chunks/876-fbf33384517dafbf.js.map new file mode 100644 index 0000000..ed2f070 --- /dev/null +++ b/opencut-ui/_next/static/chunks/876-fbf33384517dafbf.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/876-fbf33384517dafbf.js","mappings":"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","sources":["webpack://_N_E/../../node_modules/.bun/@radix-ui+react-direction@1.1.1+0e2fb8dbc083adda/node_modules/@radix-ui/react-direction/dist/index.mjs","webpack://_N_E/../../node_modules/.bun/aria-hidden@1.2.6/node_modules/aria-hidden/dist/es2015/index.js","webpack://_N_E/../src/menu.tsx","webpack://_N_E/../../node_modules/.bun/@radix-ui+number@1.1.1/node_modules/@radix-ui/number/dist/index.mjs","webpack://_N_E/../../node_modules/.bun/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","webpack://_N_E/../../node_modules/.bun/react-remove-scroll-bar@2.3.8+0e2fb8dbc083adda/node_modules/react-remove-scroll-bar/dist/es2015/constants.js","webpack://_N_E/../../node_modules/.bun/use-callback-ref@1.3.3+0e2fb8dbc083adda/node_modules/use-callback-ref/dist/es2015/assignRef.js","webpack://_N_E/../../node_modules/.bun/use-callback-ref@1.3.3+0e2fb8dbc083adda/node_modules/use-callback-ref/dist/es2015/useRef.js","webpack://_N_E/../../node_modules/.bun/use-callback-ref@1.3.3+0e2fb8dbc083adda/node_modules/use-callback-ref/dist/es2015/useMergeRef.js","webpack://_N_E/../../node_modules/.bun/use-sidecar@1.1.3+0e2fb8dbc083adda/node_modules/use-sidecar/dist/es2015/medium.js","webpack://_N_E/../../node_modules/.bun/react-remove-scroll@2.7.1+0e2fb8dbc083adda/node_modules/react-remove-scroll/dist/es2015/medium.js","webpack://_N_E/../../node_modules/.bun/react-remove-scroll@2.7.1+0e2fb8dbc083adda/node_modules/react-remove-scroll/dist/es2015/UI.js","webpack://_N_E/../../node_modules/.bun/use-sidecar@1.1.3+0e2fb8dbc083adda/node_modules/use-sidecar/dist/es2015/exports.js","webpack://_N_E/../../node_modules/.bun/get-nonce@1.0.1/node_modules/get-nonce/dist/es2015/index.js","webpack://_N_E/../../node_modules/.bun/react-style-singleton@2.2.3+0e2fb8dbc083adda/node_modules/react-style-singleton/dist/es2015/singleton.js","webpack://_N_E/../../node_modules/.bun/react-style-singleton@2.2.3+0e2fb8dbc083adda/node_modules/react-style-singleton/dist/es2015/hook.js","webpack://_N_E/../../node_modules/.bun/react-style-singleton@2.2.3+0e2fb8dbc083adda/node_modules/react-style-singleton/dist/es2015/component.js","webpack://_N_E/../../node_modules/.bun/react-style-singleton@2.2.3+0e2fb8dbc083adda/node_modules/react-style-singleton/dist/es2015/index.js","webpack://_N_E/../../node_modules/.bun/react-remove-scroll-bar@2.3.8+0e2fb8dbc083adda/node_modules/react-remove-scroll-bar/dist/es2015/utils.js","webpack://_N_E/../../node_modules/.bun/react-remove-scroll-bar@2.3.8+0e2fb8dbc083adda/node_modules/react-remove-scroll-bar/dist/es2015/component.js","webpack://_N_E/../../node_modules/.bun/react-remove-scroll-bar@2.3.8+0e2fb8dbc083adda/node_modules/react-remove-scroll-bar/dist/es2015/index.js","webpack://_N_E/../../node_modules/.bun/react-remove-scroll@2.7.1+0e2fb8dbc083adda/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","webpack://_N_E/../../node_modules/.bun/react-remove-scroll@2.7.1+0e2fb8dbc083adda/node_modules/react-remove-scroll/dist/es2015/handleScroll.js","webpack://_N_E/../../node_modules/.bun/react-remove-scroll@2.7.1+0e2fb8dbc083adda/node_modules/react-remove-scroll/dist/es2015/SideEffect.js","webpack://_N_E/../../node_modules/.bun/react-remove-scroll@2.7.1+0e2fb8dbc083adda/node_modules/react-remove-scroll/dist/es2015/sidecar.js","webpack://_N_E/../../node_modules/.bun/react-remove-scroll@2.7.1+0e2fb8dbc083adda/node_modules/react-remove-scroll/dist/es2015/Combination.js","webpack://_N_E/../../node_modules/.bun/@radix-ui+react-use-previous@1.1.1+0e2fb8dbc083adda/node_modules/@radix-ui/react-use-previous/dist/index.mjs","webpack://_N_E/../src/focus-guards.tsx","webpack://_N_E/../src/dialog.tsx","webpack://_N_E/../src/roving-focus-group.tsx","webpack://_N_E/../src/dropdown-menu.tsx","webpack://_N_E/../src/select.tsx","webpack://_N_E/../../node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_apply_descriptor_get.js","webpack://_N_E/../../node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_extract_field_descriptor.js","webpack://_N_E/../../node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_get.js","webpack://_N_E/../../node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_check_private_redeclaration.js","webpack://_N_E/../../node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_init.js","webpack://_N_E/../../node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_apply_descriptor_set.js","webpack://_N_E/../../node_modules/.bun/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_class_private_field_set.js","webpack://_N_E/../src/collection-legacy.tsx","webpack://_N_E/../src/collection.tsx","webpack://_N_E/../src/ordered-dictionary.ts","webpack://_N_E/../src/focus-scope.tsx"],"sourcesContent":["// packages/react/direction/src/direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n try {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n catch (e) {\n console.error('aria-hidden: cannot operate on ', node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide aria-live elements - https://github.com/theKashey/aria-hidden/issues/10\n // and script elements, as they have no impact on accessibility.\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live], script')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createCollection } from '@radix-ui/react-collection';\nimport { useComposedRefs, composeRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { useId } from '@radix-ui/react-id';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive, dispatchDiscreteCustomEvent } from '@radix-ui/react-primitive';\nimport * as RovingFocusGroup from '@radix-ui/react-roving-focus';\nimport { createRovingFocusGroupScope } from '@radix-ui/react-roving-focus';\nimport { createSlot } from '@radix-ui/react-slot';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { hideOthers } from 'aria-hidden';\nimport { RemoveScroll } from 'react-remove-scroll';\n\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst SELECTION_KEYS = ['Enter', ' '];\nconst FIRST_KEYS = ['ArrowDown', 'PageUp', 'Home'];\nconst LAST_KEYS = ['ArrowUp', 'PageDown', 'End'];\nconst FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];\nconst SUB_OPEN_KEYS: Record = {\n ltr: [...SELECTION_KEYS, 'ArrowRight'],\n rtl: [...SELECTION_KEYS, 'ArrowLeft'],\n};\nconst SUB_CLOSE_KEYS: Record = {\n ltr: ['ArrowLeft'],\n rtl: ['ArrowRight'],\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Menu\n * -----------------------------------------------------------------------------------------------*/\n\nconst MENU_NAME = 'Menu';\n\ntype ItemData = { disabled: boolean; textValue: string };\nconst [Collection, useCollection, createCollectionScope] = createCollection<\n MenuItemElement,\n ItemData\n>(MENU_NAME);\n\ntype ScopedProps

= P & { __scopeMenu?: Scope };\nconst [createMenuContext, createMenuScope] = createContextScope(MENU_NAME, [\n createCollectionScope,\n createPopperScope,\n createRovingFocusGroupScope,\n]);\nconst usePopperScope = createPopperScope();\nconst useRovingFocusGroupScope = createRovingFocusGroupScope();\n\ntype MenuContextValue = {\n open: boolean;\n onOpenChange(open: boolean): void;\n content: MenuContentElement | null;\n onContentChange(content: MenuContentElement | null): void;\n};\n\nconst [MenuProvider, useMenuContext] = createMenuContext(MENU_NAME);\n\ntype MenuRootContextValue = {\n onClose(): void;\n isUsingKeyboardRef: React.RefObject;\n dir: Direction;\n modal: boolean;\n};\n\nconst [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);\n\ninterface MenuProps {\n children?: React.ReactNode;\n open?: boolean;\n onOpenChange?(open: boolean): void;\n dir?: Direction;\n modal?: boolean;\n}\n\nconst Menu: React.FC = (props: ScopedProps) => {\n const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;\n const popperScope = usePopperScope(__scopeMenu);\n const [content, setContent] = React.useState(null);\n const isUsingKeyboardRef = React.useRef(false);\n const handleOpenChange = useCallbackRef(onOpenChange);\n const direction = useDirection(dir);\n\n React.useEffect(() => {\n // Capture phase ensures we set the boolean before any side effects execute\n // in response to the key or pointer event as they might depend on this value.\n const handleKeyDown = () => {\n isUsingKeyboardRef.current = true;\n document.addEventListener('pointerdown', handlePointer, { capture: true, once: true });\n document.addEventListener('pointermove', handlePointer, { capture: true, once: true });\n };\n const handlePointer = () => (isUsingKeyboardRef.current = false);\n document.addEventListener('keydown', handleKeyDown, { capture: true });\n return () => {\n document.removeEventListener('keydown', handleKeyDown, { capture: true });\n document.removeEventListener('pointerdown', handlePointer, { capture: true });\n document.removeEventListener('pointermove', handlePointer, { capture: true });\n };\n }, []);\n\n return (\n \n \n handleOpenChange(false), [handleOpenChange])}\n isUsingKeyboardRef={isUsingKeyboardRef}\n dir={direction}\n modal={modal}\n >\n {children}\n \n \n \n );\n};\n\nMenu.displayName = MENU_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuAnchor\n * -----------------------------------------------------------------------------------------------*/\n\nconst ANCHOR_NAME = 'MenuAnchor';\n\ntype MenuAnchorElement = React.ComponentRef;\ntype PopperAnchorProps = React.ComponentPropsWithoutRef;\ninterface MenuAnchorProps extends PopperAnchorProps {}\n\nconst MenuAnchor = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, ...anchorProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return ;\n }\n);\n\nMenuAnchor.displayName = ANCHOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'MenuPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef;\ninterface MenuPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst MenuPortal: React.FC = (props: ScopedProps) => {\n const { __scopeMenu, forceMount, children, container } = props;\n const context = useMenuContext(PORTAL_NAME, __scopeMenu);\n return (\n \n \n \n {children}\n \n \n \n );\n};\n\nMenuPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'MenuContent';\n\ntype MenuContentContextValue = {\n onItemEnter(event: React.PointerEvent): void;\n onItemLeave(event: React.PointerEvent): void;\n onTriggerLeave(event: React.PointerEvent): void;\n searchRef: React.RefObject;\n pointerGraceTimerRef: React.MutableRefObject;\n onPointerGraceIntentChange(intent: GraceIntent | null): void;\n};\nconst [MenuContentProvider, useMenuContentContext] =\n createMenuContext(CONTENT_NAME);\n\ntype MenuContentElement = MenuRootContentTypeElement;\n/**\n * We purposefully don't union MenuRootContent and MenuSubContent props here because\n * they have conflicting prop types. We agreed that we would allow MenuSubContent to\n * accept props that it would just ignore.\n */\ninterface MenuContentProps extends MenuRootContentTypeProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst MenuContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n\n return (\n \n \n \n {rootContext.modal ? (\n \n ) : (\n \n )}\n \n \n \n );\n }\n);\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype MenuRootContentTypeElement = MenuContentImplElement;\ninterface MenuRootContentTypeProps\n extends Omit {}\n\nconst MenuRootContentModal = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n\n // Hide everything from ARIA except the `MenuContent`\n React.useEffect(() => {\n const content = ref.current;\n if (content) return hideOthers(content);\n }, []);\n\n return (\n event.preventDefault(),\n { checkForDefaultPrevented: false }\n )}\n onDismiss={() => context.onOpenChange(false)}\n />\n );\n }\n);\n\nconst MenuRootContentNonModal = React.forwardRef<\n MenuRootContentTypeElement,\n MenuRootContentTypeProps\n>((props: ScopedProps, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n return (\n context.onOpenChange(false)}\n />\n );\n});\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype MenuContentImplElement = React.ComponentRef;\ntype FocusScopeProps = React.ComponentPropsWithoutRef;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef;\ntype RovingFocusGroupProps = React.ComponentPropsWithoutRef;\ntype PopperContentProps = React.ComponentPropsWithoutRef;\ntype MenuContentImplPrivateProps = {\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n onDismiss?: DismissableLayerProps['onDismiss'];\n disableOutsidePointerEvents?: DismissableLayerProps['disableOutsidePointerEvents'];\n\n /**\n * Whether scrolling outside the `MenuContent` should be prevented\n * (default: `false`)\n */\n disableOutsideScroll?: boolean;\n\n /**\n * Whether focus should be trapped within the `MenuContent`\n * (default: false)\n */\n trapFocus?: FocusScopeProps['trapped'];\n};\ninterface MenuContentImplProps\n extends MenuContentImplPrivateProps,\n Omit {\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n\n /**\n * Whether keyboard navigation should loop around\n * @defaultValue false\n */\n loop?: RovingFocusGroupProps['loop'];\n\n onEntryFocus?: RovingFocusGroupProps['onEntryFocus'];\n onEscapeKeyDown?: DismissableLayerProps['onEscapeKeyDown'];\n onPointerDownOutside?: DismissableLayerProps['onPointerDownOutside'];\n onFocusOutside?: DismissableLayerProps['onFocusOutside'];\n onInteractOutside?: DismissableLayerProps['onInteractOutside'];\n}\n\nconst Slot = createSlot('MenuContent.ScrollLock');\n\nconst MenuContentImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeMenu,\n loop = false,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEntryFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n disableOutsideScroll,\n ...contentProps\n } = props;\n const context = useMenuContext(CONTENT_NAME, __scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const getItems = useCollection(__scopeMenu);\n const [currentItemId, setCurrentItemId] = React.useState(null);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);\n const timerRef = React.useRef(0);\n const searchRef = React.useRef('');\n const pointerGraceTimerRef = React.useRef(0);\n const pointerGraceIntentRef = React.useRef(null);\n const pointerDirRef = React.useRef('right');\n const lastPointerXRef = React.useRef(0);\n\n const ScrollLockWrapper = disableOutsideScroll ? RemoveScroll : React.Fragment;\n const scrollLockWrapperProps = disableOutsideScroll\n ? { as: Slot, allowPinchZoom: true }\n : undefined;\n\n const handleTypeaheadSearch = (key: string) => {\n const search = searchRef.current + key;\n const items = getItems().filter((item) => !item.disabled);\n const currentItem = document.activeElement;\n const currentMatch = items.find((item) => item.ref.current === currentItem)?.textValue;\n const values = items.map((item) => item.textValue);\n const nextMatch = getNextMatch(values, search, currentMatch);\n const newItem = items.find((item) => item.textValue === nextMatch)?.ref.current;\n\n // Reset `searchRef` 1 second after it was last updated\n (function updateSearch(value: string) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== '') timerRef.current = window.setTimeout(() => updateSearch(''), 1000);\n })(search);\n\n if (newItem) {\n /**\n * Imperative focus during keydown is risky so we prevent React's batching updates\n * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332\n */\n setTimeout(() => (newItem as HTMLElement).focus());\n }\n };\n\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n\n // Make sure the whole tree has focus guards as our `MenuContent` may be\n // the last element in the DOM (because of the `Portal`)\n useFocusGuards();\n\n const isPointerMovingToSubmenu = React.useCallback((event: React.PointerEvent) => {\n const isMovingTowards = pointerDirRef.current === pointerGraceIntentRef.current?.side;\n return isMovingTowards && isPointerInGraceArea(event, pointerGraceIntentRef.current?.area);\n }, []);\n\n return (\n {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n )}\n onItemLeave={React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) return;\n contentRef.current?.focus();\n setCurrentItemId(null);\n },\n [isPointerMovingToSubmenu]\n )}\n onTriggerLeave={React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n )}\n pointerGraceTimerRef={pointerGraceTimerRef}\n onPointerGraceIntentChange={React.useCallback((intent) => {\n pointerGraceIntentRef.current = intent;\n }, [])}\n >\n \n {\n // when opening, explicitly focus the content area only and leave\n // `onEntryFocus` in control of focusing first item\n event.preventDefault();\n contentRef.current?.focus({ preventScroll: true });\n })}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n \n {\n // only focus first item when using keyboard\n if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();\n })}\n preventScrollOnEntryFocus\n >\n {\n // submenu key events bubble through portals. We only care about keys in this menu.\n const target = event.target as HTMLElement;\n const isKeyDownInside =\n target.closest('[data-radix-menu-content]') === event.currentTarget;\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n const isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n // menus should not be navigated using tab key so we prevent it\n if (event.key === 'Tab') event.preventDefault();\n if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);\n }\n // focus first/last item based on key pressed\n const content = contentRef.current;\n if (event.target !== content) return;\n if (!FIRST_LAST_KEYS.includes(event.key)) return;\n event.preventDefault();\n const items = getItems().filter((item) => !item.disabled);\n const candidateNodes = items.map((item) => item.ref.current!);\n if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n focusFirst(candidateNodes);\n })}\n onBlur={composeEventHandlers(props.onBlur, (event) => {\n // clear search buffer when leaving the menu\n if (!event.currentTarget.contains(event.target)) {\n window.clearTimeout(timerRef.current);\n searchRef.current = '';\n }\n })}\n onPointerMove={composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n const target = event.target as HTMLElement;\n const pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n\n // We don't use `event.movementX` for this check because Safari will\n // always return `0` on a pointer event.\n if (event.currentTarget.contains(target) && pointerXHasChanged) {\n const newDir = event.clientX > lastPointerXRef.current ? 'right' : 'left';\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n })\n )}\n />\n \n \n \n \n \n );\n }\n);\n\nMenuContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst GROUP_NAME = 'MenuGroup';\n\ntype MenuGroupElement = React.ComponentRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface MenuGroupProps extends PrimitiveDivProps {}\n\nconst MenuGroup = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, ...groupProps } = props;\n return ;\n }\n);\n\nMenuGroup.displayName = GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuLabel\n * -----------------------------------------------------------------------------------------------*/\n\nconst LABEL_NAME = 'MenuLabel';\n\ntype MenuLabelElement = React.ComponentRef;\ninterface MenuLabelProps extends PrimitiveDivProps {}\n\nconst MenuLabel = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, ...labelProps } = props;\n return ;\n }\n);\n\nMenuLabel.displayName = LABEL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'MenuItem';\nconst ITEM_SELECT = 'menu.itemSelect';\n\ntype MenuItemElement = MenuItemImplElement;\ninterface MenuItemProps extends Omit {\n onSelect?: (event: Event) => void;\n}\n\nconst MenuItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { disabled = false, onSelect, ...itemProps } = props;\n const ref = React.useRef(null);\n const rootContext = useMenuRootContext(ITEM_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(ITEM_NAME, props.__scopeMenu);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const isPointerDownRef = React.useRef(false);\n\n const handleSelect = () => {\n const menuItem = ref.current;\n if (!disabled && menuItem) {\n const itemSelectEvent = new CustomEvent(ITEM_SELECT, { bubbles: true, cancelable: true });\n menuItem.addEventListener(ITEM_SELECT, (event) => onSelect?.(event), { once: true });\n dispatchDiscreteCustomEvent(menuItem, itemSelectEvent);\n if (itemSelectEvent.defaultPrevented) {\n isPointerDownRef.current = false;\n } else {\n rootContext.onClose();\n }\n }\n };\n\n return (\n {\n props.onPointerDown?.(event);\n isPointerDownRef.current = true;\n }}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n // Pointer down can move to a different menu item which should activate it on pointer up.\n // We dispatch a click for selection to allow composition with click based triggers and to\n // prevent Firefox from getting stuck in text selection mode when the menu closes.\n if (!isPointerDownRef.current) event.currentTarget?.click();\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== '';\n if (disabled || (isTypingAhead && event.key === ' ')) return;\n if (SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n /**\n * We prevent default browser behaviour for selection keys as they should trigger\n * a selection only:\n * - prevents space from scrolling the page.\n * - if keydown causes focus to move, prevents keydown from firing on the new target.\n */\n event.preventDefault();\n }\n })}\n />\n );\n }\n);\n\nMenuItem.displayName = ITEM_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype MenuItemImplElement = React.ComponentRef;\ninterface MenuItemImplProps extends PrimitiveDivProps {\n disabled?: boolean;\n textValue?: string;\n}\n\nconst MenuItemImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;\n const contentContext = useMenuContentContext(ITEM_NAME, __scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [isFocused, setIsFocused] = React.useState(false);\n\n // get the item's `.textContent` as default strategy for typeahead `textValue`\n const [textContent, setTextContent] = React.useState('');\n React.useEffect(() => {\n const menuItem = ref.current;\n if (menuItem) {\n setTextContent((menuItem.textContent ?? '').trim());\n }\n }, [itemProps.children]);\n\n return (\n \n \n {\n if (disabled) {\n contentContext.onItemLeave(event);\n } else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n const item = event.currentTarget;\n item.focus({ preventScroll: true });\n }\n }\n })\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => contentContext.onItemLeave(event))\n )}\n onFocus={composeEventHandlers(props.onFocus, () => setIsFocused(true))}\n onBlur={composeEventHandlers(props.onBlur, () => setIsFocused(false))}\n />\n \n \n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * MenuCheckboxItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst CHECKBOX_ITEM_NAME = 'MenuCheckboxItem';\n\ntype MenuCheckboxItemElement = MenuItemElement;\n\ntype CheckedState = boolean | 'indeterminate';\n\ninterface MenuCheckboxItemProps extends MenuItemProps {\n checked?: CheckedState;\n // `onCheckedChange` can never be called with `\"indeterminate\"` from the inside\n onCheckedChange?: (checked: boolean) => void;\n}\n\nconst MenuCheckboxItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { checked = false, onCheckedChange, ...checkboxItemProps } = props;\n return (\n \n onCheckedChange?.(isIndeterminate(checked) ? true : !checked),\n { checkForDefaultPrevented: false }\n )}\n />\n \n );\n }\n);\n\nMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuRadioGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_GROUP_NAME = 'MenuRadioGroup';\n\nconst [RadioGroupProvider, useRadioGroupContext] = createMenuContext(\n RADIO_GROUP_NAME,\n { value: undefined, onValueChange: () => {} }\n);\n\ntype MenuRadioGroupElement = React.ComponentRef;\ninterface MenuRadioGroupProps extends MenuGroupProps {\n value?: string;\n onValueChange?: (value: string) => void;\n}\n\nconst MenuRadioGroup = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { value, onValueChange, ...groupProps } = props;\n const handleValueChange = useCallbackRef(onValueChange);\n return (\n \n \n \n );\n }\n);\n\nMenuRadioGroup.displayName = RADIO_GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuRadioItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_ITEM_NAME = 'MenuRadioItem';\n\ntype MenuRadioItemElement = React.ComponentRef;\ninterface MenuRadioItemProps extends MenuItemProps {\n value: string;\n}\n\nconst MenuRadioItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { value, ...radioItemProps } = props;\n const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);\n const checked = value === context.value;\n return (\n \n context.onValueChange?.(value),\n { checkForDefaultPrevented: false }\n )}\n />\n \n );\n }\n);\n\nMenuRadioItem.displayName = RADIO_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuItemIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_INDICATOR_NAME = 'MenuItemIndicator';\n\ntype CheckboxContextValue = { checked: CheckedState };\n\nconst [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(\n ITEM_INDICATOR_NAME,\n { checked: false }\n);\n\ntype MenuItemIndicatorElement = React.ComponentRef;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef;\ninterface MenuItemIndicatorProps extends PrimitiveSpanProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst MenuItemIndicator = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;\n const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);\n return (\n \n \n \n );\n }\n);\n\nMenuItemIndicator.displayName = ITEM_INDICATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuSeparator\n * -----------------------------------------------------------------------------------------------*/\n\nconst SEPARATOR_NAME = 'MenuSeparator';\n\ntype MenuSeparatorElement = React.ComponentRef;\ninterface MenuSeparatorProps extends PrimitiveDivProps {}\n\nconst MenuSeparator = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, ...separatorProps } = props;\n return (\n \n );\n }\n);\n\nMenuSeparator.displayName = SEPARATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'MenuArrow';\n\ntype MenuArrowElement = React.ComponentRef;\ntype PopperArrowProps = React.ComponentPropsWithoutRef;\ninterface MenuArrowProps extends PopperArrowProps {}\n\nconst MenuArrow = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeMenu, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return ;\n }\n);\n\nMenuArrow.displayName = ARROW_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuSub\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_NAME = 'MenuSub';\n\ntype MenuSubContextValue = {\n contentId: string;\n triggerId: string;\n trigger: MenuSubTriggerElement | null;\n onTriggerChange(trigger: MenuSubTriggerElement | null): void;\n};\n\nconst [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);\n\ninterface MenuSubProps {\n children?: React.ReactNode;\n open?: boolean;\n onOpenChange?(open: boolean): void;\n}\n\nconst MenuSub: React.FC = (props: ScopedProps) => {\n const { __scopeMenu, children, open = false, onOpenChange } = props;\n const parentMenuContext = useMenuContext(SUB_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const [trigger, setTrigger] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const handleOpenChange = useCallbackRef(onOpenChange);\n\n // Prevent the parent menu from reopening with open submenus.\n React.useEffect(() => {\n if (parentMenuContext.open === false) handleOpenChange(false);\n return () => handleOpenChange(false);\n }, [parentMenuContext.open, handleOpenChange]);\n\n return (\n \n \n \n {children}\n \n \n \n );\n};\n\nMenuSub.displayName = SUB_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuSubTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_TRIGGER_NAME = 'MenuSubTrigger';\n\ntype MenuSubTriggerElement = MenuItemImplElement;\ninterface MenuSubTriggerProps extends MenuItemImplProps {}\n\nconst MenuSubTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const openTimerRef = React.useRef(null);\n const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;\n const scope = { __scopeMenu: props.__scopeMenu };\n\n const clearOpenTimer = React.useCallback(() => {\n if (openTimerRef.current) window.clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }, []);\n\n React.useEffect(() => clearOpenTimer, [clearOpenTimer]);\n\n React.useEffect(() => {\n const pointerGraceTimer = pointerGraceTimerRef.current;\n return () => {\n window.clearTimeout(pointerGraceTimer);\n onPointerGraceIntentChange(null);\n };\n }, [pointerGraceTimerRef, onPointerGraceIntentChange]);\n\n return (\n \n {\n props.onClick?.(event);\n if (props.disabled || event.defaultPrevented) return;\n /**\n * We manually focus because iOS Safari doesn't always focus on click (e.g. buttons)\n * and we rely heavily on `onFocusOutside` for submenus to close when switching\n * between separate submenus.\n */\n event.currentTarget.focus();\n if (!context.open) context.onOpenChange(true);\n }}\n onPointerMove={composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n contentContext.onItemEnter(event);\n if (event.defaultPrevented) return;\n if (!props.disabled && !context.open && !openTimerRef.current) {\n contentContext.onPointerGraceIntentChange(null);\n openTimerRef.current = window.setTimeout(() => {\n context.onOpenChange(true);\n clearOpenTimer();\n }, 100);\n }\n })\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => {\n clearOpenTimer();\n\n const contentRect = context.content?.getBoundingClientRect();\n if (contentRect) {\n // TODO: make sure to update this when we change positioning logic\n const side = context.content?.dataset.side as Side;\n const rightSide = side === 'right';\n const bleed = rightSide ? -5 : +5;\n const contentNearEdge = contentRect[rightSide ? 'left' : 'right'];\n const contentFarEdge = contentRect[rightSide ? 'right' : 'left'];\n\n contentContext.onPointerGraceIntentChange({\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n { x: event.clientX + bleed, y: event.clientY },\n { x: contentNearEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.bottom },\n { x: contentNearEdge, y: contentRect.bottom },\n ],\n side,\n });\n\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(\n () => contentContext.onPointerGraceIntentChange(null),\n 300\n );\n } else {\n contentContext.onTriggerLeave(event);\n if (event.defaultPrevented) return;\n\n // There's 100ms where the user may leave an item before the submenu was opened.\n contentContext.onPointerGraceIntentChange(null);\n }\n })\n )}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== '';\n if (props.disabled || (isTypingAhead && event.key === ' ')) return;\n if (SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {\n context.onOpenChange(true);\n // The trigger may hold focus if opened via pointer interaction\n // so we ensure content is given focus again when switching to keyboard.\n context.content?.focus();\n // prevent window from scrolling\n event.preventDefault();\n }\n })}\n />\n \n );\n }\n);\n\nMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * MenuSubContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_CONTENT_NAME = 'MenuSubContent';\n\ntype MenuSubContentElement = MenuContentImplElement;\ninterface MenuSubContentProps\n extends Omit<\n MenuContentImplProps,\n keyof MenuContentImplPrivateProps | 'onCloseAutoFocus' | 'onEntryFocus' | 'side' | 'align'\n > {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst MenuSubContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...subContentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n return (\n \n \n \n {\n // when opening a submenu, focus content for keyboard users only\n if (rootContext.isUsingKeyboardRef.current) ref.current?.focus();\n event.preventDefault();\n }}\n // The menu might close because of focusing another menu item in the parent menu. We\n // don't want it to refocus the trigger in that case so we handle trigger focus ourselves.\n onCloseAutoFocus={(event) => event.preventDefault()}\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) => {\n // We prevent closing when the trigger is focused to avoid triggering a re-open animation\n // on pointer interaction.\n if (event.target !== subContext.trigger) context.onOpenChange(false);\n })}\n onEscapeKeyDown={composeEventHandlers(props.onEscapeKeyDown, (event) => {\n rootContext.onClose();\n // ensure pressing escape in submenu doesn't escape full screen mode\n event.preventDefault();\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n // Submenu key events bubble through portals. We only care about keys in this menu.\n const isKeyDownInside = event.currentTarget.contains(event.target as HTMLElement);\n const isCloseKey = SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);\n if (isKeyDownInside && isCloseKey) {\n context.onOpenChange(false);\n // We focus manually because we prevented it in `onCloseAutoFocus`\n subContext.trigger?.focus();\n // prevent window from scrolling\n event.preventDefault();\n }\n })}\n />\n \n \n \n );\n }\n);\n\nMenuSubContent.displayName = SUB_CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getOpenState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nfunction isIndeterminate(checked?: CheckedState): checked is 'indeterminate' {\n return checked === 'indeterminate';\n}\n\nfunction getCheckedState(checked: CheckedState) {\n return isIndeterminate(checked) ? 'indeterminate' : checked ? 'checked' : 'unchecked';\n}\n\nfunction focusFirst(candidates: HTMLElement[]) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\n\n/**\n * Wraps an array around itself at a given start index\n * Example: `wrapArray(['a', 'b', 'c', 'd'], 2) === ['c', 'd', 'a', 'b']`\n */\nfunction wrapArray(array: T[], startIndex: number) {\n return array.map((_, index) => array[(startIndex + index) % array.length]!);\n}\n\n/**\n * This is the \"meat\" of the typeahead matching logic. It takes in all the values,\n * the search and the current match, and returns the next match (or `undefined`).\n *\n * We normalize the search because if a user has repeatedly pressed a character,\n * we want the exact same behavior as if we only had that one character\n * (ie. cycle through options starting with that character)\n *\n * We also reorder the values by wrapping the array around the current match.\n * This is so we always look forward from the current match, and picking the first\n * match will always be the correct one.\n *\n * Finally, if the normalized search is exactly one character, we exclude the\n * current match from the values because otherwise it would be the first to match always\n * and focus would never move. This is as opposed to the regular case, where we\n * don't want focus to move if the current match still matches.\n */\nfunction getNextMatch(values: string[], search: string, currentMatch?: string) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0]! : search;\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n const excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v) => v !== currentMatch);\n const nextMatch = wrappedValues.find((value) =>\n value.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextMatch !== currentMatch ? nextMatch : undefined;\n}\n\ntype Point = { x: number; y: number };\ntype Polygon = Point[];\ntype Side = 'left' | 'right';\ntype GraceIntent = { area: Polygon; side: Side };\n\n// Determine if a point is inside of a polygon.\n// Based on https://github.com/substack/point-in-polygon\nfunction isPointInPolygon(point: Point, polygon: Polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i]!;\n const jj = polygon[j]!;\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n\n // prettier-ignore\n const intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);\n if (intersect) inside = !inside;\n }\n\n return inside;\n}\n\nfunction isPointerInGraceArea(event: React.PointerEvent, area?: Polygon) {\n if (!area) return false;\n const cursorPos = { x: event.clientX, y: event.clientY };\n return isPointInPolygon(cursorPos, area);\n}\n\nfunction whenMouse(handler: React.PointerEventHandler): React.PointerEventHandler {\n return (event) => (event.pointerType === 'mouse' ? handler(event) : undefined);\n}\n\nconst Root = Menu;\nconst Anchor = MenuAnchor;\nconst Portal = MenuPortal;\nconst Content = MenuContent;\nconst Group = MenuGroup;\nconst Label = MenuLabel;\nconst Item = MenuItem;\nconst CheckboxItem = MenuCheckboxItem;\nconst RadioGroup = MenuRadioGroup;\nconst RadioItem = MenuRadioItem;\nconst ItemIndicator = MenuItemIndicator;\nconst Separator = MenuSeparator;\nconst Arrow = MenuArrow;\nconst Sub = MenuSub;\nconst SubTrigger = MenuSubTrigger;\nconst SubContent = MenuSubContent;\n\nexport {\n createMenuScope,\n //\n Menu,\n MenuAnchor,\n MenuPortal,\n MenuContent,\n MenuGroup,\n MenuLabel,\n MenuItem,\n MenuCheckboxItem,\n MenuRadioGroup,\n MenuRadioItem,\n MenuItemIndicator,\n MenuSeparator,\n MenuArrow,\n MenuSub,\n MenuSubTrigger,\n MenuSubContent,\n //\n Root,\n Anchor,\n Portal,\n Content,\n Group,\n Label,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n ItemIndicator,\n Separator,\n Arrow,\n Sub,\n SubTrigger,\n SubContent,\n};\nexport type {\n MenuProps,\n MenuAnchorProps,\n MenuPortalProps,\n MenuContentProps,\n MenuGroupProps,\n MenuLabelProps,\n MenuItemProps,\n MenuCheckboxItemProps,\n MenuRadioGroupProps,\n MenuRadioItemProps,\n MenuItemIndicatorProps,\n MenuSeparatorProps,\n MenuArrowProps,\n MenuSubProps,\n MenuSubTriggerProps,\n MenuSubContentProps,\n};\n","// packages/core/number/src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\nexport {\n clamp\n};\n//# sourceMappingURL=index.mjs.map\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","import * as React from 'react';\nimport { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return

...
\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n var callbackRef = useCallbackRef(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return assignRef(ref, newValue); });\n });\n // handle refs changes - added or removed\n useIsomorphicLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n assignRef(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n assignRef(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noRelative = props.noRelative, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, gapMode = props.gapMode, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noRelative\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\", \"gapMode\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noRelative: noRelative, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode: gapMode })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n","var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n","export { styleSingleton } from './component';\nexport { stylesheetSingleton } from './singleton';\nexport { styleHookSingleton } from './hook';\n","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\nexport var lockAttribute = 'data-scroll-locked';\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body[\").concat(lockAttribute, \"] {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body[\").concat(lockAttribute, \"] {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\nvar getCurrentUseCounter = function () {\n var counter = parseInt(document.body.getAttribute(lockAttribute) || '0', 10);\n return isFinite(counter) ? counter : 0;\n};\nexport var useLockAttribute = function () {\n React.useEffect(function () {\n document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());\n return function () {\n var newCounter = getCurrentUseCounter() - 1;\n if (newCounter <= 0) {\n document.body.removeAttribute(lockAttribute);\n }\n else {\n document.body.setAttribute(lockAttribute, newCounter.toString());\n }\n };\n }, []);\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (_a) {\n var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? 'margin' : _b;\n useLockAttribute();\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of clientHeight) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== ownerDocument.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n if (!target) {\n break;\n }\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n var parent_1 = target.parentNode;\n // we will \"bubble\" from ShadowDom in case we are, or just to the parent in normal case\n // this is the same logic used in focus-lock\n target = (parent_1 && parent_1.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? parent_1.host : parent_1);\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n // handle epsilon around 0 (non standard zoom levels)\n if (isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScroll) < 1) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScrollTop) < 1) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(styleSingleton)[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if (('touches' in event && event.touches.length === 2) || (event.type === 'wheel' && event.ctrlKey)) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should, shadowParent: getOutermostShadowParent(target) };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { noRelative: props.noRelative, gapMode: props.gapMode }) : null));\n}\nfunction getOutermostShadowParent(node) {\n var shadowParent = null;\n while (node !== null) {\n if (node instanceof ShadowRoot) {\n shadowParent = node.host;\n node = node.host;\n }\n node = node.parentNode;\n }\n return shadowParent;\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","// packages/react/use-previous/src/use-previous.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react';\n\n/** Number of components which have requested interest to have focus guards */\nlet count = 0;\n\nfunction FocusGuards(props: any) {\n useFocusGuards();\n return props.children;\n}\n\n/**\n * Injects a pair of focus guards at the edges of the whole DOM tree\n * to ensure `focusin` & `focusout` events can be caught consistently.\n */\nfunction useFocusGuards() {\n React.useEffect(() => {\n const edgeGuards = document.querySelectorAll('[data-radix-focus-guard]');\n document.body.insertAdjacentElement('afterbegin', edgeGuards[0] ?? createFocusGuard());\n document.body.insertAdjacentElement('beforeend', edgeGuards[1] ?? createFocusGuard());\n count++;\n\n return () => {\n if (count === 1) {\n document.querySelectorAll('[data-radix-focus-guard]').forEach((node) => node.remove());\n }\n count--;\n };\n }, []);\n}\n\nfunction createFocusGuard() {\n const element = document.createElement('span');\n element.setAttribute('data-radix-focus-guard', '');\n element.tabIndex = 0;\n element.style.outline = 'none';\n element.style.opacity = '0';\n element.style.position = 'fixed';\n element.style.pointerEvents = 'none';\n return element;\n}\n\nconst Root = FocusGuards;\n\nexport {\n FocusGuards,\n //\n Root,\n //\n useFocusGuards,\n};\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContext, createContextScope } from '@radix-ui/react-context';\nimport { useId } from '@radix-ui/react-id';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\nimport { createSlot } from '@radix-ui/react-slot';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Dialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst DIALOG_NAME = 'Dialog';\n\ntype ScopedProps

= P & { __scopeDialog?: Scope };\nconst [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\n\ntype DialogContextValue = {\n triggerRef: React.RefObject;\n contentRef: React.RefObject;\n contentId: string;\n titleId: string;\n descriptionId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n modal: boolean;\n};\n\nconst [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\n\ninterface DialogProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n modal?: boolean;\n}\n\nconst Dialog: React.FC = (props: ScopedProps) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true,\n } = props;\n const triggerRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: DIALOG_NAME,\n });\n\n return (\n setOpen((prevOpen) => !prevOpen), [setOpen])}\n modal={modal}\n >\n {children}\n \n );\n};\n\nDialog.displayName = DIALOG_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'DialogTrigger';\n\ntype DialogTriggerElement = React.ComponentRef;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef;\ninterface DialogTriggerProps extends PrimitiveButtonProps {}\n\nconst DialogTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return (\n \n );\n }\n);\n\nDialogTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'DialogPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef;\ninterface DialogPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogPortal: React.FC = (props: ScopedProps) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return (\n \n {React.Children.map(children, (child) => (\n \n \n {child}\n \n \n ))}\n \n );\n};\n\nDialogPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogOverlay\n * -----------------------------------------------------------------------------------------------*/\n\nconst OVERLAY_NAME = 'DialogOverlay';\n\ntype DialogOverlayElement = DialogOverlayImplElement;\ninterface DialogOverlayProps extends DialogOverlayImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogOverlay = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? (\n \n \n \n ) : null;\n }\n);\n\nDialogOverlay.displayName = OVERLAY_NAME;\n\ntype DialogOverlayImplElement = React.ComponentRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface DialogOverlayImplProps extends PrimitiveDivProps {}\n\nconst Slot = createSlot('DialogOverlay.RemoveScroll');\n\nconst DialogOverlayImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n \n \n \n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'DialogContent';\n\ntype DialogContentElement = DialogContentTypeElement;\ninterface DialogContentProps extends DialogContentTypeProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return (\n \n {context.modal ? (\n \n ) : (\n \n )}\n \n );\n }\n);\n\nDialogContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentTypeElement = DialogContentImplElement;\ninterface DialogContentTypeProps\n extends Omit {}\n\nconst DialogContentModal = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n return (\n {\n event.preventDefault();\n context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n // If the event is a right-click, we shouldn't close because\n // it is effectively as if we right-clicked the `Overlay`.\n if (isRightClick) event.preventDefault();\n })}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) =>\n event.preventDefault()\n )}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst DialogContentNonModal = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n\n return (\n {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === 'pointerdown') {\n hasPointerDownOutsideRef.current = true;\n }\n }\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n\n // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (event.detail.originalEvent.type === 'focusin' && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentImplElement = React.ComponentRef;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef;\ntype FocusScopeProps = React.ComponentPropsWithoutRef;\ninterface DialogContentImplProps extends Omit {\n /**\n * When `true`, focus cannot escape the `Content` via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue false\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst DialogContentImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n\n // Make sure the whole tree has focus guards as our `Dialog` will be\n // the last element in the DOM (because of the `Portal`)\n useFocusGuards();\n\n return (\n <>\n \n context.onOpenChange(false)}\n />\n \n {process.env.NODE_ENV !== 'production' && (\n <>\n \n \n \n )}\n \n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'DialogTitle';\n\ntype DialogTitleElement = React.ComponentRef;\ntype PrimitiveHeading2Props = React.ComponentPropsWithoutRef;\ninterface DialogTitleProps extends PrimitiveHeading2Props {}\n\nconst DialogTitle = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return ;\n }\n);\n\nDialogTitle.displayName = TITLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DESCRIPTION_NAME = 'DialogDescription';\n\ntype DialogDescriptionElement = React.ComponentRef;\ntype PrimitiveParagraphProps = React.ComponentPropsWithoutRef;\ninterface DialogDescriptionProps extends PrimitiveParagraphProps {}\n\nconst DialogDescription = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return ;\n }\n);\n\nDialogDescription.displayName = DESCRIPTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'DialogClose';\n\ntype DialogCloseElement = React.ComponentRef;\ninterface DialogCloseProps extends PrimitiveButtonProps {}\n\nconst DialogClose = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return (\n context.onOpenChange(false))}\n />\n );\n }\n);\n\nDialogClose.displayName = CLOSE_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst TITLE_WARNING_NAME = 'DialogTitleWarning';\n\nconst [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: 'dialog',\n});\n\ntype TitleWarningProps = { titleId?: string };\n\nconst TitleWarning: React.FC = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n\n return null;\n};\n\nconst DESCRIPTION_WARNING_NAME = 'DialogDescriptionWarning';\n\ntype DescriptionWarningProps = {\n contentRef: React.RefObject;\n descriptionId?: string;\n};\n\nconst DescriptionWarning: React.FC = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute('aria-describedby');\n // if we have an id and the user hasn't set aria-describedby={undefined}\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n\n return null;\n};\n\nconst Root = Dialog;\nconst Trigger = DialogTrigger;\nconst Portal = DialogPortal;\nconst Overlay = DialogOverlay;\nconst Content = DialogContent;\nconst Title = DialogTitle;\nconst Description = DialogDescription;\nconst Close = DialogClose;\n\nexport {\n createDialogScope,\n //\n Dialog,\n DialogTrigger,\n DialogPortal,\n DialogOverlay,\n DialogContent,\n DialogTitle,\n DialogDescription,\n DialogClose,\n //\n Root,\n Trigger,\n Portal,\n Overlay,\n Content,\n Title,\n Description,\n Close,\n //\n WarningProvider,\n};\nexport type {\n DialogProps,\n DialogTriggerProps,\n DialogPortalProps,\n DialogOverlayProps,\n DialogContentProps,\n DialogTitleProps,\n DialogDescriptionProps,\n DialogCloseProps,\n};\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createCollection } from '@radix-ui/react-collection';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useId } from '@radix-ui/react-id';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useDirection } from '@radix-ui/react-direction';\n\nimport type { Scope } from '@radix-ui/react-context';\n\nconst ENTRY_FOCUS = 'rovingFocusGroup.onEntryFocus';\nconst EVENT_OPTIONS = { bubbles: false, cancelable: true };\n\n/* -------------------------------------------------------------------------------------------------\n * RovingFocusGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst GROUP_NAME = 'RovingFocusGroup';\n\ntype ItemData = { id: string; focusable: boolean; active: boolean };\nconst [Collection, useCollection, createCollectionScope] = createCollection<\n HTMLSpanElement,\n ItemData\n>(GROUP_NAME);\n\ntype ScopedProps

= P & { __scopeRovingFocusGroup?: Scope };\nconst [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\n\ntype Orientation = React.AriaAttributes['aria-orientation'];\ntype Direction = 'ltr' | 'rtl';\n\ninterface RovingFocusGroupOptions {\n /**\n * The orientation of the group.\n * Mainly so arrow navigation is done accordingly (left & right vs. up & down)\n */\n orientation?: Orientation;\n /**\n * The direction of navigation between items.\n */\n dir?: Direction;\n /**\n * Whether keyboard navigation should loop around\n * @defaultValue false\n */\n loop?: boolean;\n}\n\ntype RovingContextValue = RovingFocusGroupOptions & {\n currentTabStopId: string | null;\n onItemFocus(tabStopId: string): void;\n onItemShiftTab(): void;\n onFocusableItemAdd(): void;\n onFocusableItemRemove(): void;\n};\n\nconst [RovingFocusProvider, useRovingFocusContext] =\n createRovingFocusGroupContext(GROUP_NAME);\n\ntype RovingFocusGroupElement = RovingFocusGroupImplElement;\ninterface RovingFocusGroupProps extends RovingFocusGroupImplProps {}\n\nconst RovingFocusGroup = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n return (\n \n \n \n \n \n );\n }\n);\n\nRovingFocusGroup.displayName = GROUP_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype RovingFocusGroupImplElement = React.ComponentRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface RovingFocusGroupImplProps\n extends Omit,\n RovingFocusGroupOptions {\n currentTabStopId?: string | null;\n defaultCurrentTabStopId?: string;\n onCurrentTabStopIdChange?: (tabStopId: string | null) => void;\n onEntryFocus?: (event: Event) => void;\n preventScrollOnEntryFocus?: boolean;\n}\n\nconst RovingFocusGroupImpl = React.forwardRef<\n RovingFocusGroupImplElement,\n RovingFocusGroupImplProps\n>((props: ScopedProps, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId ?? null,\n onChange: onCurrentTabStopIdChange,\n caller: GROUP_NAME,\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n\n return (\n setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n )}\n onItemShiftTab={React.useCallback(() => setIsTabbingBackOut(true), [])}\n onFocusableItemAdd={React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n )}\n onFocusableItemRemove={React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n )}\n >\n {\n isClickFocusRef.current = true;\n })}\n onFocus={composeEventHandlers(props.onFocus, (event) => {\n // We normally wouldn't need this check, because we already check\n // that the focus is on the current target and not bubbling to it.\n // We do this because Safari doesn't focus buttons when clicked, and\n // instead, the wrapper will get focused and not through a bubbling event.\n const isKeyboardFocus = !isClickFocusRef.current;\n\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n ) as typeof items;\n const candidateNodes = candidateItems.map((item) => item.ref.current!);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n\n isClickFocusRef.current = false;\n })}\n onBlur={composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))}\n />\n \n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * RovingFocusGroupItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'RovingFocusGroupItem';\n\ntype RovingFocusItemElement = React.ComponentRef;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef;\ninterface RovingFocusItemProps extends Omit {\n tabStopId?: string;\n focusable?: boolean;\n active?: boolean;\n children?:\n | React.ReactNode\n | ((props: { hasTabStop: boolean; isCurrentTabStop: boolean }) => React.ReactNode);\n}\n\nconst RovingFocusGroupItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n children,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n\n const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context;\n\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n\n return (\n \n {\n // We prevent focusing non-focusable items on `mousedown`.\n // Even though the item has tabIndex={-1}, that only means take it out of the tab order.\n if (!focusable) event.preventDefault();\n // Safari doesn't focus a button when clicked so we run our logic on mousedown also\n else context.onItemFocus(id);\n })}\n onFocus={composeEventHandlers(props.onFocus, () => context.onItemFocus(id))}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === 'Tab' && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n\n if (event.target !== event.currentTarget) return;\n\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n\n if (focusIntent !== undefined) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current!);\n\n if (focusIntent === 'last') candidateNodes.reverse();\n else if (focusIntent === 'prev' || focusIntent === 'next') {\n if (focusIntent === 'prev') candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop\n ? wrapArray(candidateNodes, currentIndex + 1)\n : candidateNodes.slice(currentIndex + 1);\n }\n\n /**\n * Imperative focus during keydown is risky so we prevent React's batching updates\n * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332\n */\n setTimeout(() => focusFirst(candidateNodes));\n }\n })}\n >\n {typeof children === 'function'\n ? children({ isCurrentTabStop, hasTabStop: currentTabStopId != null })\n : children}\n \n \n );\n }\n);\n\nRovingFocusGroupItem.displayName = ITEM_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\n// prettier-ignore\nconst MAP_KEY_TO_FOCUS_INTENT: Record = {\n ArrowLeft: 'prev', ArrowUp: 'prev',\n ArrowRight: 'next', ArrowDown: 'next',\n PageUp: 'first', Home: 'first',\n PageDown: 'last', End: 'last',\n};\n\nfunction getDirectionAwareKey(key: string, dir?: Direction) {\n if (dir !== 'rtl') return key;\n return key === 'ArrowLeft' ? 'ArrowRight' : key === 'ArrowRight' ? 'ArrowLeft' : key;\n}\n\ntype FocusIntent = 'first' | 'last' | 'prev' | 'next';\n\nfunction getFocusIntent(event: React.KeyboardEvent, orientation?: Orientation, dir?: Direction) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === 'vertical' && ['ArrowLeft', 'ArrowRight'].includes(key)) return undefined;\n if (orientation === 'horizontal' && ['ArrowUp', 'ArrowDown'].includes(key)) return undefined;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\n\nfunction focusFirst(candidates: HTMLElement[], preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\n\n/**\n * Wraps an array around itself at a given start index\n * Example: `wrapArray(['a', 'b', 'c', 'd'], 2) === ['c', 'd', 'a', 'b']`\n */\nfunction wrapArray(array: T[], startIndex: number) {\n return array.map((_, index) => array[(startIndex + index) % array.length]!);\n}\n\nconst Root = RovingFocusGroup;\nconst Item = RovingFocusGroupItem;\n\nexport {\n createRovingFocusGroupScope,\n //\n RovingFocusGroup,\n RovingFocusGroupItem,\n //\n Root,\n Item,\n};\nexport type { RovingFocusGroupProps, RovingFocusItemProps };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { composeRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as MenuPrimitive from '@radix-ui/react-menu';\nimport { createMenuScope } from '@radix-ui/react-menu';\nimport { useId } from '@radix-ui/react-id';\n\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenu\n * -----------------------------------------------------------------------------------------------*/\n\nconst DROPDOWN_MENU_NAME = 'DropdownMenu';\n\ntype ScopedProps

= P & { __scopeDropdownMenu?: Scope };\nconst [createDropdownMenuContext, createDropdownMenuScope] = createContextScope(\n DROPDOWN_MENU_NAME,\n [createMenuScope]\n);\nconst useMenuScope = createMenuScope();\n\ntype DropdownMenuContextValue = {\n triggerId: string;\n triggerRef: React.RefObject;\n contentId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n modal: boolean;\n};\n\nconst [DropdownMenuProvider, useDropdownMenuContext] =\n createDropdownMenuContext(DROPDOWN_MENU_NAME);\n\ninterface DropdownMenuProps {\n children?: React.ReactNode;\n dir?: Direction;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n modal?: boolean;\n}\n\nconst DropdownMenu: React.FC = (props: ScopedProps) => {\n const {\n __scopeDropdownMenu,\n children,\n dir,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true,\n } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const triggerRef = React.useRef(null);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: DROPDOWN_MENU_NAME,\n });\n\n return (\n setOpen((prevOpen) => !prevOpen), [setOpen])}\n modal={modal}\n >\n \n {children}\n \n \n );\n};\n\nDropdownMenu.displayName = DROPDOWN_MENU_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'DropdownMenuTrigger';\n\ntype DropdownMenuTriggerElement = React.ComponentRef;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef;\ninterface DropdownMenuTriggerProps extends PrimitiveButtonProps {}\n\nconst DropdownMenuTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;\n const context = useDropdownMenuContext(TRIGGER_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return (\n \n {\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onOpenToggle();\n // prevent trigger focusing when opening\n // this allows the content to be given focus without competition\n if (!context.open) event.preventDefault();\n }\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (disabled) return;\n if (['Enter', ' '].includes(event.key)) context.onOpenToggle();\n if (event.key === 'ArrowDown') context.onOpenChange(true);\n // prevent keydown from scrolling window / first focused item to execute\n // that keydown (inadvertently closing the menu)\n if (['Enter', ' ', 'ArrowDown'].includes(event.key)) event.preventDefault();\n })}\n />\n \n );\n }\n);\n\nDropdownMenuTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'DropdownMenuPortal';\n\ntype MenuPortalProps = React.ComponentPropsWithoutRef;\ninterface DropdownMenuPortalProps extends MenuPortalProps {}\n\nconst DropdownMenuPortal: React.FC = (\n props: ScopedProps\n) => {\n const { __scopeDropdownMenu, ...portalProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n};\n\nDropdownMenuPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'DropdownMenuContent';\n\ntype DropdownMenuContentElement = React.ComponentRef;\ntype MenuContentProps = React.ComponentPropsWithoutRef;\ninterface DropdownMenuContentProps extends Omit {}\n\nconst DropdownMenuContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...contentProps } = props;\n const context = useDropdownMenuContext(CONTENT_NAME, __scopeDropdownMenu);\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const hasInteractedOutsideRef = React.useRef(false);\n\n return (\n {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n hasInteractedOutsideRef.current = false;\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n })}\n onInteractOutside={composeEventHandlers(props.onInteractOutside, (event) => {\n const originalEvent = event.detail.originalEvent as PointerEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (!context.modal || isRightClick) hasInteractedOutsideRef.current = true;\n })}\n style={{\n ...props.style,\n // re-namespace exposed content custom properties\n ...{\n '--radix-dropdown-menu-content-transform-origin':\n 'var(--radix-popper-transform-origin)',\n '--radix-dropdown-menu-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-dropdown-menu-content-available-height':\n 'var(--radix-popper-available-height)',\n '--radix-dropdown-menu-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-dropdown-menu-trigger-height': 'var(--radix-popper-anchor-height)',\n },\n }}\n />\n );\n }\n);\n\nDropdownMenuContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst GROUP_NAME = 'DropdownMenuGroup';\n\ntype DropdownMenuGroupElement = React.ComponentRef;\ntype MenuGroupProps = React.ComponentPropsWithoutRef;\ninterface DropdownMenuGroupProps extends MenuGroupProps {}\n\nconst DropdownMenuGroup = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...groupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n }\n);\n\nDropdownMenuGroup.displayName = GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuLabel\n * -----------------------------------------------------------------------------------------------*/\n\nconst LABEL_NAME = 'DropdownMenuLabel';\n\ntype DropdownMenuLabelElement = React.ComponentRef;\ntype MenuLabelProps = React.ComponentPropsWithoutRef;\ninterface DropdownMenuLabelProps extends MenuLabelProps {}\n\nconst DropdownMenuLabel = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...labelProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n }\n);\n\nDropdownMenuLabel.displayName = LABEL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'DropdownMenuItem';\n\ntype DropdownMenuItemElement = React.ComponentRef;\ntype MenuItemProps = React.ComponentPropsWithoutRef;\ninterface DropdownMenuItemProps extends MenuItemProps {}\n\nconst DropdownMenuItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n }\n);\n\nDropdownMenuItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuCheckboxItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst CHECKBOX_ITEM_NAME = 'DropdownMenuCheckboxItem';\n\ntype DropdownMenuCheckboxItemElement = React.ComponentRef;\ntype MenuCheckboxItemProps = React.ComponentPropsWithoutRef;\ninterface DropdownMenuCheckboxItemProps extends MenuCheckboxItemProps {}\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n DropdownMenuCheckboxItemElement,\n DropdownMenuCheckboxItemProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...checkboxItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n});\n\nDropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuRadioGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_GROUP_NAME = 'DropdownMenuRadioGroup';\n\ntype DropdownMenuRadioGroupElement = React.ComponentRef;\ntype MenuRadioGroupProps = React.ComponentPropsWithoutRef;\ninterface DropdownMenuRadioGroupProps extends MenuRadioGroupProps {}\n\nconst DropdownMenuRadioGroup = React.forwardRef<\n DropdownMenuRadioGroupElement,\n DropdownMenuRadioGroupProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioGroupProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n});\n\nDropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuRadioItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst RADIO_ITEM_NAME = 'DropdownMenuRadioItem';\n\ntype DropdownMenuRadioItemElement = React.ComponentRef;\ntype MenuRadioItemProps = React.ComponentPropsWithoutRef;\ninterface DropdownMenuRadioItemProps extends MenuRadioItemProps {}\n\nconst DropdownMenuRadioItem = React.forwardRef<\n DropdownMenuRadioItemElement,\n DropdownMenuRadioItemProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...radioItemProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n});\n\nDropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuItemIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'DropdownMenuItemIndicator';\n\ntype DropdownMenuItemIndicatorElement = React.ComponentRef;\ntype MenuItemIndicatorProps = React.ComponentPropsWithoutRef;\ninterface DropdownMenuItemIndicatorProps extends MenuItemIndicatorProps {}\n\nconst DropdownMenuItemIndicator = React.forwardRef<\n DropdownMenuItemIndicatorElement,\n DropdownMenuItemIndicatorProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...itemIndicatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n});\n\nDropdownMenuItemIndicator.displayName = INDICATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuSeparator\n * -----------------------------------------------------------------------------------------------*/\n\nconst SEPARATOR_NAME = 'DropdownMenuSeparator';\n\ntype DropdownMenuSeparatorElement = React.ComponentRef;\ntype MenuSeparatorProps = React.ComponentPropsWithoutRef;\ninterface DropdownMenuSeparatorProps extends MenuSeparatorProps {}\n\nconst DropdownMenuSeparator = React.forwardRef<\n DropdownMenuSeparatorElement,\n DropdownMenuSeparatorProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...separatorProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n});\n\nDropdownMenuSeparator.displayName = SEPARATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'DropdownMenuArrow';\n\ntype DropdownMenuArrowElement = React.ComponentRef;\ntype MenuArrowProps = React.ComponentPropsWithoutRef;\ninterface DropdownMenuArrowProps extends MenuArrowProps {}\n\nconst DropdownMenuArrow = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...arrowProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n }\n);\n\nDropdownMenuArrow.displayName = ARROW_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuSub\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DropdownMenuSubProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n}\n\nconst DropdownMenuSub: React.FC = (\n props: ScopedProps\n) => {\n const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: 'DropdownMenuSub',\n });\n\n return (\n \n {children}\n \n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuSubTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_TRIGGER_NAME = 'DropdownMenuSubTrigger';\n\ntype DropdownMenuSubTriggerElement = React.ComponentRef;\ntype MenuSubTriggerProps = React.ComponentPropsWithoutRef;\ninterface DropdownMenuSubTriggerProps extends MenuSubTriggerProps {}\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n DropdownMenuSubTriggerElement,\n DropdownMenuSubTriggerProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...subTriggerProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n return ;\n});\n\nDropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DropdownMenuSubContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_CONTENT_NAME = 'DropdownMenuSubContent';\n\ntype DropdownMenuSubContentElement = React.ComponentRef;\ntype MenuSubContentProps = React.ComponentPropsWithoutRef;\ninterface DropdownMenuSubContentProps extends MenuSubContentProps {}\n\nconst DropdownMenuSubContent = React.forwardRef<\n DropdownMenuSubContentElement,\n DropdownMenuSubContentProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeDropdownMenu, ...subContentProps } = props;\n const menuScope = useMenuScope(__scopeDropdownMenu);\n\n return (\n \n );\n});\n\nDropdownMenuSubContent.displayName = SUB_CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = DropdownMenu;\nconst Trigger = DropdownMenuTrigger;\nconst Portal = DropdownMenuPortal;\nconst Content = DropdownMenuContent;\nconst Group = DropdownMenuGroup;\nconst Label = DropdownMenuLabel;\nconst Item = DropdownMenuItem;\nconst CheckboxItem = DropdownMenuCheckboxItem;\nconst RadioGroup = DropdownMenuRadioGroup;\nconst RadioItem = DropdownMenuRadioItem;\nconst ItemIndicator = DropdownMenuItemIndicator;\nconst Separator = DropdownMenuSeparator;\nconst Arrow = DropdownMenuArrow;\nconst Sub = DropdownMenuSub;\nconst SubTrigger = DropdownMenuSubTrigger;\nconst SubContent = DropdownMenuSubContent;\n\nexport {\n createDropdownMenuScope,\n //\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuPortal,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuItemIndicator,\n DropdownMenuSeparator,\n DropdownMenuArrow,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n //\n Root,\n Trigger,\n Portal,\n Content,\n Group,\n Label,\n Item,\n CheckboxItem,\n RadioGroup,\n RadioItem,\n ItemIndicator,\n Separator,\n Arrow,\n Sub,\n SubTrigger,\n SubContent,\n};\nexport type {\n DropdownMenuProps,\n DropdownMenuTriggerProps,\n DropdownMenuPortalProps,\n DropdownMenuContentProps,\n DropdownMenuGroupProps,\n DropdownMenuLabelProps,\n DropdownMenuItemProps,\n DropdownMenuCheckboxItemProps,\n DropdownMenuRadioGroupProps,\n DropdownMenuRadioItemProps,\n DropdownMenuItemIndicatorProps,\n DropdownMenuSeparatorProps,\n DropdownMenuArrowProps,\n DropdownMenuSubProps,\n DropdownMenuSubTriggerProps,\n DropdownMenuSubContentProps,\n};\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { clamp } from '@radix-ui/number';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createCollection } from '@radix-ui/react-collection';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { useId } from '@radix-ui/react-id';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { createSlot } from '@radix-ui/react-slot';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { VISUALLY_HIDDEN_STYLES } from '@radix-ui/react-visually-hidden';\nimport { hideOthers } from 'aria-hidden';\nimport { RemoveScroll } from 'react-remove-scroll';\n\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst OPEN_KEYS = [' ', 'Enter', 'ArrowUp', 'ArrowDown'];\nconst SELECTION_KEYS = [' ', 'Enter'];\n\n/* -------------------------------------------------------------------------------------------------\n * Select\n * -----------------------------------------------------------------------------------------------*/\n\nconst SELECT_NAME = 'Select';\n\ntype ItemData = { value: string; disabled: boolean; textValue: string };\nconst [Collection, useCollection, createCollectionScope] = createCollection<\n SelectItemElement,\n ItemData\n>(SELECT_NAME);\n\ntype ScopedProps

= P & { __scopeSelect?: Scope };\nconst [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME, [\n createCollectionScope,\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\ntype SelectContextValue = {\n trigger: SelectTriggerElement | null;\n onTriggerChange(node: SelectTriggerElement | null): void;\n valueNode: SelectValueElement | null;\n onValueNodeChange(node: SelectValueElement): void;\n valueNodeHasChildren: boolean;\n onValueNodeHasChildrenChange(hasChildren: boolean): void;\n contentId: string;\n value: string | undefined;\n onValueChange(value: string): void;\n open: boolean;\n required?: boolean;\n onOpenChange(open: boolean): void;\n dir: SelectProps['dir'];\n triggerPointerDownPosRef: React.MutableRefObject<{ x: number; y: number } | null>;\n disabled?: boolean;\n};\n\nconst [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);\n\ntype NativeOption = React.ReactElement>;\n\ntype SelectNativeOptionsContextValue = {\n onNativeOptionAdd(option: NativeOption): void;\n onNativeOptionRemove(option: NativeOption): void;\n};\nconst [SelectNativeOptionsProvider, useSelectNativeOptionsContext] =\n createSelectContext(SELECT_NAME);\n\ninterface ControlledClearableSelectProps {\n value: string | undefined;\n defaultValue?: never;\n onValueChange: (value: string | undefined) => void;\n}\n\ninterface ControlledUnclearableSelectProps {\n value: string;\n defaultValue?: never;\n onValueChange: (value: string) => void;\n}\n\ninterface UncontrolledSelectProps {\n value?: never;\n defaultValue?: string;\n onValueChange?: {\n (value: string): void;\n (value: string | undefined): void;\n };\n}\n\ntype SelectControlProps =\n | ControlledClearableSelectProps\n | ControlledUnclearableSelectProps\n | UncontrolledSelectProps;\n\ninterface SelectSharedProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n dir?: Direction;\n name?: string;\n autoComplete?: string;\n disabled?: boolean;\n required?: boolean;\n form?: string;\n}\n\n// TODO: Should improve typing somewhat, but this would be a breaking change.\n// Consider using in the next major version (along with some testing to be sure\n// it works as expected and doesn't cause problems)\ntype _FutureSelectProps = SelectSharedProps & SelectControlProps;\n\ntype SelectProps = SelectSharedProps & {\n value?: string;\n defaultValue?: string;\n onValueChange?(value: string): void;\n};\n\nconst Select: React.FC = (props: ScopedProps) => {\n const {\n __scopeSelect,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n value: valueProp,\n defaultValue,\n onValueChange,\n dir,\n name,\n autoComplete,\n disabled,\n required,\n form,\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const [trigger, setTrigger] = React.useState(null);\n const [valueNode, setValueNode] = React.useState(null);\n const [valueNodeHasChildren, setValueNodeHasChildren] = React.useState(false);\n const direction = useDirection(dir);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: SELECT_NAME,\n });\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange as any,\n caller: SELECT_NAME,\n });\n const triggerPointerDownPosRef = React.useRef<{ x: number; y: number } | null>(null);\n\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = trigger ? form || !!trigger.closest('form') : true;\n const [nativeOptionsSet, setNativeOptionsSet] = React.useState(new Set());\n\n // The native `select` only associates the correct default value if the corresponding\n // `option` is rendered as a child **at the same time** as itself.\n // Because it might take a few renders for our items to gather the information to build\n // the native `option`(s), we generate a key on the `select` to make sure React re-builds it\n // each time the options change.\n const nativeSelectKey = Array.from(nativeOptionsSet)\n .map((option) => option.props.value)\n .join(';');\n\n return (\n \n \n \n {\n setNativeOptionsSet((prev) => new Set(prev).add(option));\n }, [])}\n onNativeOptionRemove={React.useCallback((option) => {\n setNativeOptionsSet((prev) => {\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, [])}\n >\n {children}\n \n \n\n {isFormControl ? (\n setValue(event.target.value)}\n disabled={disabled}\n form={form}\n >\n {value === undefined ? \n );\n};\n\nSelect.displayName = SELECT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SelectTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'SelectTrigger';\n\ntype SelectTriggerElement = React.ComponentRef;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef;\ninterface SelectTriggerProps extends PrimitiveButtonProps {}\n\nconst SelectTrigger = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeSelect, disabled = false, ...triggerProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = useComposedRefs(forwardedRef, context.onTriggerChange);\n const getItems = useCollection(__scopeSelect);\n const pointerTypeRef = React.useRef('touch');\n\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.value === context.value);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem !== undefined) {\n context.onValueChange(nextItem.value);\n }\n });\n\n const handleOpen = (pointerEvent?: React.MouseEvent | React.PointerEvent) => {\n if (!isDisabled) {\n context.onOpenChange(true);\n // reset typeahead when we open\n resetTypeahead();\n }\n\n if (pointerEvent) {\n context.triggerPointerDownPosRef.current = {\n x: Math.round(pointerEvent.pageX),\n y: Math.round(pointerEvent.pageY),\n };\n }\n };\n\n return (\n \n {\n // Whilst browsers generally have no issue focusing the trigger when clicking\n // on a label, Safari seems to struggle with the fact that there's no `onClick`.\n // We force `focus` in this case. Note: this doesn't create any other side-effect\n // because we are preventing default in `onPointerDown` so effectively\n // this only runs for a label \"click\"\n event.currentTarget.focus();\n\n // Open on click when using a touch or pen device\n if (pointerTypeRef.current !== 'mouse') {\n handleOpen(event);\n }\n })}\n onPointerDown={composeEventHandlers(triggerProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n\n // prevent implicit pointer capture\n // https://www.w3.org/TR/pointerevents3/#implicit-pointer-capture\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click); also not for touch\n // devices because that would open the menu on scroll. (pen devices behave as touch on iOS).\n if (event.button === 0 && event.ctrlKey === false && event.pointerType === 'mouse') {\n handleOpen(event);\n // prevent trigger from stealing focus from the active item after opening.\n event.preventDefault();\n }\n })}\n onKeyDown={composeEventHandlers(triggerProps.onKeyDown, (event) => {\n const isTypingAhead = searchRef.current !== '';\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if (isTypingAhead && event.key === ' ') return;\n if (OPEN_KEYS.includes(event.key)) {\n handleOpen();\n event.preventDefault();\n }\n })}\n />\n \n );\n }\n);\n\nSelectTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SelectValue\n * -----------------------------------------------------------------------------------------------*/\n\nconst VALUE_NAME = 'SelectValue';\n\ntype SelectValueElement = React.ComponentRef;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef;\ninterface SelectValueProps extends Omit {\n placeholder?: React.ReactNode;\n}\n\nconst SelectValue = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n // We ignore `className` and `style` as this part shouldn't be styled.\n const { __scopeSelect, className, style, children, placeholder = '', ...valueProps } = props;\n const context = useSelectContext(VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== undefined;\n const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n\n useLayoutEffect(() => {\n onValueNodeHasChildrenChange(hasChildren);\n }, [onValueNodeHasChildrenChange, hasChildren]);\n\n return (\n \n {shouldShowPlaceholder(context.value) ? <>{placeholder} : children}\n \n );\n }\n);\n\nSelectValue.displayName = VALUE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SelectIcon\n * -----------------------------------------------------------------------------------------------*/\n\nconst ICON_NAME = 'SelectIcon';\n\ntype SelectIconElement = React.ComponentRef;\ninterface SelectIconProps extends PrimitiveSpanProps {}\n\nconst SelectIcon = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeSelect, children, ...iconProps } = props;\n return (\n \n {children || '▼'}\n \n );\n }\n);\n\nSelectIcon.displayName = ICON_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SelectPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'SelectPortal';\n\ntype PortalProps = React.ComponentPropsWithoutRef;\ninterface SelectPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n}\n\nconst SelectPortal: React.FC = (props: ScopedProps) => {\n return ;\n};\n\nSelectPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SelectContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'SelectContent';\n\ntype SelectContentElement = SelectContentImplElement;\ninterface SelectContentProps extends SelectContentImplProps {}\n\nconst SelectContent = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = React.useState();\n\n // setting the fragment in `useLayoutEffect` as `DocumentFragment` doesn't exist on the server\n useLayoutEffect(() => {\n setFragment(new DocumentFragment());\n }, []);\n\n if (!context.open) {\n const frag = fragment as Element | undefined;\n return frag\n ? ReactDOM.createPortal(\n \n \n

{props.children}
\n \n ,\n frag\n )\n : null;\n }\n\n return ;\n }\n);\n\nSelectContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SelectContentImpl\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_MARGIN = 10;\n\ntype SelectContentContextValue = {\n content?: SelectContentElement | null;\n viewport?: SelectViewportElement | null;\n onViewportChange?: (node: SelectViewportElement | null) => void;\n itemRefCallback?: (node: SelectItemElement | null, value: string, disabled: boolean) => void;\n selectedItem?: SelectItemElement | null;\n onItemLeave?: () => void;\n itemTextRefCallback?: (\n node: SelectItemTextElement | null,\n value: string,\n disabled: boolean\n ) => void;\n focusSelectedItem?: () => void;\n selectedItemText?: SelectItemTextElement | null;\n position?: SelectContentProps['position'];\n isPositioned?: boolean;\n searchRef?: React.RefObject;\n};\n\nconst [SelectContentProvider, useSelectContentContext] =\n createSelectContext(CONTENT_NAME);\n\nconst CONTENT_IMPL_NAME = 'SelectContentImpl';\n\ntype SelectContentImplElement = SelectPopperPositionElement | SelectItemAlignedPositionElement;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef;\ntype FocusScopeProps = React.ComponentPropsWithoutRef;\n\ntype SelectPopperPrivateProps = { onPlaced?: PopperContentProps['onPlaced'] };\n\ninterface SelectContentImplProps\n extends Omit,\n Omit {\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n onEscapeKeyDown?: DismissableLayerProps['onEscapeKeyDown'];\n /**\n * Event handler called when the a `pointerdown` event happens outside of the `DismissableLayer`.\n * Can be prevented.\n */\n onPointerDownOutside?: DismissableLayerProps['onPointerDownOutside'];\n\n position?: 'item-aligned' | 'popper';\n}\n\nconst Slot = createSlot('SelectContent.RemoveScroll');\n\nconst SelectContentImpl = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeSelect,\n position = 'item-aligned',\n onCloseAutoFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n //\n // PopperContent props\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions,\n //\n ...contentProps\n } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const [content, setContent] = React.useState(null);\n const [viewport, setViewport] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const [selectedItem, setSelectedItem] = React.useState(null);\n const [selectedItemText, setSelectedItemText] = React.useState(\n null\n );\n const getItems = useCollection(__scopeSelect);\n const [isPositioned, setIsPositioned] = React.useState(false);\n const firstValidItemFoundRef = React.useRef(false);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n if (content) return hideOthers(content);\n }, [content]);\n\n // Make sure the whole tree has focus guards as our `Select` may be\n // the last element in the DOM (because of the `Portal`)\n useFocusGuards();\n\n const focusFirst = React.useCallback(\n (candidates: Array) => {\n const [firstItem, ...restItems] = getItems().map((item) => item.ref.current);\n const [lastItem] = restItems.slice(-1);\n\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate?.scrollIntoView({ block: 'nearest' });\n // viewport might have padding so scroll to its edges when focusing first/last items.\n if (candidate === firstItem && viewport) viewport.scrollTop = 0;\n if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;\n candidate?.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n },\n [getItems, viewport]\n );\n\n const focusSelectedItem = React.useCallback(\n () => focusFirst([selectedItem, content]),\n [focusFirst, selectedItem, content]\n );\n\n // Since this is not dependent on layout, we want to ensure this runs at the same time as\n // other effects across components. Hence why we don't call `focusSelectedItem` inside `position`.\n React.useEffect(() => {\n if (isPositioned) {\n focusSelectedItem();\n }\n }, [isPositioned, focusSelectedItem]);\n\n // prevent selecting items on `pointerup` in some cases after opening from `pointerdown`\n // and close on `pointerup` outside.\n const { onOpenChange, triggerPointerDownPosRef } = context;\n React.useEffect(() => {\n if (content) {\n let pointerMoveDelta = { x: 0, y: 0 };\n\n const handlePointerMove = (event: PointerEvent) => {\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.current?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.current?.y ?? 0)),\n };\n };\n const handlePointerUp = (event: PointerEvent) => {\n // If the pointer hasn't moved by a certain threshold then we prevent selecting item on `pointerup`.\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n // otherwise, if the event was outside the content, close.\n if (!content.contains(event.target as HTMLElement)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener('pointermove', handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener('pointermove', handlePointerMove);\n document.addEventListener('pointerup', handlePointerUp, { capture: true, once: true });\n }\n\n return () => {\n document.removeEventListener('pointermove', handlePointerMove);\n document.removeEventListener('pointerup', handlePointerUp, { capture: true });\n };\n }\n }, [content, onOpenChange, triggerPointerDownPosRef]);\n\n React.useEffect(() => {\n const close = () => onOpenChange(false);\n window.addEventListener('blur', close);\n window.addEventListener('resize', close);\n return () => {\n window.removeEventListener('blur', close);\n window.removeEventListener('resize', close);\n };\n }, [onOpenChange]);\n\n const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.ref.current === document.activeElement);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem) {\n /**\n * Imperative focus during keydown is risky so we prevent React's batching updates\n * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332\n */\n setTimeout(() => (nextItem.ref.current as HTMLElement).focus());\n }\n });\n\n const itemRefCallback = React.useCallback(\n (node: SelectItemElement | null, value: string, disabled: boolean) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== undefined && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem) firstValidItemFoundRef.current = true;\n }\n },\n [context.value]\n );\n const handleItemLeave = React.useCallback(() => content?.focus(), [content]);\n const itemTextRefCallback = React.useCallback(\n (node: SelectItemTextElement | null, value: string, disabled: boolean) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== undefined && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItemText(node);\n }\n },\n [context.value]\n );\n\n const SelectPosition = position === 'popper' ? SelectPopperPosition : SelectItemAlignedPosition;\n\n // Silently ignore props that are not supported by `SelectItemAlignedPosition`\n const popperContentProps =\n SelectPosition === SelectPopperPosition\n ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions,\n }\n : {};\n\n return (\n \n \n {\n // we prevent open autofocus because we manually focus the selected item\n event.preventDefault();\n }}\n onUnmountAutoFocus={composeEventHandlers(onCloseAutoFocus, (event) => {\n context.trigger?.focus({ preventScroll: true });\n event.preventDefault();\n })}\n >\n event.preventDefault()}\n onDismiss={() => context.onOpenChange(false)}\n >\n event.preventDefault()}\n {...contentProps}\n {...popperContentProps}\n onPlaced={() => setIsPositioned(true)}\n ref={composedRefs}\n style={{\n // flex layout so we can place the scroll buttons properly\n display: 'flex',\n flexDirection: 'column',\n // reset the outline by default as the content MAY get focused\n outline: 'none',\n ...contentProps.style,\n }}\n onKeyDown={composeEventHandlers(contentProps.onKeyDown, (event) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n\n // select should not be navigated using tab key so we prevent it\n if (event.key === 'Tab') event.preventDefault();\n\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n\n if (['ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n const items = getItems().filter((item) => !item.disabled);\n let candidateNodes = items.map((item) => item.ref.current!);\n\n if (['ArrowUp', 'End'].includes(event.key)) {\n candidateNodes = candidateNodes.slice().reverse();\n }\n if (['ArrowUp', 'ArrowDown'].includes(event.key)) {\n const currentElement = event.target as SelectItemElement;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n\n /**\n * Imperative focus during keydown is risky so we prevent React's batching updates\n * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332\n */\n setTimeout(() => focusFirst(candidateNodes));\n\n event.preventDefault();\n }\n })}\n />\n \n \n \n \n );\n }\n);\n\nSelectContentImpl.displayName = CONTENT_IMPL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SelectItemAlignedPosition\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_ALIGNED_POSITION_NAME = 'SelectItemAlignedPosition';\n\ntype SelectItemAlignedPositionElement = React.ComponentRef;\ninterface SelectItemAlignedPositionProps extends PrimitiveDivProps, SelectPopperPrivateProps {}\n\nconst SelectItemAlignedPosition = React.forwardRef<\n SelectItemAlignedPositionElement,\n SelectItemAlignedPositionProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeSelect, onPlaced, ...popperProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const getItems = useCollection(__scopeSelect);\n const shouldExpandOnScrollRef = React.useRef(false);\n const shouldRepositionRef = React.useRef(true);\n\n const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;\n const position = React.useCallback(() => {\n if (\n context.trigger &&\n context.valueNode &&\n contentWrapper &&\n content &&\n viewport &&\n selectedItem &&\n selectedItemText\n ) {\n const triggerRect = context.trigger.getBoundingClientRect();\n\n // -----------------------------------------------------------------------------------------\n // Horizontal positioning\n // -----------------------------------------------------------------------------------------\n const contentRect = content.getBoundingClientRect();\n const valueNodeRect = context.valueNode.getBoundingClientRect();\n const itemTextRect = selectedItemText.getBoundingClientRect();\n\n if (context.dir !== 'rtl') {\n const itemTextOffset = itemTextRect.left - contentRect.left;\n const left = valueNodeRect.left - itemTextOffset;\n const leftDelta = triggerRect.left - left;\n const minContentWidth = triggerRect.width + leftDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const rightEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedLeft = clamp(left, [\n CONTENT_MARGIN,\n // Prevents the content from going off the starting edge of the\n // viewport. It may still go off the ending edge, but this can be\n // controlled by the user since they may want to manage overflow in a\n // specific way.\n // https://github.com/radix-ui/primitives/issues/2049\n Math.max(CONTENT_MARGIN, rightEdge - contentWidth),\n ]);\n\n contentWrapper.style.minWidth = minContentWidth + 'px';\n contentWrapper.style.left = clampedLeft + 'px';\n } else {\n const itemTextOffset = contentRect.right - itemTextRect.right;\n const right = window.innerWidth - valueNodeRect.right - itemTextOffset;\n const rightDelta = window.innerWidth - triggerRect.right - right;\n const minContentWidth = triggerRect.width + rightDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const leftEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedRight = clamp(right, [\n CONTENT_MARGIN,\n Math.max(CONTENT_MARGIN, leftEdge - contentWidth),\n ]);\n\n contentWrapper.style.minWidth = minContentWidth + 'px';\n contentWrapper.style.right = clampedRight + 'px';\n }\n\n // -----------------------------------------------------------------------------------------\n // Vertical positioning\n // -----------------------------------------------------------------------------------------\n const items = getItems();\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const itemsHeight = viewport.scrollHeight;\n\n const contentStyles = window.getComputedStyle(content);\n const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);\n const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);\n const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth; // prettier-ignore\n const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);\n\n const viewportStyles = window.getComputedStyle(viewport);\n const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);\n const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);\n\n const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;\n const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;\n\n const selectedItemHalfHeight = selectedItem.offsetHeight / 2;\n const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;\n const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;\n const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;\n\n const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;\n\n if (willAlignWithoutTopOverflow) {\n const isLastItem =\n items.length > 0 && selectedItem === items[items.length - 1]!.ref.current;\n contentWrapper.style.bottom = 0 + 'px';\n const viewportOffsetBottom =\n content.clientHeight - viewport.offsetTop - viewport.offsetHeight;\n const clampedTriggerMiddleToBottomEdge = Math.max(\n triggerMiddleToBottomEdge,\n selectedItemHalfHeight +\n // viewport might have padding bottom, include it to avoid a scrollable viewport\n (isLastItem ? viewportPaddingBottom : 0) +\n viewportOffsetBottom +\n contentBorderBottomWidth\n );\n const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;\n contentWrapper.style.height = height + 'px';\n } else {\n const isFirstItem = items.length > 0 && selectedItem === items[0]!.ref.current;\n contentWrapper.style.top = 0 + 'px';\n const clampedTopEdgeToTriggerMiddle = Math.max(\n topEdgeToTriggerMiddle,\n contentBorderTopWidth +\n viewport.offsetTop +\n // viewport might have padding top, include it to avoid a scrollable viewport\n (isFirstItem ? viewportPaddingTop : 0) +\n selectedItemHalfHeight\n );\n const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;\n contentWrapper.style.height = height + 'px';\n viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;\n }\n\n contentWrapper.style.margin = `${CONTENT_MARGIN}px 0`;\n contentWrapper.style.minHeight = minContentHeight + 'px';\n contentWrapper.style.maxHeight = availableHeight + 'px';\n // -----------------------------------------------------------------------------------------\n\n onPlaced?.();\n\n // we don't want the initial scroll position adjustment to trigger \"expand on scroll\"\n // so we explicitly turn it on only after they've registered.\n requestAnimationFrame(() => (shouldExpandOnScrollRef.current = true));\n }\n }, [\n getItems,\n context.trigger,\n context.valueNode,\n contentWrapper,\n content,\n viewport,\n selectedItem,\n selectedItemText,\n context.dir,\n onPlaced,\n ]);\n\n useLayoutEffect(() => position(), [position]);\n\n // copy z-index from content to wrapper\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n\n // When the viewport becomes scrollable at the top, the scroll up button will mount.\n // Because it is part of the normal flow, it will push down the viewport, thus throwing our\n // trigger => selectedItem alignment off by the amount the viewport was pushed down.\n // We wait for this to happen and then re-run the positining logic one more time to account for it.\n const handleScrollButtonChange = React.useCallback(\n (node: SelectScrollButtonImplElement | null) => {\n if (node && shouldRepositionRef.current === true) {\n position();\n focusSelectedItem?.();\n shouldRepositionRef.current = false;\n }\n },\n [position, focusSelectedItem]\n );\n\n return (\n \n \n \n \n \n );\n});\n\nSelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SelectPopperPosition\n * -----------------------------------------------------------------------------------------------*/\n\nconst POPPER_POSITION_NAME = 'SelectPopperPosition';\n\ntype SelectPopperPositionElement = React.ComponentRef;\ntype PopperContentProps = React.ComponentPropsWithoutRef;\ninterface SelectPopperPositionProps extends PopperContentProps, SelectPopperPrivateProps {}\n\nconst SelectPopperPosition = React.forwardRef<\n SelectPopperPositionElement,\n SelectPopperPositionProps\n>((props: ScopedProps, forwardedRef) => {\n const {\n __scopeSelect,\n align = 'start',\n collisionPadding = CONTENT_MARGIN,\n ...popperProps\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n\n return (\n \n );\n});\n\nSelectPopperPosition.displayName = POPPER_POSITION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SelectViewport\n * -----------------------------------------------------------------------------------------------*/\n\ntype SelectViewportContextValue = {\n contentWrapper?: HTMLDivElement | null;\n shouldExpandOnScrollRef?: React.RefObject;\n onScrollButtonChange?: (node: SelectScrollButtonImplElement | null) => void;\n};\n\nconst [SelectViewportProvider, useSelectViewportContext] =\n createSelectContext(CONTENT_NAME, {});\n\nconst VIEWPORT_NAME = 'SelectViewport';\n\ntype SelectViewportElement = React.ComponentRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface SelectViewportProps extends PrimitiveDivProps {\n nonce?: string;\n}\n\nconst SelectViewport = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeSelect, nonce, ...viewportProps } = props;\n const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);\n const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);\n const composedRefs = useComposedRefs(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = React.useRef(0);\n return (\n <>\n {/* Hide scrollbars cross-browser and enable momentum scroll for touch devices */}\n \n \n {\n const viewport = event.currentTarget;\n const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;\n if (shouldExpandOnScrollRef?.current && contentWrapper) {\n const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);\n if (scrolledBy > 0) {\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const cssMinHeight = parseFloat(contentWrapper.style.minHeight);\n const cssHeight = parseFloat(contentWrapper.style.height);\n const prevHeight = Math.max(cssMinHeight, cssHeight);\n\n if (prevHeight < availableHeight) {\n const nextHeight = prevHeight + scrolledBy;\n const clampedNextHeight = Math.min(availableHeight, nextHeight);\n const heightDiff = nextHeight - clampedNextHeight;\n\n contentWrapper.style.height = clampedNextHeight + 'px';\n if (contentWrapper.style.bottom === '0px') {\n viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;\n // ensure the content stays pinned to the bottom\n contentWrapper.style.justifyContent = 'flex-end';\n }\n }\n }\n }\n prevScrollTopRef.current = viewport.scrollTop;\n })}\n />\n \n \n );\n }\n);\n\nSelectViewport.displayName = VIEWPORT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SelectGroup\n * -----------------------------------------------------------------------------------------------*/\n\nconst GROUP_NAME = 'SelectGroup';\n\ntype SelectGroupContextValue = { id: string };\n\nconst [SelectGroupContextProvider, useSelectGroupContext] =\n createSelectContext(GROUP_NAME);\n\ntype SelectGroupElement = React.ComponentRef;\ninterface SelectGroupProps extends PrimitiveDivProps {}\n\nconst SelectGroup = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeSelect, ...groupProps } = props;\n const groupId = useId();\n return (\n \n \n \n );\n }\n);\n\nSelectGroup.displayName = GROUP_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SelectLabel\n * -----------------------------------------------------------------------------------------------*/\n\nconst LABEL_NAME = 'SelectLabel';\n\ntype SelectLabelElement = React.ComponentRef;\ninterface SelectLabelProps extends PrimitiveDivProps {}\n\nconst SelectLabel = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeSelect, ...labelProps } = props;\n const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);\n return ;\n }\n);\n\nSelectLabel.displayName = LABEL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SelectItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'SelectItem';\n\ntype SelectItemContextValue = {\n value: string;\n disabled: boolean;\n textId: string;\n isSelected: boolean;\n onItemTextChange(node: SelectItemTextElement | null): void;\n};\n\nconst [SelectItemContextProvider, useSelectItemContext] =\n createSelectContext(ITEM_NAME);\n\ntype SelectItemElement = React.ComponentRef;\ninterface SelectItemProps extends PrimitiveDivProps {\n value: string;\n disabled?: boolean;\n textValue?: string;\n}\n\nconst SelectItem = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const {\n __scopeSelect,\n value,\n disabled = false,\n textValue: textValueProp,\n ...itemProps\n } = props;\n const context = useSelectContext(ITEM_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = React.useState(textValueProp ?? '');\n const [isFocused, setIsFocused] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, (node) =>\n contentContext.itemRefCallback?.(node, value, disabled)\n );\n const textId = useId();\n const pointerTypeRef = React.useRef('touch');\n\n const handleSelect = () => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n\n if (value === '') {\n throw new Error(\n 'A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.'\n );\n }\n\n return (\n {\n setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? '').trim());\n }, [])}\n >\n \n setIsFocused(true))}\n onBlur={composeEventHandlers(itemProps.onBlur, () => setIsFocused(false))}\n onClick={composeEventHandlers(itemProps.onClick, () => {\n // Open on click when using a touch or pen device\n if (pointerTypeRef.current !== 'mouse') handleSelect();\n })}\n onPointerUp={composeEventHandlers(itemProps.onPointerUp, () => {\n // Using a mouse you should be able to do pointer down, move through\n // the list, and release the pointer over the item to select it.\n if (pointerTypeRef.current === 'mouse') handleSelect();\n })}\n onPointerDown={composeEventHandlers(itemProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n })}\n onPointerMove={composeEventHandlers(itemProps.onPointerMove, (event) => {\n // Remember pointer type when sliding over to this item from another one\n pointerTypeRef.current = event.pointerType;\n if (disabled) {\n contentContext.onItemLeave?.();\n } else if (pointerTypeRef.current === 'mouse') {\n // even though safari doesn't support this option, it's acceptable\n // as it only means it might scroll a few pixels when using the pointer.\n event.currentTarget.focus({ preventScroll: true });\n }\n })}\n onPointerLeave={composeEventHandlers(itemProps.onPointerLeave, (event) => {\n if (event.currentTarget === document.activeElement) {\n contentContext.onItemLeave?.();\n }\n })}\n onKeyDown={composeEventHandlers(itemProps.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef?.current !== '';\n if (isTypingAhead && event.key === ' ') return;\n if (SELECTION_KEYS.includes(event.key)) handleSelect();\n // prevent page scroll if using the space key to select an item\n if (event.key === ' ') event.preventDefault();\n })}\n />\n \n \n );\n }\n);\n\nSelectItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SelectItemText\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_TEXT_NAME = 'SelectItemText';\n\ntype SelectItemTextElement = React.ComponentRef;\ninterface SelectItemTextProps extends PrimitiveSpanProps {}\n\nconst SelectItemText = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n // We ignore `className` and `style` as this part shouldn't be styled.\n const { __scopeSelect, className, style, ...itemTextProps } = props;\n const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = React.useState(null);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => setItemTextNode(node),\n itemContext.onItemTextChange,\n (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled)\n );\n\n const textContent = itemTextNode?.textContent;\n const nativeOption = React.useMemo(\n () => (\n \n ),\n [itemContext.disabled, itemContext.value, textContent]\n );\n\n const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;\n useLayoutEffect(() => {\n onNativeOptionAdd(nativeOption);\n return () => onNativeOptionRemove(nativeOption);\n }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);\n\n return (\n <>\n \n\n {/* Portal the select item text into the trigger value node */}\n {itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren\n ? ReactDOM.createPortal(itemTextProps.children, context.valueNode)\n : null}\n \n );\n }\n);\n\nSelectItemText.displayName = ITEM_TEXT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SelectItemIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_INDICATOR_NAME = 'SelectItemIndicator';\n\ntype SelectItemIndicatorElement = React.ComponentRef;\ninterface SelectItemIndicatorProps extends PrimitiveSpanProps {}\n\nconst SelectItemIndicator = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeSelect, ...itemIndicatorProps } = props;\n const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);\n return itemContext.isSelected ? (\n \n ) : null;\n }\n);\n\nSelectItemIndicator.displayName = ITEM_INDICATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SelectScrollUpButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst SCROLL_UP_BUTTON_NAME = 'SelectScrollUpButton';\n\ntype SelectScrollUpButtonElement = SelectScrollButtonImplElement;\ninterface SelectScrollUpButtonProps extends Omit {}\n\nconst SelectScrollUpButton = React.forwardRef<\n SelectScrollUpButtonElement,\n SelectScrollUpButtonProps\n>((props: ScopedProps, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp, setCanScrollUp] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n const viewport = contentContext.viewport;\n function handleScroll() {\n const canScrollUp = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp);\n }\n handleScroll();\n viewport.addEventListener('scroll', handleScroll);\n return () => viewport.removeEventListener('scroll', handleScroll);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n\n return canScrollUp ? (\n {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n }}\n />\n ) : null;\n});\n\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SelectScrollDownButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst SCROLL_DOWN_BUTTON_NAME = 'SelectScrollDownButton';\n\ntype SelectScrollDownButtonElement = SelectScrollButtonImplElement;\ninterface SelectScrollDownButtonProps extends Omit {}\n\nconst SelectScrollDownButton = React.forwardRef<\n SelectScrollDownButtonElement,\n SelectScrollDownButtonProps\n>((props: ScopedProps, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown, setCanScrollDown] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n const viewport = contentContext.viewport;\n function handleScroll() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n // we use Math.ceil here because if the UI is zoomed-in\n // `scrollTop` is not always reported as an integer\n const canScrollDown = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown);\n }\n handleScroll();\n viewport.addEventListener('scroll', handleScroll);\n return () => viewport.removeEventListener('scroll', handleScroll);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n\n return canScrollDown ? (\n {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n }}\n />\n ) : null;\n});\n\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\n\ntype SelectScrollButtonImplElement = React.ComponentRef;\ninterface SelectScrollButtonImplProps extends PrimitiveDivProps {\n onAutoScroll(): void;\n}\n\nconst SelectScrollButtonImpl = React.forwardRef<\n SelectScrollButtonImplElement,\n SelectScrollButtonImplProps\n>((props: ScopedProps, forwardedRef) => {\n const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;\n const contentContext = useSelectContentContext('SelectScrollButton', __scopeSelect);\n const autoScrollTimerRef = React.useRef(null);\n const getItems = useCollection(__scopeSelect);\n\n const clearAutoScrollTimer = React.useCallback(() => {\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n\n React.useEffect(() => {\n return () => clearAutoScrollTimer();\n }, [clearAutoScrollTimer]);\n\n // When the viewport becomes scrollable on either side, the relevant scroll button will mount.\n // Because it is part of the normal flow, it will push down (top button) or shrink (bottom button)\n // the viewport, potentially causing the active item to now be partially out of view.\n // We re-run the `scrollIntoView` logic to make sure it stays within the viewport.\n useLayoutEffect(() => {\n const activeItem = getItems().find((item) => item.ref.current === document.activeElement);\n activeItem?.ref.current?.scrollIntoView({ block: 'nearest' });\n }, [getItems]);\n\n return (\n {\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n })}\n onPointerMove={composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {\n contentContext.onItemLeave?.();\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n })}\n onPointerLeave={composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {\n clearAutoScrollTimer();\n })}\n />\n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * SelectSeparator\n * -----------------------------------------------------------------------------------------------*/\n\nconst SEPARATOR_NAME = 'SelectSeparator';\n\ntype SelectSeparatorElement = React.ComponentRef;\ninterface SelectSeparatorProps extends PrimitiveDivProps {}\n\nconst SelectSeparator = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeSelect, ...separatorProps } = props;\n return ;\n }\n);\n\nSelectSeparator.displayName = SEPARATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SelectArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'SelectArrow';\n\ntype SelectArrowElement = React.ComponentRef;\ntype PopperArrowProps = React.ComponentPropsWithoutRef;\ninterface SelectArrowProps extends PopperArrowProps {}\n\nconst SelectArrow = React.forwardRef(\n (props: ScopedProps, forwardedRef) => {\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(ARROW_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return context.open && contentContext.position === 'popper' ? (\n \n ) : null;\n }\n);\n\nSelectArrow.displayName = ARROW_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SelectBubbleInput\n * -----------------------------------------------------------------------------------------------*/\n\nconst BUBBLE_INPUT_NAME = 'SelectBubbleInput';\n\ntype InputProps = React.ComponentPropsWithoutRef;\ninterface SwitchBubbleInputProps extends InputProps {}\n\nconst SelectBubbleInput = React.forwardRef(\n ({ __scopeSelect, value, ...props }: ScopedProps, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const prevValue = usePrevious(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const select = ref.current;\n if (!select) return;\n\n const selectProto = window.HTMLSelectElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n 'value'\n ) as PropertyDescriptor;\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event('change', { bubbles: true });\n setValue.call(select, value);\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n\n /**\n * We purposefully use a `select` here to support form autofill as much as\n * possible.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programmatically and bubble to any parent form `onChange`\n * event. Adding the `value` will cause React to consider the programmatic\n * dispatch a duplicate and it will get swallowed.\n *\n * We use visually hidden styles rather than `display: \"none\"` because\n * Safari autofill won't work otherwise.\n */\n return (\n \n );\n }\n);\n\nSelectBubbleInput.displayName = BUBBLE_INPUT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction shouldShowPlaceholder(value?: string) {\n return value === '' || value === undefined;\n}\n\nfunction useTypeaheadSearch(onSearchChange: (search: string) => void) {\n const handleSearchChange = useCallbackRef(onSearchChange);\n const searchRef = React.useRef('');\n const timerRef = React.useRef(0);\n\n const handleTypeaheadSearch = React.useCallback(\n (key: string) => {\n const search = searchRef.current + key;\n handleSearchChange(search);\n\n (function updateSearch(value: string) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n // Reset `searchRef` 1 second after it was last updated\n if (value !== '') timerRef.current = window.setTimeout(() => updateSearch(''), 1000);\n })(search);\n },\n [handleSearchChange]\n );\n\n const resetTypeahead = React.useCallback(() => {\n searchRef.current = '';\n window.clearTimeout(timerRef.current);\n }, []);\n\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n\n return [searchRef, handleTypeaheadSearch, resetTypeahead] as const;\n}\n\n/**\n * This is the \"meat\" of the typeahead matching logic. It takes in a list of items,\n * the search and the current item, and returns the next item (or `undefined`).\n *\n * We normalize the search because if a user has repeatedly pressed a character,\n * we want the exact same behavior as if we only had that one character\n * (ie. cycle through items starting with that character)\n *\n * We also reorder the items by wrapping the array around the current item.\n * This is so we always look forward from the current item, and picking the first\n * item will always be the correct one.\n *\n * Finally, if the normalized search is exactly one character, we exclude the\n * current item from the values because otherwise it would be the first to match always\n * and focus would never move. This is as opposed to the regular case, where we\n * don't want focus to move if the current item still matches.\n */\nfunction findNextItem(\n items: T[],\n search: string,\n currentItem?: T\n) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0]! : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v) => v !== currentItem);\n const nextItem = wrappedItems.find((item) =>\n item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextItem !== currentItem ? nextItem : undefined;\n}\n\n/**\n * Wraps an array around itself at a given start index\n * Example: `wrapArray(['a', 'b', 'c', 'd'], 2) === ['c', 'd', 'a', 'b']`\n */\nfunction wrapArray(array: T[], startIndex: number) {\n return array.map((_, index) => array[(startIndex + index) % array.length]!);\n}\n\nconst Root = Select;\nconst Trigger = SelectTrigger;\nconst Value = SelectValue;\nconst Icon = SelectIcon;\nconst Portal = SelectPortal;\nconst Content = SelectContent;\nconst Viewport = SelectViewport;\nconst Group = SelectGroup;\nconst Label = SelectLabel;\nconst Item = SelectItem;\nconst ItemText = SelectItemText;\nconst ItemIndicator = SelectItemIndicator;\nconst ScrollUpButton = SelectScrollUpButton;\nconst ScrollDownButton = SelectScrollDownButton;\nconst Separator = SelectSeparator;\nconst Arrow = SelectArrow;\n\nexport {\n createSelectScope,\n //\n Select,\n SelectTrigger,\n SelectValue,\n SelectIcon,\n SelectPortal,\n SelectContent,\n SelectViewport,\n SelectGroup,\n SelectLabel,\n SelectItem,\n SelectItemText,\n SelectItemIndicator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n SelectSeparator,\n SelectArrow,\n //\n Root,\n Trigger,\n Value,\n Icon,\n Portal,\n Content,\n Viewport,\n Group,\n Label,\n Item,\n ItemText,\n ItemIndicator,\n ScrollUpButton,\n ScrollDownButton,\n Separator,\n Arrow,\n};\nexport type {\n SelectProps,\n SelectTriggerProps,\n SelectValueProps,\n SelectIconProps,\n SelectPortalProps,\n SelectContentProps,\n SelectViewportProps,\n SelectGroupProps,\n SelectLabelProps,\n SelectItemProps,\n SelectItemTextProps,\n SelectItemIndicatorProps,\n SelectScrollUpButtonProps,\n SelectScrollDownButtonProps,\n SelectSeparatorProps,\n SelectArrowProps,\n};\n","function _class_apply_descriptor_get(receiver, descriptor) {\n if (descriptor.get) return descriptor.get.call(receiver);\n\n return descriptor.value;\n}\nexport { _class_apply_descriptor_get as _ };\n","function _class_extract_field_descriptor(receiver, privateMap, action) {\n if (!privateMap.has(receiver)) throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n\n return privateMap.get(receiver);\n}\nexport { _class_extract_field_descriptor as _ };\n","import { _ as _class_apply_descriptor_get } from \"./_class_apply_descriptor_get.js\";\nimport { _ as _class_extract_field_descriptor } from \"./_class_extract_field_descriptor.js\";\n\nfunction _class_private_field_get(receiver, privateMap) {\n var descriptor = _class_extract_field_descriptor(receiver, privateMap, \"get\");\n return _class_apply_descriptor_get(receiver, descriptor);\n}\nexport { _class_private_field_get as _ };\n","function _check_private_redeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}\nexport { _check_private_redeclaration as _ };\n","import { _ as _check_private_redeclaration } from \"./_check_private_redeclaration.js\";\n\nfunction _class_private_field_init(obj, privateMap, value) {\n _check_private_redeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}\nexport { _class_private_field_init as _ };\n","function _class_apply_descriptor_set(receiver, descriptor, value) {\n if (descriptor.set) descriptor.set.call(receiver, value);\n else {\n if (!descriptor.writable) {\n // This should only throw in strict mode, but class bodies are\n // always strict and private fields can only be used inside\n // class bodies.\n throw new TypeError(\"attempted to set read only private field\");\n }\n descriptor.value = value;\n }\n}\nexport { _class_apply_descriptor_set as _ };\n","import { _ as _class_apply_descriptor_set } from \"./_class_apply_descriptor_set.js\";\nimport { _ as _class_extract_field_descriptor } from \"./_class_extract_field_descriptor.js\";\n\nfunction _class_private_field_set(receiver, privateMap, value) {\n var descriptor = _class_extract_field_descriptor(receiver, privateMap, \"set\");\n _class_apply_descriptor_set(receiver, descriptor, value);\n return value;\n}\nexport { _class_private_field_set as _ };\n","import React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createSlot, type Slot } from '@radix-ui/react-slot';\n\ntype SlotProps = React.ComponentPropsWithoutRef;\ntype CollectionElement = HTMLElement;\ninterface CollectionProps extends SlotProps {\n scope: any;\n}\n\n// We have resorted to returning slots directly rather than exposing primitives that can then\n// be slotted like `…`.\n// This is because we encountered issues with generic types that cannot be statically analysed\n// due to creating them dynamically via createCollection.\n\nfunction createCollection(name: string) {\n /* -----------------------------------------------------------------------------------------------\n * CollectionProvider\n * ---------------------------------------------------------------------------------------------*/\n\n const PROVIDER_NAME = name + 'CollectionProvider';\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n\n type ContextValue = {\n collectionRef: React.RefObject;\n itemMap: Map<\n React.RefObject,\n { ref: React.RefObject } & ItemData\n >;\n };\n\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: new Map() }\n );\n\n const CollectionProvider: React.FC<{ children?: React.ReactNode; scope: any }> = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(new Map()).current;\n return (\n \n {children}\n \n );\n };\n\n CollectionProvider.displayName = PROVIDER_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionSlot\n * ---------------------------------------------------------------------------------------------*/\n\n const COLLECTION_SLOT_NAME = name + 'CollectionSlot';\n\n const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return {children};\n }\n );\n\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionItem\n * ---------------------------------------------------------------------------------------------*/\n\n const ITEM_SLOT_NAME = name + 'CollectionItemSlot';\n const ITEM_DATA_ATTR = 'data-radix-collection-item';\n\n type CollectionItemSlotProps = ItemData & {\n children: React.ReactNode;\n scope: any;\n };\n\n const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...(itemData as unknown as ItemData) });\n return () => void context.itemMap.delete(ref);\n });\n\n return (\n \n {children}\n \n );\n }\n );\n\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * useCollection\n * ---------------------------------------------------------------------------------------------*/\n\n function useCollection(scope: any) {\n const context = useCollectionContext(name + 'CollectionConsumer', scope);\n\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current!) - orderedNodes.indexOf(b.ref.current!)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n\n return getItems;\n }\n\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope,\n ] as const;\n}\n\nexport { createCollection };\nexport type { CollectionProps };\n","import React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createSlot, type Slot } from '@radix-ui/react-slot';\nimport type { EntryOf } from './ordered-dictionary';\nimport { OrderedDict } from './ordered-dictionary';\n\ntype SlotProps = React.ComponentPropsWithoutRef;\ntype CollectionElement = HTMLElement;\ninterface CollectionProps extends SlotProps {\n scope: any;\n}\n\ninterface BaseItemData {\n id?: string;\n}\n\ntype ItemDataWithElement<\n ItemData extends BaseItemData,\n ItemElement extends HTMLElement,\n> = ItemData & {\n element: ItemElement;\n};\n\ntype ItemMap = OrderedDict<\n ItemElement,\n ItemDataWithElement\n>;\n\nfunction createCollection<\n ItemElement extends HTMLElement,\n ItemData extends BaseItemData = BaseItemData,\n>(name: string) {\n /* -----------------------------------------------------------------------------------------------\n * CollectionProvider\n * ---------------------------------------------------------------------------------------------*/\n\n const PROVIDER_NAME = name + 'CollectionProvider';\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n\n type ContextValue = {\n collectionElement: CollectionElement | null;\n collectionRef: React.Ref;\n collectionRefObject: React.RefObject;\n itemMap: ItemMap;\n setItemMap: React.Dispatch>>;\n };\n\n const [CollectionContextProvider, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n {\n collectionElement: null,\n collectionRef: { current: null },\n collectionRefObject: { current: null },\n itemMap: new OrderedDict(),\n setItemMap: () => void 0,\n }\n );\n\n type CollectionState = [\n ItemMap: ItemMap,\n SetItemMap: React.Dispatch>>,\n ];\n\n const CollectionProvider: React.FC<{\n children?: React.ReactNode;\n scope: any;\n state?: CollectionState;\n }> = ({ state, ...props }) => {\n return state ? (\n \n ) : (\n \n );\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n\n const CollectionInit: React.FC<{\n children?: React.ReactNode;\n scope: any;\n }> = (props) => {\n const state = useInitCollection();\n return ;\n };\n CollectionInit.displayName = PROVIDER_NAME + 'Init';\n\n const CollectionProviderImpl: React.FC<{\n children?: React.ReactNode;\n scope: any;\n state: CollectionState;\n }> = (props) => {\n const { scope, children, state } = props;\n const ref = React.useRef(null);\n const [collectionElement, setCollectionElement] = React.useState(\n null\n );\n const composeRefs = useComposedRefs(ref, setCollectionElement);\n const [itemMap, setItemMap] = state;\n\n React.useEffect(() => {\n if (!collectionElement) return;\n\n const observer = getChildListObserver(() => {\n // setItemMap((map) => {\n // const copy = new OrderedDict(map).toSorted(([, a], [, b]) =>\n // !a.element || !b.element ? 0 : isElementPreceding(a.element, b.element) ? -1 : 1\n // );\n // // check if the order has changed\n // let index = -1;\n // for (const entry of copy) {\n // index++;\n // const key = map.keyAt(index)!;\n // const [copyKey] = entry;\n // if (key !== copyKey) {\n // // order has changed!\n // return copy;\n // }\n // }\n // return map;\n // });\n });\n observer.observe(collectionElement, {\n childList: true,\n subtree: true,\n });\n return () => {\n observer.disconnect();\n };\n }, [collectionElement]);\n\n return (\n \n {children}\n \n );\n };\n\n CollectionProviderImpl.displayName = PROVIDER_NAME + 'Impl';\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionSlot\n * ---------------------------------------------------------------------------------------------*/\n\n const COLLECTION_SLOT_NAME = name + 'CollectionSlot';\n\n const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return {children};\n }\n );\n\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionItem\n * ---------------------------------------------------------------------------------------------*/\n\n const ITEM_SLOT_NAME = name + 'CollectionItemSlot';\n const ITEM_DATA_ATTR = 'data-radix-collection-item';\n\n type CollectionItemSlotProps = ItemData & {\n children: React.ReactNode;\n scope: any;\n };\n\n const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const [element, setElement] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, setElement);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n\n const { setItemMap } = context;\n\n const itemDataRef = React.useRef(itemData);\n if (!shallowEqual(itemDataRef.current, itemData)) {\n itemDataRef.current = itemData;\n }\n const memoizedItemData = itemDataRef.current;\n\n React.useEffect(() => {\n const itemData = memoizedItemData;\n setItemMap((map) => {\n if (!element) {\n return map;\n }\n\n if (!map.has(element)) {\n map.set(element, { ...(itemData as unknown as ItemData), element });\n return map.toSorted(sortByDocumentPosition);\n }\n\n return map\n .set(element, { ...(itemData as unknown as ItemData), element })\n .toSorted(sortByDocumentPosition);\n });\n\n return () => {\n setItemMap((map) => {\n if (!element || !map.has(element)) {\n return map;\n }\n map.delete(element);\n return new OrderedDict(map);\n });\n };\n }, [element, memoizedItemData, setItemMap]);\n\n return (\n \n {children}\n \n );\n }\n );\n\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * useInitCollection\n * ---------------------------------------------------------------------------------------------*/\n\n function useInitCollection() {\n return React.useState>(new OrderedDict());\n }\n\n /* -----------------------------------------------------------------------------------------------\n * useCollection\n * ---------------------------------------------------------------------------------------------*/\n\n function useCollection(scope: any) {\n const { itemMap } = useCollectionContext(name + 'CollectionConsumer', scope);\n\n return itemMap;\n }\n\n const functions = {\n createCollectionScope,\n useCollection,\n useInitCollection,\n };\n\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n functions,\n ] as const;\n}\n\nexport { createCollection };\nexport type { CollectionProps };\n\nfunction shallowEqual(a: any, b: any) {\n if (a === b) return true;\n if (typeof a !== 'object' || typeof b !== 'object') return false;\n if (a == null || b == null) return false;\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n for (const key of keysA) {\n if (!Object.prototype.hasOwnProperty.call(b, key)) return false;\n if (a[key] !== b[key]) return false;\n }\n return true;\n}\n\nfunction isElementPreceding(a: Element, b: Element) {\n return !!(b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING);\n}\n\nfunction sortByDocumentPosition(\n a: EntryOf>,\n b: EntryOf>\n) {\n return !a[1].element || !b[1].element\n ? 0\n : isElementPreceding(a[1].element, b[1].element)\n ? -1\n : 1;\n}\n\nfunction getChildListObserver(callback: () => void) {\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList') {\n callback();\n return;\n }\n }\n });\n\n return observer;\n}\n","// Not a real member because it shouldn't be accessible, but the super class\n// calls `set` which needs to read the instanciation state, so it can't be a\n// private member.\nconst __instanciated = new WeakMap, boolean>();\nexport class OrderedDict extends Map {\n #keys: K[];\n\n constructor(iterable?: Iterable | null | undefined);\n constructor(entries?: readonly (readonly [K, V])[] | null) {\n super(entries);\n this.#keys = [...super.keys()];\n __instanciated.set(this, true);\n }\n\n set(key: K, value: V) {\n if (__instanciated.get(this)) {\n if (this.has(key)) {\n this.#keys[this.#keys.indexOf(key)] = key;\n } else {\n this.#keys.push(key);\n }\n }\n super.set(key, value);\n return this;\n }\n\n insert(index: number, key: K, value: V) {\n const has = this.has(key);\n const length = this.#keys.length;\n const relativeIndex = toSafeInteger(index);\n let actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n const safeIndex = actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n\n if (safeIndex === this.size || (has && safeIndex === this.size - 1) || safeIndex === -1) {\n this.set(key, value);\n return this;\n }\n\n const size = this.size + (has ? 0 : 1);\n\n // If you insert at, say, -2, without this bit you'd replace the\n // second-to-last item and push the rest up one, which means the new item is\n // 3rd to last. This isn't very intuitive; inserting at -2 is more like\n // saying \"make this item the second to last\".\n if (relativeIndex < 0) {\n actualIndex++;\n }\n\n const keys = [...this.#keys];\n let nextValue: V | undefined;\n let shouldSkip = false;\n for (let i = actualIndex; i < size; i++) {\n if (actualIndex === i) {\n let nextKey = keys[i]!;\n if (keys[i] === key) {\n nextKey = keys[i + 1]!;\n }\n if (has) {\n // delete first to ensure that the item is moved to the end\n this.delete(key);\n }\n nextValue = this.get(nextKey);\n this.set(key, value);\n } else {\n if (!shouldSkip && keys[i - 1] === key) {\n shouldSkip = true;\n }\n const currentKey = keys[shouldSkip ? i : i - 1]!;\n const currentValue = nextValue!;\n nextValue = this.get(currentKey);\n this.delete(currentKey);\n this.set(currentKey, currentValue);\n }\n }\n return this;\n }\n\n with(index: number, key: K, value: V) {\n const copy = new OrderedDict(this);\n copy.insert(index, key, value);\n return copy;\n }\n\n before(key: K) {\n const index = this.#keys.indexOf(key) - 1;\n if (index < 0) {\n return undefined;\n }\n return this.entryAt(index);\n }\n\n /**\n * Sets a new key-value pair at the position before the given key.\n */\n setBefore(key: K, newKey: K, value: V) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index, newKey, value);\n }\n\n after(key: K) {\n let index = this.#keys.indexOf(key);\n index = index === -1 || index === this.size - 1 ? -1 : index + 1;\n if (index === -1) {\n return undefined;\n }\n return this.entryAt(index);\n }\n\n /**\n * Sets a new key-value pair at the position after the given key.\n */\n setAfter(key: K, newKey: K, value: V) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index + 1, newKey, value);\n }\n\n first() {\n return this.entryAt(0);\n }\n\n last() {\n return this.entryAt(-1);\n }\n\n clear() {\n this.#keys = [];\n return super.clear();\n }\n\n delete(key: K) {\n const deleted = super.delete(key);\n if (deleted) {\n this.#keys.splice(this.#keys.indexOf(key), 1);\n }\n return deleted;\n }\n\n deleteAt(index: number) {\n const key = this.keyAt(index);\n if (key !== undefined) {\n return this.delete(key);\n }\n return false;\n }\n\n at(index: number) {\n const key = at(this.#keys, index);\n if (key !== undefined) {\n return this.get(key);\n }\n }\n\n entryAt(index: number): [K, V] | undefined {\n const key = at(this.#keys, index);\n if (key !== undefined) {\n return [key, this.get(key)!];\n }\n }\n\n indexOf(key: K) {\n return this.#keys.indexOf(key);\n }\n\n keyAt(index: number) {\n return at(this.#keys, index);\n }\n\n from(key: K, offset: number) {\n const index = this.indexOf(key);\n if (index === -1) {\n return undefined;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.at(dest);\n }\n\n keyFrom(key: K, offset: number) {\n const index = this.indexOf(key);\n if (index === -1) {\n return undefined;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.keyAt(dest);\n }\n\n find(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict) => boolean,\n thisArg?: any\n ) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return entry;\n }\n index++;\n }\n return undefined;\n }\n\n findIndex(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict) => boolean,\n thisArg?: any\n ) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return index;\n }\n index++;\n }\n return -1;\n }\n\n filter(\n predicate: (entry: [K, V], index: number, dict: OrderedDict) => entry is [KK, VV],\n thisArg?: any\n ): OrderedDict;\n\n filter(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict) => unknown,\n thisArg?: any\n ): OrderedDict;\n\n filter(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict) => unknown,\n thisArg?: any\n ) {\n const entries: Array<[K, V]> = [];\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n entries.push(entry);\n }\n index++;\n }\n return new OrderedDict(entries);\n }\n\n map(\n callbackfn: (entry: [K, V], index: number, dictionary: OrderedDict) => U,\n thisArg?: any\n ): OrderedDict {\n const entries: [K, U][] = [];\n let index = 0;\n for (const entry of this) {\n entries.push([entry[0], Reflect.apply(callbackfn, thisArg, [entry, index, this])]);\n index++;\n }\n return new OrderedDict(entries);\n }\n\n reduce(\n callbackfn: (\n previousValue: [K, V],\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict\n ) => [K, V]\n ): [K, V];\n reduce(\n callbackfn: (\n previousValue: [K, V],\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict\n ) => [K, V],\n initialValue: [K, V]\n ): [K, V];\n reduce(\n callbackfn: (\n previousValue: U,\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict\n ) => U,\n initialValue: U\n ): U;\n\n reduce(\n ...args: [\n (\n previousValue: U,\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict\n ) => U,\n U?,\n ]\n ) {\n const [callbackfn, initialValue] = args;\n let index = 0;\n let accumulator = initialValue ?? this.at(0)!;\n for (const entry of this) {\n if (index === 0 && args.length === 1) {\n accumulator = entry as any;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n index++;\n }\n return accumulator;\n }\n\n reduceRight(\n callbackfn: (\n previousValue: [K, V],\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict\n ) => [K, V]\n ): [K, V];\n reduceRight(\n callbackfn: (\n previousValue: [K, V],\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict\n ) => [K, V],\n initialValue: [K, V]\n ): [K, V];\n reduceRight(\n callbackfn: (\n previousValue: [K, V],\n currentValue: U,\n currentIndex: number,\n dictionary: OrderedDict\n ) => U,\n initialValue: U\n ): U;\n\n reduceRight(\n ...args: [\n (\n previousValue: U,\n currentEntry: [K, V],\n currentIndex: number,\n dictionary: OrderedDict\n ) => U,\n U?,\n ]\n ) {\n const [callbackfn, initialValue] = args;\n let accumulator = initialValue ?? this.at(-1)!;\n for (let index = this.size - 1; index >= 0; index--) {\n const entry = this.at(index)!;\n if (index === this.size - 1 && args.length === 1) {\n accumulator = entry as any;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n }\n return accumulator;\n }\n\n toSorted(compareFn?: (a: [K, V], b: [K, V]) => number): OrderedDict {\n const entries = [...this.entries()].sort(compareFn);\n return new OrderedDict(entries);\n }\n\n toReversed(): OrderedDict {\n const reversed = new OrderedDict();\n for (let index = this.size - 1; index >= 0; index--) {\n const key = this.keyAt(index)!;\n const element = this.get(key)!;\n reversed.set(key, element);\n }\n return reversed;\n }\n\n toSpliced(start: number, deleteCount?: number): OrderedDict;\n toSpliced(start: number, deleteCount: number, ...items: [K, V][]): OrderedDict;\n\n toSpliced(...args: [start: number, deleteCount: number, ...items: [K, V][]]) {\n const entries = [...this.entries()];\n entries.splice(...args);\n return new OrderedDict(entries);\n }\n\n slice(start?: number, end?: number) {\n const result = new OrderedDict();\n let stop = this.size - 1;\n\n if (start === undefined) {\n return result;\n }\n\n if (start < 0) {\n start = start + this.size;\n }\n\n if (end !== undefined && end > 0) {\n stop = end - 1;\n }\n\n for (let index = start; index <= stop; index++) {\n const key = this.keyAt(index)!;\n const element = this.get(key)!;\n result.set(key, element);\n }\n return result;\n }\n\n every(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict) => unknown,\n thisArg?: any\n ) {\n let index = 0;\n for (const entry of this) {\n if (!Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return false;\n }\n index++;\n }\n return true;\n }\n\n some(\n predicate: (entry: [K, V], index: number, dictionary: OrderedDict) => unknown,\n thisArg?: any\n ) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return true;\n }\n index++;\n }\n return false;\n }\n}\n\nexport type KeyOf> =\n D extends OrderedDict ? K : never;\nexport type ValueOf> =\n D extends OrderedDict ? V : never;\nexport type EntryOf> = [KeyOf, ValueOf];\nexport type KeyFrom> = E[0];\nexport type ValueFrom> = E[1];\n\nfunction at(array: ArrayLike, index: number): T | undefined {\n if ('at' in Array.prototype) {\n return Array.prototype.at.call(array, index);\n }\n const actualIndex = toSafeIndex(array, index);\n return actualIndex === -1 ? undefined : array[actualIndex];\n}\n\nfunction toSafeIndex(array: ArrayLike, index: number) {\n const length = array.length;\n const relativeIndex = toSafeInteger(index);\n const actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n return actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n}\n\nfunction toSafeInteger(number: number) {\n // eslint-disable-next-line no-self-compare\n return number !== number || number === 0 ? 0 : Math.trunc(number);\n}\n","import * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\n\nconst AUTOFOCUS_ON_MOUNT = 'focusScope.autoFocusOnMount';\nconst AUTOFOCUS_ON_UNMOUNT = 'focusScope.autoFocusOnUnmount';\nconst EVENT_OPTIONS = { bubbles: false, cancelable: true };\n\ntype FocusableTarget = HTMLElement | { focus(): void };\n\n/* -------------------------------------------------------------------------------------------------\n * FocusScope\n * -----------------------------------------------------------------------------------------------*/\n\nconst FOCUS_SCOPE_NAME = 'FocusScope';\n\ntype FocusScopeElement = React.ComponentRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface FocusScopeProps extends PrimitiveDivProps {\n /**\n * When `true`, tabbing from last item will focus first tabbable\n * and shift+tab from first item will focus last tababble.\n * @defaultValue false\n */\n loop?: boolean;\n\n /**\n * When `true`, focus cannot escape the focus scope via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue false\n */\n trapped?: boolean;\n\n /**\n * Event handler called when auto-focusing on mount.\n * Can be prevented.\n */\n onMountAutoFocus?: (event: Event) => void;\n\n /**\n * Event handler called when auto-focusing on unmount.\n * Can be prevented.\n */\n onUnmountAutoFocus?: (event: Event) => void;\n}\n\nconst FocusScope = React.forwardRef((props, forwardedRef) => {\n const {\n loop = false,\n trapped = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n ...scopeProps\n } = props;\n const [container, setContainer] = React.useState(null);\n const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));\n\n const focusScope = React.useRef({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n },\n }).current;\n\n // Takes care of trapping focus if focus is moved outside programmatically for example\n React.useEffect(() => {\n if (trapped) {\n function handleFocusIn(event: FocusEvent) {\n if (focusScope.paused || !container) return;\n const target = event.target as HTMLElement | null;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }\n\n function handleFocusOut(event: FocusEvent) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n\n // A `focusout` event with a `null` `relatedTarget` will happen in at least two cases:\n //\n // 1. When the user switches app/tabs/windows/the browser itself loses focus.\n // 2. In Google Chrome, when the focused element is removed from the DOM.\n //\n // We let the browser do its thing here because:\n //\n // 1. The browser already keeps a memory of what's focused for when the page gets refocused.\n // 2. In Google Chrome, if we try to focus the deleted focused element (as per below), it\n // throws the CPU to 100%, so we avoid doing anything for this reason here too.\n if (relatedTarget === null) return;\n\n // If the focus has moved to an actual legitimate element (`relatedTarget !== null`)\n // that is outside the container, we move focus to the last valid focused element inside.\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }\n\n // When the focused element gets removed from the DOM, browsers move focus\n // back to the document.body. In this case, we move focus to the container\n // to keep focus trapped correctly.\n function handleMutations(mutations: MutationRecord[]) {\n const focusedElement = document.activeElement as HTMLElement | null;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations) {\n if (mutation.removedNodes.length > 0) focus(container);\n }\n }\n\n document.addEventListener('focusin', handleFocusIn);\n document.addEventListener('focusout', handleFocusOut);\n const mutationObserver = new MutationObserver(handleMutations);\n if (container) mutationObserver.observe(container, { childList: true, subtree: true });\n\n return () => {\n document.removeEventListener('focusin', handleFocusIn);\n document.removeEventListener('focusout', handleFocusOut);\n mutationObserver.disconnect();\n };\n }\n }, [trapped, container, focusScope.paused]);\n\n React.useEffect(() => {\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement as HTMLElement | null;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n\n return () => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n\n // We hit a react bug (fixed in v17) with focusing in unmount.\n // We need to delay the focus a little to get around it for now.\n // See: https://github.com/facebook/react/issues/17894\n setTimeout(() => {\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n // we need to remove the listener after we `dispatchEvent`\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n\n // Takes care of looping focus (when tabbing whilst at the edges)\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n\n const isTabKey = event.key === 'Tab' && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement as HTMLElement | null;\n\n if (isTabKey && focusedElement) {\n const container = event.currentTarget as HTMLElement;\n const [first, last] = getTabbableEdges(container);\n const hasTabbableElementsInside = first && last;\n\n // we can only wrap focus if we have tabbable edges\n if (!hasTabbableElementsInside) {\n if (focusedElement === container) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused]\n );\n\n return (\n \n );\n});\n\nFocusScope.displayName = FOCUS_SCOPE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Attempts focusing the first element in a list of candidates.\n * Stops when focus has actually moved.\n */\nfunction focusFirst(candidates: HTMLElement[], { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\n\n/**\n * Returns the first and last tabbable elements inside a container.\n */\nfunction getTabbableEdges(container: HTMLElement) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last] as const;\n}\n\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */\nfunction getTabbableCandidates(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n\n/**\n * Returns the first visible element in a list.\n * NOTE: Only checks visibility up to the `container`.\n */\nfunction findVisible(elements: HTMLElement[], container: HTMLElement) {\n for (const element of elements) {\n // we stop checking if it's hidden at the `container` level (excluding)\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\n\nfunction isHidden(node: HTMLElement, { upTo }: { upTo?: HTMLElement }) {\n if (getComputedStyle(node).visibility === 'hidden') return true;\n while (node) {\n // we stop at `upTo` (excluding it)\n if (upTo !== undefined && node === upTo) return false;\n if (getComputedStyle(node).display === 'none') return true;\n node = node.parentElement as HTMLElement;\n }\n return false;\n}\n\nfunction isSelectableInput(element: any): element is FocusableTarget & { select: () => void } {\n return element instanceof HTMLInputElement && 'select' in element;\n}\n\nfunction focus(element?: FocusableTarget | null, { select = false } = {}) {\n // only focus if that element is focusable\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n // NOTE: we prevent scrolling on focus, to minimize jarring transitions for users\n element.focus({ preventScroll: true });\n // only select if its not the same element, it supports selection and we need to select\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\n\n/* -------------------------------------------------------------------------------------------------\n * FocusScope stack\n * -----------------------------------------------------------------------------------------------*/\n\ntype FocusScopeAPI = { paused: boolean; pause(): void; resume(): void };\nconst focusScopesStack = createFocusScopesStack();\n\nfunction createFocusScopesStack() {\n /** A stack of focus scopes, with the active one at the top */\n let stack: FocusScopeAPI[] = [];\n\n return {\n add(focusScope: FocusScopeAPI) {\n // pause the currently active focus scope (at the top of the stack)\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n // remove in case it already exists (because we'll re-add it at the top of the stack)\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n\n remove(focusScope: FocusScopeAPI) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n },\n };\n}\n\nfunction arrayRemove(array: T[], item: T) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\n\nfunction removeLinks(items: HTMLElement[]) {\n return items.filter((item) => item.tagName !== 'A');\n}\n\nconst Root = FocusScope;\n\nexport {\n FocusScope,\n //\n Root,\n};\nexport type { FocusScopeProps };\n"],"names":["Root","Anchor","Content","Item","Arrow","Portal","Group","Label","CheckboxItem","RadioGroup","RadioItem","ItemIndicator","Separator","Sub","SubTrigger","SubContent","handleScroll","canScrollUp","canScrollDown","createCollection","itemData","createContextScope","jsx","useComposedRefs","createSlot","handleFocusIn","handleFocusOut","handleMutations","container"],"sourceRoot":"","ignoreList":[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,32,33,34,35,36,37,38]} \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/934-a4ef314b6e2cee37.js b/opencut-ui/_next/static/chunks/934-a4ef314b6e2cee37.js new file mode 100644 index 0000000..97909d7 --- /dev/null +++ b/opencut-ui/_next/static/chunks/934-a4ef314b6e2cee37.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[934],{2201:(t,e,i)=>{i.d(e,{Q:()=>n});let n=(0,i(74188).createContext)({transformPagePoint:t=>t,isStatic:!1,reducedMotion:"never"})},5983:(t,e,i)=>{function n(t,e){-1===t.indexOf(e)&&t.push(e)}function s(t,e){let i=t.indexOf(e);i>-1&&t.splice(i,1)}i.d(e,{Ai:()=>s,Kq:()=>n})},6042:(t,e,i)=>{i.d(e,{OQ:()=>h,bt:()=>o});var n=i(59751),s=i(29648),r=i(40573),a=i(10579);let o={current:void 0};class l{constructor(t,e={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=(t,e=!0)=>{let i=r.k.now();if(this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(t),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(let t of this.dependents)t.dirty();e&&this.events.renderRequest?.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=e.owner}setCurrent(t){this.current=t,this.updatedAt=r.k.now(),null===this.canTrackVelocity&&void 0!==t&&(this.canTrackVelocity=!isNaN(parseFloat(this.current)))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,e){this.events[t]||(this.events[t]=new n.v);let i=this.events[t].add(e);return"change"===t?()=>{i(),a.Gt.read(()=>{this.events.change.getSize()||this.stop()})}:i}clearListeners(){for(let t in this.events)this.events[t].clear()}attach(t,e){this.passiveEffect=t,this.stopPassiveEffect=e}set(t,e=!0){e&&this.passiveEffect?this.passiveEffect(t,this.updateAndNotify):this.updateAndNotify(t,e)}setWithVelocity(t,e,i){this.set(e),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-i}jump(t,e=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,e&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(t){this.dependents||(this.dependents=new Set),this.dependents.add(t)}removeDependent(t){this.dependents&&this.dependents.delete(t)}get(){return o.current&&o.current.push(this),this.current}getPrevious(){return this.prev}getVelocity(){let t=r.k.now();if(!this.canTrackVelocity||void 0===this.prevFrameValue||t-this.updatedAt>30)return 0;let e=Math.min(this.updatedAt-this.prevUpdatedAt,30);return(0,s.f)(parseFloat(this.current)-parseFloat(this.prevFrameValue),e)}start(t){return this.stop(),new Promise(e=>{this.hasAnimated=!0,this.animation=t(e),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function h(t,e){return new l(t,e)}},10579:(t,e,i)=>{i.d(e,{Gt:()=>s,PP:()=>o,WG:()=>r,uv:()=>a});var n=i(68722);let{schedule:s,cancel:r,state:a,steps:o}=(0,i(26779).I)("undefined"!=typeof requestAnimationFrame?requestAnimationFrame:n.l,!0)},11143:(t,e,i)=>{i.d(e,{$:()=>n,V:()=>s});let n=()=>{},s=()=>{}},13343:(t,e,i)=>{i.d(e,{u:()=>s});var n=i(70560);let s={test:(0,i(49889).$)("#"),parse:function(t){let e="",i="",n="",s="";return t.length>5?(e=t.substring(1,3),i=t.substring(3,5),n=t.substring(5,7),s=t.substring(7,9)):(e=t.substring(1,2),i=t.substring(2,3),n=t.substring(3,4),s=t.substring(4,5),e+=e,i+=i,n+=n,s+=s),{red:parseInt(e,16),green:parseInt(i,16),blue:parseInt(n,16),alpha:s?parseInt(s,16)/255:1}},transform:n.B.transform}},15700:(t,e,i)=>{i.d(e,{A:()=>n});let n=(0,i(88077).A)("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]])},16314:(t,e,i)=>{i.d(e,{M:()=>s});var n=i(74188);function s(t){let e=(0,n.useRef)(null);return null===e.current&&(e.current=t()),e.current}},18217:(t,e,i)=>{i.d(e,{q:()=>n});let n=(t,e,i)=>i>e?e:i{i.d(e,{KN:()=>r,gQ:()=>h,px:()=>a,uj:()=>s,vh:()=>o,vw:()=>l});let n=t=>({test:e=>"string"==typeof e&&e.endsWith(t)&&1===e.split(" ").length,parse:parseFloat,transform:e=>`${e}${t}`}),s=n("deg"),r=n("%"),a=n("px"),o=n("vh"),l=n("vw"),h={...r,parse:t=>r.parse(t)/100,transform:t=>r.transform(100*t)}},24543:(t,e,i)=>{i.d(e,{V:()=>u,f:()=>m});var n=i(52648);let s=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;var r=i(33742),a=i(61101);let o="number",l="color",h=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function u(t){let e=t.toString(),i=[],s={color:[],number:[],var:[]},r=[],a=0,u=e.replace(h,t=>(n.y.test(t)?(s.color.push(a),r.push(l),i.push(n.y.parse(t))):t.startsWith("var(")?(s.var.push(a),r.push("var"),i.push(t)):(s.number.push(a),r.push(o),i.push(parseFloat(t))),++a,"${}")).split("${}");return{values:i,split:u,indexes:s,types:r}}function d(t){return u(t).values}function c(t){let{split:e,types:i}=u(t),s=e.length;return t=>{let r="";for(let h=0;h"number"==typeof t?0:n.y.test(t)?n.y.getAnimatableNone(t):t,m={test:function(t){return isNaN(t)&&"string"==typeof t&&(t.match(r.S)?.length||0)+(t.match(s)?.length||0)>0},parse:d,createTransformer:c,getAnimatableNone:function(t){let e=d(t);return c(t)(e.map(p))}}},26779:(t,e,i)=>{i.d(e,{I:()=>a});var n=i(29864);let s=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];var r=i(85488);function a(t,e){let i=!1,a=!0,o={delta:0,timestamp:0,isProcessing:!1},l=()=>i=!0,h=s.reduce((t,i)=>(t[i]=function(t,e){let i=new Set,n=new Set,s=!1,a=!1,o=new WeakSet,l={delta:0,timestamp:0,isProcessing:!1},h=0;function u(e){o.has(e)&&(d.schedule(e),t()),h++,e(l)}let d={schedule:(t,e=!1,r=!1)=>{let a=r&&s?i:n;return e&&o.add(t),a.has(t)||a.add(t),t},cancel:t=>{n.delete(t),o.delete(t)},process:t=>{if(l=t,s){a=!0;return}s=!0,[i,n]=[n,i],i.forEach(u),e&&r.Q.value&&r.Q.value.frameloop[e].push(h),h=0,i.clear(),s=!1,a&&(a=!1,d.process(t))}};return d}(l,e?i:void 0),t),{}),{setup:u,read:d,resolveKeyframes:c,preUpdate:p,update:m,preRender:f,render:v,postRender:y}=h,g=()=>{let s=n.W.useManualTiming?o.timestamp:performance.now();i=!1,n.W.useManualTiming||(o.delta=a?1e3/60:Math.max(Math.min(s-o.timestamp,40),1)),o.timestamp=s,o.isProcessing=!0,u.process(o),d.process(o),c.process(o),p.process(o),m.process(o),f.process(o),v.process(o),y.process(o),o.isProcessing=!1,i&&e&&(a=!1,t(g))};return{schedule:s.reduce((e,n)=>{let s=h[n];return e[n]=(e,n=!1,r=!1)=>(!i&&(i=!0,a=!0,o.isProcessing||t(g)),s.schedule(e,n,r)),e},{}),cancel:t=>{for(let e=0;e{i.d(e,{f:()=>n});function n(t,e){return e?1e3/e*t:0}},29864:(t,e,i)=>{i.d(e,{W:()=>n});let n={}},33742:(t,e,i)=>{i.d(e,{S:()=>n});let n=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu},33762:(t,e,i)=>{i.d(e,{k:()=>n});let n=(t,e,i)=>t+(e-t)*i},37797:(t,e,i)=>{i.d(e,{P:()=>sV});var n=i(74188);let s=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],r=new Set(s),a=t=>180*t/Math.PI,o=t=>h(a(Math.atan2(t[1],t[0]))),l={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:t=>(Math.abs(t[0])+Math.abs(t[3]))/2,rotate:o,rotateZ:o,skewX:t=>a(Math.atan(t[1])),skewY:t=>a(Math.atan(t[2])),skew:t=>(Math.abs(t[1])+Math.abs(t[2]))/2},h=t=>((t%=360)<0&&(t+=360),t),u=t=>Math.sqrt(t[0]*t[0]+t[1]*t[1]),d=t=>Math.sqrt(t[4]*t[4]+t[5]*t[5]),c={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:u,scaleY:d,scale:t=>(u(t)+d(t))/2,rotateX:t=>h(a(Math.atan2(t[6],t[5]))),rotateY:t=>h(a(Math.atan2(-t[2],t[0]))),rotateZ:o,rotate:o,skewX:t=>a(Math.atan(t[4])),skewY:t=>a(Math.atan(t[1])),skew:t=>(Math.abs(t[1])+Math.abs(t[4]))/2};function p(t){return+!!t.includes("scale")}function m(t,e){let i,n;if(!t||"none"===t)return p(e);let s=t.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);if(s)i=c,n=s;else{let e=t.match(/^matrix\(([-\d.e\s,]+)\)$/u);i=l,n=e}if(!n)return p(e);let r=i[e],a=n[1].split(",").map(f);return"function"==typeof r?r(a):a[r]}function f(t){return parseFloat(t.trim())}var v=i(98758);function y({top:t,left:e,right:i,bottom:n}){return{x:{min:e,max:i},y:{min:t,max:n}}}var g=i(33762);function x(t){return void 0===t||1===t}function w({scale:t,scaleX:e,scaleY:i}){return!x(t)||!x(e)||!x(i)}function b(t){return w(t)||T(t)||t.z||t.rotate||t.rotateX||t.rotateY||t.skewX||t.skewY}function T(t){var e,i;return(e=t.x)&&"0%"!==e||(i=t.y)&&"0%"!==i}function P(t,e,i,n,s){return void 0!==s&&(t=n+s*(t-n)),n+i*(t-n)+e}function S(t,e=0,i=1,n,s){t.min=P(t.min,e,i,n,s),t.max=P(t.max,e,i,n,s)}function A(t,{x:e,y:i}){S(t.x,e.translate,e.scale,e.originPoint),S(t.y,i.translate,i.scale,i.originPoint)}function V(t,e){t.min=t.min+e,t.max=t.max+e}function M(t,e,i,n,s=.5){let r=(0,g.k)(t.min,t.max,s);S(t,e,i,r,n)}function k(t,e){M(t.x,e.x,e.scaleX,e.scale,e.originX),M(t.y,e.y,e.scaleY,e.scale,e.originY)}function E(t,e){return y(function(t,e){if(!e)return t;let i=e({x:t.left,y:t.top}),n=e({x:t.right,y:t.bottom});return{top:i.y,left:i.x,bottom:n.y,right:n.x}}(t.getBoundingClientRect(),e))}let D=new Set(["width","height","top","left","right","bottom",...s]);var C=i(54375),j=i(23782);let R=t=>e=>e.test(t),L=[C.ai,j.px,j.KN,j.uj,j.vw,j.vh,{test:t=>"auto"===t,parse:t=>t}],O=t=>L.find(R(t));var F=i(11143);let B=t=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(t),I=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u,N=t=>t===C.ai||t===j.px,U=new Set(["x","y","z"]),W=s.filter(t=>!U.has(t)),$={width:({x:t},{paddingLeft:e="0",paddingRight:i="0"})=>t.max-t.min-parseFloat(e)-parseFloat(i),height:({y:t},{paddingTop:e="0",paddingBottom:i="0"})=>t.max-t.min-parseFloat(e)-parseFloat(i),top:(t,{top:e})=>parseFloat(e),left:(t,{left:e})=>parseFloat(e),bottom:({y:t},{top:e})=>parseFloat(e)+(t.max-t.min),right:({x:t},{left:e})=>parseFloat(e)+(t.max-t.min),x:(t,{transform:e})=>m(e,"x"),y:(t,{transform:e})=>m(e,"y")};$.translateX=$.x,$.translateY=$.y;var G=i(10579);let q=new Set,z=!1,X=!1,K=!1;function Y(){if(X){let t=Array.from(q).filter(t=>t.needsMeasurement),e=new Set(t.map(t=>t.element)),i=new Map;e.forEach(t=>{let e=function(t){let e=[];return W.forEach(i=>{let n=t.getValue(i);void 0!==n&&(e.push([i,n.get()]),n.set(+!!i.startsWith("scale")))}),e}(t);e.length&&(i.set(t,e),t.render())}),t.forEach(t=>t.measureInitialState()),e.forEach(t=>{t.render();let e=i.get(t);e&&e.forEach(([e,i])=>{t.getValue(e)?.set(i)})}),t.forEach(t=>t.measureEndState()),t.forEach(t=>{void 0!==t.suspendedScrollY&&window.scrollTo(0,t.suspendedScrollY)})}X=!1,z=!1,q.forEach(t=>t.complete(K)),q.clear()}function H(){q.forEach(t=>{t.readKeyframes(),t.needsMeasurement&&(X=!0)})}class Q{constructor(t,e,i,n,s,r=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...t],this.onComplete=e,this.name=i,this.motionValue=n,this.element=s,this.isAsync=r}scheduleResolve(){this.state="scheduled",this.isAsync?(q.add(this),z||(z=!0,G.Gt.read(H),G.Gt.resolveKeyframes(Y))):(this.readKeyframes(),this.complete())}readKeyframes(){let{unresolvedKeyframes:t,name:e,element:i,motionValue:n}=this;if(null===t[0]){let s=n?.get(),r=t[t.length-1];if(void 0!==s)t[0]=s;else if(i&&e){let n=i.readValue(e,r);null!=n&&(t[0]=n)}void 0===t[0]&&(t[0]=r),n&&void 0===s&&n.set(t[0])}for(let e=1;e/^0[^.\s]+$/u.test(t);var Z=i(24543),J=i(33742);let tt=new Set(["brightness","contrast","saturate","opacity"]);function te(t){let[e,i]=t.slice(0,-1).split("(");if("drop-shadow"===e)return t;let[n]=i.match(J.S)||[];if(!n)return t;let s=i.replace(n,""),r=+!!tt.has(e);return n!==i&&(r*=100),e+"("+r+s+")"}let ti=/\b([a-z-]*)\(.*?\)/gu,tn={...Z.f,getAnimatableNone:t=>{let e=t.match(ti);return e?e.map(te).join(" "):t}};var ts=i(52648);let tr={...C.ai,transform:Math.round},ta={rotate:j.uj,rotateX:j.uj,rotateY:j.uj,rotateZ:j.uj,scale:C.hs,scaleX:C.hs,scaleY:C.hs,scaleZ:C.hs,skew:j.uj,skewX:j.uj,skewY:j.uj,distance:j.px,translateX:j.px,translateY:j.px,translateZ:j.px,x:j.px,y:j.px,z:j.px,perspective:j.px,transformPerspective:j.px,opacity:C.X4,originX:j.gQ,originY:j.gQ,originZ:j.px},to={borderWidth:j.px,borderTopWidth:j.px,borderRightWidth:j.px,borderBottomWidth:j.px,borderLeftWidth:j.px,borderRadius:j.px,radius:j.px,borderTopLeftRadius:j.px,borderTopRightRadius:j.px,borderBottomRightRadius:j.px,borderBottomLeftRadius:j.px,width:j.px,maxWidth:j.px,height:j.px,maxHeight:j.px,top:j.px,right:j.px,bottom:j.px,left:j.px,padding:j.px,paddingTop:j.px,paddingRight:j.px,paddingBottom:j.px,paddingLeft:j.px,margin:j.px,marginTop:j.px,marginRight:j.px,marginBottom:j.px,marginLeft:j.px,backgroundPositionX:j.px,backgroundPositionY:j.px,...ta,zIndex:tr,fillOpacity:C.X4,strokeOpacity:C.X4,numOctaves:tr},tl={...to,color:ts.y,backgroundColor:ts.y,outlineColor:ts.y,fill:ts.y,stroke:ts.y,borderColor:ts.y,borderTopColor:ts.y,borderRightColor:ts.y,borderBottomColor:ts.y,borderLeftColor:ts.y,filter:tn,WebkitFilter:tn},th=t=>tl[t];function tu(t,e){let i=th(t);return i!==tn&&(i=Z.f),i.getAnimatableNone?i.getAnimatableNone(e):void 0}let td=new Set(["auto","none","0"]);class tc extends Q{constructor(t,e,i,n,s){super(t,e,i,n,s,!0)}readKeyframes(){let{unresolvedKeyframes:t,element:e,name:i}=this;if(!e||!e.current)return;super.readKeyframes();for(let i=0;i{t.getValue(e).set(i)}),this.resolveNoneKeyframes()}}var tp=i(91179),tm=i(40573),tf=i(6042);let tv=[...L,ts.y,Z.f],{schedule:ty}=(0,i(26779).I)(queueMicrotask,!1);var tg=i(59751);let tx={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},tw={};for(let t in tx)tw[t]={isEnabled:e=>tx[t].some(t=>!!e[t])};let tb=()=>({translate:0,scale:1,origin:0,originPoint:0}),tT=()=>({x:tb(),y:tb()}),tP=()=>({min:0,max:0}),tS=()=>({x:tP(),y:tP()});var tA=i(77871);let tV={current:null},tM={current:!1},tk=new WeakMap;function tE(t){return null!==t&&"object"==typeof t&&"function"==typeof t.start}function tD(t){return"string"==typeof t||Array.isArray(t)}let tC=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],tj=["initial",...tC];function tR(t){return tE(t.animate)||tj.some(e=>tD(t[e]))}function tL(t){return!!(tR(t)||t.variants)}function tO(t){let e=[{},{}];return t?.values.forEach((t,i)=>{e[0][i]=t.get(),e[1][i]=t.getVelocity()}),e}function tF(t,e,i,n){if("function"==typeof e){let[s,r]=tO(n);e=e(void 0!==i?i:t.custom,s,r)}if("string"==typeof e&&(e=t.variants&&t.variants[e]),"function"==typeof e){let[s,r]=tO(n);e=e(void 0!==i?i:t.custom,s,r)}return e}let tB=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class tI{scrapeMotionValuesFromProps(t,e,i){return{}}constructor({parent:t,props:e,presenceContext:i,reducedMotionConfig:n,blockInitialAnimation:s,visualState:r},a={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Q,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{let t=tm.k.now();this.renderScheduledAtthis.bindToMotionValue(e,t)),tM.current||function(){if(tM.current=!0,tA.B)if(window.matchMedia){let t=window.matchMedia("(prefers-reduced-motion)"),e=()=>tV.current=t.matches;t.addEventListener("change",e),e()}else tV.current=!1}(),this.shouldReduceMotion="never"!==this.reducedMotionConfig&&("always"===this.reducedMotionConfig||tV.current),this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){for(let t in this.projection&&this.projection.unmount(),(0,G.WG)(this.notifyUpdate),(0,G.WG)(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this),this.events)this.events[t].clear();for(let t in this.features){let e=this.features[t];e&&(e.unmount(),e.isMounted=!1)}this.current=null}bindToMotionValue(t,e){let i;this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();let n=r.has(t);n&&this.onBindTransform&&this.onBindTransform();let s=e.on("change",e=>{this.latestValues[t]=e,this.props.onUpdate&&G.Gt.preRender(this.notifyUpdate),n&&this.projection&&(this.projection.isTransformDirty=!0)}),a=e.on("renderRequest",this.scheduleRender);window.MotionCheckAppearSync&&(i=window.MotionCheckAppearSync(this,t,e)),this.valueSubscriptions.set(t,()=>{s(),a(),i&&i(),e.owner&&e.stop()})}sortNodePosition(t){return this.current&&this.sortInstanceNodePosition&&this.type===t.type?this.sortInstanceNodePosition(this.current,t.current):0}updateFeatures(){let t="animation";for(t in tw){let e=tw[t];if(!e)continue;let{isEnabled:i,Feature:n}=e;if(!this.features[t]&&n&&i(this.props)&&(this.features[t]=new n(this)),this.features[t]){let e=this.features[t];e.isMounted?e.update():(e.mount(),e.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):tS()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,e){this.latestValues[t]=e}update(t,e){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=e;for(let e=0;ee.variantChildren.delete(t)}addValue(t,e){let i=this.values.get(t);e!==i&&(i&&this.removeValue(t),this.bindToMotionValue(t,e),this.values.set(t,e),this.latestValues[t]=e.get())}removeValue(t){this.values.delete(t);let e=this.valueSubscriptions.get(t);e&&(e(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,e){if(this.props.values&&this.props.values[t])return this.props.values[t];let i=this.values.get(t);return void 0===i&&void 0!==e&&(i=(0,tf.OQ)(null===e?void 0:e,{owner:this}),this.addValue(t,i)),i}readValue(t,e){let i=void 0===this.latestValues[t]&&this.current?this.getBaseTargetFromProps(this.props,t)??this.readValueFromInstance(this.current,t,this.options):this.latestValues[t];if(null!=i){if("string"==typeof i&&(B(i)||_(i)))i=parseFloat(i);else{let n;n=i,!tv.find(R(n))&&Z.f.test(e)&&(i=tu(t,e))}this.setBaseTarget(t,(0,tp.S)(i)?i.get():i)}return(0,tp.S)(i)?i.get():i}setBaseTarget(t,e){this.baseTarget[t]=e}getBaseTarget(t){let e,{initial:i}=this.props;if("string"==typeof i||"object"==typeof i){let n=tF(this.props,i,this.presenceContext?.custom);n&&(e=n[t])}if(i&&void 0!==e)return e;let n=this.getBaseTargetFromProps(this.props,t);return void 0===n||(0,tp.S)(n)?void 0!==this.initialValues[t]&&void 0===e?void 0:this.baseTarget[t]:n}on(t,e){return this.events[t]||(this.events[t]=new tg.v),this.events[t].add(e)}notify(t,...e){this.events[t]&&this.events[t].notify(...e)}scheduleRenderMicrotask(){ty.render(this.render)}}class tN extends tI{constructor(){super(...arguments),this.KeyframeResolver=tc}sortInstanceNodePosition(t,e){return 2&t.compareDocumentPosition(e)?1:-1}getBaseTargetFromProps(t,e){return t.style?t.style[e]:void 0}removeValueFromRenderState(t,{vars:e,style:i}){delete e[t],delete i[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);let{children:t}=this.props;(0,tp.S)(t)&&(this.childSubscription=t.on("change",t=>{this.current&&(this.current.textContent=`${t}`)}))}}let tU=(t,e)=>e&&"number"==typeof t?e.transform(t):t,tW={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},t$=s.length;function tG(t,e,i){let{style:n,vars:a,transformOrigin:o}=t,l=!1,h=!1;for(let t in e){let i=e[t];if(r.has(t)){l=!0;continue}if((0,v.j)(t)){a[t]=i;continue}{let e=tU(i,to[t]);t.startsWith("origin")?(h=!0,o[t]=e):n[t]=e}}if(!e.transform&&(l||i?n.transform=function(t,e,i){let n="",r=!0;for(let a=0;a{let{transform:i="none"}=getComputedStyle(t);return m(i,e)})(t,e);{let i=window.getComputedStyle(t),n=((0,v.j)(e)?i.getPropertyValue(e):i[e])||0;return"string"==typeof n?n.trim():n}}measureInstanceViewportBox(t,{transformPagePoint:e}){return E(t,e)}build(t,e,i){tG(t,e,i.transformTemplate)}scrapeMotionValuesFromProps(t,e,i){return tK(t,e,i)}}let tH=t=>t.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),tQ={offset:"stroke-dashoffset",array:"stroke-dasharray"},t_={offset:"strokeDashoffset",array:"strokeDasharray"};function tZ(t,{attrX:e,attrY:i,attrScale:n,pathLength:s,pathSpacing:r=1,pathOffset:a=0,...o},l,h,u){if(tG(t,o,h),l){t.style.viewBox&&(t.attrs.viewBox=t.style.viewBox);return}t.attrs=t.style,t.style={};let{attrs:d,style:c}=t;d.transform&&(c.transform=d.transform,delete d.transform),(c.transform||d.transformOrigin)&&(c.transformOrigin=d.transformOrigin??"50% 50%",delete d.transformOrigin),c.transform&&(c.transformBox=u?.transformBox??"fill-box",delete d.transformBox),void 0!==e&&(d.x=e),void 0!==i&&(d.y=i),void 0!==n&&(d.scale=n),void 0!==s&&function(t,e,i=1,n=0,s=!0){t.pathLength=1;let r=s?tQ:t_;t[r.offset]=j.px.transform(-n);let a=j.px.transform(e),o=j.px.transform(i);t[r.array]=`${a} ${o}`}(d,s,r,a,!1)}let tJ=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),t0=t=>"string"==typeof t&&"svg"===t.toLowerCase();function t1(t,e,i){let n=tK(t,e,i);for(let i in t)((0,tp.S)(t[i])||(0,tp.S)(e[i]))&&(n[-1!==s.indexOf(i)?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i]=t[i]);return n}class t2 extends tN{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=tS}getBaseTargetFromProps(t,e){return t[e]}readValueFromInstance(t,e){if(r.has(e)){let t=th(e);return t&&t.default||0}return e=tJ.has(e)?e:tH(e),t.getAttribute(e)}scrapeMotionValuesFromProps(t,e,i){return t1(t,e,i)}build(t,e,i){tZ(t,e,this.isSVGTag,i.transformTemplate,i.style)}renderInstance(t,e,i,n){for(let i in tq(t,e,void 0,n),e.attrs)t.setAttribute(tJ.has(i)?i:tH(i),e.attrs[i])}mount(t){this.isSVGTag=t0(t.tagName),super.mount(t)}}let t3=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function t5(t){if("string"!=typeof t||t.includes("-"));else if(t3.indexOf(t)>-1||/[A-Z]/u.test(t))return!0;return!1}var t4=i(28064);let t8=(0,n.createContext)({}),t7=(0,n.createContext)({strict:!1});var t9=i(2201);let t6=(0,n.createContext)({});function et(t){return Array.isArray(t)?t.join(" "):t}let ee=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function ei(t,e,i){for(let n in e)(0,tp.S)(e[n])||tX(n,i)||(t[n]=e[n])}let en=()=>({...ee(),attrs:{}}),es=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function er(t){return t.startsWith("while")||t.startsWith("drag")&&"draggable"!==t||t.startsWith("layout")||t.startsWith("onTap")||t.startsWith("onPan")||t.startsWith("onLayout")||es.has(t)}let ea=t=>!er(t);try{!function(t){"function"==typeof t&&(ea=e=>e.startsWith("on")?!er(e):t(e))}(require("@emotion/is-prop-valid").default)}catch{}let eo=(0,n.createContext)(null);var el=i(16314);function eh(t){return(0,tp.S)(t)?t.get():t}let eu=t=>(e,i)=>{let s=(0,n.useContext)(t6),r=(0,n.useContext)(eo),a=()=>(function({scrapeMotionValuesFromProps:t,createRenderState:e},i,n,s){return{latestValues:function(t,e,i,n){let s={},r=n(t,{});for(let t in r)s[t]=eh(r[t]);let{initial:a,animate:o}=t,l=tR(t),h=tL(t);e&&h&&!l&&!1!==t.inherit&&(void 0===a&&(a=e.initial),void 0===o&&(o=e.animate));let u=!!i&&!1===i.initial,d=(u=u||!1===a)?o:a;if(d&&"boolean"!=typeof d&&!tE(d)){let e=Array.isArray(d)?d:[d];for(let i=0;i1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,a=arguments.length>3?arguments[3]:void 0;r&&function(t){for(let e in t)tw[e]={...tw[e],...t[e]}}(r);let o=t5(t)?ec:ed;function l(e,i){var r;let l,h={...(0,n.useContext)(t9.Q),...e,layoutId:function(t){let{layoutId:e}=t,i=(0,n.useContext)(t8).id;return i&&void 0!==e?i+"-"+e:e}(e)},{isStatic:u}=h,d=function(t){let{initial:e,animate:i}=function(t,e){if(tR(t)){let{initial:e,animate:i}=t;return{initial:!1===e||tD(e)?e:void 0,animate:tD(i)?i:void 0}}return!1!==t.inherit?e:{}}(t,(0,n.useContext)(t6));return(0,n.useMemo)(()=>({initial:e,animate:i}),[et(e),et(i)])}(e),c=o(e,u);if(!u&&tA.B){(0,n.useContext)(t7).strict;let e=function(t){let{drag:e,layout:i}=tw;if(!e&&!i)return{};let n={...e,...i};return{MeasureLayout:(null==e?void 0:e.isEnabled(t))||(null==i?void 0:i.isEnabled(t))?n.MeasureLayout:void 0,ProjectionNode:n.ProjectionNode}}(h);l=e.MeasureLayout,d.visualElement=function(t,e,i,s,r){let{visualElement:a}=(0,n.useContext)(t6),o=(0,n.useContext)(t7),l=(0,n.useContext)(eo),h=(0,n.useContext)(t9.Q).reducedMotion,u=(0,n.useRef)(null);s=s||o.renderer,!u.current&&s&&(u.current=s(t,{visualState:e,parent:a,props:i,presenceContext:l,blockInitialAnimation:!!l&&!1===l.initial,reducedMotionConfig:h}));let d=u.current,c=(0,n.useContext)(ev);d&&!d.projection&&r&&("html"===d.type||"svg"===d.type)&&function(t,e,i,n){let{layoutId:s,layout:r,drag:a,dragConstraints:o,layoutScroll:l,layoutRoot:h,layoutCrossfade:u}=e;t.projection=new i(t.latestValues,e["data-framer-portal-id"]?void 0:function t(e){if(e)return!1!==e.options.allowProjection?e.projection:t(e.parent)}(t.parent)),t.projection.setOptions({layoutId:s,layout:r,alwaysMeasureLayout:!!a||o&&em(o),visualElement:t,animationType:"string"==typeof r?r:"both",initialPromotionConfig:n,crossfade:u,layoutScroll:l,layoutRoot:h})}(u.current,i,r,c);let p=(0,n.useRef)(!1);(0,n.useInsertionEffect)(()=>{d&&p.current&&d.update(i,l)});let m=i[ef],f=(0,n.useRef)(!!m&&!window.MotionHandoffIsComplete?.(m)&&window.MotionHasOptimisedAnimation?.(m));return(0,ey.E)(()=>{d&&(p.current=!0,window.MotionIsMounted=!0,d.updateFeatures(),d.scheduleRenderMicrotask(),f.current&&d.animationState&&d.animationState.animateChanges())}),(0,n.useEffect)(()=>{d&&(!f.current&&d.animationState&&d.animationState.animateChanges(),f.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(m)}),f.current=!1))}),d}(t,c,h,a,e.ProjectionNode)}return(0,t4.jsxs)(t6.Provider,{value:d,children:[l&&d.visualElement?(0,t4.jsx)(l,{visualElement:d.visualElement,...h}):null,function(t,e,i,{latestValues:s},r,a=!1){let o=(t5(t)?function(t,e,i,s){let r=(0,n.useMemo)(()=>{let i=en();return tZ(i,e,t0(s),t.transformTemplate,t.style),{...i.attrs,style:{...i.style}}},[e]);if(t.style){let e={};ei(e,t.style,t),r.style={...e,...r.style}}return r}:function(t,e){let i={},s=function(t,e){let i=t.style||{},s={};return ei(s,i,t),Object.assign(s,function({transformTemplate:t},e){return(0,n.useMemo)(()=>{let i=ee();return tG(i,e,t),Object.assign({},i.vars,i.style)},[e])}(t,e)),s}(t,e);return t.drag&&!1!==t.dragListener&&(i.draggable=!1,s.userSelect=s.WebkitUserSelect=s.WebkitTouchCallout="none",s.touchAction=!0===t.drag?"none":`pan-${"x"===t.drag?"y":"x"}`),void 0===t.tabIndex&&(t.onTap||t.onTapStart||t.whileTap)&&(i.tabIndex=0),i.style=s,i})(e,s,r,t),l=function(t,e,i){let n={};for(let s in t)("values"!==s||"object"!=typeof t.values)&&(ea(s)||!0===i&&er(s)||!e&&!er(s)||t.draggable&&s.startsWith("onDrag"))&&(n[s]=t[s]);return n}(e,"string"==typeof t,a),h=t!==n.Fragment?{...l,...o,ref:i}:{},{children:u}=e,d=(0,n.useMemo)(()=>(0,tp.S)(u)?u.get():u,[u]);return(0,n.createElement)(t,{...h,children:d})}(t,e,(r=d.visualElement,(0,n.useCallback)(t=>{t&&c.onMount&&c.onMount(t),r&&(t?r.mount(t):r.unmount()),i&&("function"==typeof i?i(t):em(i)&&(i.current=t))},[r])),c,u,s)]})}l.displayName="motion.".concat("string"==typeof t?t:"create(".concat(null!=(i=null!=(e=t.displayName)?e:t.name)?i:"",")"));let h=(0,n.forwardRef)(l);return h[ep]=t,h}function ex(t,e,i){let n=t.getProps();return tF(n,e,void 0!==i?i:n.custom,t)}function ew(t,e){return t?.[e]??t?.default??t}let eb=t=>Array.isArray(t);var eT=i(29864);function eP(t,e){let i=t.getValue("willChange");if((0,tp.S)(i)&&i.add)return i.add(e);if(!i&&eT.W.WillChange){let i=new eT.W.WillChange("auto");t.addValue("willChange",i),i.add(e)}}var eS=i(73682),eA=i(18217);let eV=t=>1e3*t,eM={layout:0,mainThread:0,waapi:0};var ek=i(41283);let eE=t=>{let e=({timestamp:e})=>t(e);return{start:(t=!0)=>G.Gt.update(e,t),stop:()=>(0,G.WG)(e),now:()=>G.uv.isProcessing?G.uv.timestamp:tm.k.now()}},eD=(t,e,i=10)=>{let n="",s=Math.max(Math.round(e/i),2);for(let e=0;e=2e4?1/0:e}var ej=i(29648);function eR(t,e,i){let n=Math.max(e-5,0);return(0,ej.f)(i-t(n),e-n)}let eL={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1};function eO(t,e){return t*Math.sqrt(1-e*e)}let eF=["duration","bounce"],eB=["stiffness","damping","mass"];function eI(t,e){return e.some(e=>void 0!==t[e])}function eN(t=eL.visualDuration,e=eL.bounce){let i,n="object"!=typeof t?{visualDuration:t,keyframes:[0,1],bounce:e}:t,{restSpeed:s,restDelta:r}=n,a=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],l={done:!1,value:a},{stiffness:h,damping:u,mass:d,duration:c,velocity:p,isResolvedFromDuration:m}=function(t){let e={velocity:eL.velocity,stiffness:eL.stiffness,damping:eL.damping,mass:eL.mass,isResolvedFromDuration:!1,...t};if(!eI(t,eB)&&eI(t,eF))if(t.visualDuration){let i=2*Math.PI/(1.2*t.visualDuration),n=i*i,s=2*(0,eA.q)(.05,1,1-(t.bounce||0))*Math.sqrt(n);e={...e,mass:eL.mass,stiffness:n,damping:s}}else{let i=function({duration:t=eL.duration,bounce:e=eL.bounce,velocity:i=eL.velocity,mass:n=eL.mass}){let s,r;(0,F.$)(t<=eV(eL.maxDuration),"Spring duration must be 10 seconds or less","spring-duration-limit");let a=1-e;a=(0,eA.q)(eL.minDamping,eL.maxDamping,a),t=(0,eA.q)(eL.minDuration,eL.maxDuration,t/1e3),a<1?(s=e=>{let n=e*a,s=n*t;return .001-(n-i)/eO(e,a)*Math.exp(-s)},r=e=>{let n=e*a*t,r=Math.pow(a,2)*Math.pow(e,2)*t,o=Math.exp(-n),l=eO(Math.pow(e,2),a);return(n*i+i-r)*o*(-s(e)+.001>0?-1:1)/l}):(s=e=>-.001+Math.exp(-e*t)*((e-i)*t+1),r=e=>t*t*(i-e)*Math.exp(-e*t));let o=function(t,e,i){let n=i;for(let i=1;i<12;i++)n-=t(n)/e(n);return n}(s,r,5/t);if(t=eV(t),isNaN(o))return{stiffness:eL.stiffness,damping:eL.damping,duration:t};{let e=Math.pow(o,2)*n;return{stiffness:e,damping:2*a*Math.sqrt(n*e),duration:t}}}(t);(e={...e,...i,mass:eL.mass}).isResolvedFromDuration=!0}return e}({...n,velocity:-((n.velocity||0)/1e3)}),f=p||0,v=u/(2*Math.sqrt(h*d)),y=o-a,g=Math.sqrt(h/d)/1e3,x=5>Math.abs(y);if(s||(s=x?eL.restSpeed.granular:eL.restSpeed.default),r||(r=x?eL.restDelta.granular:eL.restDelta.default),v<1){let t=eO(g,v);i=e=>o-Math.exp(-v*g*e)*((f+v*g*y)/t*Math.sin(t*e)+y*Math.cos(t*e))}else if(1===v)i=t=>o-Math.exp(-g*t)*(y+(f+g*y)*t);else{let t=g*Math.sqrt(v*v-1);i=e=>{let i=Math.exp(-v*g*e),n=Math.min(t*e,300);return o-i*((f+v*g*y)*Math.sinh(n)+t*y*Math.cosh(n))/t}}let w={calculatedDuration:m&&c||null,next:t=>{let e=i(t);if(m)l.done=t>=c;else{let n=0===t?f:0;v<1&&(n=0===t?eV(f):eR(i,t,e));let a=Math.abs(o-e)<=r;l.done=Math.abs(n)<=s&&a}return l.value=l.done?o:e,l},toString:()=>{let t=Math.min(eC(w),2e4),e=eD(e=>w.next(t*e).value,t,30);return t+"ms "+e},toTransition:()=>{}};return w}function eU({keyframes:t,velocity:e=0,power:i=.8,timeConstant:n=325,bounceDamping:s=10,bounceStiffness:r=500,modifyTarget:a,min:o,max:l,restDelta:h=.5,restSpeed:u}){let d,c,p=t[0],m={done:!1,value:p},f=i*e,v=p+f,y=void 0===a?v:a(v);y!==v&&(f=y-p);let g=t=>-f*Math.exp(-t/n),x=t=>y+g(t),w=t=>{let e=g(t),i=x(t);m.done=Math.abs(e)<=h,m.value=m.done?y:i},b=t=>{let e;if(e=m.value,void 0!==o&&el){var i;d=t,c=eN({keyframes:[m.value,(i=m.value,void 0===o?l:void 0===l||Math.abs(o-i){let e=!1;return(c||void 0!==d||(e=!0,w(t),b(t)),void 0!==d&&t>=d)?c.next(t-d):(e||w(t),m)}}}eN.applyToOptions=t=>{let e=function(t,e=100,i){let n=i({...t,keyframes:[0,e]}),s=Math.min(eC(n),2e4);return{type:"keyframes",ease:t=>n.next(s*t).value/e,duration:s/1e3}}(t,100,eN);return t.ease=e.ease,t.duration=eV(e.duration),t.type="keyframes",t};var eW=i(68722);let e$=(t,e,i)=>(((1-3*i+3*e)*t+(3*i-6*e))*t+3*e)*t;function eG(t,e,i,n){return t===e&&i===n?eW.l:s=>0===s||1===s?s:e$(function(t,e,i,n,s){let r,a,o=0;do(r=e$(a=e+(i-e)/2,n,s)-t)>0?i=a:e=a;while(Math.abs(r)>1e-7&&++o<12);return a}(s,0,1,t,i),e,n)}let eq=eG(.42,0,1,1),ez=eG(0,0,.58,1),eX=eG(.42,0,.58,1),eK=t=>e=>e<=.5?t(2*e)/2:(2-t(2*(1-e)))/2,eY=t=>e=>1-t(1-e),eH=eG(.33,1.53,.69,.99),eQ=eY(eH),e_=eK(eQ),eZ=t=>(t*=2)<1?.5*eQ(t):.5*(2-Math.pow(2,-10*(t-1))),eJ=t=>1-Math.sin(Math.acos(t)),e0=eY(eJ),e1=eK(eJ),e2=t=>Array.isArray(t)&&"number"==typeof t[0],e3={linear:eW.l,easeIn:eq,easeInOut:eX,easeOut:ez,circIn:eJ,circInOut:e1,circOut:e0,backIn:eQ,backInOut:e_,backOut:eH,anticipate:eZ},e5=t=>{if(e2(t)){(0,F.V)(4===t.length,"Cubic bezier arrays must contain four numerical values.","cubic-bezier-length");let[e,i,n,s]=t;return eG(e,i,n,s)}return"string"==typeof t?((0,F.V)(void 0!==e3[t],`Invalid easing type '${t}'`,"invalid-easing-type"),e3[t]):t};var e4=i(80527),e8=i(69531);function e7({duration:t=300,keyframes:e,times:i,ease:n="easeInOut"}){var s;let r=Array.isArray(n)&&"number"!=typeof n[0]?n.map(e5):e5(n),a={done:!1,value:e[0]},o=(s=i&&i.length===e.length?i:function(t){let e=[0];return!function(t,e){let i=t[t.length-1];for(let n=1;n<=e;n++){let s=(0,e8.q)(0,e,n);t.push((0,g.k)(i,1,s))}}(e,t.length-1),e}(e),s.map(e=>e*t)),l=(0,e4.G)(o,e,{ease:Array.isArray(r)?r:e.map(()=>r||eX).splice(0,e.length-1)});return{calculatedDuration:t,next:e=>(a.value=l(e),a.done=e>=t,a)}}let e9=t=>null!==t;function e6(t,{repeat:e,repeatType:i="loop"},n,s=1){let r=t.filter(e9),a=s<0||e&&"loop"!==i&&e%2==1?0:r.length-1;return a&&void 0!==n?n:r[a]}let it={decay:eU,inertia:eU,tween:e7,keyframes:e7,spring:eN};function ie(t){"string"==typeof t.type&&(t.type=it[t.type])}class ii{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(t=>{this.resolve=t})}notifyFinished(){this.resolve()}then(t,e){return this.finished.then(t,e)}}let is=t=>t/100;class ir extends ii{constructor(t){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.stop=()=>{let{motionValue:t}=this.options;t&&t.updatedAt!==tm.k.now()&&this.tick(tm.k.now()),this.isStopped=!0,"idle"!==this.state&&(this.teardown(),this.options.onStop?.())},eM.mainThread++,this.options=t,this.initAnimation(),this.play(),!1===t.autoplay&&this.pause()}initAnimation(){let{options:t}=this;ie(t);let{type:e=e7,repeat:i=0,repeatDelay:n=0,repeatType:s,velocity:r=0}=t,{keyframes:a}=t,o=e||e7;o!==e7&&"number"!=typeof a[0]&&(this.mixKeyframes=(0,eS.F)(is,(0,ek.j)(a[0],a[1])),a=[0,100]);let l=o({...t,keyframes:a});"mirror"===s&&(this.mirroredGenerator=o({...t,keyframes:[...a].reverse(),velocity:-r})),null===l.calculatedDuration&&(l.calculatedDuration=eC(l));let{calculatedDuration:h}=l;this.calculatedDuration=h,this.resolvedDuration=h+n,this.totalDuration=this.resolvedDuration*(i+1)-n,this.generator=l}updateTime(t){let e=Math.round(t-this.startTime)*this.playbackSpeed;null!==this.holdTime?this.currentTime=this.holdTime:this.currentTime=e}tick(t,e=!1){let{generator:i,totalDuration:n,mixKeyframes:s,mirroredGenerator:r,resolvedDuration:a,calculatedDuration:o}=this;if(null===this.startTime)return i.next(0);let{delay:l=0,keyframes:h,repeat:u,repeatType:d,repeatDelay:c,type:p,onUpdate:m,finalKeyframe:f}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-n/this.speed,this.startTime)),e?this.currentTime=t:this.updateTime(t);let v=this.currentTime-l*(this.playbackSpeed>=0?1:-1),y=this.playbackSpeed>=0?v<0:v>n;this.currentTime=Math.max(v,0),"finished"===this.state&&null===this.holdTime&&(this.currentTime=n);let g=this.currentTime,x=i;if(u){let t=Math.min(this.currentTime,n)/a,e=Math.floor(t),i=t%1;!i&&t>=1&&(i=1),1===i&&e--,(e=Math.min(e,u+1))%2&&("reverse"===d?(i=1-i,c&&(i-=c/a)):"mirror"===d&&(x=r)),g=(0,eA.q)(0,1,i)*a}let w=y?{done:!1,value:h[0]}:x.next(g);s&&(w.value=s(w.value));let{done:b}=w;y||null===o||(b=this.playbackSpeed>=0?this.currentTime>=n:this.currentTime<=0);let T=null===this.holdTime&&("finished"===this.state||"running"===this.state&&b);return T&&p!==eU&&(w.value=e6(h,this.options,f,this.speed)),m&&m(w.value),T&&this.finish(),w}then(t,e){return this.finished.then(t,e)}get duration(){return this.calculatedDuration/1e3}get time(){return this.currentTime/1e3}set time(t){t=eV(t),this.currentTime=t,null===this.startTime||null!==this.holdTime||0===this.playbackSpeed?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.playbackSpeed),this.driver?.start(!1)}get speed(){return this.playbackSpeed}set speed(t){this.updateTime(tm.k.now());let e=this.playbackSpeed!==t;this.playbackSpeed=t,e&&(this.time=this.currentTime/1e3)}play(){if(this.isStopped)return;let{driver:t=eE,startTime:e}=this.options;this.driver||(this.driver=t(t=>this.tick(t))),this.options.onPlay?.();let i=this.driver.now();"finished"===this.state?(this.updateFinished(),this.startTime=i):null!==this.holdTime?this.startTime=i-this.holdTime:this.startTime||(this.startTime=e??i),"finished"===this.state&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(tm.k.now()),this.holdTime=this.currentTime}complete(){"running"!==this.state&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null,eM.mainThread--}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}attachTimeline(t){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),t.observe(this)}}function ia(t){let e;return()=>(void 0===e&&(e=t()),e)}let io=ia(()=>void 0!==window.ScrollTimeline);var il=i(85488);let ih={},iu=function(t,e){let i=ia(t);return()=>ih[e]??i()}(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch(t){return!1}return!0},"linearEasing"),id=([t,e,i,n])=>`cubic-bezier(${t}, ${e}, ${i}, ${n})`,ic={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:id([0,.65,.55,1]),circOut:id([.55,0,1,.45]),backIn:id([.31,.01,.66,-.59]),backOut:id([.33,1.53,.69,.99])};function ip(t){return"function"==typeof t&&"applyToOptions"in t}class im extends ii{constructor(t){if(super(),this.finishedTime=null,this.isStopped=!1,!t)return;let{element:e,name:i,keyframes:n,pseudoElement:s,allowFlatten:r=!1,finalKeyframe:a,onComplete:o}=t;this.isPseudoElement=!!s,this.allowFlatten=r,this.options=t,(0,F.V)("string"!=typeof t.type,'Mini animate() doesn\'t support "type" as a string.',"mini-spring");let l=function({type:t,...e}){return ip(t)&&iu()?t.applyToOptions(e):(e.duration??(e.duration=300),e.ease??(e.ease="easeOut"),e)}(t);this.animation=function(t,e,i,{delay:n=0,duration:s=300,repeat:r=0,repeatType:a="loop",ease:o="easeOut",times:l}={},h){let u={[e]:i};l&&(u.offset=l);let d=function t(e,i){if(e)return"function"==typeof e?iu()?eD(e,i):"ease-out":e2(e)?id(e):Array.isArray(e)?e.map(e=>t(e,i)||ic.easeOut):ic[e]}(o,s);Array.isArray(d)&&(u.easing=d),il.Q.value&&eM.waapi++;let c={delay:n,duration:s,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:r+1,direction:"reverse"===a?"alternate":"normal"};h&&(c.pseudoElement=h);let p=t.animate(u,c);return il.Q.value&&p.finished.finally(()=>{eM.waapi--}),p}(e,i,n,l,s),!1===l.autoplay&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!s){let t=e6(n,this.options,a,this.speed);this.updateMotionValue?this.updateMotionValue(t):function(t,e,i){e.startsWith("--")?t.style.setProperty(e,i):t.style[e]=i}(e,i,t),this.animation.cancel()}o?.(),this.notifyFinished()}}play(){this.isStopped||(this.animation.play(),"finished"===this.state&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch(t){}}stop(){if(this.isStopped)return;this.isStopped=!0;let{state:t}=this;"idle"!==t&&"finished"!==t&&(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){this.isPseudoElement||this.animation.commitStyles?.()}get duration(){return Number(this.animation.effect?.getComputedTiming?.().duration||0)/1e3}get time(){return(Number(this.animation.currentTime)||0)/1e3}set time(t){this.finishedTime=null,this.animation.currentTime=eV(t)}get speed(){return this.animation.playbackRate}set speed(t){t<0&&(this.finishedTime=null),this.animation.playbackRate=t}get state(){return null!==this.finishedTime?"finished":this.animation.playState}get startTime(){return Number(this.animation.startTime)}set startTime(t){this.animation.startTime=t}attachTimeline({timeline:t,observe:e}){return(this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,t&&io())?(this.animation.timeline=t,eW.l):e(this)}}let iv={anticipate:eZ,backInOut:e_,circInOut:e1};class iy extends im{constructor(t){!function(t){"string"==typeof t.ease&&t.ease in iv&&(t.ease=iv[t.ease])}(t),ie(t),super(t),t.startTime&&(this.startTime=t.startTime),this.options=t}updateMotionValue(t){let{motionValue:e,onUpdate:i,onComplete:n,element:s,...r}=this.options;if(!e)return;if(void 0!==t)return void e.set(t);let a=new ir({...r,autoplay:!1}),o=eV(this.finishedTime??this.time);e.setWithVelocity(a.sample(o-10).value,a.sample(o).value,10),a.stop()}}let ig=(t,e)=>"zIndex"!==e&&!!("number"==typeof t||Array.isArray(t)||"string"==typeof t&&(Z.f.test(t)||"0"===t)&&!t.startsWith("url(")),ix=new Set(["opacity","clipPath","filter","transform"]),iw=ia(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));class ib extends ii{constructor({autoplay:t=!0,delay:e=0,type:i="keyframes",repeat:n=0,repeatDelay:s=0,repeatType:r="loop",keyframes:a,name:o,motionValue:l,element:h,...u}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=tm.k.now();let d={autoplay:t,delay:e,type:i,repeat:n,repeatDelay:s,repeatType:r,name:o,motionValue:l,element:h,...u},c=h?.KeyframeResolver||Q;this.keyframeResolver=new c(a,(t,e,i)=>this.onKeyframesResolved(t,e,d,!i),o,l,h),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(t,e,i,n){this.keyframeResolver=void 0;let{name:s,type:r,velocity:a,delay:o,isHandoff:l,onUpdate:h}=i;this.resolvedAt=tm.k.now(),!function(t,e,i,n){let s=t[0];if(null===s)return!1;if("display"===e||"visibility"===e)return!0;let r=t[t.length-1],a=ig(s,e),o=ig(r,e);return(0,F.$)(a===o,`You are trying to animate ${e} from "${s}" to "${r}". "${a?r:s}" is not an animatable value.`,"value-not-animatable"),!!a&&!!o&&(function(t){let e=t[0];if(1===t.length)return!0;for(let i=0;i40?this.resolvedAt:this.createdAt:void 0,finalKeyframe:e,...i,keyframes:t},d=!l&&function(t){let{motionValue:e,name:i,repeatDelay:n,repeatType:s,damping:r,type:a}=t;if(!(e?.owner?.current instanceof HTMLElement))return!1;let{onUpdate:o,transformTemplate:l}=e.owner.getProps();return iw()&&i&&ix.has(i)&&("transform"!==i||!l)&&!o&&!n&&"mirror"!==s&&0!==r&&"inertia"!==a}(u)?new iy({...u,element:u.motionValue.owner.current}):new ir(u);d.finished.then(()=>this.notifyFinished()).catch(eW.l),this.pendingTimeline&&(this.stopTimeline=d.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=d}get finished(){return this._animation?this.animation.finished:this._finished}then(t,e){return this.finished.finally(t).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),K=!0,H(),Y(),K=!1),this._animation}get duration(){return this.animation.duration}get time(){return this.animation.time}set time(t){this.animation.time=t}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(t){this.animation.speed=t}get startTime(){return this.animation.startTime}attachTimeline(t){return this._animation?this.stopTimeline=this.animation.attachTimeline(t):this.pendingTimeline=t,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}let iT=t=>null!==t,iP={type:"spring",stiffness:500,damping:25,restSpeed:10},iS={type:"keyframes",duration:.8},iA={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},iV=(t,e,i,n={},s,a)=>o=>{let l=ew(n,t)||{},h=l.delay||n.delay||0,{elapsed:u=0}=n;u-=eV(h);let d={keyframes:Array.isArray(i)?i:[null,i],ease:"easeOut",velocity:e.getVelocity(),...l,delay:-u,onUpdate:t=>{e.set(t),l.onUpdate&&l.onUpdate(t)},onComplete:()=>{o(),l.onComplete&&l.onComplete()},name:t,motionValue:e,element:a?void 0:s};!function({when:t,delay:e,delayChildren:i,staggerChildren:n,staggerDirection:s,repeat:r,repeatType:a,repeatDelay:o,from:l,elapsed:h,...u}){return!!Object.keys(u).length}(l)&&Object.assign(d,((t,{keyframes:e})=>e.length>2?iS:r.has(t)?t.startsWith("scale")?{type:"spring",stiffness:550,damping:0===e[1]?2*Math.sqrt(550):30,restSpeed:10}:iP:iA)(t,d)),d.duration&&(d.duration=eV(d.duration)),d.repeatDelay&&(d.repeatDelay=eV(d.repeatDelay)),void 0!==d.from&&(d.keyframes[0]=d.from);let c=!1;if(!1!==d.type&&(0!==d.duration||d.repeatDelay)||(d.duration=0,0===d.delay&&(c=!0)),(eT.W.instantAnimations||eT.W.skipAnimations)&&(c=!0,d.duration=0,d.delay=0),d.allowFlatten=!l.type&&!l.ease,c&&!a&&void 0!==e.get()){let t=function(t,{repeat:e,repeatType:i="loop"},n){let s=t.filter(iT),r=e&&"loop"!==i&&e%2==1?0:s.length-1;return s[r]}(d.keyframes,l);if(void 0!==t)return void G.Gt.update(()=>{d.onUpdate(t),d.onComplete()})}return l.isSync?new ir(d):new ib(d)};function iM(t,e,{delay:i=0,transitionOverride:n,type:s}={}){let{transition:r=t.getDefaultTransition(),transitionEnd:a,...o}=e;n&&(r=n);let l=[],h=s&&t.animationState&&t.animationState.getState()[s];for(let e in o){let n=t.getValue(e,t.latestValues[e]??null),s=o[e];if(void 0===s||h&&function({protectedKeys:t,needsAnimating:e},i){let n=t.hasOwnProperty(i)&&!0!==e[i];return e[i]=!1,n}(h,e))continue;let a={delay:i,...ew(r||{},e)},u=n.get();if(void 0!==u&&!n.isAnimating&&!Array.isArray(s)&&s===u&&!a.velocity)continue;let d=!1;if(window.MotionHandoffAnimation){let i=t.props[ef];if(i){let t=window.MotionHandoffAnimation(i,e,G.Gt);null!==t&&(a.startTime=t,d=!0)}}eP(t,e),n.start(iV(e,n,s,t.shouldReduceMotion&&D.has(e)?{type:!1}:a,t,d));let c=n.animation;c&&l.push(c)}return a&&Promise.all(l).then(()=>{G.Gt.update(()=>{a&&function(t,e){let{transitionEnd:i={},transition:n={},...s}=ex(t,e)||{};for(let e in s={...s,...i}){var r;let i=eb(r=s[e])?r[r.length-1]||0:r;t.hasValue(e)?t.getValue(e).set(i):t.addValue(e,(0,tf.OQ)(i))}}(t,a)})}),l}function ik(t,e,i={}){let n=ex(t,e,"exit"===i.type?t.presenceContext?.custom:void 0),{transition:s=t.getDefaultTransition()||{}}=n||{};i.transitionOverride&&(s=i.transitionOverride);let r=n?()=>Promise.all(iM(t,n,i)):()=>Promise.resolve(),a=t.variantChildren&&t.variantChildren.size?(n=0)=>{let{delayChildren:r=0,staggerChildren:a,staggerDirection:o}=s;return function(t,e,i=0,n=0,s=0,r=1,a){let o=[],l=t.variantChildren.size,h=(l-1)*s,u="function"==typeof n,d=u?t=>n(t,l):1===r?(t=0)=>t*s:(t=0)=>h-t*s;return Array.from(t.variantChildren).sort(iE).forEach((t,s)=>{t.notify("AnimationStart",e),o.push(ik(t,e,{...a,delay:i+(u?0:n)+d(s)}).then(()=>t.notify("AnimationComplete",e)))}),Promise.all(o)}(t,e,n,r,a,o,i)}:()=>Promise.resolve(),{when:o}=s;if(!o)return Promise.all([r(),a(i.delay)]);{let[t,e]="beforeChildren"===o?[r,a]:[a,r];return t().then(()=>e())}}function iE(t,e){return t.sortNodePosition(e)}function iD(t,e){if(!Array.isArray(e))return!1;let i=e.length;if(i!==t.length)return!1;for(let n=0;nPromise.all(e.map(({animation:e,options:i})=>(function(t,e,i={}){let n;if(t.notify("AnimationStart",e),Array.isArray(e))n=Promise.all(e.map(e=>ik(t,e,i)));else if("string"==typeof e)n=ik(t,e,i);else{let s="function"==typeof e?ex(t,e,i.custom):e;n=Promise.all(iM(t,s,i))}return n.then(()=>{t.notify("AnimationComplete",e)})})(t,e,i))),i=iO(),n=!0,s=e=>(i,n)=>{let s=ex(t,n,"exit"===e?t.presenceContext?.custom:void 0);if(s){let{transition:t,transitionEnd:e,...n}=s;i={...i,...n,...e}}return i};function r(r){let{props:a}=t,o=function t(e){if(!e)return;if(!e.isControllingVariants){let i=e.parent&&t(e.parent)||{};return void 0!==e.props.initial&&(i.initial=e.props.initial),i}let i={};for(let t=0;td&&y,T=!1,P=Array.isArray(v)?v:[v],S=P.reduce(s(m),{});!1===g&&(S={});let{prevResolvedValues:A={}}=f,V={...A,...S},M=e=>{b=!0,h.has(e)&&(T=!0,h.delete(e)),f.needsAnimating[e]=!0;let i=t.getValue(e);i&&(i.liveStyle=!1)};for(let t in V){let e=S[t],i=A[t];if(!u.hasOwnProperty(t))(eb(e)&&eb(i)?iD(e,i):e===i)?void 0!==e&&h.has(t)?M(t):f.protectedKeys[t]=!0:null!=e?M(t):h.add(t)}f.prevProp=v,f.prevResolvedValues=S,f.isActive&&(u={...u,...S}),n&&t.blockInitialAnimation&&(b=!1);let k=!(x&&w)||T;b&&k&&l.push(...P.map(t=>({animation:t,options:{type:m}})))}if(h.size){let e={};if("boolean"!=typeof a.initial){let i=ex(t,Array.isArray(a.initial)?a.initial[0]:a.initial);i&&i.transition&&(e.transition=i.transition)}h.forEach(i=>{let n=t.getBaseTarget(i),s=t.getValue(i);s&&(s.liveStyle=!0),e[i]=n??null}),l.push({animation:e})}let m=!!l.length;return n&&(!1===a.initial||a.initial===a.animate)&&!t.manuallyAnimateOnMount&&(m=!1),n=!1,m?e(l):Promise.resolve()}return{animateChanges:r,setActive:function(e,n){if(i[e].isActive===n)return Promise.resolve();t.variantChildren?.forEach(t=>t.animationState?.setActive(e,n)),i[e].isActive=n;let s=r(e);for(let t in i)i[t].protectedKeys={};return s},setAnimateFunction:function(i){e=i(t)},getState:()=>i,reset:()=>{i=iO(),n=!0}}}(t))}updateAnimationControlsSubscription(){let{animate:t}=this.node.getProps();tE(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){let{animate:t}=this.node.getProps(),{animate:e}=this.node.prevProps||{};t!==e&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}let iI=0;class iN extends iF{constructor(){super(...arguments),this.id=iI++}update(){if(!this.node.presenceContext)return;let{isPresent:t,onExitComplete:e}=this.node.presenceContext,{isPresent:i}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===i)return;let n=this.node.animationState.setActive("exit",!t);e&&!t&&n.then(()=>{e(this.id)})}mount(){let{register:t,onExitComplete:e}=this.node.presenceContext||{};e&&e(this.id),t&&(this.unmount=t(this.id))}unmount(){}}let iU={x:!1,y:!1};function iW(t,e,i,n={passive:!0}){return t.addEventListener(e,i,n),()=>t.removeEventListener(e,i)}let i$=t=>"mouse"===t.pointerType?"number"!=typeof t.button||t.button<=0:!1!==t.isPrimary;function iG(t){return{point:{x:t.pageX,y:t.pageY}}}function iq(t,e,i,n){return iW(t,e,t=>i$(t)&&i(t,iG(t)),n)}function iz(t){return t.max-t.min}function iX(t,e,i,n=.5){t.origin=n,t.originPoint=(0,g.k)(e.min,e.max,t.origin),t.scale=iz(i)/iz(e),t.translate=(0,g.k)(i.min,i.max,t.origin)-t.originPoint,(t.scale>=.9999&&t.scale<=1.0001||isNaN(t.scale))&&(t.scale=1),(t.translate>=-.01&&t.translate<=.01||isNaN(t.translate))&&(t.translate=0)}function iK(t,e,i,n){iX(t.x,e.x,i.x,n?n.originX:void 0),iX(t.y,e.y,i.y,n?n.originY:void 0)}function iY(t,e,i){t.min=i.min+e.min,t.max=t.min+iz(e)}function iH(t,e,i){t.min=e.min-i.min,t.max=t.min+iz(e)}function iQ(t,e,i){iH(t.x,e.x,i.x),iH(t.y,e.y,i.y)}function i_(t){return[t("x"),t("y")]}let iZ=({current:t})=>t?t.ownerDocument.defaultView:null,iJ=(t,e)=>Math.abs(t-e);class i0{constructor(t,e,{transformPagePoint:i,contextWindow:n=window,dragSnapToOrigin:s=!1,distanceThreshold:r=3}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let t=i3(this.lastMoveEventInfo,this.history),e=null!==this.startEvent,i=function(t,e){return Math.sqrt(iJ(t.x,e.x)**2+iJ(t.y,e.y)**2)}(t.offset,{x:0,y:0})>=this.distanceThreshold;if(!e&&!i)return;let{point:n}=t,{timestamp:s}=G.uv;this.history.push({...n,timestamp:s});let{onStart:r,onMove:a}=this.handlers;e||(r&&r(this.lastMoveEvent,t),this.startEvent=this.lastMoveEvent),a&&a(this.lastMoveEvent,t)},this.handlePointerMove=(t,e)=>{this.lastMoveEvent=t,this.lastMoveEventInfo=i1(e,this.transformPagePoint),G.Gt.update(this.updatePoint,!0)},this.handlePointerUp=(t,e)=>{this.end();let{onEnd:i,onSessionEnd:n,resumeAnimation:s}=this.handlers;if(this.dragSnapToOrigin&&s&&s(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let r=i3("pointercancel"===t.type?this.lastMoveEventInfo:i1(e,this.transformPagePoint),this.history);this.startEvent&&i&&i(t,r),n&&n(t,r)},!i$(t))return;this.dragSnapToOrigin=s,this.handlers=e,this.transformPagePoint=i,this.distanceThreshold=r,this.contextWindow=n||window;let a=i1(iG(t),this.transformPagePoint),{point:o}=a,{timestamp:l}=G.uv;this.history=[{...o,timestamp:l}];let{onSessionStart:h}=e;h&&h(t,i3(a,this.history)),this.removeListeners=(0,eS.F)(iq(this.contextWindow,"pointermove",this.handlePointerMove),iq(this.contextWindow,"pointerup",this.handlePointerUp),iq(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),(0,G.WG)(this.updatePoint)}}function i1(t,e){return e?{point:e(t.point)}:t}function i2(t,e){return{x:t.x-e.x,y:t.y-e.y}}function i3({point:t},e){return{point:t,delta:i2(t,i5(e)),offset:i2(t,e[0]),velocity:function(t,e){if(t.length<2)return{x:0,y:0};let i=t.length-1,n=null,s=i5(t);for(;i>=0&&(n=t[i],!(s.timestamp-n.timestamp>eV(.1)));)i--;if(!n)return{x:0,y:0};let r=(s.timestamp-n.timestamp)/1e3;if(0===r)return{x:0,y:0};let a={x:(s.x-n.x)/r,y:(s.y-n.y)/r};return a.x===1/0&&(a.x=0),a.y===1/0&&(a.y=0),a}(e,.1)}}function i5(t){return t[t.length-1]}function i4(t,e,i){return{min:void 0!==e?t.min+e:void 0,max:void 0!==i?t.max+i-(t.max-t.min):void 0}}function i8(t,e){let i=e.min-t.min,n=e.max-t.max;return e.max-e.min{let{dragSnapToOrigin:i}=this.getProps();i?this.pauseAnimation():this.stopAnimation(),e&&this.snapToCursor(iG(t).point)},r=(t,e)=>{let{drag:i,dragPropagation:n,onDragStart:s}=this.getProps();if(i&&!n&&(this.openDragLock&&this.openDragLock(),this.openDragLock=function(t){if("x"===t||"y"===t)if(iU[t])return null;else return iU[t]=!0,()=>{iU[t]=!1};return iU.x||iU.y?null:(iU.x=iU.y=!0,()=>{iU.x=iU.y=!1})}(i),!this.openDragLock))return;this.latestPointerEvent=t,this.latestPanInfo=e,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),i_(t=>{let e=this.getAxisMotionValue(t).get()||0;if(j.KN.test(e)){let{projection:i}=this.visualElement;if(i&&i.layout){let n=i.layout.layoutBox[t];n&&(e=iz(n)*(parseFloat(e)/100))}}this.originPoint[t]=e}),s&&G.Gt.postRender(()=>s(t,e)),eP(this.visualElement,"transform");let{animationState:r}=this.visualElement;r&&r.setActive("whileDrag",!0)},a=(t,e)=>{this.latestPointerEvent=t,this.latestPanInfo=e;let{dragPropagation:i,dragDirectionLock:n,onDirectionLock:s,onDrag:r}=this.getProps();if(!i&&!this.openDragLock)return;let{offset:a}=e;if(n&&null===this.currentDirection){this.currentDirection=function(t,e=10){let i=null;return Math.abs(t.y)>e?i="y":Math.abs(t.x)>e&&(i="x"),i}(a),null!==this.currentDirection&&s&&s(this.currentDirection);return}this.updateAxis("x",e.point,a),this.updateAxis("y",e.point,a),this.visualElement.render(),r&&r(t,e)},o=(t,e)=>{this.latestPointerEvent=t,this.latestPanInfo=e,this.stop(t,e),this.latestPointerEvent=null,this.latestPanInfo=null},l=()=>i_(t=>"paused"===this.getAnimationState(t)&&this.getAxisMotionValue(t).animation?.play()),{dragSnapToOrigin:h}=this.getProps();this.panSession=new i0(t,{onSessionStart:s,onStart:r,onMove:a,onSessionEnd:o,resumeAnimation:l},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:h,distanceThreshold:i,contextWindow:iZ(this.visualElement)})}stop(t,e){let i=t||this.latestPointerEvent,n=e||this.latestPanInfo,s=this.isDragging;if(this.cancel(),!s||!n||!i)return;let{velocity:r}=n;this.startAnimation(r);let{onDragEnd:a}=this.getProps();a&&G.Gt.postRender(()=>a(i,n))}cancel(){this.isDragging=!1;let{projection:t,animationState:e}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;let{dragPropagation:i}=this.getProps();!i&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),e&&e.setActive("whileDrag",!1)}updateAxis(t,e,i){let{drag:n}=this.getProps();if(!i||!ne(t,n,this.currentDirection))return;let s=this.getAxisMotionValue(t),r=this.originPoint[t]+i[t];this.constraints&&this.constraints[t]&&(r=function(t,{min:e,max:i},n){return void 0!==e&&ti&&(t=n?(0,g.k)(i,t,n.max):Math.min(t,i)),t}(r,this.constraints[t],this.elastic[t])),s.set(r)}resolveConstraints(){let{dragConstraints:t,dragElastic:e}=this.getProps(),i=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,n=this.constraints;t&&em(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&i?this.constraints=function(t,{top:e,left:i,bottom:n,right:s}){return{x:i4(t.x,i,s),y:i4(t.y,e,n)}}(i.layoutBox,t):this.constraints=!1,this.elastic=function(t=.35){return!1===t?t=0:!0===t&&(t=.35),{x:i7(t,"left","right"),y:i7(t,"top","bottom")}}(e),n!==this.constraints&&i&&this.constraints&&!this.hasMutatedConstraints&&i_(t=>{!1!==this.constraints&&this.getAxisMotionValue(t)&&(this.constraints[t]=function(t,e){let i={};return void 0!==e.min&&(i.min=e.min-t.min),void 0!==e.max&&(i.max=e.max-t.min),i}(i.layoutBox[t],this.constraints[t]))})}resolveRefConstraints(){var t;let{dragConstraints:e,onMeasureDragConstraints:i}=this.getProps();if(!e||!em(e))return!1;let n=e.current;(0,F.V)(null!==n,"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.","drag-constraints-ref");let{projection:s}=this.visualElement;if(!s||!s.layout)return!1;let r=function(t,e,i){let n=E(t,i),{scroll:s}=e;return s&&(V(n.x,s.offset.x),V(n.y,s.offset.y)),n}(n,s.root,this.visualElement.getTransformPagePoint()),a=(t=s.layout.layoutBox,{x:i8(t.x,r.x),y:i8(t.y,r.y)});if(i){let t=i(function({x:t,y:e}){return{top:e.min,right:t.max,bottom:e.max,left:t.min}}(a));this.hasMutatedConstraints=!!t,t&&(a=y(t))}return a}startAnimation(t){let{drag:e,dragMomentum:i,dragElastic:n,dragTransition:s,dragSnapToOrigin:r,onDragTransitionEnd:a}=this.getProps(),o=this.constraints||{};return Promise.all(i_(a=>{if(!ne(a,e,this.currentDirection))return;let l=o&&o[a]||{};r&&(l={min:0,max:0});let h={type:"inertia",velocity:i?t[a]:0,bounceStiffness:n?200:1e6,bounceDamping:n?40:1e7,timeConstant:750,restDelta:1,restSpeed:10,...s,...l};return this.startAxisValueAnimation(a,h)})).then(a)}startAxisValueAnimation(t,e){let i=this.getAxisMotionValue(t);return eP(this.visualElement,t),i.start(iV(t,i,0,e,this.visualElement,!1))}stopAnimation(){i_(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){i_(t=>this.getAxisMotionValue(t).animation?.pause())}getAnimationState(t){return this.getAxisMotionValue(t).animation?.state}getAxisMotionValue(t){let e=`_drag${t.toUpperCase()}`,i=this.visualElement.getProps();return i[e]||this.visualElement.getValue(t,(i.initial?i.initial[t]:void 0)||0)}snapToCursor(t){i_(e=>{let{drag:i}=this.getProps();if(!ne(e,i,this.currentDirection))return;let{projection:n}=this.visualElement,s=this.getAxisMotionValue(e);if(n&&n.layout){let{min:i,max:r}=n.layout.layoutBox[e];s.set(t[e]-(0,g.k)(i,r,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:t,dragConstraints:e}=this.getProps(),{projection:i}=this.visualElement;if(!em(e)||!i||!this.constraints)return;this.stopAnimation();let n={x:0,y:0};i_(t=>{let e=this.getAxisMotionValue(t);if(e&&!1!==this.constraints){let i=e.get();n[t]=function(t,e){let i=.5,n=iz(t),s=iz(e);return s>n?i=(0,e8.q)(e.min,e.max-n,t.min):n>s&&(i=(0,e8.q)(t.min,t.max-s,e.min)),(0,eA.q)(0,1,i)}({min:i,max:i},this.constraints[t])}});let{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",i.root&&i.root.updateScroll(),i.updateLayout(),this.resolveConstraints(),i_(e=>{if(!ne(e,t,null))return;let i=this.getAxisMotionValue(e),{min:s,max:r}=this.constraints[e];i.set((0,g.k)(s,r,n[e]))})}addListeners(){if(!this.visualElement.current)return;i6.set(this.visualElement,this);let t=iq(this.visualElement.current,"pointerdown",t=>{let{drag:e,dragListener:i=!0}=this.getProps();e&&i&&this.start(t)}),e=()=>{let{dragConstraints:t}=this.getProps();em(t)&&t.current&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,n=i.addEventListener("measure",e);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),G.Gt.read(e);let s=iW(window,"resize",()=>this.scalePositionWithinConstraints()),r=i.addEventListener("didUpdate",({delta:t,hasLayoutChanged:e})=>{this.isDragging&&e&&(i_(e=>{let i=this.getAxisMotionValue(e);i&&(this.originPoint[e]+=t[e].translate,i.set(i.get()+t[e].translate))}),this.visualElement.render())});return()=>{s(),t(),n(),r&&r()}}getProps(){let t=this.visualElement.getProps(),{drag:e=!1,dragDirectionLock:i=!1,dragPropagation:n=!1,dragConstraints:s=!1,dragElastic:r=.35,dragMomentum:a=!0}=t;return{...t,drag:e,dragDirectionLock:i,dragPropagation:n,dragConstraints:s,dragElastic:r,dragMomentum:a}}}function ne(t,e,i){return(!0===e||e===t)&&(null===i||i===t)}class ni extends iF{constructor(t){super(t),this.removeGroupControls=eW.l,this.removeListeners=eW.l,this.controls=new nt(t)}mount(){let{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||eW.l}unmount(){this.removeGroupControls(),this.removeListeners()}}let nn=t=>(e,i)=>{t&&G.Gt.postRender(()=>t(e,i))};class ns extends iF{constructor(){super(...arguments),this.removePointerDownListener=eW.l}onPointerDown(t){this.session=new i0(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:iZ(this.node)})}createPanHandlers(){let{onPanSessionStart:t,onPanStart:e,onPan:i,onPanEnd:n}=this.node.getProps();return{onSessionStart:nn(t),onStart:nn(e),onMove:i,onEnd:(t,e)=>{delete this.session,n&&G.Gt.postRender(()=>n(t,e))}}}mount(){this.removePointerDownListener=iq(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let nr={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function na(t,e){return e.max===e.min?0:t/(e.max-e.min)*100}let no={correct:(t,e)=>{if(!e.target)return t;if("string"==typeof t)if(!j.px.test(t))return t;else t=parseFloat(t);let i=na(t,e.target.x),n=na(t,e.target.y);return`${i}% ${n}%`}},nl=!1;class nh extends n.Component{componentDidMount(){let{visualElement:t,layoutGroup:e,switchLayoutGroup:i,layoutId:n}=this.props,{projection:s}=t;for(let t in nd)tz[t]=nd[t],(0,v.j)(t)&&(tz[t].isCSSVariable=!0);s&&(e.group&&e.group.add(s),i&&i.register&&n&&i.register(s),nl&&s.root.didUpdate(),s.addEventListener("animationComplete",()=>{this.safeToRemove()}),s.setOptions({...s.options,onExitComplete:()=>this.safeToRemove()})),nr.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){let{layoutDependency:e,visualElement:i,drag:n,isPresent:s}=this.props,{projection:r}=i;return r&&(r.isPresent=s,nl=!0,n||t.layoutDependency!==e||void 0===e||t.isPresent!==s?r.willUpdate():this.safeToRemove(),t.isPresent!==s&&(s?r.promote():r.relegate()||G.Gt.postRender(()=>{let t=r.getStack();t&&t.members.length||this.safeToRemove()}))),null}componentDidUpdate(){let{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),ty.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){let{visualElement:t,layoutGroup:e,switchLayoutGroup:i}=this.props,{projection:n}=t;n&&(n.scheduleCheckAfterUnmount(),e&&e.group&&e.group.remove(n),i&&i.deregister&&i.deregister(n))}safeToRemove(){let{safeToRemove:t}=this.props;t&&t()}render(){return null}}function nu(t){let[e,i]=function(t=!0){let e=(0,n.useContext)(eo);if(null===e)return[!0,null];let{isPresent:i,onExitComplete:s,register:r}=e,a=(0,n.useId)();(0,n.useEffect)(()=>{if(t)return r(a)},[t]);let o=(0,n.useCallback)(()=>t&&s&&s(a),[a,s,t]);return!i&&s?[!1,o]:[!0]}(),s=(0,n.useContext)(t8);return(0,t4.jsx)(nh,{...t,layoutGroup:s,switchLayoutGroup:(0,n.useContext)(ev),isPresent:e,safeToRemove:i})}let nd={borderRadius:{...no,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:no,borderTopRightRadius:no,borderBottomLeftRadius:no,borderBottomRightRadius:no,boxShadow:{correct:(t,{treeScale:e,projectionDelta:i})=>{let n=Z.f.parse(t);if(n.length>5)return t;let s=Z.f.createTransformer(t),r=+("number"!=typeof n[0]),a=i.x.scale*e.x,o=i.y.scale*e.y;n[0+r]/=a,n[1+r]/=o;let l=(0,g.k)(a,o,.5);return"number"==typeof n[2+r]&&(n[2+r]/=l),"number"==typeof n[3+r]&&(n[3+r]/=l),s(n)}}};function nc(t){return"object"==typeof t&&null!==t}function np(t){return nc(t)&&"ownerSVGElement"in t}var nm=i(5983);let nf=(t,e)=>t.depth-e.depth;class nv{constructor(){this.children=[],this.isDirty=!1}add(t){(0,nm.Kq)(this.children,t),this.isDirty=!0}remove(t){(0,nm.Ai)(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(nf),this.isDirty=!1,this.children.forEach(t)}}let ny=["TopLeft","TopRight","BottomLeft","BottomRight"],ng=ny.length,nx=t=>"string"==typeof t?parseFloat(t):t,nw=t=>"number"==typeof t||j.px.test(t);function nb(t,e){return void 0!==t[e]?t[e]:t.borderRadius}let nT=nS(0,.5,e0),nP=nS(.5,.95,eW.l);function nS(t,e,i){return n=>ne?1:i((0,e8.q)(t,e,n))}function nA(t,e){t.min=e.min,t.max=e.max}function nV(t,e){nA(t.x,e.x),nA(t.y,e.y)}function nM(t,e){t.translate=e.translate,t.scale=e.scale,t.originPoint=e.originPoint,t.origin=e.origin}function nk(t,e,i,n,s){return t-=e,t=n+1/i*(t-n),void 0!==s&&(t=n+1/s*(t-n)),t}function nE(t,e,[i,n,s],r,a){!function(t,e=0,i=1,n=.5,s,r=t,a=t){if(j.KN.test(e)&&(e=parseFloat(e),e=(0,g.k)(a.min,a.max,e/100)-a.min),"number"!=typeof e)return;let o=(0,g.k)(r.min,r.max,n);t===r&&(o-=e),t.min=nk(t.min,e,i,o,s),t.max=nk(t.max,e,i,o,s)}(t,e[i],e[n],e[s],e.scale,r,a)}let nD=["x","scaleX","originX"],nC=["y","scaleY","originY"];function nj(t,e,i,n){nE(t.x,e,nD,i?i.x:void 0,n?n.x:void 0),nE(t.y,e,nC,i?i.y:void 0,n?n.y:void 0)}function nR(t){return 0===t.translate&&1===t.scale}function nL(t){return nR(t.x)&&nR(t.y)}function nO(t,e){return t.min===e.min&&t.max===e.max}function nF(t,e){return Math.round(t.min)===Math.round(e.min)&&Math.round(t.max)===Math.round(e.max)}function nB(t,e){return nF(t.x,e.x)&&nF(t.y,e.y)}function nI(t){return iz(t.x)/iz(t.y)}function nN(t,e){return t.translate===e.translate&&t.scale===e.scale&&t.originPoint===e.originPoint}class nU{constructor(){this.members=[]}add(t){(0,nm.Kq)(this.members,t),t.scheduleRender()}remove(t){if((0,nm.Ai)(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){let t=this.members[this.members.length-1];t&&this.promote(t)}}relegate(t){let e,i=this.members.findIndex(e=>t===e);if(0===i)return!1;for(let t=i;t>=0;t--){let i=this.members[t];if(!1!==i.isPresent){e=i;break}}return!!e&&(this.promote(e),!0)}promote(t,e){let i=this.lead;if(t!==i&&(this.prevLead=i,this.lead=t,t.show(),i)){i.instance&&i.scheduleRender(),t.scheduleRender(),t.resumeFrom=i,e&&(t.resumeFrom.preserveOpacity=!0),i.snapshot&&(t.snapshot=i.snapshot,t.snapshot.latestValues=i.animationValues||i.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);let{crossfade:n}=t.options;!1===n&&i.hide()}}exitAnimationComplete(){this.members.forEach(t=>{let{options:e,resumingFrom:i}=t;e.onExitComplete&&e.onExitComplete(),i&&i.options.onExitComplete&&i.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}let nW={nodes:0,calculatedTargetDeltas:0,calculatedProjections:0},n$=["","X","Y","Z"],nG=0;function nq(t,e,i,n){let{latestValues:s}=e;s[t]&&(i[t]=s[t],e.setStaticValue(t,0),n&&(n[t]=0))}function nz({attachResizeListener:t,defaultParent:e,measureScroll:i,checkIsScrollRoot:n,resetTransform:s}){return class{constructor(t={},i=e?.()){this.id=nG++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,il.Q.value&&(nW.nodes=nW.calculatedTargetDeltas=nW.calculatedProjections=0),this.nodes.forEach(nY),this.nodes.forEach(n1),this.nodes.forEach(n2),this.nodes.forEach(nH),il.Q.addProjectionMetrics&&il.Q.addProjectionMetrics(nW)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=t,this.root=i?i.root||i:this,this.path=i?[...i.path,i]:[],this.parent=i,this.depth=i?i.depth+1:0;for(let t=0;tthis.root.updateBlockedByResize=!1;G.Gt.read(()=>{n=window.innerWidth}),t(e,()=>{let t=window.innerWidth;t!==n&&(n=t,this.root.updateBlockedByResize=!0,i&&i(),i=function(t,e){let i=tm.k.now(),n=({timestamp:e})=>{let s=e-i;s>=250&&((0,G.WG)(n),t(s-250))};return G.Gt.setup(n,!0),()=>(0,G.WG)(n)}(s,250),nr.hasAnimatedSinceResize&&(nr.hasAnimatedSinceResize=!1,this.nodes.forEach(n0)))})}i&&this.root.registerSharedNode(i,this),!1!==this.options.animate&&s&&(i||n)&&this.addEventListener("didUpdate",({delta:t,hasLayoutChanged:e,hasRelativeLayoutChanged:i,layout:n})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}let r=this.options.transition||s.getDefaultTransition()||n9,{onLayoutAnimationStart:a,onLayoutAnimationComplete:o}=s.getProps(),l=!this.targetLayout||!nB(this.targetLayout,n),h=!e&&i;if(this.options.layoutRoot||this.resumeFrom||h||e&&(l||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);let e={...ew(r,"layout"),onPlay:a,onComplete:o};(s.shouldReduceMotion||this.options.layoutRoot)&&(e.delay=0,e.type=!1),this.startAnimation(e),this.setAnimationOrigin(t,h)}else e||n0(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=n})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);let t=this.getStack();t&&t.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),(0,G.WG)(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){!this.isUpdateBlocked()&&(this.isUpdating=!0,this.nodes&&this.nodes.forEach(n3),this.animationId++)}getTransformTemplate(){let{visualElement:t}=this.options;return t&&t.getProps().transformTemplate}willUpdate(t=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&function t(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;let{visualElement:i}=e.options;if(!i)return;let n=i.props[ef];if(window.MotionHasOptimisedAnimation(n,"transform")){let{layout:t,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",G.Gt,!(t||i))}let{parent:s}=e;s&&!s.hasCheckedOptimisedAppear&&t(s)}(this),this.root.isUpdating||this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let t=0;t{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){!this.snapshot&&this.instance&&(this.snapshot=this.measure(),!this.snapshot||iz(this.snapshot.measuredBox.x)||iz(this.snapshot.measuredBox.y)||(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let t=0;t.999999999999&&(e.x=1),e.y<1.0000000000001&&e.y>.999999999999&&(e.y=1)}}(this.layoutCorrected,this.treeScale,this.path,e),t.layout&&!t.target&&(1!==this.treeScale.x||1!==this.treeScale.y)&&(t.target=t.layout.layoutBox,t.targetWithTransforms=tS());let{target:o}=t;if(!o){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}this.projectionDelta&&this.prevProjectionDelta?(nM(this.prevProjectionDelta.x,this.projectionDelta.x),nM(this.prevProjectionDelta.y,this.projectionDelta.y)):this.createProjectionDeltas(),iK(this.projectionDelta,this.layoutCorrected,o,this.latestValues),this.treeScale.x===r&&this.treeScale.y===a&&nN(this.projectionDelta.x,this.prevProjectionDelta.x)&&nN(this.projectionDelta.y,this.prevProjectionDelta.y)||(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",o)),il.Q.value&&nW.calculatedProjections++}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(t=!0){if(this.options.visualElement?.scheduleRender(),t){let t=this.getStack();t&&t.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=tT(),this.projectionDelta=tT(),this.projectionDeltaWithTransform=tT()}setAnimationOrigin(t,e=!1){let i,n=this.snapshot,s=n?n.latestValues:{},r={...this.latestValues},a=tT();this.relativeParent&&this.relativeParent.options.layoutRoot||(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!e;let o=tS(),l=(n?n.source:void 0)!==(this.layout?this.layout.source:void 0),h=this.getStack(),u=!h||h.members.length<=1,d=!!(l&&!u&&!0===this.options.crossfade&&!this.path.some(n7));this.animationProgress=0,this.mixTargetDelta=e=>{let n=e/1e3;if(n4(a.x,t.x,n),n4(a.y,t.y,n),this.setTargetDelta(a),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout){var h,c,p,m,f,v;iQ(o,this.layout.layoutBox,this.relativeParent.layout.layoutBox),p=this.relativeTarget,m=this.relativeTargetOrigin,f=o,v=n,n8(p.x,m.x,f.x,v),n8(p.y,m.y,f.y,v),i&&(h=this.relativeTarget,c=i,nO(h.x,c.x)&&nO(h.y,c.y))&&(this.isProjectionDirty=!1),i||(i=tS()),nV(i,this.relativeTarget)}l&&(this.animationValues=r,function(t,e,i,n,s,r){s?(t.opacity=(0,g.k)(0,i.opacity??1,nT(n)),t.opacityExit=(0,g.k)(e.opacity??1,0,nP(n))):r&&(t.opacity=(0,g.k)(e.opacity??1,i.opacity??1,n));for(let s=0;s{nr.hasAnimatedSinceResize=!0,eM.layout++,this.motionValue||(this.motionValue=(0,tf.OQ)(0)),this.currentAnimation=function(t,e,i){let n=(0,tp.S)(t)?t:(0,tf.OQ)(t);return n.start(iV("",n,e,i)),n.animation}(this.motionValue,[0,1e3],{...t,velocity:0,isSync:!0,onUpdate:e=>{this.mixTargetDelta(e),t.onUpdate&&t.onUpdate(e)},onStop:()=>{eM.layout--},onComplete:()=>{eM.layout--,t.onComplete&&t.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);let t=this.getStack();t&&t.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(1e3),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){let t=this.getLead(),{targetWithTransforms:e,target:i,layout:n,latestValues:s}=t;if(e&&i&&n){if(this!==t&&this.layout&&n&&si(this.options.animationType,this.layout.layoutBox,n.layoutBox)){i=this.target||tS();let e=iz(this.layout.layoutBox.x);i.x.min=t.target.x.min,i.x.max=i.x.min+e;let n=iz(this.layout.layoutBox.y);i.y.min=t.target.y.min,i.y.max=i.y.min+n}nV(e,i),k(e,s),iK(this.projectionDeltaWithTransform,this.layoutCorrected,e,s)}}registerSharedNode(t,e){this.sharedNodes.has(t)||this.sharedNodes.set(t,new nU),this.sharedNodes.get(t).add(e);let i=e.options.initialPromotionConfig;e.promote({transition:i?i.transition:void 0,preserveFollowOpacity:i&&i.shouldPreserveFollowOpacity?i.shouldPreserveFollowOpacity(e):void 0})}isLead(){let t=this.getStack();return!t||t.lead===this}getLead(){let{layoutId:t}=this.options;return t&&this.getStack()?.lead||this}getPrevLead(){let{layoutId:t}=this.options;return t?this.getStack()?.prevLead:void 0}getStack(){let{layoutId:t}=this.options;if(t)return this.root.sharedNodes.get(t)}promote({needsReset:t,transition:e,preserveFollowOpacity:i}={}){let n=this.getStack();n&&n.promote(this,i),t&&(this.projectionDelta=void 0,this.needsReset=!0),e&&this.setOptions({transition:e})}relegate(){let t=this.getStack();return!!t&&t.relegate(this)}resetSkewAndRotation(){let{visualElement:t}=this.options;if(!t)return;let e=!1,{latestValues:i}=t;if((i.z||i.rotate||i.rotateX||i.rotateY||i.rotateZ||i.skewX||i.skewY)&&(e=!0),!e)return;let n={};i.z&&nq("z",t,n,this.animationValues);for(let e=0;et.currentAnimation?.stop()),this.root.nodes.forEach(n_),this.root.sharedNodes.clear()}}}function nX(t){t.updateLayout()}function nK(t){let e=t.resumeFrom?.snapshot||t.snapshot;if(t.isLead()&&t.layout&&e&&t.hasListeners("didUpdate")){let{layoutBox:i,measuredBox:n}=t.layout,{animationType:s}=t.options,r=e.source!==t.layout.source;"size"===s?i_(t=>{let n=r?e.measuredBox[t]:e.layoutBox[t],s=iz(n);n.min=i[t].min,n.max=n.min+s}):si(s,e.layoutBox,i)&&i_(n=>{let s=r?e.measuredBox[n]:e.layoutBox[n],a=iz(i[n]);s.max=s.min+a,t.relativeTarget&&!t.currentAnimation&&(t.isProjectionDirty=!0,t.relativeTarget[n].max=t.relativeTarget[n].min+a)});let a=tT();iK(a,i,e.layoutBox);let o=tT();r?iK(o,t.applyTransform(n,!0),e.measuredBox):iK(o,i,e.layoutBox);let l=!nL(a),h=!1;if(!t.resumeFrom){let n=t.getClosestProjectingParent();if(n&&!n.resumeFrom){let{snapshot:s,layout:r}=n;if(s&&r){let a=tS();iQ(a,e.layoutBox,s.layoutBox);let o=tS();iQ(o,i,r.layoutBox),nB(a,o)||(h=!0),n.options.layoutRoot&&(t.relativeTarget=o,t.relativeTargetOrigin=a,t.relativeParent=n)}}}t.notifyListeners("didUpdate",{layout:i,snapshot:e,delta:o,layoutDelta:a,hasLayoutChanged:l,hasRelativeLayoutChanged:h})}else if(t.isLead()){let{onExitComplete:e}=t.options;e&&e()}t.options.transition=void 0}function nY(t){il.Q.value&&nW.nodes++,t.parent&&(t.isProjecting()||(t.isProjectionDirty=t.parent.isProjectionDirty),t.isSharedProjectionDirty||(t.isSharedProjectionDirty=!!(t.isProjectionDirty||t.parent.isProjectionDirty||t.parent.isSharedProjectionDirty)),t.isTransformDirty||(t.isTransformDirty=t.parent.isTransformDirty))}function nH(t){t.isProjectionDirty=t.isSharedProjectionDirty=t.isTransformDirty=!1}function nQ(t){t.clearSnapshot()}function n_(t){t.clearMeasurements()}function nZ(t){t.isLayoutDirty=!1}function nJ(t){let{visualElement:e}=t.options;e&&e.getProps().onBeforeLayoutMeasure&&e.notify("BeforeLayoutMeasure"),t.resetTransform()}function n0(t){t.finishAnimation(),t.targetDelta=t.relativeTarget=t.target=void 0,t.isProjectionDirty=!0}function n1(t){t.resolveTargetDelta()}function n2(t){t.calcProjection()}function n3(t){t.resetSkewAndRotation()}function n5(t){t.removeLeadSnapshot()}function n4(t,e,i){t.translate=(0,g.k)(e.translate,0,i),t.scale=(0,g.k)(e.scale,1,i),t.origin=e.origin,t.originPoint=e.originPoint}function n8(t,e,i,n){t.min=(0,g.k)(e.min,i.min,n),t.max=(0,g.k)(e.max,i.max,n)}function n7(t){return t.animationValues&&void 0!==t.animationValues.opacityExit}let n9={duration:.45,ease:[.4,0,.1,1]},n6=t=>"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(t),st=n6("applewebkit/")&&!n6("chrome/")?Math.round:eW.l;function se(t){t.min=st(t.min),t.max=st(t.max)}function si(t,e,i){return"position"===t||"preserve-aspect"===t&&!(.2>=Math.abs(nI(e)-nI(i)))}function sn(t){return t!==t.root&&t.scroll?.wasRoot}let ss=nz({attachResizeListener:(t,e)=>iW(t,"resize",e),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),sr={current:void 0},sa=nz({measureScroll:t=>({x:t.scrollLeft,y:t.scrollTop}),defaultParent:()=>{if(!sr.current){let t=new ss({});t.mount(window),t.setOptions({layoutScroll:!0}),sr.current=t}return sr.current},resetTransform:(t,e)=>{t.style.transform=void 0!==e?e:"none"},checkIsScrollRoot:t=>"fixed"===window.getComputedStyle(t).position});function so(t,e){let i=function(t,e,i){if(t instanceof EventTarget)return[t];if("string"==typeof t){let e=document,i=(void 0)??e.querySelectorAll(t);return i?Array.from(i):[]}return Array.from(t)}(t),n=new AbortController;return[i,{passive:!0,...e,signal:n.signal},()=>n.abort()]}function sl(t){return!("touch"===t.pointerType||iU.x||iU.y)}function sh(t,e,i){let{props:n}=t;t.animationState&&n.whileHover&&t.animationState.setActive("whileHover","Start"===i);let s=n["onHover"+i];s&&G.Gt.postRender(()=>s(e,iG(e)))}class su extends iF{mount(){let{current:t}=this.node;t&&(this.unmount=function(t,e,i={}){let[n,s,r]=so(t,i),a=t=>{if(!sl(t))return;let{target:i}=t,n=e(i,t);if("function"!=typeof n||!i)return;let r=t=>{sl(t)&&(n(t),i.removeEventListener("pointerleave",r))};i.addEventListener("pointerleave",r,s)};return n.forEach(t=>{t.addEventListener("pointerenter",a,s)}),r}(t,(t,e)=>(sh(this.node,e,"Start"),t=>sh(this.node,t,"End"))))}unmount(){}}class sd extends iF{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch(e){t=!0}t&&this.node.animationState&&(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){this.isActive&&this.node.animationState&&(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=(0,eS.F)(iW(this.node.current,"focus",()=>this.onFocus()),iW(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}let sc=(t,e)=>!!e&&(t===e||sc(t,e.parentElement)),sp=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]),sm=new WeakSet;function sf(t){return e=>{"Enter"===e.key&&t(e)}}function sv(t,e){t.dispatchEvent(new PointerEvent("pointer"+e,{isPrimary:!0,bubbles:!0}))}function sy(t){return i$(t)&&!(iU.x||iU.y)}function sg(t,e,i){let{props:n}=t;if(t.current instanceof HTMLButtonElement&&t.current.disabled)return;t.animationState&&n.whileTap&&t.animationState.setActive("whileTap","Start"===i);let s=n["onTap"+("End"===i?"":i)];s&&G.Gt.postRender(()=>s(e,iG(e)))}class sx extends iF{mount(){let{current:t}=this.node;t&&(this.unmount=function(t,e,i={}){let[n,s,r]=so(t,i),a=t=>{let n=t.currentTarget;if(!sy(t))return;sm.add(n);let r=e(n,t),a=(t,e)=>{window.removeEventListener("pointerup",o),window.removeEventListener("pointercancel",l),sm.has(n)&&sm.delete(n),sy(t)&&"function"==typeof r&&r(t,{success:e})},o=t=>{a(t,n===window||n===document||i.useGlobalTarget||sc(n,t.target))},l=t=>{a(t,!1)};window.addEventListener("pointerup",o,s),window.addEventListener("pointercancel",l,s)};return n.forEach(t=>{(i.useGlobalTarget?window:t).addEventListener("pointerdown",a,s),nc(t)&&"offsetHeight"in t&&(t.addEventListener("focus",t=>((t,e)=>{let i=t.currentTarget;if(!i)return;let n=sf(()=>{if(sm.has(i))return;sv(i,"down");let t=sf(()=>{sv(i,"up")});i.addEventListener("keyup",t,e),i.addEventListener("blur",()=>sv(i,"cancel"),e)});i.addEventListener("keydown",n,e),i.addEventListener("blur",()=>i.removeEventListener("keydown",n),e)})(t,s)),sp.has(t.tagName)||-1!==t.tabIndex||t.hasAttribute("tabindex")||(t.tabIndex=0))}),r}(t,(t,e)=>(sg(this.node,e,"Start"),(t,{success:e})=>sg(this.node,t,e?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}let sw=new WeakMap,sb=new WeakMap,sT=t=>{let e=sw.get(t.target);e&&e(t)},sP=t=>{t.forEach(sT)},sS={some:0,all:1};class sA extends iF{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();let{viewport:t={}}=this.node.getProps(),{root:e,margin:i,amount:n="some",once:s}=t,r={root:e?e.current:void 0,rootMargin:i,threshold:"number"==typeof n?n:sS[n]},a=t=>{let{isIntersecting:e}=t;if(this.isInView===e||(this.isInView=e,s&&!e&&this.hasEnteredView))return;e&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",e);let{onViewportEnter:i,onViewportLeave:n}=this.node.getProps(),r=e?i:n;r&&r(t)};var o=this.node.current;let l=function({root:t,...e}){let i=t||document;sb.has(i)||sb.set(i,{});let n=sb.get(i),s=JSON.stringify(e);return n[s]||(n[s]=new IntersectionObserver(sP,{root:t,...e})),n[s]}(r);return sw.set(o,a),l.observe(o),()=>{sw.delete(o),l.unobserve(o)}}mount(){this.startObserver()}update(){if("undefined"==typeof IntersectionObserver)return;let{props:t,prevProps:e}=this.node;["amount","margin","root"].some(function({viewport:t={}},{viewport:e={}}={}){return i=>t[i]!==e[i]}(t,e))&&this.startObserver()}unmount(){}}let sV=function(t,e){if("undefined"==typeof Proxy)return eg;let i=new Map,n=(i,n)=>eg(i,n,t,e);return new Proxy((t,e)=>n(t,e),{get:(s,r)=>"create"===r?n:(i.has(r)||i.set(r,eg(r,void 0,t,e)),i.get(r))})}({animation:{Feature:iB},exit:{Feature:iN},inView:{Feature:sA},tap:{Feature:sx},focus:{Feature:sd},hover:{Feature:su},pan:{Feature:ns},drag:{Feature:ni,ProjectionNode:sa,MeasureLayout:nu},layout:{ProjectionNode:sa,MeasureLayout:nu}},(t,e)=>t5(t)?new t2(e):new tY(e,{allowProjection:t!==n.Fragment}))},40573:(t,e,i)=>{let n;i.d(e,{k:()=>o});var s=i(29864),r=i(10579);function a(){n=void 0}let o={now:()=>(void 0===n&&o.set(r.uv.isProcessing||s.W.useManualTiming?r.uv.timestamp:performance.now()),n),set:t=>{n=t,queueMicrotask(a)}}},41283:(t,e,i)=>{i.d(e,{j:()=>S});var n=i(73682),s=i(11143),r=i(98758),a=i(52648),o=i(24543),l=i(13343),h=i(89316);function u(t,e,i){return(i<0&&(i+=1),i>1&&(i-=1),i<1/6)?t+(e-t)*6*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}var d=i(70560);function c(t,e){return i=>i>0?e:t}var p=i(33762);let m=(t,e,i)=>{let n=t*t,s=i*(e*e-n)+n;return s<0?0:Math.sqrt(s)},f=[l.u,d.B,h.V];function v(t){let e=f.find(e=>e.test(t));if((0,s.$)(!!e,`'${t}' is not an animatable color. Use the equivalent color code instead.`,"color-not-animatable"),!e)return!1;let i=e.parse(t);return e===h.V&&(i=function({hue:t,saturation:e,lightness:i,alpha:n}){t/=360,i/=100;let s=0,r=0,a=0;if(e/=100){let n=i<.5?i*(1+e):i+e-i*e,o=2*i-n;s=u(o,n,t+1/3),r=u(o,n,t),a=u(o,n,t-1/3)}else s=r=a=i;return{red:Math.round(255*s),green:Math.round(255*r),blue:Math.round(255*a),alpha:n}}(i)),i}let y=(t,e)=>{let i=v(t),n=v(e);if(!i||!n)return c(t,e);let s={...i};return t=>(s.red=m(i.red,n.red,t),s.green=m(i.green,n.green,t),s.blue=m(i.blue,n.blue,t),s.alpha=(0,p.k)(i.alpha,n.alpha,t),d.B.transform(s))},g=new Set(["none","hidden"]);function x(t,e){return i=>(0,p.k)(t,e,i)}function w(t){return"number"==typeof t?x:"string"==typeof t?(0,r.p)(t)?c:a.y.test(t)?y:P:Array.isArray(t)?b:"object"==typeof t?a.y.test(t)?y:T:c}function b(t,e){let i=[...t],n=i.length,s=t.map((t,i)=>w(t)(t,e[i]));return t=>{for(let e=0;e{for(let e in n)i[e]=n[e](t);return i}}let P=(t,e)=>{let i=o.f.createTransformer(e),r=(0,o.V)(t),a=(0,o.V)(e);return r.indexes.var.length===a.indexes.var.length&&r.indexes.color.length===a.indexes.color.length&&r.indexes.number.length>=a.indexes.number.length?g.has(t)&&!a.values.length||g.has(e)&&!r.values.length?function(t,e){return g.has(t)?i=>i<=0?t:e:i=>i>=1?e:t}(t,e):(0,n.F)(b(function(t,e){let i=[],n={color:0,var:0,number:0};for(let s=0;s{i.d(e,{E:()=>s});var n=i(74188);let s=i(77871).B?n.useLayoutEffect:n.useEffect},49889:(t,e,i)=>{i.d(e,{$:()=>r,q:()=>a});var n=i(33742);let s=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,r=(t,e)=>i=>!!("string"==typeof i&&s.test(i)&&i.startsWith(t)||e&&null!=i&&Object.prototype.hasOwnProperty.call(i,e)),a=(t,e,i)=>s=>{if("string"!=typeof s)return s;let[r,a,o,l]=s.match(n.S);return{[t]:parseFloat(r),[e]:parseFloat(a),[i]:parseFloat(o),alpha:void 0!==l?parseFloat(l):1}}},52648:(t,e,i)=>{i.d(e,{y:()=>a});var n=i(13343),s=i(89316),r=i(70560);let a={test:t=>r.B.test(t)||n.u.test(t)||s.V.test(t),parse:t=>r.B.test(t)?r.B.parse(t):s.V.test(t)?s.V.parse(t):n.u.parse(t),transform:t=>"string"==typeof t?t:t.hasOwnProperty("red")?r.B.transform(t):s.V.transform(t),getAnimatableNone:t=>{let e=a.parse(t);return e.alpha=0,a.transform(e)}}},54375:(t,e,i)=>{i.d(e,{X4:()=>r,ai:()=>s,hs:()=>a});var n=i(18217);let s={test:t=>"number"==typeof t,parse:parseFloat,transform:t=>t},r={...s,transform:t=>(0,n.q)(0,1,t)},a={...s,default:1}},59751:(t,e,i)=>{i.d(e,{v:()=>s});var n=i(5983);class s{constructor(){this.subscriptions=[]}add(t){return(0,n.Kq)(this.subscriptions,t),()=>(0,n.Ai)(this.subscriptions,t)}notify(t,e,i){let n=this.subscriptions.length;if(n)if(1===n)this.subscriptions[0](t,e,i);else for(let s=0;s{i.d(e,{a:()=>n});let n=t=>Math.round(1e5*t)/1e5},61913:(t,e,i)=>{i.d(e,{k5:()=>u});var n=i(74188),s={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},r=n.createContext&&n.createContext(s),a=["attr","size","title"];function o(){return(o=Object.assign?Object.assign.bind():function(t){for(var e=1;en.createElement(d,o({attr:h({},t.attr)},e),function t(e){return e&&e.map((e,i)=>n.createElement(e.tag,h({key:i},e.attr),t(e.child)))}(t.child))}function d(t){var e=e=>{var i,{attr:s,size:r,title:l}=t,u=function(t,e){if(null==t)return{};var i,n,s=function(t,e){if(null==t)return{};var i={};for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){if(e.indexOf(n)>=0)continue;i[n]=t[n]}return i}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(n=0;n=0)&&Object.prototype.propertyIsEnumerable.call(t,i)&&(s[i]=t[i])}return s}(t,a),d=r||e.size||"1em";return e.className&&(i=e.className),t.className&&(i=(i?i+" ":"")+t.className),n.createElement("svg",o({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},e.attr,s,u,{className:i,style:h(h({color:t.color||e.color},e.style),t.style),height:d,width:d,xmlns:"http://www.w3.org/2000/svg"}),l&&n.createElement("title",null,l),t.children)};return void 0!==r?n.createElement(r.Consumer,null,t=>e(t)):e(s)}},68722:(t,e,i)=>{i.d(e,{l:()=>n});let n=t=>t},69531:(t,e,i)=>{i.d(e,{q:()=>n});let n=(t,e,i)=>{let n=e-t;return 0===n?1:(i-t)/n}},70560:(t,e,i)=>{i.d(e,{B:()=>l});var n=i(18217),s=i(54375),r=i(61101),a=i(49889);let o={...s.ai,transform:t=>Math.round((0,n.q)(0,255,t))},l={test:(0,a.$)("rgb","red"),parse:(0,a.q)("red","green","blue"),transform:({red:t,green:e,blue:i,alpha:n=1})=>"rgba("+o.transform(t)+", "+o.transform(e)+", "+o.transform(i)+", "+(0,r.a)(s.X4.transform(n))+")"}},73682:(t,e,i)=>{i.d(e,{F:()=>s});let n=(t,e)=>i=>e(t(i)),s=(...t)=>t.reduce(n)},77871:(t,e,i)=>{i.d(e,{B:()=>n});let n="undefined"!=typeof window},80527:(t,e,i)=>{i.d(e,{G:()=>u});var n=i(29864),s=i(68722),r=i(73682),a=i(11143),o=i(69531),l=i(18217),h=i(41283);function u(t,e,{clamp:i=!0,ease:d,mixer:c}={}){let p=t.length;if((0,a.V)(p===e.length,"Both input and output ranges must be the same length","range-length"),1===p)return()=>e[0];if(2===p&&e[0]===e[1])return()=>e[1];let m=t[0]===t[1];t[0]>t[p-1]&&(t=[...t].reverse(),e=[...e].reverse());let f=function(t,e,i){let a=[],o=i||n.W.mix||h.j,l=t.length-1;for(let i=0;i{if(m&&i1)for(;ny((0,l.q)(t[0],t[p-1],e)):y}},85488:(t,e,i)=>{i.d(e,{Q:()=>n});let n={value:null,addProjectionMetrics:null}},89316:(t,e,i)=>{i.d(e,{V:()=>o});var n=i(54375),s=i(23782),r=i(61101),a=i(49889);let o={test:(0,a.$)("hsl","hue"),parse:(0,a.q)("hue","saturation","lightness"),transform:({hue:t,saturation:e,lightness:i,alpha:a=1})=>"hsla("+Math.round(t)+", "+s.KN.transform((0,r.a)(e))+", "+s.KN.transform((0,r.a)(i))+", "+(0,r.a)(n.X4.transform(a))+")"}},91179:(t,e,i)=>{i.d(e,{S:()=>n});let n=t=>!!(t&&t.getVelocity)},98758:(t,e,i)=>{i.d(e,{j:()=>s,p:()=>a});let n=t=>e=>"string"==typeof e&&e.startsWith(t),s=n("--"),r=n("var(--"),a=t=>!!r(t)&&o.test(t.split("/*")[0].trim()),o=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu}}]); +//# sourceMappingURL=934-a4ef314b6e2cee37.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/934-a4ef314b6e2cee37.js.map b/opencut-ui/_next/static/chunks/934-a4ef314b6e2cee37.js.map new file mode 100644 index 0000000..75eb7e8 --- /dev/null +++ b/opencut-ui/_next/static/chunks/934-a4ef314b6e2cee37.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/934-a4ef314b6e2cee37.js","mappings":"4GAMA,IAAMA,EAAsBC,CAAAA,EAAAA,SAAAA,aAAAA,CAAaA,CAAC,CACtCC,mBAAoB,GAAOC,EAC3BC,UAAU,EACVC,cAAe,OACnB,mBCVA,gBACA,mBACA,SACA,CACA,gBACA,kBACA,OACA,aACA,uHCIA,OACA,cACA,CAMA,SAOA,kBAAkC,EAQlC,2BAIA,eACA,gCACA,MAAgC,GAAI,OAYpC,GANA,oBACA,yBAEA,uBACA,mBAEA,2BACA,yCACA,iBACA,6BACA,SAKA,IACA,+CAEA,EACA,oBACA,mBACA,mBAEA,cACA,eACA,eAAyB,GAAI,OAC7B,0CACA,uBAhEA,kBAgEA,eAEA,CACA,kCACA,sBACA,kCA0CA,YAIA,0BACA,CACA,QACA,gBACA,oBAAyC,GAAmB,EAE5D,kCACA,aACA,KACA,IAKgB,IAAK,WACrB,8BACA,WAEA,CAAiB,CACjB,EAEA,CACA,CACA,iBACA,yBACA,sBAEA,CAIA,YACA,qBACA,wBACA,CAgBA,YACA,sBAIA,2CAHA,yBAKA,CACA,uBACA,YACA,iBACA,sBACA,mCACA,CAKA,aACA,wBACA,YACA,8CACA,eACA,wBACA,wBACA,CACA,QACA,wCACA,CACA,gBACA,iBACA,0BAEA,sBACA,CACA,mBACA,iBACA,yBAEA,CAQA,MAIA,OAHA,WACA,qBAEA,aAKA,cACA,iBASA,cACA,MAA4B,GAAI,OAChC,2BACA,8BACA,iBA7OA,GA8OA,SAEA,iDAhPA,IAkPA,MAAe,OAAiB,0BAChC,kCACA,CAWA,SAEA,OADA,YACA,gBACA,oBACA,oBACA,4BACA,mCAEA,CAAS,YACT,+BACA,uCAEA,qBACA,CAAS,CACT,CAMA,OACA,iBACA,sBACA,6BACA,sCAGA,qBACA,CAMA,cACA,uBAEA,iBACA,qBACA,CAUA,UACA,yBACA,8BACA,sBACA,YACA,wBACA,wBAEA,CACA,CACA,gBACA,iBACA,+ECjUA,IAAQ,qCAA6E,CAAkB,aAAmB,iEAAwE,GAAI,+CCDtM,aACA,0DC8BA,OACA,KAAwB,cAAa,MACrC,MAhCA,YACA,SACA,KACA,KACA,KAmBA,OAjBA,YACA,mBACA,mBACA,mBACA,qBAIA,mBACA,mBACA,mBACA,mBACA,KACA,KACA,KACA,MAEA,CACA,mBACA,qBACA,oBACA,4BACA,CACA,EAIA,UAAe,GAAI,8CCvBb,MAAa,cAAgB,CAAC,YAAc,EAChD,CAAC,MAAQ,EAAE,EAAG,CAAY,cAAK,SAAU,EACzC,CAAC,MAAQ,EAAE,EAAG,CAAiB,mBAAK,SAAU,EAC/C,mDCPD,cACA,MAAgB,YAAM,OAItB,OAHA,kBACA,gBAEA,SACA,oCCfA,eACA,IACA,EACA,IACA,EACA,kFCJA,WACA,mEACA,iBACA,gBAAyB,EAAE,EAAE,EAAK,EAClC,CAAC,CACD,WACA,SACA,UACA,UACA,UACA,GACA,KACA,wBACA,+BACA,CAAC,0DCfD,mBAAgC,IAAI,qCAAqC,EAAE,uFCY3E,eACA,UAKA,mGAAsH,IAAI,qCAAqC,EAAE,sFACjK,cACA,mBACA,KACA,GACA,SACA,UACA,QAEA,KACA,IAoBA,EAnBA,gBACY,GAAK,UACjB,gBACA,UACA,OAAwB,GAAK,YAE7B,aApBA,SAqBA,cACA,OAvBA,OAwBA,YAGA,iBACA,UACA,uBAEA,IA7BA,QAgCA,MAhCA,IAAwB,GAiCxB,cAAa,4BACb,CACA,cACA,mBAEA,cACA,UAAY,WAAe,KAC3B,WACA,WACA,SACA,YAAwB,IAAiB,IAEzC,GADA,QACA,eACA,UACA,OACA,GAA8B,OAAQ,OAEtC,MACA,GAA8B,GAAK,iBAGnC,QAIA,QACA,CACA,CACA,8BAAgE,GAAK,SAAW,GAAK,wBAMrF,GACA,KA/EA,YACA,iBACA,oBACA,SAAiB,GAAU,cAC3B,SAAqB,IAAU,WAC/B,CACA,EA0EA,QACA,oBACA,kBATA,YACA,WAEA,OADA,KACA,SACA,CAMA,mDCxFA,OACA,QACA,OACA,mBACA,YACA,SACA,YACA,SACA,aACA,gBEJA,gBACA,SACA,KACA,GACA,QACA,YACA,eACA,EACA,WACA,EAAkB,EAAU,eAC5B,KDbA,cAKA,ECQmC,EDRnC,UACA,UAKA,KACA,KAIA,cACA,GACA,QACA,YACA,eACA,EACA,IACA,cACA,WACA,cACA,KAEA,IACA,IACA,CACA,OAIA,yBAEA,MADA,KACA,IAKA,OAJA,GACA,SACA,UACA,SACA,CACA,CAAS,CAIT,WACA,YACA,WACA,CAAS,CAIT,YAOA,GANA,IAMA,GACA,KACA,MACA,CACA,KACA,YAEA,aAIA,GAA4B,GAAW,QACvB,GAAW,4BAE3B,IAGA,UACA,KACA,IACA,KACA,aAEA,CAAS,EAET,QACA,EC1EmC,cACnC,GACK,EAAI,EACT,OAAY,oFAAmF,EAC/F,OACA,MAA0B,GAAkB,iBAC5C,YACA,kBACA,KACA,EAAa,CAAkB,kBAC/B,WACA,OACA,gCAvBA,IAuBA,IAEA,cACA,kBAEA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,aACA,kBACA,OACA,KACA,KAEA,EAsBA,OAAa,SAdQ,EAAU,eAC/B,WAMA,OALA,qBACA,KATA,KACA,KACA,gBACA,MAQA,mBAEA,CACA,CAAK,GAAI,EAMI,OALb,IACA,YAAwB,EAAI,EAAU,OAAS,CAAT,GACtC,EAAkB,CAAU,cAE5B,EACa,gBACb,oCC9DA,gBACA,kBACA,oCCRA,2CCAA,sECqBA,eACA,4DCnBA,OACA,uBACA,IACA,IACA,IACA,aACA,aACA,aACA,QACA,SACA,SACA,SACA,UACA,UACA,UACA,OACA,QACA,QACA,CAIA,aCzBA,mBACA,KAEA,EADA,0BAGA,GACA,IACA,IACA,aACA,aACA,SACA,SACA,2CACA,SACA,UACA,4BACA,4BACA,yCACA,EACA,MACA,SACA,GACA,SACA,GAGA,oCACA,oCACA,GACA,KACA,KACA,KACA,cACA,cACA,cACA,SACA,SACA,uBACA,uCACA,wCACA,QAfA,EAgBA,OAhBA,EAiBA,4BACA,4BACA,yCACA,EACA,cACA,4BACA,CACA,oBAKA,EACA,EALA,kBACA,YAEA,8CAGA,KACA,IACA,QAEA,CACA,4CACA,IACA,GACA,CACA,MACA,YAEA,WACA,yBACA,2BACA,KACA,KAMA,cACA,2BACA,gBC3EA,YAAmC,8BAA2B,EAC9D,OACA,GAAa,YAAuB,CACpC,GAAa,YACb,CACA,gBCVA,cACA,wBACA,CACA,kBAAoB,oBAAuB,EAC3C,aACA,OACA,KACA,CACA,cACA,aACA,MACA,KACA,UACA,WACA,WACA,SACA,QAEA,kBAGA,IAFA,OAEA,EAFA,MAGA,WADA,EAFA,MAGA,QAFA,CCNA,sBAIA,OAHA,YACA,KARA,EADA,GASA,CATA,CASA,EAEA,IAXA,CAWA,GAXA,EAWA,CACA,CAIA,0BACA,uBACA,sBACA,CAIA,gBAA8B,MAAM,EACpC,yCACA,wCACA,CA+DA,gBACA,cACA,aACA,CAMA,yBACA,MAAwB,OAAS,gBAEjC,YACA,CAIA,gBACA,sCACA,qCACA,CCjHA,gBACA,OAAW,EHeX,cACA,MACA,CGjBkC,MHiBlC,EACA,SAAqC,iBAA6B,EAClE,KAAyC,qBAAiC,EAC1E,OACA,QACA,SACA,WACA,UAEA,EG1BqD,6BACrD,CCHA,eACA,QACA,SACA,MACA,OACA,QACA,YACO,EACP,gBADyB,YENzB,sBCKA,GAA6B,IAAM,CAAE,IAAE,CAAE,IAAO,CAAE,IAAO,CAAE,IAAE,CAAE,IAAE,CFLjE,CEKmE,IAAI,CFJvE,cACA,UACA,EEEuE,CAIvE,YAA+D,EAAa,mBCT5E,gDCSA,EAEA,2DETA,SAAmC,IAAM,MAAU,IAAE,CACrD,yBACA,EAAsC,EAAkB,qBAYxD,GAEA,UAAc,EAAG,EAAI,qCAAuC,2CAC5D,WAAe,EAAG,aAAI,0BAAuC,2CAC7D,YAAmB,EAAK,iBACxB,cAAoB,EAAM,iBAC1B,WAAe,EAAG,EAAI,MAAK,+BAC3B,UAAc,EAAG,OAAI,EAAM,+BAE3B,gBAAiB,EAAW,GAAK,EAAuB,OACxD,cADwD,EACvC,EAAW,GAAK,EAAuB,MACxD,EAEA,aAHwD,EAGxD,EACA,gCC7BA,cACA,KACA,KACA,KACA,aACA,MACA,kDACA,+BACA,UAKA,cACA,MDVA,YACA,SAQA,OAPA,GCQqE,MDRrE,KACA,mBACA,cACA,oBACA,gCAEA,CAAK,EACL,CACA,ECAqE,EACrE,YAEA,WACA,WACA,CAAS,EAET,sCAEA,cACA,WACA,cACA,IACA,oBACA,qBACA,CAAiB,CAEjB,CAAS,EAET,kCAEA,cACA,6BACA,qCAEA,CAAS,CACT,CACA,KACA,KACA,4BACA,SACA,CACA,aACA,cACA,kBACA,oBACA,MAEA,CAAK,CACL,CAOA,QACA,4BACA,qBAMA,gBAKA,yBACA,gCACA,kBACA,YACA,mBACA,eACA,cACA,CACA,kBACA,uBACA,cACA,YACA,IACA,KACgB,IAAK,SACL,IAAK,wBAIrB,qBACA,gBAEA,CACA,gBACA,wBAAgB,kCAAkD,KAElE,gBACA,eAEA,gBACA,cACA,YAEA,SACA,sBACA,UACA,QAEA,CACA,eACA,SAEA,eACA,WAEA,CFzHA,YAAoB,WAAsB,IAC1C,YEyHqB,CFzHrB,ME0HA,CACA,oBACA,uBACA,mBACA,mBACA,eACA,sBACA,+DACA,cACA,CACA,SACA,2BACA,eACA,qBAEA,CACA,SACA,wBACA,sBACA,CACA,CC7IA,yDEGA,+DACA,eACA,kCACA,qBACA,SACA,eAAiC,GAAU,MAC3C,MACA,SACA,sBACA,eAGA,OAFA,OACA,SACA,aACA,CACA,8BACA,IACA,GAAO,GAAO,CACd,sBACA,kBACA,8BACA,CAAK,kBCxBL,IAAM,GAAG,CACT,GAAO,IAAM,CACb,sBCDA,IACA,OAAY,IAAO,CACnB,QAAa,IAAO,CACpB,QAAa,IAAO,CACpB,QAAa,IAAO,CACpB,KAAS,MACT,OAAY,IAAK,CACjB,OAAY,IAAK,CACjB,OAAY,IAAK,CACjB,KAAU,IAAO,CACjB,MAAW,IAAO,CAClB,MAAW,IAAO,CAClB,SAAc,IAAE,CAChB,WAAgB,IAAE,CAClB,WAAgB,IAAE,CAClB,WAAgB,IAAE,CAClB,EAAO,IAAE,CACT,EAAO,IAAE,CACT,EAAO,IAAE,CACT,YAAiB,IAAE,CACnB,qBAA0B,IAAE,CAC5B,QAAa,IAAK,CAClB,QAAa,IAAkB,CAC/B,QAAa,IAAkB,CAC/B,QAAa,IAAE,ECtBf,IAEA,YAAiB,IAAE,CACnB,eAAoB,IAAE,CACtB,iBAAsB,IAAE,CACxB,kBAAuB,IAAE,CACzB,gBAAqB,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ACA,qBAAmC,IAAK,8BACxC,oBACA,qCAEA,CAAS,EACT,2CAEA,+BACA,2CAEA,mCACA,IACA,IACA,GACA,IACA,SACA,QACA,CAAS,CACT,CACA,2BAIA,cACA,+BACA,mBAGA,sDAFA,CAGA,CACA,iBACA,kBACA,SAAoB,GAAkB,CACtC,MAAsC,EAAkB,IACxD,EAFsC,CAEtC,GACA,SACA,cAAoB,aAAyC,EAY7D,GARA,mBACA,GACA,eACA,+BAKA,kBACA,sBACA,aACA,YAGA,UACA,eAEA,CACA,CACA,CACA,eACA,yDACA,CAMA,qBACA,oBACA,yDACc,IACd,CACA,IAFuB,WAEvB,GACA,4BAEA,oBACA,sBACA,CAKA,YACA,qDACA,sBAEA,0BACA,aACA,8CACA,uBAIA,YAAwB,YAA8B,KACtD,YACA,iCACA,iCACA,uCAGA,QADA,OACA,CACA,GACA,6CAEA,CACA,sBF7SA,gBACA,WE4S2D,EF5S3D,GACA,WACA,OACA,GAAY,QAAa,IAKzB,qBAEA,GAAiB,QAAa,IAK9B,aAAkC,SAAW,IAAc,QAAgB,QAE3E,SAMA,kBACA,mBACA,kBACA,UAEA,eACA,QAEA,KACA,CACA,0BACA,aAAsC,SAAW,iBAAwD,QAAgB,EACzH,CAEA,CAEA,eACA,eACA,iBAEA,QACA,EEgQ2D,oFAC3D,6BACA,6BAEA,CACA,WACA,kBAKA,cACA,wDACA,CAIA,uBACA,6BAEA,wBACA,qCAEA,wBACA,0BACA,KACA,YACA,oCACA,MACA,CAIA,mBACA,mCACA,KAGA,OAFA,mBACA,yBACA,+BAEA,CAIA,cAEA,yBACA,QACA,GACA,oBACA,4BACA,qBACA,6BAEA,CAIA,eACA,sBACA,qCACA,IACA,IACA,mCAEA,4BACA,mDACA,CAIA,YACA,yBACA,CACA,cACA,2CACA,4BAEA,yBAKA,OAJA,yBACA,EAAoB,SAAW,oBAAqD,WAAa,EACjG,oBAEA,CACA,CAMA,eACA,kDAEA,2CACA,wDAFA,qBAGA,YACA,wBACiB,EAAiB,IAAW,EAAiB,IAE9D,KAFkC,MAA4B,EAE9D,OAEA,KbxYA,CawYA,CAAsB,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C,cACA,kBAAgC,QAAI,IAAoB,QAAG,aAC3D,WAEA,SAA6C,iBAAoC,CAKjF,eACA,2BACA,KACA,2BACA,WACA,EAAa,EAUb,6BACA,sBAA2C,GAAqB,IAEhE,cAFgE,SAEhD,GAAqB,CACrC,2BACA,0BACA,iDACA,gBACA,CACA,cACA,6DAEA,cACA,+BAMA,kBAEA,CACA,aACA,cAAgB,8FAAmG,KACnH,yBACA,iBACA,UAAgB,uFAAwF,aAOxG,aACA,0CAEA,cACA,yDAEA,EACA,mBAGA,mBAGA,sDACA,wBACA,IACA,GACA,gCAEA,+CACA,qBAEA,uBACA,IACA,MAMA,qCAKA,gBAKA,KAKA,WACA,MAEA,WACA,oBAIA,IAEA,eACA,MACA,GACA,UAGA,cACA,OAGA,EAAsB,QAAK,SAC3B,CAMA,QACA,CAAgB,oBAChB,SACA,IACA,qBAEA,IAAc,QAAO,CACrB,cACA,GACA,sBACA,oBACA,qBAEA,4BACA,qDAWA,OATA,OAA4C,IAC5C,GADmD,KACnD,CAA0B,GAAgB,8BAE1C,GACA,WAEA,GACA,cAEA,CACA,CAMA,UACA,8BACA,CACA,eACA,OAAe,IAAqB,oB5B5NpC,G4B6NA,CACA,WACA,OAAe,IAAqB,a5B/NpC,G4BgOA,CACA,YACA,EAAkB,GAAqB,GACvC,mBACA,YAFuC,SAEvC,EACA,sBACA,uBACA,gBAEA,aACA,wDAEA,sBACA,CACA,YACA,0BAEA,aACA,gBAAwB,IAAI,QAC5B,4BACA,sBACA,GACA,WAA6C,EAArB,EAAqB,a5BtP7C,G4BsP6C,CAE7C,CACA,CAH6C,KAG7C,CACA,kBACA,OACA,WAAgB,EAAS,EAAe,cAAc,aACtD,aACA,iCAEA,wBACA,uBACA,0BACA,sBACA,kBAEA,qBACA,+BAEA,gBACA,sBAEA,uCACA,0CAEA,mBAKA,qBACA,mBACA,CACA,QACA,oBACA,gBAAwB,IAAI,QAC5B,+BAEA,WACA,wBACA,YAEA,sBACA,kBACA,CACA,SACA,sBACA,gBACA,sBACA,2BACA,CACA,SACA,mBACA,iBACA,aACA,gBACA,yBACA,CACA,WACA,kBACA,k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,IAAK,4BACjB,EACA,6BACA,WACA,UAAoB,oCAAuC,cAG3D,GAFA,uBACA,OACA,8CACA,OACA,kCACA,uBACA,2CACA,qBACA,OAEA,SACA,EAEA,CAAa,GAAgB,GAC7B,MACA,IAF6B,CAE7B,oBACA,gBACA,0BACA,yBACA,6BAEA,SADqB,GAAgB,GACrC,UADqC,aACrC,EACA,OAAgB,GAAQ,EACxB,WAAgB,GAAY,EAAE,EAAS,CACvC,eAA0B,iBAAqB,EAC/C,mBAAgB,GAAiB,CACjC,IACA,wBACA,qBAA+B,QAAI,CAAC,GAAe,yDAA6D,GAAe,qDAAyD,GAAe,yDACvM,CACA,kBACA,eACA,CACA,MACA,6CACQ,QAAW,kBACnB,CACA,CACA,iBACA,UAAkC,kBAAwC,CAC1E,CACA,iBACA,OAAa,oBACb,CACA,mBAAsB,EAAO,IAC7B,OACA,QACA,kBACA,aAKA,KAJA,kBASA,KACA,cACA,OAAiB,SAEjB,iBACA,OACA,QACA,YACA,QACA,yBACY,GAnBZ,GAmBiC,IAGjC,IAEA,MACA,OAAiB,SAEjB,CARiC,GAQjC,EAAsC,KAArB,OAAqB,kBACtC,SACA,OAAiB,SAEjB,OACA,cACA,aACA,EAOA,OANA,WACA,QAEA,WACA,QAEA,CACA,EA1CA,KACA,CACA,CAIA,eACA,qBCxFA,mBACA,OACA,8BACA,eACA,sBACA,MACA,CACA,CAcA,iBACA,kBACA,cAOA,OAJA,YACA,aACA,cAEA,KAAa,QACb,CAuDA,mBACA,OACA,YACA,WACA,CACA,CACA,iBACA,yBACA,EACA,OACA,CC5GA,kBACA,UACA,eACA,uBACA,mBACA,2BACA,kBAA6B,SAI7B,oBACA,8BAIA,aAAuB,KAIvB,IAJgC,CAIhC,wBAIA,wBACA,oBACA,CACA,SAAyB,uCAA0C,EAAI,EAIvE,oBAAgB,GAAkB,mBAClC,uBACA,OACA,UACA,qBAAoB,GAAmB,eAGvC,8CACA,GACA,kBAAkC,GAAgB,SAElD,EACA,UAEA,SAAoB,mCAAqC,gBACzD,WACA,mBACA,oBACA,kBX/DA,WW+D+C,CX9D/C,oBACA,GAAY,EAAU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O,WACf,gBAEA,GADiC,MAAS,oBAC1C,OAEA,mBACA,OACA,MAAsB,OAAS,eAC/B,QACA,OACA,wBACA,uBACA,EAMA,6BACA,CAIA,gCACA,4BAKA,qBACA,uCACA,sCACA,CChDA,eACA,oCAEA,eACA,uBACA,CACA,iBACA,oCAKA,iBACA,8CACA,qCACA,CACA,iBACA,+BACA,CACA,eACA,OAAW,GAAU,KAAU,EAAV,CAAoB,IACzC,CACA,EAFyC,OAEzC,QACA,kCACA,mBACA,8BCzBA,SACA,cACA,gBAEA,OACQ,SAAa,iBACrB,kBACA,CACA,UAKA,GAJQ,SAAU,iBAClB,mBACA,uBAEA,eACA,0CACA,GACA,eAEA,CACA,CACA,YACA,IAMA,EANA,mCACA,SACA,SAKA,YAAkC,KAAQ,KAC1C,sBACA,qBACA,IACA,KACA,CACA,OACA,MACA,gBACA,GAKA,CACA,aACA,gBACA,WAEA,gBACA,YACA,SACA,IACA,+BACA,mBACA,eACA,GACA,kCAEA,aACA,sBACA,wBACA,mCAEA,2BACA,qBAEA,cAAoB,GAAY,WAChC,OACA,QAcA,CACA,CACA,wBACA,yBACA,IAAoB,0BAAwB,CAC5C,sCACA,GACA,0BACA,0BAEA,CAAS,CACT,CACA,iBACA,yBACA,gCACA,CAAS,CACT,CAKA,qBACA,+BACA,2BAEA,CACA,CExFA,QACA,QACA,yBACA,uBACA,EACA,oBAMI,GAAE,EACN,oBADM,CAEN,iBAAY,GAAe,CAE3B,QACA,UACA,sBACA,GACA,SAGA,CAkBA,SAAS,GAAoB,sBAAG,uEAAwF,EACxH,aACA,gBAAqC,UAIrC,QAAsB,KAItB,mBACA,CALwB,GAKxB,qBAOA,sBAKA,gBAMA,wBACA,2BAOA,sBAKA,0BAKA,gCAKA,yBAIA,8BACA,8BAKA,mBAIA,cAKA,mBAIA,6BAOA,kCASA,gBAA+B,SAI/B,2BACA,wBAEA,wBACA,sCACA,kCACA,4BACA,kBACA,mBACA,yBAEA,EAMA,2BACA,kCAKoB,IAAW,QAC/B,UACA,0BACA,yBACA,GAEA,uBACA,uBACA,uBACA,uBACoB,IAAW,uBACX,IAAW,yBAE/B,EAIA,gCACA,qBACA,kBACA,yBAKA,yBACA,oBACA,2BACA,6BACA,cACA,yBACA,YAA4B,mBAAsB,IAClD,oCAEA,mBACA,gBAAiC,EAAQ,CACzC,CACA,IAFyC,aAEzC,KAIA,OAHA,2BACA,6BAAiD,IAAmB,EAEpE,gCACA,CACA,wBACA,+BACA,kBACA,CACA,gBACA,gCACA,CAIA,SACA,iBACA,MACA,YAAyB,GAAY,KAAe,CXpOzC,GWoO0B,IXpOd,OWoO4C,CXpO5C,WWqOvB,gBACA,aAAoB,4BAAkC,aAStD,GARA,eACA,WAEA,0BACA,4CACA,mCACA,wBAEA,GAEA,IADA,EACA,IACA,yCAEgB,IAAK,WACrB,oBACiB,EACjB,SACA,wBACA,QAEA,IACA,mCACA,OACA,EP/PA,KO+PuC,IP/PvC,KACA,MAAkB,IAAI,OACtB,cAA4B,EAAW,IACvC,UACA,GO2PuC,MP1P3B,QAAW,IACvB,IOyPuC,KPvPvC,EAEA,OADI,IAAK,aACT,IAAiB,QAAW,GAC5B,EOoPuC,OACf,GAAqB,yBACrB,GAAqB,0BAC7C,wBAEA,CAAiB,CACjB,CACA,GACA,qCAGA,2BACA,GACA,QACA,0CAAsD,yDAAuE,IAC7H,kCACA,mBACA,2BACA,MACA,CAEA,+BACA,0BACA,GACA,wBAA4B,+BAAqD,aAKjF,sBACA,CAAyB,GAAgB,qBAYzC,QACA,4BACA,iBACA,GACA,GACA,6BACA,kBACA,kCACA,uCAEA,OACA,GAA+B,GAAkB,YACjD,GADiD,IACjD,EACA,YACA,EACA,uBACA,2BACA,UACA,WAEA,uBAKA,4BACA,MAOA,GACA,SAEA,4CACA,6BAGA,oBACA,CAAiB,CAEjB,CACA,UACA,yCACA,6BACA,qBACA,mBACA,+CACA,qBACA,2BACY,QAAW,uBACvB,CAEA,cACA,6BACA,CACA,gBACA,6BACA,CACA,kBACA,8DAEA,yBACA,gCACA,mDACA,EACA,CAEA,eACA,yBAEA,mBACA,mCACA,mBACA,CACA,uBACA,kBAAoB,GAAgB,aACpC,yCAEA,iBAEA,GADA,6BACA,6BACA,2DACA,MACA,CAkBA,GALA,uCACA,iCAvWA,cAEA,GADA,+BACA,WACA,OACA,IAAY,iBAAgB,UAC5B,MACA,OACA,MAAyC,EjGhDzC,MAA+B,CiGgDV,EjGhDsC,CiGiD3D,iBADyC,OjGhDkB,aiGiD3D,iBACA,WAAgB,cAAmB,UACnC,oDAAqE,IAAK,SAC1E,CACA,WAAY,GAAS,CACrB,kCACA,IAEA,EAwVA,MAEA,8CACA,mBACA,MACA,uBACA,YAA4B,mBAAsB,KAClD,kBACA,2BACA,2BACA,sBACA,gBAEA,CACA,aAAoB,YAAmB,aACvC,kBACA,OACA,iCACA,mCACA,wBACA,OACA,sBACA,qCACA,CACA,SAMA,GALA,wBACA,uBAIA,CACA,qBACA,yBACA,uBACA,MACA,CAIA,wDACA,sBAGA,yCACA,iBAIA,mBAIA,uBAKA,uBAKA,wBAjBA,uBAmBA,yBAMA,MAAwB,IAAI,OAChB,IAAS,OAAS,QAAK,YAAqB,IAAS,YACrD,IAAS,aACT,IAAS,iBACT,IAAU,gBAAgB,IAAS,EACnC,IAAU,mBAAmB,IAAS,EACtC,IAAU,gBAAgB,IAAS,EACnC,IAAS,gBACrB,CACA,YACA,uBACA,wBACgB,GAAS,0BAEzB,CACA,oBACA,uBACA,4BACA,CACA,2BACA,iCACA,kCACgB,IAAK,wCAErB,CACA,4BAMY,IAAK,iBACjB,mBACA,sBAGA,6BAEA,CAAa,CACb,CAIA,kBACA,+BAEA,6BACA,gBACiB,GAAU,8BACV,GAAU,8BAC3B,uBAEA,CACA,eACA,oBAEA,oBACA,oDACA,qBAHA,OAaA,8CACA,YAAgC,mBAAsB,IACtD,aACA,eAGA,kBACA,6BACA,qBAAmC,KACnC,IAD4C,CAC5C,iBACA,4BACA,sDACA,kBAAoB,GAAgB,aACpC,GACA,oEACA,CACA,0BACA,mDAMA,GALA,aACA,iDACA,uBACA,OAEA,kBACA,sBACA,cACA,kCACA,QACA,SACA,wBACA,wCACA,CACA,CACA,CACA,iBACA,MACA,OACA,0BACA,2BACA,iCACA,yBAA2D,GAAW,sBACtE,8BACA,IACA,wBACA,OACA,sCACA,GACA,eACA,IACoB,EAAY,oBAChC,KACA,mBACA,6BACA,sBAEA,CACA,kBAw+BA,EAv+BA,4BACA,8BAUA,OAJA,GACA,4BAg+BA,IADA,EA79BA,GA89BA,GACA,QA99BA,CACA,kCACA,cACA,YACA,eAAgC,CAChC,eAEA,CACA,iBACA,kBAAoB,GAAgB,aACpC,MACA,OAAuB,KACvB,6BAEA,IADA,2CACA,CAEA,WAAwB,GAAS,UACjC,IACoB,EAAa,gBACb,EAAa,gBAEjC,CACA,QACA,CACA,uBACA,MAAqC,KAErC,GADY,CADkC,EACvB,KACvB,GADuB,CACvB,iBACA,SAMA,YAA4B,mBAAsB,KAClD,mBACA,QAAwB,aAAkB,EAC1C,mCAKA,WACwB,GAAW,KAEf,EAAa,CAFE,CAEF,cACb,EAAa,gBAEjC,CACA,QACA,CACA,uBACA,MAAmC,KACvB,GAAW,CADqB,CACrB,GACvB,GADuB,CACvB,QAA4B,mBAAsB,KAClD,kBACA,KACA,wBACA,UACA,YACoB,EAAY,GAChC,OADgC,IAChC,UACA,qBACqB,EAEA,EAAY,iBAEjB,EAAY,iBAC5B,CAIA,OAHgB,EAAY,oBACZ,EAAY,qBAE5B,CACA,CACA,mBACA,MAAwC,KAC5B,GAAW,CAD0B,CAC1B,GACvB,GADuB,CACvB,QAA4B,mBAAsB,KAClD,mBACA,gBAEA,CAAqB,EAAY,gBADjC,SAGgB,EAAQ,oCACxB,MAAkC,KAElB,GAAW,CAFgB,CAC3C,MAC2B,UAD3B,IAEgB,GAAmB,0DACnC,CAIA,OAHgB,EAAY,oBACZ,GAAmB,qBAEnC,CACA,CACA,kBACA,mBACA,qCACA,yBACA,CACA,cACA,cACA,gBACA,KACA,4CAEA,CACA,oBACA,mBACA,mBACA,qBACA,uCACA,wBACA,mBACA,qBACA,CACA,qCACA,qBAQA,+CACgB,IAAS,YACzB,0CAEA,CACA,yBAMA,oBACA,sEACA,kEACA,uFACA,oCAWA,GANA,KACA,iCACA,wBACA,gCACA,qCACA,iCAEA,OACA,WAAoB,cAAmB,aAIvC,wBAQA,GANA,8BAA4C,IAAS,WAMrD,yCACA,uCACA,IACA,UACA,4BACA,sBACA,0CACA,oBAA0C,KAC1C,0BAAgD,KAC5B,GAAoB,CADiB,GACjB,gEACpB,GAAW,gDAG/B,8CAEA,CAKA,0CAYA,GAPA,cACA,YAA8B,KAC9B,IADuC,CACvC,qBAA4C,MAK5C,GALqD,CAKrD,iBACA,2BACA,qBACA,gC3BnwBA,M2BowBA,0C3BpwBA,E2BqwB+B,Y3BrwB/B,E2BqwB+B,oB3BrwB/B,E2BqwB+B,2B3BpwB/B,gBACA,e2BuwBA,MACA,kBACA,kBAEA,uDAGoB,GAAW,mCAEf,EAAa,+BAMb,GAAW,mCAK3B,wCACA,uCACA,uCACA,IACA,kBACA,qBACA,yBACA,UACA,4BACA,sBACA,0CACA,oBAA0C,KAC1C,IADmD,CACnD,qBAAgD,KAC5B,GAAoB,CADiB,GACjB,4CACpB,GAAW,gDAG/B,8CAEA,CAIgB,IAAW,QAC3B,6BAEA,CACA,6BACA,mBACgB,EAAQ,2BACR,EAAc,2BAG9B,8BACA,wBAGA,+CAEA,CACA,eACA,+BACA,kBACA,0BACA,YACA,CACA,iBACA,qBACA,gCACA,KAuBA,GAlBA,0DACA,OAMA,GACA,uDACA,OAMA,gCAAkD,IAAS,YAC3D,OAEA,EACA,OACA,WAAoB,cAAmB,aAWvC,GANA,kEACA,uBACA,uBACA,sBACA,8CAEA,sBACA,OAKY,GAAW,4CAIvB,uBACA,oBxLz3BA,qBACA,IAKA,EACA,EANA,WACA,MAGA,UAGA,YAAoB,IAAgB,KAEpC,GADA,QACA,gBAKA,kBAAgB,GAAgB,UAChC,MACA,eACA,sCAGA,GACA,wBACA,UACA,YACA,KACA,qBACA,qBACa,EAEb,IAEA,eACA,eAEA,QAEA,GAAkC,EAAY,iBAC9C,oBAEA,CAKA,IApDA,iBAqDA,IAtDA,eAuDA,QAEA,IAxDA,iBAyDA,IA1DA,eA2DA,QAEA,EwLy0B2B,iDAK3B,UACA,WACA,+CACA,4BACA,uBAA4C,MAE5C,GAFqD,QAEjC,GAAS,EAC7B,OAMA,2BACA,8BACA,uBAEA,MACA,CACA,gDAIgB,GAAiB,mDACjB,GAAiB,oDAJjC,8BAeY,GAAY,+DACxB,sBACA,sBACiB,GAAe,oDACf,GAAe,qDAChC,qBACA,sBACA,4CAKgB,IAAW,QAC3B,0BAEA,CACA,OACA,iBAEA,CACA,OACA,iBAEA,CACA,qBAEA,GADA,6CACA,GACA,qBACA,sBACA,CACA,gDACA,0BAEA,CACA,yBACA,yBAAuC,KACvC,MADkD,cAClD,CAAmC,KACnC,MAD8C,2BAC9C,CAAgD,IAChD,CACA,MAF2D,aAE3D,QACA,IAoBA,EApBA,gBACA,sBACA,GAAkC,sBAClC,EAAgC,IAChC,OAD2C,aAC3C,EACA,wCACA,uDAEA,uCACA,MAAmC,KAGnC,EAFA,EAD4C,CAC5C,mBACA,wCAEA,kBACA,0BACA,QACA,IACA,6BACA,oBACA,0BAEA,wBACA,YAIA,GAHA,cACA,cACA,uBACA,qBACA,2BACA,aACA,qBACA,gCH3gCA,IGwhDA,QA5gBoB,GAAoB,8DA4gBxC,EA3gBA,oBA2gBA,EA3gBA,0BA2gBA,EA3gBA,EA2gBA,EA3gBA,EA4gBA,kBACA,kBAxgBA,IHlhCA,EGmhCiC,oBHnhCjC,EGmhCiC,EHlhCjC,2BGmhCA,4BAEA,GACA,GAA6C,IAAS,EAClC,GAAW,sBAC/B,CACA,IACA,uBACoB,SNhiCpB,aACA,GACA,UAAyB,OAAS,uBAClC,cAA6B,OAAS,wBAEtC,GACA,WAAyB,OAAS,+BAKlC,YAAoB,KAAgB,KACpC,eAAqC,MAAW,QAChD,UACA,UACA,2BAEA,SACA,SACA,OACA,OACA,eAEA,cAA2C,OAAS,oBACpC,IAAO,UAAqB,IAAO,WACnD,aAIA,OAEA,CAIA,sBACA,UAAwB,OAAS,4BAEjC,EM0/B6B,8BAE7B,qCACA,sBACA,wBACA,EACA,kDACA,CACA,kBACA,uCACA,8BACA,4CACA,wBACgB,QAAW,wBAC3B,8BAOA,sBAAoC,IAAK,aACzB,GAAqB,0BACrB,GAAgB,SAChC,oCAAwD,SAAW,KACnE,sBAAwC,SV7jCxC,OACA,EU4jC0D,EV5jC1D,EAA0B,QAAa,MAAkB,SAAW,IAEpE,OADA,QAAwB,GAAkB,WAC1C,IAD0C,OAE1C,EUyjC0D,0BAC1D,KACA,WACA,UACA,aACA,uBACA,yBACA,CAAqB,CACrB,YACwB,GAAgB,QACxC,CAAqB,CACrB,GAFwC,QAExC,KACwB,GAAgB,SACxC,IADwC,QACxC,iBACA,wBACA,CAAqB,CACJ,EACjB,mBACA,2DAEA,4BACA,CAAa,CACb,CACA,oBACA,oBACA,0CACA,0CAEA,qBACA,8BACA,kBACA,sBACA,qBACA,OACA,yCACA,CACA,kBACA,wBACA,yCAvkCA,KAwkCA,8BAEA,wBACA,CACA,0BACA,qBACA,sBAAkB,oCAAqD,EACvE,YAOA,aACA,aACA,GACA,kEACA,eAAwC,KACxC,IADiD,EACjB,GAAU,wBAC1C,wBACA,kBACA,MAAgC,GAAU,wBAC1C,wBACA,iBACA,CACY,GAAW,KAMX,EAAY,CAND,CAMC,GAOZ,GAAY,EAPA,EAOA,wDACxB,CACA,wBACA,yBACA,2BAAmD,IAEnD,KAF4D,WAE5D,QACA,OACA,uCACA,WACA,iCACA,uDACA,iCACA,MACA,CAAa,CACb,CACA,SACA,sBACA,wBAEA,UACA,aAAoB,GAAW,aAC/B,sCAEA,cACA,aAAoB,GAAW,aAC/B,yCACA,CACA,WACA,aAAoB,GAAW,aAC/B,KACA,mCACA,CACA,oBAAkB,wCAAiD,EAAI,EACvE,qBACA,IACA,kBACA,IACA,4BACA,oBAEA,GACA,4BAAkC,EAAY,CAC9C,CACA,WACA,4BACA,KACA,gBAKA,CACA,uBACA,kBAAoB,GAAgB,aACpC,MACA,OAEA,SAKA,cAAoB,GAAe,EAWnC,GAVA,MACA,UACA,WACA,WACA,WACA,SACA,UACA,OAGA,GACA,OACA,QACA,MACA,iCAGA,YAA4B,YAA0B,IACtD,YAAkD,MAAiB,4BACnE,UAAgD,MAAiB,4BAMjE,aAFA,WAEA,EACA,yBACA,sBACA,+BAKA,kBACA,CACA,wBACA,GACA,8BACA,OACA,oBACA,sBACA,MACA,CACA,kCACA,oBACA,mBACA,gBACA,aACA,gBACoB,GAAkB,sBACtC,cACA,wBACA,OACA,MACA,CACA,qBACA,mDACA,wBACA,UACA,mCACA,0BACA,EACA,gBACwB,GAAkB,uBAE1C,oBAA0C,EAAY,qBACtD,cACA,IAA8C,KAC9C,OACA,sBAEA,MACA,CACA,gBACA,wCACA,+BACA,MAA4B,SD1xC5B,OACA,QCyxCoD,CDlxCpD,oBACA,oBACA,UAWA,GAVA,WACA,kBAAmC,EAAW,MAAM,EAAW,MAAM,EAAW,OAMhF,oBACA,aAA8B,MAAgB,IAAI,MAAgB,KAElE,GACA,yBAAgB,gDAA+D,CAC/E,IACA,kBAAuC,EAAqB,MAAM,GAAU,EAC5E,GACA,cAAmC,EAAO,QAC1C,GACA,eAAoC,EAAQ,QAC5C,GACA,eAAoC,EAAQ,QAC5C,GACA,aAAkC,EAAM,QACxC,GACA,aAAkC,EAAM,OACxC,CAKA,oBACA,gBAIA,MAHA,gBACA,aAA8B,EAAc,IAAI,EAAc,IAE9D,SACA,EC4uCoD,mDACpD,IACA,WAEA,cACA,MAAoB,OAAO,qBAiC3B,aAhCA,qBAA6C,aAAe,IAAI,aAAe,KAC/E,kBAKA,UACA,SACA,WACA,2BACA,EACA,qBACA,0BACA,cAOA,UACA,SACA,mBACA,UACA,GACA,uBACA,cACA,EAK8B,GAAe,CAC7C,WAD6C,CAC7C,KACA,SACA,IAAwB,qCAAkC,EAAiB,IAO3E,aACA,KACA,UACA,MACA,eACA,YAAoC,IAAS,IAC7C,SAEA,MAKA,EACA,iDAGA,MAGA,CAMA,uBACA,iBACA,SAC0B,GAAkB,sBAC5C,OAEA,CACA,gBACA,oCACA,CAEA,YACA,uDACA,4BACA,6BACA,CACA,CACA,CACA,eACA,gBACA,CACA,eACA,yCACA,eACA,UACA,GACA,6BACA,IAAgB,2BAAiD,SACjE,eAAgB,GAAgB,UAChC,4BAGA,YACY,GAAQ,IACpB,CADoB,GACpB,IACA,iBACA,eACA,EAA+B,GAAU,EACzC,KADyC,CACzC,UACA,aACA,CAAa,EAEb,qBACY,GAAQ,IACpB,CADoB,GACpB,IACA,iBACA,eACA,EAA+B,GAAU,KACzC,EADyC,CACzC,YAIA,wCACA,uBACA,wBACA,0BAEA,CAAa,EAEb,MAA4B,KACpB,GAAY,GADmB,CACnB,aACpB,MAA4B,KAC5B,EACY,GAAY,CAFe,CAEf,sCAGZ,GAAY,iBAExB,OAAkC,GAAW,GAC7C,KAD6C,GAE7C,eACA,qCAKA,qBACA,IAAwB,qBAAiD,EACzE,SACA,MAA6C,KACzB,GAAoB,CADc,CACd,yBACxC,MAA2C,KACvB,GAAoB,CADY,CACZ,eACf,GAAgB,MACzC,OAEA,uBACA,mBACA,yBACA,mBAEA,CACA,CACA,CACA,+BACA,SACA,WACA,QACA,cACA,mBACA,0BACA,CAAS,CACT,MACA,eACA,mBAAgB,GAAiB,UACjC,MACA,CAMA,2BACA,CACA,eAIQ,IAAW,QACnB,WAEA,WAQA,kBACA,iDAOA,8EACA,4BACA,mCACA,mEACA,CACA,eACA,oBACA,0BACA,mBACA,EACA,CACA,eACA,iBACA,CACA,eACA,qBACA,CACA,eACA,kBACA,CACA,eACA,kBAAY,GAAgB,UAC5B,uCACA,gCAEA,kBACA,CACA,eACA,oBACA,+CACA,sBACA,CACA,eACA,sBACA,CACA,eACA,kBACA,CACA,eACA,wBACA,CACA,eACA,sBACA,CACA,mBACA,YAAuB,OAAS,kBAChC,QAAmB,OAAS,cAC5B,kBACA,2BACA,CACA,qBACA,MAAiB,OAAS,gBAC1B,MAAiB,OAAS,eAC1B,CAKA,eACA,gEACA,CACA,QACA,aACA,gBACA,EACA,qCACA,qBACA,8CAMA,sCACA,WACM,IAAI,CACV,eAEA,gBACA,eACA,CAKA,mBACA,sBACA,wB3BxjDA,C2ByjDsD,I3BzjDtD,S2ByjDoB,GAAW,GAAY,GAAW,EAAvB,C3BzjD/B,C2B0jDA,CACA,GAFsD,MAEtD,MACA,oCACA,CCtkDA,OAA+B,GAAoB,CACnD,4BAA2C,GAAW,QADH,GACG,GACtD,oBACA,gEACA,8DACA,CAAK,CACL,wBACA,CAAC,ECPD,IACA,cACA,EACA,GAA2B,GAAoB,CAC/C,mBACA,eACA,KAH+C,QAG/C,CACA,CAAK,CACL,mBACA,gBACA,UAAqC,GAAsB,EAAG,EAC9D,eAD2D,CAE3D,cAAsC,gBAAoB,EAC1D,YACA,CACA,kBACK,CACL,uBACA,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","sources":["webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/array.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/index.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/frameloop/frame.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/errors.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/color/hex.mjs","webpack://_N_E/../../../src/icons/arrow-right.ts","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/utils/use-constant.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/clamp.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/numbers/units.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/complex/index.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/frameloop/order.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/frameloop/render-step.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/frameloop/batcher.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/velocity-per-second.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/global-config.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/utils/mix/number.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/utils/measure.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/render/utils/keys-position.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/auto.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/test.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/dimensions.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/is-numerical-string.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/is-zero-value-string.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/complex/filter.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/int.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/maps/transform.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/maps/number.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/utils/find.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/frameloop/microtask.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/motion/features/definitions.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/geometry/models.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/store.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/utils/variant-props.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/VisualElement.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/html/utils/render.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/context/LazyContext.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/html/use-props.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/svg/use-props.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/dom/use-render.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/context/PresenceContext.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/motion/features/load-features.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/motion/index.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/components/create-proxy.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/utils/setters.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/value/use-will-change/is.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/value/use-will-change/add-will-change.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/time-conversion.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/stats/animation-count.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/drivers/frame.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/generators/inertia.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/easing/ease.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/easing/back.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/easing/anticipate.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/easing/circ.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/easing/utils/map.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/JSAnimation.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/render/dom/style-set.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/memo.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/utils/supports/flags.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/utils/supports/memo.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/animation/utils/is-transition-defined.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/utils/get-variant-context.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/motion/features/Feature.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/motion/features/animation/index.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/motion/features/animations.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/events/add-dom-event.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/events/event-info.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/events/add-pointer-event.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/utils/get-context-window.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/utils/distance.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/gestures/drag/index.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/gestures/pan/index.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/node/state.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/is-object.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/utils/is-svg-element.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/animation/animate/single-value.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/utils/delay.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/shared/stack.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/styles/transform.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/motion/features/drag.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/utils/resolve-elements.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/gestures/utils/setup.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/gestures/hover.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/gestures/hover.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/gestures/focus.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/utils/is-html-element.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/gestures/press/index.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/gestures/press.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/motion/features/gestures.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/motion/features/layout.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/frameloop/sync-time.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/utils/mix/immediate.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/utils/mix/color.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/utils/mix/visibility.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/utils/mix/complex.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/utils/mix/index.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/color/utils.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/color/index.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/numbers/index.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/subscription-manager.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs","webpack://_N_E/../../node_modules/.bun/react-icons@5.5.0+f4eacebf2041cd4f/node_modules/react-icons/lib/iconsManifest.mjs","webpack://_N_E/../../node_modules/.bun/react-icons@5.5.0+f4eacebf2041cd4f/node_modules/react-icons/lib/iconContext.mjs","webpack://_N_E/../../node_modules/.bun/react-icons@5.5.0+f4eacebf2041cd4f/node_modules/react-icons/lib/iconBase.mjs","webpack://_N_E/../../node_modules/.bun/react-icons@5.5.0+f4eacebf2041cd4f/node_modules/react-icons/lib/index.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/noop.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/progress.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/color/rgba.mjs","webpack://_N_E/../../node_modules/.bun/motion-utils@12.23.6/node_modules/motion-utils/dist/es/pipe.mjs","webpack://_N_E/../../node_modules/.bun/framer-motion@12.23.6+6dbf9a050bc9aadb/node_modules/framer-motion/dist/es/utils/is-browser.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/utils/interpolate.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/stats/buffer.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/types/color/hsla.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs","webpack://_N_E/../../node_modules/.bun/motion-dom@12.23.6/node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs"],"sourcesContent":["\"use client\";\nimport { createContext } from 'react';\n\n/**\n * @public\n */\nconst MotionConfigContext = createContext({\n transformPagePoint: (p) => p,\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n","function addUniqueItem(arr, item) {\n if (arr.indexOf(item) === -1)\n arr.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n if (index > -1)\n arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem([...arr], fromIndex, toIndex) {\n const startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n const endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n const [item] = arr.splice(fromIndex, 1);\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\nexport { addUniqueItem, moveItem, removeItem };\n","import { warnOnce, SubscriptionManager, velocityPerSecond } from 'motion-utils';\nimport { time } from '../frameloop/sync-time.mjs';\nimport { frame } from '../frameloop/frame.mjs';\n\n/**\n * Maximum time between the value of two frames, beyond which we\n * assume the velocity has since been 0.\n */\nconst MAX_VELOCITY_DELTA = 30;\nconst isFloat = (value) => {\n return !isNaN(parseFloat(value));\n};\nconst collectMotionValues = {\n current: undefined,\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nclass MotionValue {\n /**\n * @param init - The initiating value\n * @param config - Optional configuration options\n *\n * - `transformer`: A function to transform incoming values with.\n */\n constructor(init, options = {}) {\n /**\n * Tracks whether this value can output a velocity. Currently this is only true\n * if the value is numerical, but we might be able to widen the scope here and support\n * other value types.\n *\n * @internal\n */\n this.canTrackVelocity = null;\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n this.updateAndNotify = (v, render = true) => {\n const currentTime = time.now();\n /**\n * If we're updating the value during another frame or eventloop\n * than the previous frame, then the we set the previous frame value\n * to current.\n */\n if (this.updatedAt !== currentTime) {\n this.setPrevFrameValue();\n }\n this.prev = this.current;\n this.setCurrent(v);\n // Update update subscribers\n if (this.current !== this.prev) {\n this.events.change?.notify(this.current);\n if (this.dependents) {\n for (const dependent of this.dependents) {\n dependent.dirty();\n }\n }\n }\n // Update render subscribers\n if (render) {\n this.events.renderRequest?.notify(this.current);\n }\n };\n this.hasAnimated = false;\n this.setCurrent(init);\n this.owner = options.owner;\n }\n setCurrent(current) {\n this.current = current;\n this.updatedAt = time.now();\n if (this.canTrackVelocity === null && current !== undefined) {\n this.canTrackVelocity = isFloat(this.current);\n }\n }\n setPrevFrameValue(prevFrameValue = this.current) {\n this.prevFrameValue = prevFrameValue;\n this.prevUpdatedAt = this.updatedAt;\n }\n /**\n * Adds a function that will be notified when the `MotionValue` is updated.\n *\n * It returns a function that, when called, will cancel the subscription.\n *\n * When calling `onChange` inside a React component, it should be wrapped with the\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\n *\n * ```jsx\n * export const MyComponent = () => {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.on(\"change\", updateOpacity)\n * const unsubscribeY = y.on(\"change\", updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return \n * }\n * ```\n *\n * @param subscriber - A function that receives the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @deprecated\n */\n onChange(subscription) {\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(false, `value.onChange(callback) is deprecated. Switch to value.on(\"change\", callback).`);\n }\n return this.on(\"change\", subscription);\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n const unsubscribe = this.events[eventName].add(callback);\n if (eventName === \"change\") {\n return () => {\n unsubscribe();\n /**\n * If we have no more change listeners by the start\n * of the next frame, stop active animations.\n */\n frame.read(() => {\n if (!this.events.change.getSize()) {\n this.stop();\n }\n });\n };\n }\n return unsubscribe;\n }\n clearListeners() {\n for (const eventManagers in this.events) {\n this.events[eventManagers].clear();\n }\n }\n /**\n * Attaches a passive effect to the `MotionValue`.\n */\n attach(passiveEffect, stopPassiveEffect) {\n this.passiveEffect = passiveEffect;\n this.stopPassiveEffect = stopPassiveEffect;\n }\n /**\n * Sets the state of the `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useMotionValue(0)\n * x.set(10)\n * ```\n *\n * @param latest - Latest value to set.\n * @param render - Whether to notify render subscribers. Defaults to `true`\n *\n * @public\n */\n set(v, render = true) {\n if (!render || !this.passiveEffect) {\n this.updateAndNotify(v, render);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n }\n setWithVelocity(prev, current, delta) {\n this.set(current);\n this.prev = undefined;\n this.prevFrameValue = prev;\n this.prevUpdatedAt = this.updatedAt - delta;\n }\n /**\n * Set the state of the `MotionValue`, stopping any active animations,\n * effects, and resets velocity to `0`.\n */\n jump(v, endAnimation = true) {\n this.updateAndNotify(v);\n this.prev = v;\n this.prevUpdatedAt = this.prevFrameValue = undefined;\n endAnimation && this.stop();\n if (this.stopPassiveEffect)\n this.stopPassiveEffect();\n }\n dirty() {\n this.events.change?.notify(this.current);\n }\n addDependent(dependent) {\n if (!this.dependents) {\n this.dependents = new Set();\n }\n this.dependents.add(dependent);\n }\n removeDependent(dependent) {\n if (this.dependents) {\n this.dependents.delete(dependent);\n }\n }\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n get() {\n if (collectMotionValues.current) {\n collectMotionValues.current.push(this);\n }\n return this.current;\n }\n /**\n * @public\n */\n getPrevious() {\n return this.prev;\n }\n /**\n * Returns the latest velocity of `MotionValue`\n *\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n *\n * @public\n */\n getVelocity() {\n const currentTime = time.now();\n if (!this.canTrackVelocity ||\n this.prevFrameValue === undefined ||\n currentTime - this.updatedAt > MAX_VELOCITY_DELTA) {\n return 0;\n }\n const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA);\n // Casts because of parseFloat's poor typing\n return velocityPerSecond(parseFloat(this.current) -\n parseFloat(this.prevFrameValue), delta);\n }\n /**\n * Registers a new animation to control this `MotionValue`. Only one\n * animation can drive a `MotionValue` at one time.\n *\n * ```jsx\n * value.start()\n * ```\n *\n * @param animation - A function that starts the provided animation\n */\n start(startAnimation) {\n this.stop();\n return new Promise((resolve) => {\n this.hasAnimated = true;\n this.animation = startAnimation(resolve);\n if (this.events.animationStart) {\n this.events.animationStart.notify();\n }\n }).then(() => {\n if (this.events.animationComplete) {\n this.events.animationComplete.notify();\n }\n this.clearAnimation();\n });\n }\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n stop() {\n if (this.animation) {\n this.animation.stop();\n if (this.events.animationCancel) {\n this.events.animationCancel.notify();\n }\n }\n this.clearAnimation();\n }\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n isAnimating() {\n return !!this.animation;\n }\n clearAnimation() {\n delete this.animation;\n }\n /**\n * Destroy and clean up subscribers to this `MotionValue`.\n *\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n * created a `MotionValue` via the `motionValue` function.\n *\n * @public\n */\n destroy() {\n this.dependents?.clear();\n this.events.destroy?.notify();\n this.clearListeners();\n this.stop();\n if (this.stopPassiveEffect) {\n this.stopPassiveEffect();\n }\n }\n}\nfunction motionValue(init, options) {\n return new MotionValue(init, options);\n}\n\nexport { MotionValue, collectMotionValues, motionValue };\n","import { noop } from 'motion-utils';\nimport { createRenderBatcher } from './batcher.mjs';\n\nconst { schedule: frame, cancel: cancelFrame, state: frameData, steps: frameSteps, } = /* @__PURE__ */ createRenderBatcher(typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : noop, true);\n\nexport { cancelFrame, frame, frameData, frameSteps };\n","import { formatErrorMessage } from './format-error-message.mjs';\n\nlet warning = () => { };\nlet invariant = () => { };\nif (process.env.NODE_ENV !== \"production\") {\n warning = (check, message, errorCode) => {\n if (!check && typeof console !== \"undefined\") {\n console.warn(formatErrorMessage(message, errorCode));\n }\n };\n invariant = (check, message, errorCode) => {\n if (!check) {\n throw new Error(formatErrorMessage(message, errorCode));\n }\n };\n}\n\nexport { invariant, warning };\n","import { rgba } from './rgba.mjs';\nimport { isColorString } from './utils.mjs';\n\nfunction parseHex(v) {\n let r = \"\";\n let g = \"\";\n let b = \"\";\n let a = \"\";\n // If we have 6 characters, ie #FF0000\n if (v.length > 5) {\n r = v.substring(1, 3);\n g = v.substring(3, 5);\n b = v.substring(5, 7);\n a = v.substring(7, 9);\n // Or we have 3 characters, ie #F00\n }\n else {\n r = v.substring(1, 2);\n g = v.substring(2, 3);\n b = v.substring(3, 4);\n a = v.substring(4, 5);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: /*@__PURE__*/ isColorString(\"#\"),\n parse: parseHex,\n transform: rgba.transform,\n};\n\nexport { hex };\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJtMTIgNSA3IDctNyA3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowRight = createLucideIcon('ArrowRight', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'm12 5 7 7-7 7', key: 'xquz4c' }],\n]);\n\nexport default ArrowRight;\n","import { useRef } from 'react';\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */\nfunction useConstant(init) {\n const ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n\nexport { useConstant };\n","const clamp = (min, max, v) => {\n if (v > max)\n return max;\n if (v < min)\n return min;\n return v;\n};\n\nexport { clamp };\n","/*#__NO_SIDE_EFFECTS__*/\nconst createUnitType = (unit) => ({\n test: (v) => typeof v === \"string\" && v.endsWith(unit) && v.split(\" \").length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = /*@__PURE__*/ createUnitType(\"deg\");\nconst percent = /*@__PURE__*/ createUnitType(\"%\");\nconst px = /*@__PURE__*/ createUnitType(\"px\");\nconst vh = /*@__PURE__*/ createUnitType(\"vh\");\nconst vw = /*@__PURE__*/ createUnitType(\"vw\");\nconst progressPercentage = /*@__PURE__*/ (() => ({\n ...percent,\n parse: (v) => percent.parse(v) / 100,\n transform: (v) => percent.transform(v * 100),\n}))();\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n","const colorRegex = /(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))/giu;\n\nexport { colorRegex };\n","import { color } from '../color/index.mjs';\nimport { colorRegex } from '../utils/color-regex.mjs';\nimport { floatRegex } from '../utils/float-regex.mjs';\nimport { sanitize } from '../utils/sanitize.mjs';\n\nfunction test(v) {\n return (isNaN(v) &&\n typeof v === \"string\" &&\n (v.match(floatRegex)?.length || 0) +\n (v.match(colorRegex)?.length || 0) >\n 0);\n}\nconst NUMBER_TOKEN = \"number\";\nconst COLOR_TOKEN = \"color\";\nconst VAR_TOKEN = \"var\";\nconst VAR_FUNCTION_TOKEN = \"var(\";\nconst SPLIT_TOKEN = \"${}\";\n// this regex consists of the `singleCssVariableRegex|rgbHSLValueRegex|digitRegex`\nconst complexRegex = /var\\s*\\(\\s*--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)|#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\)|-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/giu;\nfunction analyseComplexValue(value) {\n const originalValue = value.toString();\n const values = [];\n const indexes = {\n color: [],\n number: [],\n var: [],\n };\n const types = [];\n let i = 0;\n const tokenised = originalValue.replace(complexRegex, (parsedValue) => {\n if (color.test(parsedValue)) {\n indexes.color.push(i);\n types.push(COLOR_TOKEN);\n values.push(color.parse(parsedValue));\n }\n else if (parsedValue.startsWith(VAR_FUNCTION_TOKEN)) {\n indexes.var.push(i);\n types.push(VAR_TOKEN);\n values.push(parsedValue);\n }\n else {\n indexes.number.push(i);\n types.push(NUMBER_TOKEN);\n values.push(parseFloat(parsedValue));\n }\n ++i;\n return SPLIT_TOKEN;\n });\n const split = tokenised.split(SPLIT_TOKEN);\n return { values, split, indexes, types };\n}\nfunction parseComplexValue(v) {\n return analyseComplexValue(v).values;\n}\nfunction createTransformer(source) {\n const { split, types } = analyseComplexValue(source);\n const numSections = split.length;\n return (v) => {\n let output = \"\";\n for (let i = 0; i < numSections; i++) {\n output += split[i];\n if (v[i] !== undefined) {\n const type = types[i];\n if (type === NUMBER_TOKEN) {\n output += sanitize(v[i]);\n }\n else if (type === COLOR_TOKEN) {\n output += color.transform(v[i]);\n }\n else {\n output += v[i];\n }\n }\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === \"number\" ? 0 : color.test(v) ? color.getAnimatableNone(v) : v;\nfunction getAnimatableNone(v) {\n const parsed = parseComplexValue(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = {\n test,\n parse: parseComplexValue,\n createTransformer,\n getAnimatableNone,\n};\n\nexport { analyseComplexValue, complex };\n","const stepsOrder = [\n \"setup\", // Compute\n \"read\", // Read\n \"resolveKeyframes\", // Write/Read/Write/Read\n \"preUpdate\", // Compute\n \"update\", // Compute\n \"preRender\", // Compute\n \"render\", // Write\n \"postRender\", // Compute\n];\n\nexport { stepsOrder };\n","import { statsBuffer } from '../stats/buffer.mjs';\n\nfunction createRenderStep(runNextFrame, stepName) {\n /**\n * We create and reuse two queues, one to queue jobs for the current frame\n * and one for the next. We reuse to avoid triggering GC after x frames.\n */\n let thisFrame = new Set();\n let nextFrame = new Set();\n /**\n * Track whether we're currently processing jobs in this step. This way\n * we can decide whether to schedule new jobs for this frame or next.\n */\n let isProcessing = false;\n let flushNextFrame = false;\n /**\n * A set of processes which were marked keepAlive when scheduled.\n */\n const toKeepAlive = new WeakSet();\n let latestFrameData = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n };\n let numCalls = 0;\n function triggerCallback(callback) {\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n numCalls++;\n callback(latestFrameData);\n }\n const step = {\n /**\n * Schedule a process to run on the next frame.\n */\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const queue = addToCurrentFrame ? thisFrame : nextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (!queue.has(callback))\n queue.add(callback);\n return callback;\n },\n /**\n * Cancel the provided callback from running on the next frame.\n */\n cancel: (callback) => {\n nextFrame.delete(callback);\n toKeepAlive.delete(callback);\n },\n /**\n * Execute all schedule callbacks.\n */\n process: (frameData) => {\n latestFrameData = frameData;\n /**\n * If we're already processing we've probably been triggered by a flushSync\n * inside an existing process. Instead of executing, mark flushNextFrame\n * as true and ensure we flush the following frame at the end of this one.\n */\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [thisFrame, nextFrame] = [nextFrame, thisFrame];\n // Execute this frame\n thisFrame.forEach(triggerCallback);\n /**\n * If we're recording stats then\n */\n if (stepName && statsBuffer.value) {\n statsBuffer.value.frameloop[stepName].push(numCalls);\n }\n numCalls = 0;\n // Clear the frame so no callbacks remain. This is to avoid\n // memory leaks should this render step not run for a while.\n thisFrame.clear();\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n","import { MotionGlobalConfig } from 'motion-utils';\nimport { stepsOrder } from './order.mjs';\nimport { createRenderStep } from './render-step.mjs';\n\nconst maxElapsed = 40;\nfunction createRenderBatcher(scheduleNextBatch, allowKeepAlive) {\n let runNextFrame = false;\n let useDefaultElapsed = true;\n const state = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n };\n const flagRunNextFrame = () => (runNextFrame = true);\n const steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(flagRunNextFrame, allowKeepAlive ? key : undefined);\n return acc;\n }, {});\n const { setup, read, resolveKeyframes, preUpdate, update, preRender, render, postRender, } = steps;\n const processBatch = () => {\n const timestamp = MotionGlobalConfig.useManualTiming\n ? state.timestamp\n : performance.now();\n runNextFrame = false;\n if (!MotionGlobalConfig.useManualTiming) {\n state.delta = useDefaultElapsed\n ? 1000 / 60\n : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1);\n }\n state.timestamp = timestamp;\n state.isProcessing = true;\n // Unrolled render loop for better per-frame performance\n setup.process(state);\n read.process(state);\n resolveKeyframes.process(state);\n preUpdate.process(state);\n update.process(state);\n preRender.process(state);\n render.process(state);\n postRender.process(state);\n state.isProcessing = false;\n if (runNextFrame && allowKeepAlive) {\n useDefaultElapsed = false;\n scheduleNextBatch(processBatch);\n }\n };\n const wake = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!state.isProcessing) {\n scheduleNextBatch(processBatch);\n }\n };\n const schedule = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n wake();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n }, {});\n const cancel = (process) => {\n for (let i = 0; i < stepsOrder.length; i++) {\n steps[stepsOrder[i]].cancel(process);\n }\n };\n return { schedule, cancel, state, steps };\n}\n\nexport { createRenderBatcher };\n","/*\n Convert velocity into velocity per second\n\n @param [number]: Unit per frame\n @param [number]: Frame duration in ms\n*/\nfunction velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\n","const MotionGlobalConfig = {};\n\nexport { MotionGlobalConfig };\n","const floatRegex = /-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/gu;\n\nexport { floatRegex };\n","/*\n Value in range from progress\n\n Given a lower limit and an upper limit, we return the value within\n that range as expressed by progress (usually a number from 0 to 1)\n\n So progress = 0.5 would change\n\n from -------- to\n\n to\n\n from ---- to\n\n E.g. from = 10, to = 20, progress = 0.5 => 15\n\n @param [number]: Lower limit of range\n @param [number]: Upper limit of range\n @param [number]: The progress between lower and upper limits expressed 0-1\n @return [number]: Value as calculated from progress within range (not limited within range)\n*/\nconst mixNumber = (from, to, progress) => {\n return from + (to - from) * progress;\n};\n\nexport { mixNumber };\n","/**\n * Generate a list of every possible transform key.\n */\nconst transformPropOrder = [\n \"transformPerspective\",\n \"x\",\n \"y\",\n \"z\",\n \"translateX\",\n \"translateY\",\n \"translateZ\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skew\",\n \"skewX\",\n \"skewY\",\n];\n/**\n * A quick lookup for transform props.\n */\nconst transformProps = /*@__PURE__*/ (() => new Set(transformPropOrder))();\n\nexport { transformPropOrder, transformProps };\n","const radToDeg = (rad) => (rad * 180) / Math.PI;\nconst rotate = (v) => {\n const angle = radToDeg(Math.atan2(v[1], v[0]));\n return rebaseAngle(angle);\n};\nconst matrix2dParsers = {\n x: 4,\n y: 5,\n translateX: 4,\n translateY: 5,\n scaleX: 0,\n scaleY: 3,\n scale: (v) => (Math.abs(v[0]) + Math.abs(v[3])) / 2,\n rotate,\n rotateZ: rotate,\n skewX: (v) => radToDeg(Math.atan(v[1])),\n skewY: (v) => radToDeg(Math.atan(v[2])),\n skew: (v) => (Math.abs(v[1]) + Math.abs(v[2])) / 2,\n};\nconst rebaseAngle = (angle) => {\n angle = angle % 360;\n if (angle < 0)\n angle += 360;\n return angle;\n};\nconst rotateZ = rotate;\nconst scaleX = (v) => Math.sqrt(v[0] * v[0] + v[1] * v[1]);\nconst scaleY = (v) => Math.sqrt(v[4] * v[4] + v[5] * v[5]);\nconst matrix3dParsers = {\n x: 12,\n y: 13,\n z: 14,\n translateX: 12,\n translateY: 13,\n translateZ: 14,\n scaleX,\n scaleY,\n scale: (v) => (scaleX(v) + scaleY(v)) / 2,\n rotateX: (v) => rebaseAngle(radToDeg(Math.atan2(v[6], v[5]))),\n rotateY: (v) => rebaseAngle(radToDeg(Math.atan2(-v[2], v[0]))),\n rotateZ,\n rotate: rotateZ,\n skewX: (v) => radToDeg(Math.atan(v[4])),\n skewY: (v) => radToDeg(Math.atan(v[1])),\n skew: (v) => (Math.abs(v[1]) + Math.abs(v[4])) / 2,\n};\nfunction defaultTransformValue(name) {\n return name.includes(\"scale\") ? 1 : 0;\n}\nfunction parseValueFromTransform(transform, name) {\n if (!transform || transform === \"none\") {\n return defaultTransformValue(name);\n }\n const matrix3dMatch = transform.match(/^matrix3d\\(([-\\d.e\\s,]+)\\)$/u);\n let parsers;\n let match;\n if (matrix3dMatch) {\n parsers = matrix3dParsers;\n match = matrix3dMatch;\n }\n else {\n const matrix2dMatch = transform.match(/^matrix\\(([-\\d.e\\s,]+)\\)$/u);\n parsers = matrix2dParsers;\n match = matrix2dMatch;\n }\n if (!match) {\n return defaultTransformValue(name);\n }\n const valueParser = parsers[name];\n const values = match[1].split(\",\").map(convertTransformToNumber);\n return typeof valueParser === \"function\"\n ? valueParser(values)\n : values[valueParser];\n}\nconst readTransformValue = (instance, name) => {\n const { transform = \"none\" } = getComputedStyle(instance);\n return parseValueFromTransform(transform, name);\n};\nfunction convertTransformToNumber(value) {\n return parseFloat(value.trim());\n}\n\nexport { defaultTransformValue, parseValueFromTransform, readTransformValue };\n","/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToBox({ top, left, right, bottom, }) {\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertBoxToBoundingBox({ x, y }) {\n return { top: y.min, right: x.max, bottom: y.max, left: x.min };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoxPoints(point, transformPoint) {\n if (!transformPoint)\n return point;\n const topLeft = transformPoint({ x: point.left, y: point.top });\n const bottomRight = transformPoint({ x: point.right, y: point.bottom });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n}\n\nexport { convertBoundingBoxToBox, convertBoxToBoundingBox, transformBoxPoints };\n","function isIdentityScale(scale) {\n return scale === undefined || scale === 1;\n}\nfunction hasScale({ scale, scaleX, scaleY }) {\n return (!isIdentityScale(scale) ||\n !isIdentityScale(scaleX) ||\n !isIdentityScale(scaleY));\n}\nfunction hasTransform(values) {\n return (hasScale(values) ||\n has2DTranslate(values) ||\n values.z ||\n values.rotate ||\n values.rotateX ||\n values.rotateY ||\n values.skewX ||\n values.skewY);\n}\nfunction has2DTranslate(values) {\n return is2DTranslate(values.x) || is2DTranslate(values.y);\n}\nfunction is2DTranslate(value) {\n return value && value !== \"0%\";\n}\n\nexport { has2DTranslate, hasScale, hasTransform };\n","import { mixNumber } from 'motion-dom';\nimport { hasTransform } from '../utils/has-transform.mjs';\n\n/**\n * Scales a point based on a factor and an originPoint\n */\nfunction scalePoint(point, scale, originPoint) {\n const distanceFromOrigin = point - originPoint;\n const scaled = scale * distanceFromOrigin;\n return originPoint + scaled;\n}\n/**\n * Applies a translate/scale delta to a point\n */\nfunction applyPointDelta(point, translate, scale, originPoint, boxScale) {\n if (boxScale !== undefined) {\n point = scalePoint(point, boxScale, originPoint);\n }\n return scalePoint(point, scale, originPoint) + translate;\n}\n/**\n * Applies a translate/scale delta to an axis\n */\nfunction applyAxisDelta(axis, translate = 0, scale = 1, originPoint, boxScale) {\n axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Applies a translate/scale delta to a box\n */\nfunction applyBoxDelta(box, { x, y }) {\n applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);\n applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);\n}\nconst TREE_SCALE_SNAP_MIN = 0.999999999999;\nconst TREE_SCALE_SNAP_MAX = 1.0000000000001;\n/**\n * Apply a tree of deltas to a box. We do this to calculate the effect of all the transforms\n * in a tree upon our box before then calculating how to project it into our desired viewport-relative box\n *\n * This is the final nested loop within updateLayoutDelta for future refactoring\n */\nfunction applyTreeDeltas(box, treeScale, treePath, isSharedTransition = false) {\n const treeLength = treePath.length;\n if (!treeLength)\n return;\n // Reset the treeScale\n treeScale.x = treeScale.y = 1;\n let node;\n let delta;\n for (let i = 0; i < treeLength; i++) {\n node = treePath[i];\n delta = node.projectionDelta;\n /**\n * TODO: Prefer to remove this, but currently we have motion components with\n * display: contents in Framer.\n */\n const { visualElement } = node.options;\n if (visualElement &&\n visualElement.props.style &&\n visualElement.props.style.display === \"contents\") {\n continue;\n }\n if (isSharedTransition &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(box, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (delta) {\n // Incoporate each ancestor's scale into a culmulative treeScale for this component\n treeScale.x *= delta.x.scale;\n treeScale.y *= delta.y.scale;\n // Apply each ancestor's calculated delta into this component's recorded layout box\n applyBoxDelta(box, delta);\n }\n if (isSharedTransition && hasTransform(node.latestValues)) {\n transformBox(box, node.latestValues);\n }\n }\n /**\n * Snap tree scale back to 1 if it's within a non-perceivable threshold.\n * This will help reduce useless scales getting rendered.\n */\n if (treeScale.x < TREE_SCALE_SNAP_MAX &&\n treeScale.x > TREE_SCALE_SNAP_MIN) {\n treeScale.x = 1.0;\n }\n if (treeScale.y < TREE_SCALE_SNAP_MAX &&\n treeScale.y > TREE_SCALE_SNAP_MIN) {\n treeScale.y = 1.0;\n }\n}\nfunction translateAxis(axis, distance) {\n axis.min = axis.min + distance;\n axis.max = axis.max + distance;\n}\n/**\n * Apply a transform to an axis from the latest resolved motion values.\n * This function basically acts as a bridge between a flat motion value map\n * and applyAxisDelta\n */\nfunction transformAxis(axis, axisTranslate, axisScale, boxScale, axisOrigin = 0.5) {\n const originPoint = mixNumber(axis.min, axis.max, axisOrigin);\n // Apply the axis delta to the final axis\n applyAxisDelta(axis, axisTranslate, axisScale, originPoint, boxScale);\n}\n/**\n * Apply a transform to a box from the latest resolved motion values.\n */\nfunction transformBox(box, transform) {\n transformAxis(box.x, transform.x, transform.scaleX, transform.scale, transform.originX);\n transformAxis(box.y, transform.y, transform.scaleY, transform.scale, transform.originY);\n}\n\nexport { applyAxisDelta, applyBoxDelta, applyPointDelta, applyTreeDeltas, scalePoint, transformAxis, transformBox, translateAxis };\n","import { convertBoundingBoxToBox, transformBoxPoints } from '../geometry/conversion.mjs';\nimport { translateAxis } from '../geometry/delta-apply.mjs';\n\nfunction measureViewportBox(instance, transformPoint) {\n return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(), transformPoint));\n}\nfunction measurePageBox(element, rootProjectionNode, transformPagePoint) {\n const viewportBox = measureViewportBox(element, transformPagePoint);\n const { scroll } = rootProjectionNode;\n if (scroll) {\n translateAxis(viewportBox.x, scroll.offset.x);\n translateAxis(viewportBox.y, scroll.offset.y);\n }\n return viewportBox;\n}\n\nexport { measurePageBox, measureViewportBox };\n","import { transformPropOrder } from './keys-transform.mjs';\n\nconst positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n ...transformPropOrder,\n]);\n\nexport { positionalKeys };\n","/**\n * ValueType for \"auto\"\n */\nconst auto = {\n test: (v) => v === \"auto\",\n parse: (v) => v,\n};\n\nexport { auto };\n","/**\n * Tests a provided value against a ValueType\n */\nconst testValueType = (v) => (type) => type.test(v);\n\nexport { testValueType };\n","import { auto } from './auto.mjs';\nimport { number } from './numbers/index.mjs';\nimport { px, percent, degrees, vw, vh } from './numbers/units.mjs';\nimport { testValueType } from './test.mjs';\n\n/**\n * A list of value types commonly used for dimensions\n */\nconst dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nconst findDimensionValueType = (v) => dimensionValueTypes.find(testValueType(v));\n\nexport { dimensionValueTypes, findDimensionValueType };\n","/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nconst isNumericalString = (v) => /^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)$/u.test(v);\n\nexport { isNumericalString };\n","import { invariant, isNumericalString } from 'motion-utils';\nimport { isCSSVariableToken } from './is-css-variable.mjs';\n\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nconst splitCSSVariableRegex = \n// eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive, as it can match a lot of words\n/^var\\(--(?:([\\w-]+)|([\\w-]+), ?([a-zA-Z\\d ()%#.,-]+))\\)/u;\nfunction parseCSSVariable(current) {\n const match = splitCSSVariableRegex.exec(current);\n if (!match)\n return [,];\n const [, token1, token2, fallback] = match;\n return [`--${token1 ?? token2}`, fallback];\n}\nconst maxDepth = 4;\nfunction getVariableValue(current, element, depth = 1) {\n invariant(depth <= maxDepth, `Max CSS variable fallback depth detected in property \"${current}\". This may indicate a circular fallback dependency.`, \"max-css-var-depth\");\n const [token, fallback] = parseCSSVariable(current);\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n const resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n const trimmed = resolved.trim();\n return isNumericalString(trimmed) ? parseFloat(trimmed) : trimmed;\n }\n return isCSSVariableToken(fallback)\n ? getVariableValue(fallback, element, depth + 1)\n : fallback;\n}\n\nexport { getVariableValue, parseCSSVariable };\n","function fillWildcards(keyframes) {\n for (let i = 1; i < keyframes.length; i++) {\n keyframes[i] ?? (keyframes[i] = keyframes[i - 1]);\n }\n}\n\nexport { fillWildcards };\n","import { parseValueFromTransform } from '../../../render/dom/parse-transform.mjs';\nimport { transformPropOrder } from '../../../render/utils/keys-transform.mjs';\nimport { number } from '../../../value/types/numbers/index.mjs';\nimport { px } from '../../../value/types/numbers/units.mjs';\n\nconst isNumOrPxType = (v) => v === number || v === px;\nconst transformKeys = new Set([\"x\", \"y\", \"z\"]);\nconst nonTranslationalTransformKeys = transformPropOrder.filter((key) => !transformKeys.has(key));\nfunction removeNonTranslationalTransform(visualElement) {\n const removedTransforms = [];\n nonTranslationalTransformKeys.forEach((key) => {\n const value = visualElement.getValue(key);\n if (value !== undefined) {\n removedTransforms.push([key, value.get()]);\n value.set(key.startsWith(\"scale\") ? 1 : 0);\n }\n });\n return removedTransforms;\n}\nconst positionalValues = {\n // Dimensions\n width: ({ x }, { paddingLeft = \"0\", paddingRight = \"0\" }) => x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight),\n height: ({ y }, { paddingTop = \"0\", paddingBottom = \"0\" }) => y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom),\n top: (_bbox, { top }) => parseFloat(top),\n left: (_bbox, { left }) => parseFloat(left),\n bottom: ({ y }, { top }) => parseFloat(top) + (y.max - y.min),\n right: ({ x }, { left }) => parseFloat(left) + (x.max - x.min),\n // Transform\n x: (_bbox, { transform }) => parseValueFromTransform(transform, \"x\"),\n y: (_bbox, { transform }) => parseValueFromTransform(transform, \"y\"),\n};\n// Alias translate longform names\npositionalValues.translateX = positionalValues.x;\npositionalValues.translateY = positionalValues.y;\n\nexport { isNumOrPxType, positionalValues, removeNonTranslationalTransform };\n","import { fillWildcards } from './utils/fill-wildcards.mjs';\nimport { removeNonTranslationalTransform } from './utils/unit-conversion.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst toResolve = new Set();\nlet isScheduled = false;\nlet anyNeedsMeasurement = false;\nlet isForced = false;\nfunction measureAllKeyframes() {\n if (anyNeedsMeasurement) {\n const resolversToMeasure = Array.from(toResolve).filter((resolver) => resolver.needsMeasurement);\n const elementsToMeasure = new Set(resolversToMeasure.map((resolver) => resolver.element));\n const transformsToRestore = new Map();\n /**\n * Write pass\n * If we're measuring elements we want to remove bounding box-changing transforms.\n */\n elementsToMeasure.forEach((element) => {\n const removedTransforms = removeNonTranslationalTransform(element);\n if (!removedTransforms.length)\n return;\n transformsToRestore.set(element, removedTransforms);\n element.render();\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureInitialState());\n // Write\n elementsToMeasure.forEach((element) => {\n element.render();\n const restore = transformsToRestore.get(element);\n if (restore) {\n restore.forEach(([key, value]) => {\n element.getValue(key)?.set(value);\n });\n }\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureEndState());\n // Write\n resolversToMeasure.forEach((resolver) => {\n if (resolver.suspendedScrollY !== undefined) {\n window.scrollTo(0, resolver.suspendedScrollY);\n }\n });\n }\n anyNeedsMeasurement = false;\n isScheduled = false;\n toResolve.forEach((resolver) => resolver.complete(isForced));\n toResolve.clear();\n}\nfunction readAllKeyframes() {\n toResolve.forEach((resolver) => {\n resolver.readKeyframes();\n if (resolver.needsMeasurement) {\n anyNeedsMeasurement = true;\n }\n });\n}\nfunction flushKeyframeResolvers() {\n isForced = true;\n readAllKeyframes();\n measureAllKeyframes();\n isForced = false;\n}\nclass KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element, isAsync = false) {\n this.state = \"pending\";\n /**\n * Track whether this resolver is async. If it is, it'll be added to the\n * resolver queue and flushed in the next frame. Resolvers that aren't going\n * to trigger read/write thrashing don't need to be async.\n */\n this.isAsync = false;\n /**\n * Track whether this resolver needs to perform a measurement\n * to resolve its keyframes.\n */\n this.needsMeasurement = false;\n this.unresolvedKeyframes = [...unresolvedKeyframes];\n this.onComplete = onComplete;\n this.name = name;\n this.motionValue = motionValue;\n this.element = element;\n this.isAsync = isAsync;\n }\n scheduleResolve() {\n this.state = \"scheduled\";\n if (this.isAsync) {\n toResolve.add(this);\n if (!isScheduled) {\n isScheduled = true;\n frame.read(readAllKeyframes);\n frame.resolveKeyframes(measureAllKeyframes);\n }\n }\n else {\n this.readKeyframes();\n this.complete();\n }\n }\n readKeyframes() {\n const { unresolvedKeyframes, name, element, motionValue } = this;\n // If initial keyframe is null we need to read it from the DOM\n if (unresolvedKeyframes[0] === null) {\n const currentValue = motionValue?.get();\n // TODO: This doesn't work if the final keyframe is a wildcard\n const finalKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (currentValue !== undefined) {\n unresolvedKeyframes[0] = currentValue;\n }\n else if (element && name) {\n const valueAsRead = element.readValue(name, finalKeyframe);\n if (valueAsRead !== undefined && valueAsRead !== null) {\n unresolvedKeyframes[0] = valueAsRead;\n }\n }\n if (unresolvedKeyframes[0] === undefined) {\n unresolvedKeyframes[0] = finalKeyframe;\n }\n if (motionValue && currentValue === undefined) {\n motionValue.set(unresolvedKeyframes[0]);\n }\n }\n fillWildcards(unresolvedKeyframes);\n }\n setFinalKeyframe() { }\n measureInitialState() { }\n renderEndStyles() { }\n measureEndState() { }\n complete(isForcedComplete = false) {\n this.state = \"complete\";\n this.onComplete(this.unresolvedKeyframes, this.finalKeyframe, isForcedComplete);\n toResolve.delete(this);\n }\n cancel() {\n if (this.state === \"scheduled\") {\n toResolve.delete(this);\n this.state = \"pending\";\n }\n }\n resume() {\n if (this.state === \"pending\")\n this.scheduleResolve();\n }\n}\n\nexport { KeyframeResolver, flushKeyframeResolvers };\n","/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nconst isZeroValueString = (v) => /^0[^.\\s]+$/u.test(v);\n\nexport { isZeroValueString };\n","import { isZeroValueString } from 'motion-utils';\n\nfunction isNone(value) {\n if (typeof value === \"number\") {\n return value === 0;\n }\n else if (value !== null) {\n return value === \"none\" || value === \"0\" || isZeroValueString(value);\n }\n else {\n return true;\n }\n}\n\nexport { isNone };\n","import { complex } from './index.mjs';\nimport { floatRegex } from '../utils/float-regex.mjs';\n\n/**\n * Properties that should default to 1 or 100%\n */\nconst maxDefaults = new Set([\"brightness\", \"contrast\", \"saturate\", \"opacity\"]);\nfunction applyDefaultFilter(v) {\n const [name, value] = v.slice(0, -1).split(\"(\");\n if (name === \"drop-shadow\")\n return v;\n const [number] = value.match(floatRegex) || [];\n if (!number)\n return v;\n const unit = value.replace(number, \"\");\n let defaultValue = maxDefaults.has(name) ? 1 : 0;\n if (number !== value)\n defaultValue *= 100;\n return name + \"(\" + defaultValue + unit + \")\";\n}\nconst functionRegex = /\\b([a-z-]*)\\(.*?\\)/gu;\nconst filter = {\n ...complex,\n getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(\" \") : v;\n },\n};\n\nexport { filter };\n","import { number } from './numbers/index.mjs';\n\nconst int = {\n ...number,\n transform: Math.round,\n};\n\nexport { int };\n","import { scale, alpha } from '../numbers/index.mjs';\nimport { degrees, px, progressPercentage } from '../numbers/units.mjs';\n\nconst transformValueTypes = {\n rotate: degrees,\n rotateX: degrees,\n rotateY: degrees,\n rotateZ: degrees,\n scale,\n scaleX: scale,\n scaleY: scale,\n scaleZ: scale,\n skew: degrees,\n skewX: degrees,\n skewY: degrees,\n distance: px,\n translateX: px,\n translateY: px,\n translateZ: px,\n x: px,\n y: px,\n z: px,\n perspective: px,\n transformPerspective: px,\n opacity: alpha,\n originX: progressPercentage,\n originY: progressPercentage,\n originZ: px,\n};\n\nexport { transformValueTypes };\n","import { int } from '../int.mjs';\nimport { alpha } from '../numbers/index.mjs';\nimport { px } from '../numbers/units.mjs';\nimport { transformValueTypes } from './transform.mjs';\n\nconst numberValueTypes = {\n // Border props\n borderWidth: px,\n borderTopWidth: px,\n borderRightWidth: px,\n borderBottomWidth: px,\n borderLeftWidth: px,\n borderRadius: px,\n radius: px,\n borderTopLeftRadius: px,\n borderTopRightRadius: px,\n borderBottomRightRadius: px,\n borderBottomLeftRadius: px,\n // Positioning props\n width: px,\n maxWidth: px,\n height: px,\n maxHeight: px,\n top: px,\n right: px,\n bottom: px,\n left: px,\n // Spacing props\n padding: px,\n paddingTop: px,\n paddingRight: px,\n paddingBottom: px,\n paddingLeft: px,\n margin: px,\n marginTop: px,\n marginRight: px,\n marginBottom: px,\n marginLeft: px,\n // Misc\n backgroundPositionX: px,\n backgroundPositionY: px,\n ...transformValueTypes,\n zIndex: int,\n // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n\nexport { numberValueTypes };\n","import { color } from '../color/index.mjs';\nimport { filter } from '../complex/filter.mjs';\nimport { numberValueTypes } from './number.mjs';\n\n/**\n * A map of default value types for common values\n */\nconst defaultValueTypes = {\n ...numberValueTypes,\n // Color props\n color,\n backgroundColor: color,\n outlineColor: color,\n fill: color,\n stroke: color,\n // Border props\n borderColor: color,\n borderTopColor: color,\n borderRightColor: color,\n borderBottomColor: color,\n borderLeftColor: color,\n filter,\n WebkitFilter: filter,\n};\n/**\n * Gets the default ValueType for the provided value key\n */\nconst getDefaultValueType = (key) => defaultValueTypes[key];\n\nexport { defaultValueTypes, getDefaultValueType };\n","import { complex } from '../complex/index.mjs';\nimport { filter } from '../complex/filter.mjs';\nimport { getDefaultValueType } from '../maps/defaults.mjs';\n\nfunction getAnimatableNone(key, value) {\n let defaultValueType = getDefaultValueType(key);\n if (defaultValueType !== filter)\n defaultValueType = complex;\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n return defaultValueType.getAnimatableNone\n ? defaultValueType.getAnimatableNone(value)\n : undefined;\n}\n\nexport { getAnimatableNone };\n","import { analyseComplexValue } from '../../../value/types/complex/index.mjs';\nimport { getAnimatableNone } from '../../../value/types/utils/animatable-none.mjs';\n\n/**\n * If we encounter keyframes like \"none\" or \"0\" and we also have keyframes like\n * \"#fff\" or \"200px 200px\" we want to find a keyframe to serve as a template for\n * the \"none\" keyframes. In this case \"#fff\" or \"200px 200px\" - then these get turned into\n * zero equivalents, i.e. \"#fff0\" or \"0px 0px\".\n */\nconst invalidTemplates = new Set([\"auto\", \"none\", \"0\"]);\nfunction makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name) {\n let i = 0;\n let animatableTemplate = undefined;\n while (i < unresolvedKeyframes.length && !animatableTemplate) {\n const keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\" &&\n !invalidTemplates.has(keyframe) &&\n analyseComplexValue(keyframe).values.length) {\n animatableTemplate = unresolvedKeyframes[i];\n }\n i++;\n }\n if (animatableTemplate && name) {\n for (const noneIndex of noneKeyframeIndexes) {\n unresolvedKeyframes[noneIndex] = getAnimatableNone(name, animatableTemplate);\n }\n }\n}\n\nexport { makeNoneKeyframesAnimatable };\n","import { positionalKeys } from '../../render/utils/keys-position.mjs';\nimport { findDimensionValueType } from '../../value/types/dimensions.mjs';\nimport { getVariableValue } from '../utils/css-variables-conversion.mjs';\nimport { isCSSVariableToken } from '../utils/is-css-variable.mjs';\nimport { KeyframeResolver } from './KeyframesResolver.mjs';\nimport { isNone } from './utils/is-none.mjs';\nimport { makeNoneKeyframesAnimatable } from './utils/make-none-animatable.mjs';\nimport { isNumOrPxType, positionalValues } from './utils/unit-conversion.mjs';\n\nclass DOMKeyframesResolver extends KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element) {\n super(unresolvedKeyframes, onComplete, name, motionValue, element, true);\n }\n readKeyframes() {\n const { unresolvedKeyframes, element, name } = this;\n if (!element || !element.current)\n return;\n super.readKeyframes();\n /**\n * If any keyframe is a CSS variable, we need to find its value by sampling the element\n */\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n let keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\") {\n keyframe = keyframe.trim();\n if (isCSSVariableToken(keyframe)) {\n const resolved = getVariableValue(keyframe, element.current);\n if (resolved !== undefined) {\n unresolvedKeyframes[i] = resolved;\n }\n if (i === unresolvedKeyframes.length - 1) {\n this.finalKeyframe = keyframe;\n }\n }\n }\n }\n /**\n * Resolve \"none\" values. We do this potentially twice - once before and once after measuring keyframes.\n * This could be seen as inefficient but it's a trade-off to avoid measurements in more situations, which\n * have a far bigger performance impact.\n */\n this.resolveNoneKeyframes();\n /**\n * Check to see if unit type has changed. If so schedule jobs that will\n * temporarily set styles to the destination keyframes.\n * Skip if we have more than two keyframes or this isn't a positional value.\n * TODO: We can throw if there are multiple keyframes and the value type changes.\n */\n if (!positionalKeys.has(name) || unresolvedKeyframes.length !== 2) {\n return;\n }\n const [origin, target] = unresolvedKeyframes;\n const originType = findDimensionValueType(origin);\n const targetType = findDimensionValueType(target);\n /**\n * Either we don't recognise these value types or we can animate between them.\n */\n if (originType === targetType)\n return;\n /**\n * If both values are numbers or pixels, we can animate between them by\n * converting them to numbers.\n */\n if (isNumOrPxType(originType) && isNumOrPxType(targetType)) {\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n const value = unresolvedKeyframes[i];\n if (typeof value === \"string\") {\n unresolvedKeyframes[i] = parseFloat(value);\n }\n }\n }\n else if (positionalValues[name]) {\n /**\n * Else, the only way to resolve this is by measuring the element.\n */\n this.needsMeasurement = true;\n }\n }\n resolveNoneKeyframes() {\n const { unresolvedKeyframes, name } = this;\n const noneKeyframeIndexes = [];\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n if (unresolvedKeyframes[i] === null ||\n isNone(unresolvedKeyframes[i])) {\n noneKeyframeIndexes.push(i);\n }\n }\n if (noneKeyframeIndexes.length) {\n makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name);\n }\n }\n measureInitialState() {\n const { element, unresolvedKeyframes, name } = this;\n if (!element || !element.current)\n return;\n if (name === \"height\") {\n this.suspendedScrollY = window.pageYOffset;\n }\n this.measuredOrigin = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n unresolvedKeyframes[0] = this.measuredOrigin;\n // Set final key frame to measure after next render\n const measureKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (measureKeyframe !== undefined) {\n element.getValue(name, measureKeyframe).jump(measureKeyframe, false);\n }\n }\n measureEndState() {\n const { element, name, unresolvedKeyframes } = this;\n if (!element || !element.current)\n return;\n const value = element.getValue(name);\n value && value.jump(this.measuredOrigin, false);\n const finalKeyframeIndex = unresolvedKeyframes.length - 1;\n const finalKeyframe = unresolvedKeyframes[finalKeyframeIndex];\n unresolvedKeyframes[finalKeyframeIndex] = positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n if (finalKeyframe !== null && this.finalKeyframe === undefined) {\n this.finalKeyframe = finalKeyframe;\n }\n // If we removed transform values, reapply them before the next render\n if (this.removedTransforms?.length) {\n this.removedTransforms.forEach(([unsetTransformName, unsetTransformValue]) => {\n element\n .getValue(unsetTransformName)\n .set(unsetTransformValue);\n });\n }\n this.resolveNoneKeyframes();\n }\n}\n\nexport { DOMKeyframesResolver };\n","import { color } from '../color/index.mjs';\nimport { complex } from '../complex/index.mjs';\nimport { dimensionValueTypes } from '../dimensions.mjs';\nimport { testValueType } from '../test.mjs';\n\n/**\n * A list of all ValueTypes\n */\nconst valueTypes = [...dimensionValueTypes, color, complex];\n/**\n * Tests a value against the list of ValueTypes\n */\nconst findValueType = (v) => valueTypes.find(testValueType(v));\n\nexport { findValueType };\n","import { createRenderBatcher } from './batcher.mjs';\n\nconst { schedule: microtask, cancel: cancelMicrotask } = \n/* @__PURE__ */ createRenderBatcher(queueMicrotask, false);\n\nexport { cancelMicrotask, microtask };\n","const featureProps = {\n animation: [\n \"animate\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"exit\",\n \"whileInView\",\n \"whileFocus\",\n \"whileDrag\",\n ],\n exit: [\"exit\"],\n drag: [\"drag\", \"dragControls\"],\n focus: [\"whileFocus\"],\n hover: [\"whileHover\", \"onHoverStart\", \"onHoverEnd\"],\n tap: [\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"],\n pan: [\"onPan\", \"onPanStart\", \"onPanSessionStart\", \"onPanEnd\"],\n inView: [\"whileInView\", \"onViewportEnter\", \"onViewportLeave\"],\n layout: [\"layout\", \"layoutId\"],\n};\nconst featureDefinitions = {};\nfor (const key in featureProps) {\n featureDefinitions[key] = {\n isEnabled: (props) => featureProps[key].some((name) => !!props[name]),\n };\n}\n\nexport { featureDefinitions };\n","const createAxisDelta = () => ({\n translate: 0,\n scale: 1,\n origin: 0,\n originPoint: 0,\n});\nconst createDelta = () => ({\n x: createAxisDelta(),\n y: createAxisDelta(),\n});\nconst createAxis = () => ({ min: 0, max: 0 });\nconst createBox = () => ({\n x: createAxis(),\n y: createAxis(),\n});\n\nexport { createAxis, createAxisDelta, createBox, createDelta };\n","// Does this device prefer reduced motion? Returns `null` server-side.\nconst prefersReducedMotion = { current: null };\nconst hasReducedMotionListener = { current: false };\n\nexport { hasReducedMotionListener, prefersReducedMotion };\n","import { isBrowser } from '../is-browser.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from './state.mjs';\n\nfunction initPrefersReducedMotion() {\n hasReducedMotionListener.current = true;\n if (!isBrowser)\n return;\n if (window.matchMedia) {\n const motionMediaQuery = window.matchMedia(\"(prefers-reduced-motion)\");\n const setReducedMotionPreferences = () => (prefersReducedMotion.current = motionMediaQuery.matches);\n motionMediaQuery.addEventListener(\"change\", setReducedMotionPreferences);\n setReducedMotionPreferences();\n }\n else {\n prefersReducedMotion.current = false;\n }\n}\n\nexport { initPrefersReducedMotion };\n","const visualElementStore = new WeakMap();\n\nexport { visualElementStore };\n","function isAnimationControls(v) {\n return (v !== null &&\n typeof v === \"object\" &&\n typeof v.start === \"function\");\n}\n\nexport { isAnimationControls };\n","/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\n\nexport { isVariantLabel };\n","const variantPriorityOrder = [\n \"animate\",\n \"whileInView\",\n \"whileFocus\",\n \"whileHover\",\n \"whileTap\",\n \"whileDrag\",\n \"exit\",\n];\nconst variantProps = [\"initial\", ...variantPriorityOrder];\n\nexport { variantPriorityOrder, variantProps };\n","import { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { variantProps } from './variant-props.mjs';\n\nfunction isControllingVariants(props) {\n return (isAnimationControls(props.animate) ||\n variantProps.some((name) => isVariantLabel(props[name])));\n}\nfunction isVariantNode(props) {\n return Boolean(isControllingVariants(props) || props.variants);\n}\n\nexport { isControllingVariants, isVariantNode };\n","import { isMotionValue, motionValue } from 'motion-dom';\n\nfunction updateMotionValuesFromProps(element, next, prev) {\n for (const key in next) {\n const nextValue = next[key];\n const prevValue = prev[key];\n if (isMotionValue(nextValue)) {\n /**\n * If this is a motion value found in props or style, we want to add it\n * to our visual element's motion value map.\n */\n element.addValue(key, nextValue);\n }\n else if (isMotionValue(prevValue)) {\n /**\n * If we're swapping from a motion value to a static value,\n * create a new motion value from that\n */\n element.addValue(key, motionValue(nextValue, { owner: element }));\n }\n else if (prevValue !== nextValue) {\n /**\n * If this is a flat value that has changed, update the motion value\n * or create one if it doesn't exist. We only want to do this if we're\n * not handling the value with our animation state.\n */\n if (element.hasValue(key)) {\n const existingValue = element.getValue(key);\n if (existingValue.liveStyle === true) {\n existingValue.jump(nextValue);\n }\n else if (!existingValue.hasAnimated) {\n existingValue.set(nextValue);\n }\n }\n else {\n const latestValue = element.getStaticValue(key);\n element.addValue(key, motionValue(latestValue !== undefined ? latestValue : nextValue, { owner: element }));\n }\n }\n }\n // Handle removed values\n for (const key in prev) {\n if (next[key] === undefined)\n element.removeValue(key);\n }\n return next;\n}\n\nexport { updateMotionValuesFromProps };\n","function getValueState(visualElement) {\n const state = [{}, {}];\n visualElement?.values.forEach((value, key) => {\n state[0][key] = value.get();\n state[1][key] = value.getVelocity();\n });\n return state;\n}\nfunction resolveVariantFromProps(props, definition, custom, visualElement) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = props.variants && props.variants[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n return definition;\n}\n\nexport { resolveVariantFromProps };\n","import { KeyframeResolver, time, frame, isMotionValue, cancelFrame, transformProps, motionValue, findValueType, complex, getAnimatableNone, microtask } from 'motion-dom';\nimport { warnOnce, isNumericalString, isZeroValueString, SubscriptionManager } from 'motion-utils';\nimport { featureDefinitions } from '../motion/features/definitions.mjs';\nimport { createBox } from '../projection/geometry/models.mjs';\nimport { initPrefersReducedMotion } from '../utils/reduced-motion/index.mjs';\nimport { hasReducedMotionListener, prefersReducedMotion } from '../utils/reduced-motion/state.mjs';\nimport { visualElementStore } from './store.mjs';\nimport { isControllingVariants, isVariantNode } from './utils/is-controlling-variants.mjs';\nimport { updateMotionValuesFromProps } from './utils/motion-values.mjs';\nimport { resolveVariantFromProps } from './utils/resolve-variants.mjs';\n\nconst propEventHandlers = [\n \"AnimationStart\",\n \"AnimationComplete\",\n \"Update\",\n \"BeforeLayoutMeasure\",\n \"LayoutMeasure\",\n \"LayoutAnimationStart\",\n \"LayoutAnimationComplete\",\n];\n/**\n * A VisualElement is an imperative abstraction around UI elements such as\n * HTMLElement, SVGElement, Three.Object3D etc.\n */\nclass VisualElement {\n /**\n * This method takes React props and returns found MotionValues. For example, HTML\n * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.\n *\n * This isn't an abstract method as it needs calling in the constructor, but it is\n * intended to be one.\n */\n scrapeMotionValuesFromProps(_props, _prevProps, _visualElement) {\n return {};\n }\n constructor({ parent, props, presenceContext, reducedMotionConfig, blockInitialAnimation, visualState, }, options = {}) {\n /**\n * A reference to the current underlying Instance, e.g. a HTMLElement\n * or Three.Mesh etc.\n */\n this.current = null;\n /**\n * A set containing references to this VisualElement's children.\n */\n this.children = new Set();\n /**\n * Determine what role this visual element should take in the variant tree.\n */\n this.isVariantNode = false;\n this.isControllingVariants = false;\n /**\n * Decides whether this VisualElement should animate in reduced motion\n * mode.\n *\n * TODO: This is currently set on every individual VisualElement but feels\n * like it could be set globally.\n */\n this.shouldReduceMotion = null;\n /**\n * A map of all motion values attached to this visual element. Motion\n * values are source of truth for any given animated value. A motion\n * value might be provided externally by the component via props.\n */\n this.values = new Map();\n this.KeyframeResolver = KeyframeResolver;\n /**\n * Cleanup functions for active features (hover/tap/exit etc)\n */\n this.features = {};\n /**\n * A map of every subscription that binds the provided or generated\n * motion values onChange listeners to this visual element.\n */\n this.valueSubscriptions = new Map();\n /**\n * A reference to the previously-provided motion values as returned\n * from scrapeMotionValuesFromProps. We use the keys in here to determine\n * if any motion values need to be removed after props are updated.\n */\n this.prevMotionValues = {};\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n /**\n * An object containing an unsubscribe function for each prop event subscription.\n * For example, every \"Update\" event can have multiple subscribers via\n * VisualElement.on(), but only one of those can be defined via the onUpdate prop.\n */\n this.propEventSubscriptions = {};\n this.notifyUpdate = () => this.notify(\"Update\", this.latestValues);\n this.render = () => {\n if (!this.current)\n return;\n this.triggerBuild();\n this.renderInstance(this.current, this.renderState, this.props.style, this.projection);\n };\n this.renderScheduledAt = 0.0;\n this.scheduleRender = () => {\n const now = time.now();\n if (this.renderScheduledAt < now) {\n this.renderScheduledAt = now;\n frame.render(this.render, false, true);\n }\n };\n const { latestValues, renderState } = visualState;\n this.latestValues = latestValues;\n this.baseTarget = { ...latestValues };\n this.initialValues = props.initial ? { ...latestValues } : {};\n this.renderState = renderState;\n this.parent = parent;\n this.props = props;\n this.presenceContext = presenceContext;\n this.depth = parent ? parent.depth + 1 : 0;\n this.reducedMotionConfig = reducedMotionConfig;\n this.options = options;\n this.blockInitialAnimation = Boolean(blockInitialAnimation);\n this.isControllingVariants = isControllingVariants(props);\n this.isVariantNode = isVariantNode(props);\n if (this.isVariantNode) {\n this.variantChildren = new Set();\n }\n this.manuallyAnimateOnMount = Boolean(parent && parent.current);\n /**\n * Any motion values that are provided to the element when created\n * aren't yet bound to the element, as this would technically be impure.\n * However, we iterate through the motion values and set them to the\n * initial values for this component.\n *\n * TODO: This is impure and we should look at changing this to run on mount.\n * Doing so will break some tests but this isn't necessarily a breaking change,\n * more a reflection of the test.\n */\n const { willChange, ...initialMotionValues } = this.scrapeMotionValuesFromProps(props, {}, this);\n for (const key in initialMotionValues) {\n const value = initialMotionValues[key];\n if (latestValues[key] !== undefined && isMotionValue(value)) {\n value.set(latestValues[key], false);\n }\n }\n }\n mount(instance) {\n this.current = instance;\n visualElementStore.set(instance, this);\n if (this.projection && !this.projection.instance) {\n this.projection.mount(instance);\n }\n if (this.parent && this.isVariantNode && !this.isControllingVariants) {\n this.removeFromVariantTree = this.parent.addVariantChild(this);\n }\n this.values.forEach((value, key) => this.bindToMotionValue(key, value));\n if (!hasReducedMotionListener.current) {\n initPrefersReducedMotion();\n }\n this.shouldReduceMotion =\n this.reducedMotionConfig === \"never\"\n ? false\n : this.reducedMotionConfig === \"always\"\n ? true\n : prefersReducedMotion.current;\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(this.shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\", \"reduced-motion-disabled\");\n }\n if (this.parent)\n this.parent.children.add(this);\n this.update(this.props, this.presenceContext);\n }\n unmount() {\n this.projection && this.projection.unmount();\n cancelFrame(this.notifyUpdate);\n cancelFrame(this.render);\n this.valueSubscriptions.forEach((remove) => remove());\n this.valueSubscriptions.clear();\n this.removeFromVariantTree && this.removeFromVariantTree();\n this.parent && this.parent.children.delete(this);\n for (const key in this.events) {\n this.events[key].clear();\n }\n for (const key in this.features) {\n const feature = this.features[key];\n if (feature) {\n feature.unmount();\n feature.isMounted = false;\n }\n }\n this.current = null;\n }\n bindToMotionValue(key, value) {\n if (this.valueSubscriptions.has(key)) {\n this.valueSubscriptions.get(key)();\n }\n const valueIsTransform = transformProps.has(key);\n if (valueIsTransform && this.onBindTransform) {\n this.onBindTransform();\n }\n const removeOnChange = value.on(\"change\", (latestValue) => {\n this.latestValues[key] = latestValue;\n this.props.onUpdate && frame.preRender(this.notifyUpdate);\n if (valueIsTransform && this.projection) {\n this.projection.isTransformDirty = true;\n }\n });\n const removeOnRenderRequest = value.on(\"renderRequest\", this.scheduleRender);\n let removeSyncCheck;\n if (window.MotionCheckAppearSync) {\n removeSyncCheck = window.MotionCheckAppearSync(this, key, value);\n }\n this.valueSubscriptions.set(key, () => {\n removeOnChange();\n removeOnRenderRequest();\n if (removeSyncCheck)\n removeSyncCheck();\n if (value.owner)\n value.stop();\n });\n }\n sortNodePosition(other) {\n /**\n * If these nodes aren't even of the same type we can't compare their depth.\n */\n if (!this.current ||\n !this.sortInstanceNodePosition ||\n this.type !== other.type) {\n return 0;\n }\n return this.sortInstanceNodePosition(this.current, other.current);\n }\n updateFeatures() {\n let key = \"animation\";\n for (key in featureDefinitions) {\n const featureDefinition = featureDefinitions[key];\n if (!featureDefinition)\n continue;\n const { isEnabled, Feature: FeatureConstructor } = featureDefinition;\n /**\n * If this feature is enabled but not active, make a new instance.\n */\n if (!this.features[key] &&\n FeatureConstructor &&\n isEnabled(this.props)) {\n this.features[key] = new FeatureConstructor(this);\n }\n /**\n * If we have a feature, mount or update it.\n */\n if (this.features[key]) {\n const feature = this.features[key];\n if (feature.isMounted) {\n feature.update();\n }\n else {\n feature.mount();\n feature.isMounted = true;\n }\n }\n }\n }\n triggerBuild() {\n this.build(this.renderState, this.latestValues, this.props);\n }\n /**\n * Measure the current viewport box with or without transforms.\n * Only measures axis-aligned boxes, rotate and skew must be manually\n * removed with a re-render to work.\n */\n measureViewportBox() {\n return this.current\n ? this.measureInstanceViewportBox(this.current, this.props)\n : createBox();\n }\n getStaticValue(key) {\n return this.latestValues[key];\n }\n setStaticValue(key, value) {\n this.latestValues[key] = value;\n }\n /**\n * Update the provided props. Ensure any newly-added motion values are\n * added to our map, old ones removed, and listeners updated.\n */\n update(props, presenceContext) {\n if (props.transformTemplate || this.props.transformTemplate) {\n this.scheduleRender();\n }\n this.prevProps = this.props;\n this.props = props;\n this.prevPresenceContext = this.presenceContext;\n this.presenceContext = presenceContext;\n /**\n * Update prop event handlers ie onAnimationStart, onAnimationComplete\n */\n for (let i = 0; i < propEventHandlers.length; i++) {\n const key = propEventHandlers[i];\n if (this.propEventSubscriptions[key]) {\n this.propEventSubscriptions[key]();\n delete this.propEventSubscriptions[key];\n }\n const listenerName = (\"on\" + key);\n const listener = props[listenerName];\n if (listener) {\n this.propEventSubscriptions[key] = this.on(key, listener);\n }\n }\n this.prevMotionValues = updateMotionValuesFromProps(this, this.scrapeMotionValuesFromProps(props, this.prevProps, this), this.prevMotionValues);\n if (this.handleChildMotionValue) {\n this.handleChildMotionValue();\n }\n }\n getProps() {\n return this.props;\n }\n /**\n * Returns the variant definition with a given name.\n */\n getVariant(name) {\n return this.props.variants ? this.props.variants[name] : undefined;\n }\n /**\n * Returns the defined default transition on this component.\n */\n getDefaultTransition() {\n return this.props.transition;\n }\n getTransformPagePoint() {\n return this.props.transformPagePoint;\n }\n getClosestVariantNode() {\n return this.isVariantNode\n ? this\n : this.parent\n ? this.parent.getClosestVariantNode()\n : undefined;\n }\n /**\n * Add a child visual element to our set of children.\n */\n addVariantChild(child) {\n const closestVariantNode = this.getClosestVariantNode();\n if (closestVariantNode) {\n closestVariantNode.variantChildren &&\n closestVariantNode.variantChildren.add(child);\n return () => closestVariantNode.variantChildren.delete(child);\n }\n }\n /**\n * Add a motion value and bind it to this visual element.\n */\n addValue(key, value) {\n // Remove existing value if it exists\n const existingValue = this.values.get(key);\n if (value !== existingValue) {\n if (existingValue)\n this.removeValue(key);\n this.bindToMotionValue(key, value);\n this.values.set(key, value);\n this.latestValues[key] = value.get();\n }\n }\n /**\n * Remove a motion value and unbind any active subscriptions.\n */\n removeValue(key) {\n this.values.delete(key);\n const unsubscribe = this.valueSubscriptions.get(key);\n if (unsubscribe) {\n unsubscribe();\n this.valueSubscriptions.delete(key);\n }\n delete this.latestValues[key];\n this.removeValueFromRenderState(key, this.renderState);\n }\n /**\n * Check whether we have a motion value for this key\n */\n hasValue(key) {\n return this.values.has(key);\n }\n getValue(key, defaultValue) {\n if (this.props.values && this.props.values[key]) {\n return this.props.values[key];\n }\n let value = this.values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = motionValue(defaultValue === null ? undefined : defaultValue, { owner: this });\n this.addValue(key, value);\n }\n return value;\n }\n /**\n * If we're trying to animate to a previously unencountered value,\n * we need to check for it in our state and as a last resort read it\n * directly from the instance (which might have performance implications).\n */\n readValue(key, target) {\n let value = this.latestValues[key] !== undefined || !this.current\n ? this.latestValues[key]\n : this.getBaseTargetFromProps(this.props, key) ??\n this.readValueFromInstance(this.current, key, this.options);\n if (value !== undefined && value !== null) {\n if (typeof value === \"string\" &&\n (isNumericalString(value) || isZeroValueString(value))) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n }\n else if (!findValueType(value) && complex.test(target)) {\n value = getAnimatableNone(key, target);\n }\n this.setBaseTarget(key, isMotionValue(value) ? value.get() : value);\n }\n return isMotionValue(value) ? value.get() : value;\n }\n /**\n * Set the base target to later animate back to. This is currently\n * only hydrated on creation and when we first read a value.\n */\n setBaseTarget(key, value) {\n this.baseTarget[key] = value;\n }\n /**\n * Find the base target for a value thats been removed from all animation\n * props.\n */\n getBaseTarget(key) {\n const { initial } = this.props;\n let valueFromInitial;\n if (typeof initial === \"string\" || typeof initial === \"object\") {\n const variant = resolveVariantFromProps(this.props, initial, this.presenceContext?.custom);\n if (variant) {\n valueFromInitial = variant[key];\n }\n }\n /**\n * If this value still exists in the current initial variant, read that.\n */\n if (initial && valueFromInitial !== undefined) {\n return valueFromInitial;\n }\n /**\n * Alternatively, if this VisualElement config has defined a getBaseTarget\n * so we can read the value from an alternative source, try that.\n */\n const target = this.getBaseTargetFromProps(this.props, key);\n if (target !== undefined && !isMotionValue(target))\n return target;\n /**\n * If the value was initially defined on initial, but it doesn't any more,\n * return undefined. Otherwise return the value as initially read from the DOM.\n */\n return this.initialValues[key] !== undefined &&\n valueFromInitial === undefined\n ? undefined\n : this.baseTarget[key];\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new SubscriptionManager();\n }\n return this.events[eventName].add(callback);\n }\n notify(eventName, ...args) {\n if (this.events[eventName]) {\n this.events[eventName].notify(...args);\n }\n }\n scheduleRenderMicrotask() {\n microtask.render(this.render);\n }\n}\n\nexport { VisualElement };\n","import { DOMKeyframesResolver, isMotionValue } from 'motion-dom';\nimport { VisualElement } from '../VisualElement.mjs';\n\nclass DOMVisualElement extends VisualElement {\n constructor() {\n super(...arguments);\n this.KeyframeResolver = DOMKeyframesResolver;\n }\n sortInstanceNodePosition(a, b) {\n /**\n * compareDocumentPosition returns a bitmask, by using the bitwise &\n * we're returning true if 2 in that bitmask is set to true. 2 is set\n * to true if b preceeds a.\n */\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n }\n getBaseTargetFromProps(props, key) {\n return props.style\n ? props.style[key]\n : undefined;\n }\n removeValueFromRenderState(key, { vars, style }) {\n delete vars[key];\n delete style[key];\n }\n handleChildMotionValue() {\n if (this.childSubscription) {\n this.childSubscription();\n delete this.childSubscription;\n }\n const { children } = this.props;\n if (isMotionValue(children)) {\n this.childSubscription = children.on(\"change\", (latest) => {\n if (this.current) {\n this.current.textContent = `${latest}`;\n }\n });\n }\n }\n}\n\nexport { DOMVisualElement };\n","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nconst getValueAsType = (value, type) => {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nexport { getValueAsType };\n","import { transformPropOrder, getValueAsType, numberValueTypes } from 'motion-dom';\n\nconst translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\nconst numTransforms = transformPropOrder.length;\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nfunction buildTransform(latestValues, transform, transformTemplate) {\n // The transform string we're going to build into.\n let transformString = \"\";\n let transformIsDefault = true;\n /**\n * Loop over all possible transforms in order, adding the ones that\n * are present to the transform string.\n */\n for (let i = 0; i < numTransforms; i++) {\n const key = transformPropOrder[i];\n const value = latestValues[key];\n if (value === undefined)\n continue;\n let valueIsDefault = true;\n if (typeof value === \"number\") {\n valueIsDefault = value === (key.startsWith(\"scale\") ? 1 : 0);\n }\n else {\n valueIsDefault = parseFloat(value) === 0;\n }\n if (!valueIsDefault || transformTemplate) {\n const valueAsType = getValueAsType(value, numberValueTypes[key]);\n if (!valueIsDefault) {\n transformIsDefault = false;\n const transformName = translateAlias[key] || key;\n transformString += `${transformName}(${valueAsType}) `;\n }\n if (transformTemplate) {\n transform[key] = valueAsType;\n }\n }\n }\n transformString = transformString.trim();\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n\nexport { buildTransform };\n","import { transformProps, isCSSVariableName, getValueAsType, numberValueTypes } from 'motion-dom';\nimport { buildTransform } from './build-transform.mjs';\n\nfunction buildHTMLStyles(state, latestValues, transformTemplate) {\n const { style, vars, transformOrigin } = state;\n // Track whether we encounter any transform or transformOrigin values.\n let hasTransform = false;\n let hasTransformOrigin = false;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept separately for further processing.\n */\n for (const key in latestValues) {\n const value = latestValues[key];\n if (transformProps.has(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n continue;\n }\n else if (isCSSVariableName(key)) {\n vars[key] = value;\n continue;\n }\n else {\n // Convert the value to its default value type, ie 0 -> \"0px\"\n const valueAsType = getValueAsType(value, numberValueTypes[key]);\n if (key.startsWith(\"origin\")) {\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n transformOrigin[key] =\n valueAsType;\n }\n else {\n style[key] = valueAsType;\n }\n }\n }\n if (!latestValues.transform) {\n if (hasTransform || transformTemplate) {\n style.transform = buildTransform(latestValues, state.transform, transformTemplate);\n }\n else if (style.transform) {\n /**\n * If we have previously created a transform but currently don't have any,\n * reset transform style to none.\n */\n style.transform = \"none\";\n }\n }\n /**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\n if (hasTransformOrigin) {\n const { originX = \"50%\", originY = \"50%\", originZ = 0, } = transformOrigin;\n style.transformOrigin = `${originX} ${originY} ${originZ}`;\n }\n}\n\nexport { buildHTMLStyles };\n","function renderHTML(element, { style, vars }, styleProp, projection) {\n const elementStyle = element.style;\n let key;\n for (key in style) {\n // CSSStyleDeclaration has [index: number]: string; in the types, so we use that as key type.\n elementStyle[key] = style[key];\n }\n // Write projection styles directly to element style\n projection?.applyProjectionStyles(elementStyle, styleProp);\n for (key in vars) {\n // Loop over any CSS variables and assign those.\n // They can only be assigned using `setProperty`.\n elementStyle.setProperty(key, vars[key]);\n }\n}\n\nexport { renderHTML };\n","import { isCSSVariableName } from 'motion-dom';\n\nconst scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n for (const key in correctors) {\n scaleCorrectors[key] = correctors[key];\n if (isCSSVariableName(key)) {\n scaleCorrectors[key].isCSSVariable = true;\n }\n }\n}\n\nexport { addScaleCorrector, scaleCorrectors };\n","import { transformProps } from 'motion-dom';\nimport { scaleCorrectors } from '../../projection/styles/scale-correction.mjs';\n\nfunction isForcedMotionValue(key, { layout, layoutId }) {\n return (transformProps.has(key) ||\n key.startsWith(\"origin\") ||\n ((layout || layoutId !== undefined) &&\n (!!scaleCorrectors[key] || key === \"opacity\")));\n}\n\nexport { isForcedMotionValue };\n","import { isMotionValue } from 'motion-dom';\nimport { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const { style } = props;\n const newValues = {};\n for (const key in style) {\n if (isMotionValue(style[key]) ||\n (prevProps.style &&\n isMotionValue(prevProps.style[key])) ||\n isForcedMotionValue(key, props) ||\n visualElement?.getValue(key)?.liveStyle !== undefined) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","import { transformProps, defaultTransformValue, readTransformValue, isCSSVariableName } from 'motion-dom';\nimport { measureViewportBox } from '../../projection/utils/measure.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\nimport { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { renderHTML } from './utils/render.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\n\nfunction getComputedStyle(element) {\n return window.getComputedStyle(element);\n}\nclass HTMLVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"html\";\n this.renderInstance = renderHTML;\n }\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n return this.projection?.isProjecting\n ? defaultTransformValue(key)\n : readTransformValue(instance, key);\n }\n else {\n const computedStyle = getComputedStyle(instance);\n const value = (isCSSVariableName(key)\n ? computedStyle.getPropertyValue(key)\n : computedStyle[key]) || 0;\n return typeof value === \"string\" ? value.trim() : value;\n }\n }\n measureInstanceViewportBox(instance, { transformPagePoint }) {\n return measureViewportBox(instance, transformPagePoint);\n }\n build(renderState, latestValues, props) {\n buildHTMLStyles(renderState, latestValues, props.transformTemplate);\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return scrapeMotionValuesFromProps(props, prevProps, visualElement);\n }\n}\n\nexport { HTMLVisualElement, getComputedStyle };\n","/**\n * Convert camelCase to dash-case properties.\n */\nconst camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, \"$1-$2\").toLowerCase();\n\nexport { camelToDash };\n","import { px } from 'motion-dom';\n\nconst dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nconst camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n */\nfunction buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {\n // Normalise path length by setting SVG attribute pathLength to 1\n attrs.pathLength = 1;\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n const keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = px.transform(-offset);\n // Build the dash array\n const pathLength = px.transform(length);\n const pathSpacing = px.transform(spacing);\n attrs[keys.array] = `${pathLength} ${pathSpacing}`;\n}\n\nexport { buildSVGPath };\n","import { buildHTMLStyles } from '../../html/utils/build-styles.mjs';\nimport { buildSVGPath } from './path.mjs';\n\n/**\n * Build SVG visual attributes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, { attrX, attrY, attrScale, pathLength, pathSpacing = 1, pathOffset = 0, \n// This is object creation, which we try to avoid per-frame.\n...latest }, isSVGTag, transformTemplate, styleProp) {\n buildHTMLStyles(state, latest, transformTemplate);\n /**\n * For svg tags we just want to make sure viewBox is animatable and treat all the styles\n * as normal HTML tags.\n */\n if (isSVGTag) {\n if (state.style.viewBox) {\n state.attrs.viewBox = state.style.viewBox;\n }\n return;\n }\n state.attrs = state.style;\n state.style = {};\n const { attrs, style } = state;\n /**\n * However, we apply transforms as CSS transforms.\n * So if we detect a transform, transformOrigin we take it from attrs and copy it into style.\n */\n if (attrs.transform) {\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n if (style.transform || attrs.transformOrigin) {\n style.transformOrigin = attrs.transformOrigin ?? \"50% 50%\";\n delete attrs.transformOrigin;\n }\n if (style.transform) {\n /**\n * SVG's element transform-origin uses its own median as a reference.\n * Therefore, transformBox becomes a fill-box\n */\n style.transformBox = styleProp?.transformBox ?? \"fill-box\";\n delete attrs.transformBox;\n }\n // Render attrX/attrY/attrScale as attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n if (attrScale !== undefined)\n attrs.scale = attrScale;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\nexport { buildSVGAttrs };\n","/**\n * A set of attribute names that are always read/written as camel case.\n */\nconst camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n \"gradientTransform\",\n \"pathLength\",\n \"startOffset\",\n \"textLength\",\n \"lengthAdjust\",\n]);\n\nexport { camelCaseAttributes };\n","const isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\n\nexport { isSVGTag };\n","import { camelToDash } from '../../dom/utils/camel-to-dash.mjs';\nimport { renderHTML } from '../../html/utils/render.mjs';\nimport { camelCaseAttributes } from './camel-case-attrs.mjs';\n\nfunction renderSVG(element, renderState, _styleProp, projection) {\n renderHTML(element, renderState, undefined, projection);\n for (const key in renderState.attrs) {\n element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n }\n}\n\nexport { renderSVG };\n","import { isMotionValue, transformPropOrder } from 'motion-dom';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.mjs';\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const newValues = scrapeMotionValuesFromProps$1(props, prevProps, visualElement);\n for (const key in props) {\n if (isMotionValue(props[key]) ||\n isMotionValue(prevProps[key])) {\n const targetKey = transformPropOrder.indexOf(key) !== -1\n ? \"attr\" + key.charAt(0).toUpperCase() + key.substring(1)\n : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","import { transformProps, getDefaultValueType } from 'motion-dom';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { DOMVisualElement } from '../dom/DOMVisualElement.mjs';\nimport { camelToDash } from '../dom/utils/camel-to-dash.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { camelCaseAttributes } from './utils/camel-case-attrs.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\nimport { renderSVG } from './utils/render.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\n\nclass SVGVisualElement extends DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"svg\";\n this.isSVGTag = false;\n this.measureInstanceViewportBox = createBox;\n }\n getBaseTargetFromProps(props, key) {\n return props[key];\n }\n readValueFromInstance(instance, key) {\n if (transformProps.has(key)) {\n const defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n return instance.getAttribute(key);\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return scrapeMotionValuesFromProps(props, prevProps, visualElement);\n }\n build(renderState, latestValues, props) {\n buildSVGAttrs(renderState, latestValues, this.isSVGTag, props.transformTemplate, props.style);\n }\n renderInstance(instance, renderState, styleProp, projection) {\n renderSVG(instance, renderState, styleProp, projection);\n }\n mount(instance) {\n this.isSVGTag = isSVGTag(instance.tagName);\n super.mount(instance);\n }\n}\n\nexport { SVGVisualElement };\n","/**\n * We keep these listed separately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nconst lowercaseSVGElements = [\n \"animate\",\n \"circle\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"filter\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"rect\",\n \"stop\",\n \"switch\",\n \"symbol\",\n \"svg\",\n \"text\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n\nexport { lowercaseSVGElements };\n","import { lowercaseSVGElements } from '../../svg/lowercase-elements.mjs';\n\nfunction isSVGComponent(Component) {\n if (\n /**\n * If it's not a string, it's a custom React component. Currently we only support\n * HTML custom React components.\n */\n typeof Component !== \"string\" ||\n /**\n * If it contains a dash, the element is a custom HTML webcomponent.\n */\n Component.includes(\"-\")) {\n return false;\n }\n else if (\n /**\n * If it's in our list of lowercase SVG tags, it's an SVG component\n */\n lowercaseSVGElements.indexOf(Component) > -1 ||\n /**\n * If it contains a capital letter, it's an SVG component\n */\n /[A-Z]/u.test(Component)) {\n return true;\n }\n return false;\n}\n\nexport { isSVGComponent };\n","import { Fragment } from 'react';\nimport { HTMLVisualElement } from '../html/HTMLVisualElement.mjs';\nimport { SVGVisualElement } from '../svg/SVGVisualElement.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\n\nconst createDomVisualElement = (Component, options) => {\n return isSVGComponent(Component)\n ? new SVGVisualElement(options)\n : new HTMLVisualElement(options, {\n allowProjection: Component !== Fragment,\n });\n};\n\nexport { createDomVisualElement };\n","\"use client\";\nimport { createContext } from 'react';\n\nconst LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n","\"use client\";\nimport { createContext } from 'react';\n\nconst LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n","\"use client\";\nimport { createContext } from 'react';\n\nconst MotionContext = /* @__PURE__ */ createContext({});\n\nexport { MotionContext };\n","import { isControllingVariants } from '../../render/utils/is-controlling-variants.mjs';\nimport { isVariantLabel } from '../../render/utils/is-variant-label.mjs';\n\nfunction getCurrentTreeVariants(props, context) {\n if (isControllingVariants(props)) {\n const { initial, animate } = props;\n return {\n initial: initial === false || isVariantLabel(initial)\n ? initial\n : undefined,\n animate: isVariantLabel(animate) ? animate : undefined,\n };\n }\n return props.inherit !== false ? context : {};\n}\n\nexport { getCurrentTreeVariants };\n","import { useContext, useMemo } from 'react';\nimport { MotionContext } from './index.mjs';\nimport { getCurrentTreeVariants } from './utils.mjs';\n\nfunction useCreateMotionContext(props) {\n const { initial, animate } = getCurrentTreeVariants(props, useContext(MotionContext));\n return useMemo(() => ({ initial, animate }), [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\nexport { useCreateMotionContext };\n","const createHtmlRenderState = () => ({\n style: {},\n transform: {},\n transformOrigin: {},\n vars: {},\n});\n\nexport { createHtmlRenderState };\n","import { isMotionValue } from 'motion-dom';\nimport { useMemo } from 'react';\nimport { isForcedMotionValue } from '../../motion/utils/is-forced-motion-value.mjs';\nimport { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nfunction copyRawValuesOnly(target, source, props) {\n for (const key in source) {\n if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues({ transformTemplate }, visualState) {\n return useMemo(() => {\n const state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, transformTemplate);\n return Object.assign({}, state.vars, state.style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState) {\n const styleProp = props.style || {};\n const style = {};\n /**\n * Copy non-Motion Values straight into style\n */\n copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState));\n return style;\n}\nfunction useHTMLProps(props, visualState) {\n // The `any` isn't ideal but it is the type of createElement props argument\n const htmlProps = {};\n const style = useStyle(props, visualState);\n if (props.drag && props.dragListener !== false) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n style.userSelect =\n style.WebkitUserSelect =\n style.WebkitTouchCallout =\n \"none\";\n // Disable scrolling on the draggable direction\n style.touchAction =\n props.drag === true\n ? \"none\"\n : `pan-${props.drag === \"x\" ? \"y\" : \"x\"}`;\n }\n if (props.tabIndex === undefined &&\n (props.onTap || props.onTapStart || props.whileTap)) {\n htmlProps.tabIndex = 0;\n }\n htmlProps.style = style;\n return htmlProps;\n}\n\nexport { copyRawValuesOnly, useHTMLProps };\n","import { createHtmlRenderState } from '../../html/utils/create-render-state.mjs';\n\nconst createSvgRenderState = () => ({\n ...createHtmlRenderState(),\n attrs: {},\n});\n\nexport { createSvgRenderState };\n","import { useMemo } from 'react';\nimport { copyRawValuesOnly } from '../html/use-props.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { isSVGTag } from './utils/is-svg-tag.mjs';\n\nfunction useSVGProps(props, visualState, _isStatic, Component) {\n const visualProps = useMemo(() => {\n const state = createSvgRenderState();\n buildSVGAttrs(state, visualState, isSVGTag(Component), props.transformTemplate, props.style);\n return {\n ...state.attrs,\n style: { ...state.style },\n };\n }, [visualState]);\n if (props.style) {\n const rawStyles = {};\n copyRawValuesOnly(rawStyles, props.style, props);\n visualProps.style = { ...rawStyles, ...visualProps.style };\n }\n return visualProps;\n}\n\nexport { useSVGProps };\n","/**\n * A list of all valid MotionProps.\n *\n * @privateRemarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nconst validMotionProps = new Set([\n \"animate\",\n \"exit\",\n \"variants\",\n \"initial\",\n \"style\",\n \"values\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"custom\",\n \"inherit\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"_dragX\",\n \"_dragY\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"globalTapTarget\",\n \"ignoreStrict\",\n \"viewport\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nfunction isValidMotionProp(key) {\n return (key.startsWith(\"while\") ||\n (key.startsWith(\"drag\") && key !== \"draggable\") ||\n key.startsWith(\"layout\") ||\n key.startsWith(\"onTap\") ||\n key.startsWith(\"onPan\") ||\n key.startsWith(\"onLayout\") ||\n validMotionProps.has(key));\n}\n\nexport { isValidMotionProp };\n","import { isValidMotionProp } from '../../../motion/utils/valid-prop.mjs';\n\nlet shouldForward = (key) => !isValidMotionProp(key);\nfunction loadExternalIsValidProp(isValidProp) {\n if (typeof isValidProp !== \"function\")\n return;\n // Explicitly filter our events\n shouldForward = (key) => key.startsWith(\"on\") ? !isValidMotionProp(key) : isValidProp(key);\n}\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n /**\n * We attempt to import this package but require won't be defined in esm environments, in that case\n * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed\n * in favour of explicit injection.\n */\n loadExternalIsValidProp(require(\"@emotion/is-prop-valid\").default);\n}\ncatch {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nfunction filterProps(props, isDom, forwardMotionProps) {\n const filteredProps = {};\n for (const key in props) {\n /**\n * values is considered a valid prop by Emotion, so if it's present\n * this will be rendered out to the DOM unless explicitly filtered.\n *\n * We check the type as it could be used with the `feColorMatrix`\n * element, which we support.\n */\n if (key === \"values\" && typeof props.values === \"object\")\n continue;\n if (shouldForward(key) ||\n (forwardMotionProps === true && isValidMotionProp(key)) ||\n (!isDom && !isValidMotionProp(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] &&\n key.startsWith(\"onDrag\"))) {\n filteredProps[key] =\n props[key];\n }\n }\n return filteredProps;\n}\n\nexport { filterProps, loadExternalIsValidProp };\n","import { isMotionValue } from 'motion-dom';\nimport { Fragment, useMemo, createElement } from 'react';\nimport { useHTMLProps } from '../html/use-props.mjs';\nimport { useSVGProps } from '../svg/use-props.mjs';\nimport { filterProps } from './utils/filter-props.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\n\nfunction useRender(Component, props, ref, { latestValues, }, isStatic, forwardMotionProps = false) {\n const useVisualProps = isSVGComponent(Component)\n ? useSVGProps\n : useHTMLProps;\n const visualProps = useVisualProps(props, latestValues, isStatic, Component);\n const filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n const elementProps = Component !== Fragment ? { ...filteredProps, ...visualProps, ref } : {};\n /**\n * If component has been handed a motion value as its child,\n * memoise its initial value and render that. Subsequent updates\n * will be handled by the onChange handler\n */\n const { children } = props;\n const renderedChildren = useMemo(() => (isMotionValue(children) ? children.get() : children), [children]);\n return createElement(Component, {\n ...elementProps,\n children: renderedChildren,\n });\n}\n\nexport { useRender };\n","\"use client\";\nimport { createContext } from 'react';\n\n/**\n * @public\n */\nconst PresenceContext = \n/* @__PURE__ */ createContext(null);\n\nexport { PresenceContext };\n","import { isMotionValue } from 'motion-dom';\n\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n *\n * TODO: Remove and move to library\n */\nfunction resolveMotionValue(value) {\n return isMotionValue(value) ? value.get() : value;\n}\n\nexport { resolveMotionValue };\n","import { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { isControllingVariants, isVariantNode } from '../../render/utils/is-controlling-variants.mjs';\nimport { resolveVariantFromProps } from '../../render/utils/resolve-variants.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\n\nfunction makeState({ scrapeMotionValuesFromProps, createRenderState, }, props, context, presenceContext) {\n const state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n return state;\n}\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n const values = {};\n const motionValues = scrapeMotionValues(props, {});\n for (const key in motionValues) {\n values[key] = resolveMotionValue(motionValues[key]);\n }\n let { initial, animate } = props;\n const isControllingVariants$1 = isControllingVariants(props);\n const isVariantNode$1 = isVariantNode(props);\n if (context &&\n isVariantNode$1 &&\n !isControllingVariants$1 &&\n props.inherit !== false) {\n if (initial === undefined)\n initial = context.initial;\n if (animate === undefined)\n animate = context.animate;\n }\n let isInitialAnimationBlocked = presenceContext\n ? presenceContext.initial === false\n : false;\n isInitialAnimationBlocked = isInitialAnimationBlocked || initial === false;\n const variantToSet = isInitialAnimationBlocked ? animate : initial;\n if (variantToSet &&\n typeof variantToSet !== \"boolean\" &&\n !isAnimationControls(variantToSet)) {\n const list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\n for (let i = 0; i < list.length; i++) {\n const resolved = resolveVariantFromProps(props, list[i]);\n if (resolved) {\n const { transitionEnd, transition, ...target } = resolved;\n for (const key in target) {\n let valueTarget = target[key];\n if (Array.isArray(valueTarget)) {\n /**\n * Take final keyframe if the initial animation is blocked because\n * we want to initialise at the end of that blocked animation.\n */\n const index = isInitialAnimationBlocked\n ? valueTarget.length - 1\n : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for (const key in transitionEnd) {\n values[key] = transitionEnd[key];\n }\n }\n }\n }\n return values;\n}\nconst makeUseVisualState = (config) => (props, isStatic) => {\n const context = useContext(MotionContext);\n const presenceContext = useContext(PresenceContext);\n const make = () => makeState(config, props, context, presenceContext);\n return isStatic ? make() : useConstant(make);\n};\n\nexport { makeUseVisualState };\n","import { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\n\nconst useHTMLVisualState = /*@__PURE__*/ makeUseVisualState({\n scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n});\n\nexport { useHTMLVisualState };\n","import { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\n\nconst useSVGVisualState = /*@__PURE__*/ makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createSvgRenderState,\n});\n\nexport { useSVGVisualState };\n","import { featureDefinitions } from './definitions.mjs';\n\nfunction loadFeatures(features) {\n for (const key in features) {\n featureDefinitions[key] = {\n ...featureDefinitions[key],\n ...features[key],\n };\n }\n}\n\nexport { loadFeatures };\n","const motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n\nexport { motionComponentSymbol };\n","function isRefObject(ref) {\n return (ref &&\n typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\n","import { useCallback } from 'react';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\n\n/**\n * Creates a ref function that, when called, hydrates the provided\n * external ref and VisualElement.\n */\nfunction useMotionRef(visualState, visualElement, externalRef) {\n return useCallback((instance) => {\n if (instance) {\n visualState.onMount && visualState.onMount(instance);\n }\n if (visualElement) {\n if (instance) {\n visualElement.mount(instance);\n }\n else {\n visualElement.unmount();\n }\n }\n if (externalRef) {\n if (typeof externalRef === \"function\") {\n externalRef(instance);\n }\n else if (isRefObject(externalRef)) {\n externalRef.current = instance;\n }\n }\n }, \n /**\n * Only pass a new ref callback to React if we've received a visual element\n * factory. Otherwise we'll be mounting/remounting every time externalRef\n * or other dependencies change.\n */\n [visualElement]);\n}\n\nexport { useMotionRef };\n","import { camelToDash } from '../../render/dom/utils/camel-to-dash.mjs';\n\nconst optimizedAppearDataId = \"framerAppearId\";\nconst optimizedAppearDataAttribute = \"data-\" + camelToDash(optimizedAppearDataId);\n\nexport { optimizedAppearDataAttribute, optimizedAppearDataId };\n","\"use client\";\nimport { createContext } from 'react';\n\n/**\n * Internal, exported only for usage in Framer\n */\nconst SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\n","import { useContext, useRef, useInsertionEffect, useEffect } from 'react';\nimport { optimizedAppearDataAttribute } from '../../animation/optimized-appear/data-id.mjs';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { SwitchLayoutGroupContext } from '../../context/SwitchLayoutGroupContext.mjs';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\n\nfunction useVisualElement(Component, visualState, props, createVisualElement, ProjectionNodeConstructor) {\n const { visualElement: parent } = useContext(MotionContext);\n const lazyContext = useContext(LazyContext);\n const presenceContext = useContext(PresenceContext);\n const reducedMotionConfig = useContext(MotionConfigContext).reducedMotion;\n const visualElementRef = useRef(null);\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */\n createVisualElement =\n createVisualElement ||\n lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState,\n parent,\n props,\n presenceContext,\n blockInitialAnimation: presenceContext\n ? presenceContext.initial === false\n : false,\n reducedMotionConfig,\n });\n }\n const visualElement = visualElementRef.current;\n /**\n * Load Motion gesture and animation features. These are rendered as renderless\n * components so each feature can optionally make use of React lifecycle methods.\n */\n const initialLayoutGroupConfig = useContext(SwitchLayoutGroupContext);\n if (visualElement &&\n !visualElement.projection &&\n ProjectionNodeConstructor &&\n (visualElement.type === \"html\" || visualElement.type === \"svg\")) {\n createProjectionNode(visualElementRef.current, props, ProjectionNodeConstructor, initialLayoutGroupConfig);\n }\n const isMounted = useRef(false);\n useInsertionEffect(() => {\n /**\n * Check the component has already mounted before calling\n * `update` unnecessarily. This ensures we skip the initial update.\n */\n if (visualElement && isMounted.current) {\n visualElement.update(props, presenceContext);\n }\n });\n /**\n * Cache this value as we want to know whether HandoffAppearAnimations\n * was present on initial render - it will be deleted after this.\n */\n const optimisedAppearId = props[optimizedAppearDataAttribute];\n const wantsHandoff = useRef(Boolean(optimisedAppearId) &&\n !window.MotionHandoffIsComplete?.(optimisedAppearId) &&\n window.MotionHasOptimisedAnimation?.(optimisedAppearId));\n useIsomorphicLayoutEffect(() => {\n if (!visualElement)\n return;\n isMounted.current = true;\n window.MotionIsMounted = true;\n visualElement.updateFeatures();\n visualElement.scheduleRenderMicrotask();\n /**\n * Ideally this function would always run in a useEffect.\n *\n * However, if we have optimised appear animations to handoff from,\n * it needs to happen synchronously to ensure there's no flash of\n * incorrect styles in the event of a hydration error.\n *\n * So if we detect a situtation where optimised appear animations\n * are running, we use useLayoutEffect to trigger animations.\n */\n if (wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n });\n useEffect(() => {\n if (!visualElement)\n return;\n if (!wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n if (wantsHandoff.current) {\n // This ensures all future calls to animateChanges() in this component will run in useEffect\n queueMicrotask(() => {\n window.MotionHandoffMarkAsComplete?.(optimisedAppearId);\n });\n wantsHandoff.current = false;\n }\n });\n return visualElement;\n}\nfunction createProjectionNode(visualElement, props, ProjectionNodeConstructor, initialPromotionConfig) {\n const { layoutId, layout, drag, dragConstraints, layoutScroll, layoutRoot, layoutCrossfade, } = props;\n visualElement.projection = new ProjectionNodeConstructor(visualElement.latestValues, props[\"data-framer-portal-id\"]\n ? undefined\n : getClosestProjectingNode(visualElement.parent));\n visualElement.projection.setOptions({\n layoutId,\n layout,\n alwaysMeasureLayout: Boolean(drag) || (dragConstraints && isRefObject(dragConstraints)),\n visualElement,\n /**\n * TODO: Update options in an effect. This could be tricky as it'll be too late\n * to update by the time layout animations run.\n * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,\n * ensuring it gets called if there's no potential layout animations.\n *\n */\n animationType: typeof layout === \"string\" ? layout : \"both\",\n initialPromotionConfig,\n crossfade: layoutCrossfade,\n layoutScroll,\n layoutRoot,\n });\n}\nfunction getClosestProjectingNode(visualElement) {\n if (!visualElement)\n return undefined;\n return visualElement.options.allowProjection !== false\n ? visualElement.projection\n : getClosestProjectingNode(visualElement.parent);\n}\n\nexport { useVisualElement };\n","\"use client\";\nimport { jsxs, jsx } from 'react/jsx-runtime';\nimport { warning, invariant } from 'motion-utils';\nimport { forwardRef, useContext } from 'react';\nimport { LayoutGroupContext } from '../context/LayoutGroupContext.mjs';\nimport { LazyContext } from '../context/LazyContext.mjs';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { MotionContext } from '../context/MotionContext/index.mjs';\nimport { useCreateMotionContext } from '../context/MotionContext/create.mjs';\nimport { useRender } from '../render/dom/use-render.mjs';\nimport { isSVGComponent } from '../render/dom/utils/is-svg-component.mjs';\nimport { useHTMLVisualState } from '../render/html/use-html-visual-state.mjs';\nimport { useSVGVisualState } from '../render/svg/use-svg-visual-state.mjs';\nimport { isBrowser } from '../utils/is-browser.mjs';\nimport { featureDefinitions } from './features/definitions.mjs';\nimport { loadFeatures } from './features/load-features.mjs';\nimport { motionComponentSymbol } from './utils/symbol.mjs';\nimport { useMotionRef } from './utils/use-motion-ref.mjs';\nimport { useVisualElement } from './utils/use-visual-element.mjs';\n\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n */\nfunction createMotionComponent(Component, { forwardMotionProps = false } = {}, preloadedFeatures, createVisualElement) {\n preloadedFeatures && loadFeatures(preloadedFeatures);\n const useVisualState = isSVGComponent(Component)\n ? useSVGVisualState\n : useHTMLVisualState;\n function MotionDOMComponent(props, externalRef) {\n /**\n * If we need to measure the element we load this functionality in a\n * separate class component in order to gain access to getSnapshotBeforeUpdate.\n */\n let MeasureLayout;\n const configAndProps = {\n ...useContext(MotionConfigContext),\n ...props,\n layoutId: useLayoutId(props),\n };\n const { isStatic } = configAndProps;\n const context = useCreateMotionContext(props);\n const visualState = useVisualState(props, isStatic);\n if (!isStatic && isBrowser) {\n useStrictMode(configAndProps, preloadedFeatures);\n const layoutProjection = getProjectionFunctionality(configAndProps);\n MeasureLayout = layoutProjection.MeasureLayout;\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */\n context.visualElement = useVisualElement(Component, visualState, configAndProps, createVisualElement, layoutProjection.ProjectionNode);\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */\n return (jsxs(MotionContext.Provider, { value: context, children: [MeasureLayout && context.visualElement ? (jsx(MeasureLayout, { visualElement: context.visualElement, ...configAndProps })) : null, useRender(Component, props, useMotionRef(visualState, context.visualElement, externalRef), visualState, isStatic, forwardMotionProps)] }));\n }\n MotionDOMComponent.displayName = `motion.${typeof Component === \"string\"\n ? Component\n : `create(${Component.displayName ?? Component.name ?? \"\"})`}`;\n const ForwardRefMotionComponent = forwardRef(MotionDOMComponent);\n ForwardRefMotionComponent[motionComponentSymbol] = Component;\n return ForwardRefMotionComponent;\n}\nfunction useLayoutId({ layoutId }) {\n const layoutGroupId = useContext(LayoutGroupContext).id;\n return layoutGroupId && layoutId !== undefined\n ? layoutGroupId + \"-\" + layoutId\n : layoutId;\n}\nfunction useStrictMode(configAndProps, preloadedFeatures) {\n const isStrict = useContext(LazyContext).strict;\n /**\n * If we're in development mode, check to make sure we're not rendering a motion component\n * as a child of LazyMotion, as this will break the file-size benefits of using it.\n */\n if (process.env.NODE_ENV !== \"production\" &&\n preloadedFeatures &&\n isStrict) {\n const strictMessage = \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\";\n configAndProps.ignoreStrict\n ? warning(false, strictMessage, \"lazy-strict-mode\")\n : invariant(false, strictMessage, \"lazy-strict-mode\");\n }\n}\nfunction getProjectionFunctionality(props) {\n const { drag, layout } = featureDefinitions;\n if (!drag && !layout)\n return {};\n const combined = { ...drag, ...layout };\n return {\n MeasureLayout: drag?.isEnabled(props) || layout?.isEnabled(props)\n ? combined.MeasureLayout\n : undefined,\n ProjectionNode: combined.ProjectionNode,\n };\n}\n\nexport { createMotionComponent };\n","import { warnOnce } from 'motion-utils';\nimport { createMotionComponent } from '../../motion/index.mjs';\n\nfunction createMotionProxy(preloadedFeatures, createVisualElement) {\n if (typeof Proxy === \"undefined\") {\n return createMotionComponent;\n }\n /**\n * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.\n * Rather than generating them anew every render.\n */\n const componentCache = new Map();\n const factory = (Component, options) => {\n return createMotionComponent(Component, options, preloadedFeatures, createVisualElement);\n };\n /**\n * Support for deprecated`motion(Component)` pattern\n */\n const deprecatedFactoryFunction = (Component, options) => {\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(false, \"motion() is deprecated. Use motion.create() instead.\");\n }\n return factory(Component, options);\n };\n return new Proxy(deprecatedFactoryFunction, {\n /**\n * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.\n * The prop name is passed through as `key` and we can use that to generate a `motion`\n * DOM component with that name.\n */\n get: (_target, key) => {\n if (key === \"create\")\n return factory;\n /**\n * If this element doesn't exist in the component cache, create it and cache.\n */\n if (!componentCache.has(key)) {\n componentCache.set(key, createMotionComponent(key, undefined, preloadedFeatures, createVisualElement));\n }\n return componentCache.get(key);\n },\n });\n}\n\nexport { createMotionProxy };\n","import { resolveVariantFromProps } from './resolve-variants.mjs';\n\nfunction resolveVariant(visualElement, definition, custom) {\n const props = visualElement.getProps();\n return resolveVariantFromProps(props, definition, custom !== undefined ? custom : props.custom, visualElement);\n}\n\nexport { resolveVariant };\n","function getValueTransition(transition, key) {\n return (transition?.[key] ??\n transition?.[\"default\"] ??\n transition);\n}\n\nexport { getValueTransition };\n","const isKeyframesTarget = (v) => {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\n","import { motionValue } from 'motion-dom';\nimport { isKeyframesTarget } from '../../animation/utils/is-keyframes-target.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n }\n else {\n visualElement.addValue(key, motionValue(value));\n }\n}\nfunction resolveFinalValueInKeyframes(v) {\n // TODO maybe throw if v.length - 1 is placeholder token?\n return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;\n}\nfunction setTarget(visualElement, definition) {\n const resolved = resolveVariant(visualElement, definition);\n let { transitionEnd = {}, transition = {}, ...target } = resolved || {};\n target = { ...target, ...transitionEnd };\n for (const key in target) {\n const value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\n\nexport { setTarget };\n","import { isMotionValue } from 'motion-dom';\n\nfunction isWillChangeMotionValue(value) {\n return Boolean(isMotionValue(value) && value.add);\n}\n\nexport { isWillChangeMotionValue };\n","import { MotionGlobalConfig } from 'motion-utils';\nimport { isWillChangeMotionValue } from './is.mjs';\n\nfunction addValueToWillChange(visualElement, key) {\n const willChange = visualElement.getValue(\"willChange\");\n /**\n * It could be that a user has set willChange to a regular MotionValue,\n * in which case we can't add the value to it.\n */\n if (isWillChangeMotionValue(willChange)) {\n return willChange.add(key);\n }\n else if (!willChange && MotionGlobalConfig.WillChange) {\n const newWillChange = new MotionGlobalConfig.WillChange(\"auto\");\n visualElement.addValue(\"willChange\", newWillChange);\n newWillChange.add(key);\n }\n}\n\nexport { addValueToWillChange };\n","import { optimizedAppearDataAttribute } from './data-id.mjs';\n\nfunction getOptimisedAppearId(visualElement) {\n return visualElement.props[optimizedAppearDataAttribute];\n}\n\nexport { getOptimisedAppearId };\n","/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\n/*#__NO_SIDE_EFFECTS__*/\nconst secondsToMilliseconds = (seconds) => seconds * 1000;\n/*#__NO_SIDE_EFFECTS__*/\nconst millisecondsToSeconds = (milliseconds) => milliseconds / 1000;\n\nexport { millisecondsToSeconds, secondsToMilliseconds };\n","const activeAnimations = {\n layout: 0,\n mainThread: 0,\n waapi: 0,\n};\n\nexport { activeAnimations };\n","import { time } from '../../frameloop/sync-time.mjs';\nimport { frame, cancelFrame, frameData } from '../../frameloop/frame.mjs';\n\nconst frameloopDriver = (update) => {\n const passTimestamp = ({ timestamp }) => update(timestamp);\n return {\n start: (keepAlive = true) => frame.update(passTimestamp, keepAlive),\n stop: () => cancelFrame(passTimestamp),\n /**\n * If we're processing this frame we can use the\n * framelocked timestamp to keep things in sync.\n */\n now: () => (frameData.isProcessing ? frameData.timestamp : time.now()),\n };\n};\n\nexport { frameloopDriver };\n","const generateLinearEasing = (easing, duration, // as milliseconds\nresolution = 10 // as milliseconds\n) => {\n let points = \"\";\n const numPoints = Math.max(Math.round(duration / resolution), 2);\n for (let i = 0; i < numPoints; i++) {\n points += Math.round(easing(i / (numPoints - 1)) * 10000) / 10000 + \", \";\n }\n return `linear(${points.substring(0, points.length - 2)})`;\n};\n\nexport { generateLinearEasing };\n","/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxGeneratorDuration = 20000;\nfunction calcGeneratorDuration(generator) {\n let duration = 0;\n const timeStep = 50;\n let state = generator.next(duration);\n while (!state.done && duration < maxGeneratorDuration) {\n duration += timeStep;\n state = generator.next(duration);\n }\n return duration >= maxGeneratorDuration ? Infinity : duration;\n}\n\nexport { calcGeneratorDuration, maxGeneratorDuration };\n","import { millisecondsToSeconds } from 'motion-utils';\nimport { calcGeneratorDuration, maxGeneratorDuration } from './calc-duration.mjs';\n\n/**\n * Create a progress => progress easing function from a generator.\n */\nfunction createGeneratorEasing(options, scale = 100, createGenerator) {\n const generator = createGenerator({ ...options, keyframes: [0, scale] });\n const duration = Math.min(calcGeneratorDuration(generator), maxGeneratorDuration);\n return {\n type: \"keyframes\",\n ease: (progress) => {\n return generator.next(duration * progress).value / scale;\n },\n duration: millisecondsToSeconds(duration),\n };\n}\n\nexport { createGeneratorEasing };\n","import { velocityPerSecond } from 'motion-utils';\n\nconst velocitySampleDuration = 5; // ms\nfunction calcGeneratorVelocity(resolveValue, t, current) {\n const prevT = Math.max(t - velocitySampleDuration, 0);\n return velocityPerSecond(current - resolveValue(prevT), t - prevT);\n}\n\nexport { calcGeneratorVelocity };\n","const springDefaults = {\n // Default spring physics\n stiffness: 100,\n damping: 10,\n mass: 1.0,\n velocity: 0.0,\n // Default duration/bounce-based options\n duration: 800, // in ms\n bounce: 0.3,\n visualDuration: 0.3, // in seconds\n // Rest thresholds\n restSpeed: {\n granular: 0.01,\n default: 2,\n },\n restDelta: {\n granular: 0.005,\n default: 0.5,\n },\n // Limits\n minDuration: 0.01, // in seconds\n maxDuration: 10.0, // in seconds\n minDamping: 0.05,\n maxDamping: 1,\n};\n\nexport { springDefaults };\n","import { warning, secondsToMilliseconds, clamp, millisecondsToSeconds } from 'motion-utils';\nimport { springDefaults } from './defaults.mjs';\n\nconst safeMin = 0.001;\nfunction findSpring({ duration = springDefaults.duration, bounce = springDefaults.bounce, velocity = springDefaults.velocity, mass = springDefaults.mass, }) {\n let envelope;\n let derivative;\n warning(duration <= secondsToMilliseconds(springDefaults.maxDuration), \"Spring duration must be 10 seconds or less\", \"spring-duration-limit\");\n let dampingRatio = 1 - bounce;\n /**\n * Restrict dampingRatio and duration to within acceptable ranges.\n */\n dampingRatio = clamp(springDefaults.minDamping, springDefaults.maxDamping, dampingRatio);\n duration = clamp(springDefaults.minDuration, springDefaults.maxDuration, millisecondsToSeconds(duration));\n if (dampingRatio < 1) {\n /**\n * Underdamped spring\n */\n envelope = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const a = exponentialDecay - velocity;\n const b = calcAngularFreq(undampedFreq, dampingRatio);\n const c = Math.exp(-delta);\n return safeMin - (a / b) * c;\n };\n derivative = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const d = delta * velocity + velocity;\n const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n const f = Math.exp(-delta);\n const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return (factor * ((d - e) * f)) / g;\n };\n }\n else {\n /**\n * Critically-damped spring\n */\n envelope = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n derivative = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n const initialGuess = 5 / duration;\n const undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n duration = secondsToMilliseconds(duration);\n if (isNaN(undampedFreq)) {\n return {\n stiffness: springDefaults.stiffness,\n damping: springDefaults.damping,\n duration,\n };\n }\n else {\n const stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n duration,\n };\n }\n}\nconst rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n let result = initialGuess;\n for (let i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\nexport { calcAngularFreq, findSpring };\n","import { millisecondsToSeconds, secondsToMilliseconds, clamp } from 'motion-utils';\nimport { generateLinearEasing } from '../../waapi/utils/linear.mjs';\nimport { calcGeneratorDuration, maxGeneratorDuration } from '../utils/calc-duration.mjs';\nimport { createGeneratorEasing } from '../utils/create-generator-easing.mjs';\nimport { calcGeneratorVelocity } from '../utils/velocity.mjs';\nimport { springDefaults } from './defaults.mjs';\nimport { findSpring, calcAngularFreq } from './find.mjs';\n\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some((key) => options[key] !== undefined);\n}\nfunction getSpringOptions(options) {\n let springOptions = {\n velocity: springDefaults.velocity,\n stiffness: springDefaults.stiffness,\n damping: springDefaults.damping,\n mass: springDefaults.mass,\n isResolvedFromDuration: false,\n ...options,\n };\n // stiffness/damping/mass overrides duration/bounce\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n if (options.visualDuration) {\n const visualDuration = options.visualDuration;\n const root = (2 * Math.PI) / (visualDuration * 1.2);\n const stiffness = root * root;\n const damping = 2 *\n clamp(0.05, 1, 1 - (options.bounce || 0)) *\n Math.sqrt(stiffness);\n springOptions = {\n ...springOptions,\n mass: springDefaults.mass,\n stiffness,\n damping,\n };\n }\n else {\n const derived = findSpring(options);\n springOptions = {\n ...springOptions,\n ...derived,\n mass: springDefaults.mass,\n };\n springOptions.isResolvedFromDuration = true;\n }\n }\n return springOptions;\n}\nfunction spring(optionsOrVisualDuration = springDefaults.visualDuration, bounce = springDefaults.bounce) {\n const options = typeof optionsOrVisualDuration !== \"object\"\n ? {\n visualDuration: optionsOrVisualDuration,\n keyframes: [0, 1],\n bounce,\n }\n : optionsOrVisualDuration;\n let { restSpeed, restDelta } = options;\n const origin = options.keyframes[0];\n const target = options.keyframes[options.keyframes.length - 1];\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = { done: false, value: origin };\n const { stiffness, damping, mass, duration, velocity, isResolvedFromDuration, } = getSpringOptions({\n ...options,\n velocity: -millisecondsToSeconds(options.velocity || 0),\n });\n const initialVelocity = velocity || 0.0;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const initialDelta = target - origin;\n const undampedAngularFreq = millisecondsToSeconds(Math.sqrt(stiffness / mass));\n /**\n * If we're working on a granular scale, use smaller defaults for determining\n * when the spring is finished.\n *\n * These defaults have been selected emprically based on what strikes a good\n * ratio between feeling good and finishing as soon as changes are imperceptible.\n */\n const isGranularScale = Math.abs(initialDelta) < 5;\n restSpeed || (restSpeed = isGranularScale\n ? springDefaults.restSpeed.granular\n : springDefaults.restSpeed.default);\n restDelta || (restDelta = isGranularScale\n ? springDefaults.restDelta.granular\n : springDefaults.restDelta.default);\n let resolveSpring;\n if (dampingRatio < 1) {\n const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n // Underdamped spring\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (target -\n envelope *\n (((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n }\n else if (dampingRatio === 1) {\n // Critically damped spring\n resolveSpring = (t) => target -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) * t);\n }\n else {\n // Overdamped spring\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n // When performing sinh or cosh values can hit Infinity so we cap them here\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (target -\n (envelope *\n ((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) *\n Math.sinh(freqForT) +\n dampedAngularFreq *\n initialDelta *\n Math.cosh(freqForT))) /\n dampedAngularFreq);\n };\n }\n const generator = {\n calculatedDuration: isResolvedFromDuration ? duration || null : null,\n next: (t) => {\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n let currentVelocity = t === 0 ? initialVelocity : 0.0;\n /**\n * We only need to calculate velocity for under-damped springs\n * as over- and critically-damped springs can't overshoot, so\n * checking only for displacement is enough.\n */\n if (dampingRatio < 1) {\n currentVelocity =\n t === 0\n ? secondsToMilliseconds(initialVelocity)\n : calcGeneratorVelocity(resolveSpring, t, current);\n }\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(target - current) <= restDelta;\n state.done =\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? target : current;\n return state;\n },\n toString: () => {\n const calculatedDuration = Math.min(calcGeneratorDuration(generator), maxGeneratorDuration);\n const easing = generateLinearEasing((progress) => generator.next(calculatedDuration * progress).value, calculatedDuration, 30);\n return calculatedDuration + \"ms \" + easing;\n },\n toTransition: () => { },\n };\n return generator;\n}\nspring.applyToOptions = (options) => {\n const generatorOptions = createGeneratorEasing(options, 100, spring);\n options.ease = generatorOptions.ease;\n options.duration = secondsToMilliseconds(generatorOptions.duration);\n options.type = \"keyframes\";\n return options;\n};\n\nexport { spring };\n","import { spring } from './spring/index.mjs';\nimport { calcGeneratorVelocity } from './utils/velocity.mjs';\n\nfunction inertia({ keyframes, velocity = 0.0, power = 0.8, timeConstant = 325, bounceDamping = 10, bounceStiffness = 500, modifyTarget, min, max, restDelta = 0.5, restSpeed, }) {\n const origin = keyframes[0];\n const state = {\n done: false,\n value: origin,\n };\n const isOutOfBounds = (v) => (min !== undefined && v < min) || (max !== undefined && v > max);\n const nearestBoundary = (v) => {\n if (min === undefined)\n return max;\n if (max === undefined)\n return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n };\n let amplitude = power * velocity;\n const ideal = origin + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n /**\n * If the target has changed we need to re-calculate the amplitude, otherwise\n * the animation will start from the wrong position.\n */\n if (target !== ideal)\n amplitude = target - origin;\n const calcDelta = (t) => -amplitude * Math.exp(-t / timeConstant);\n const calcLatest = (t) => target + calcDelta(t);\n const applyFriction = (t) => {\n const delta = calcDelta(t);\n const latest = calcLatest(t);\n state.done = Math.abs(delta) <= restDelta;\n state.value = state.done ? target : latest;\n };\n /**\n * Ideally this would resolve for t in a stateless way, we could\n * do that by always precalculating the animation but as we know\n * this will be done anyway we can assume that spring will\n * be discovered during that.\n */\n let timeReachedBoundary;\n let spring$1;\n const checkCatchBoundary = (t) => {\n if (!isOutOfBounds(state.value))\n return;\n timeReachedBoundary = t;\n spring$1 = spring({\n keyframes: [state.value, nearestBoundary(state.value)],\n velocity: calcGeneratorVelocity(calcLatest, t, state.value), // TODO: This should be passing * 1000\n damping: bounceDamping,\n stiffness: bounceStiffness,\n restDelta,\n restSpeed,\n });\n };\n checkCatchBoundary(0);\n return {\n calculatedDuration: null,\n next: (t) => {\n /**\n * We need to resolve the friction to figure out if we need a\n * spring but we don't want to do this twice per frame. So here\n * we flag if we updated for this frame and later if we did\n * we can skip doing it again.\n */\n let hasUpdatedFrame = false;\n if (!spring$1 && timeReachedBoundary === undefined) {\n hasUpdatedFrame = true;\n applyFriction(t);\n checkCatchBoundary(t);\n }\n /**\n * If we have a spring and the provided t is beyond the moment the friction\n * animation crossed the min/max boundary, use the spring.\n */\n if (timeReachedBoundary !== undefined && t >= timeReachedBoundary) {\n return spring$1.next(t - timeReachedBoundary);\n }\n else {\n !hasUpdatedFrame && applyFriction(t);\n return state;\n }\n },\n };\n}\n\nexport { inertia };\n","import { noop } from '../noop.mjs';\n\n/*\n Bezier function generator\n This has been modified from Gaëtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticeably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) *\n t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return noop;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { cubicBezier } from './cubic-bezier.mjs';\n\nconst easeIn = /*@__PURE__*/ cubicBezier(0.42, 0, 1, 1);\nconst easeOut = /*@__PURE__*/ cubicBezier(0, 0, 0.58, 1);\nconst easeInOut = /*@__PURE__*/ cubicBezier(0.42, 0, 0.58, 1);\n\nexport { easeIn, easeInOut, easeOut };\n","const isEasingArray = (ease) => {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { isEasingArray };\n","// Accepts an easing function and returns a new one that outputs mirrored values for\n// the second half of the animation. Turns easeIn into easeInOut.\nconst mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\n\nexport { mirrorEasing };\n","// Accepts an easing function and returns a new one that outputs reversed values.\n// Turns easeIn into easeOut.\nconst reverseEasing = (easing) => (p) => 1 - easing(1 - p);\n\nexport { reverseEasing };\n","import { cubicBezier } from './cubic-bezier.mjs';\nimport { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst backOut = /*@__PURE__*/ cubicBezier(0.33, 1.53, 0.69, 0.99);\nconst backIn = /*@__PURE__*/ reverseEasing(backOut);\nconst backInOut = /*@__PURE__*/ mirrorEasing(backIn);\n\nexport { backIn, backInOut, backOut };\n","import { backIn } from './back.mjs';\n\nconst anticipate = (p) => (p *= 2) < 1 ? 0.5 * backIn(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n\nexport { anticipate };\n","import { mirrorEasing } from './modifiers/mirror.mjs';\nimport { reverseEasing } from './modifiers/reverse.mjs';\n\nconst circIn = (p) => 1 - Math.sin(Math.acos(p));\nconst circOut = reverseEasing(circIn);\nconst circInOut = mirrorEasing(circIn);\n\nexport { circIn, circInOut, circOut };\n","const isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === \"number\";\n\nexport { isBezierDefinition };\n","import { invariant } from '../../errors.mjs';\nimport { noop } from '../../noop.mjs';\nimport { anticipate } from '../anticipate.mjs';\nimport { backIn, backInOut, backOut } from '../back.mjs';\nimport { circIn, circInOut, circOut } from '../circ.mjs';\nimport { cubicBezier } from '../cubic-bezier.mjs';\nimport { easeIn, easeInOut, easeOut } from '../ease.mjs';\nimport { isBezierDefinition } from './is-bezier-definition.mjs';\n\nconst easingLookup = {\n linear: noop,\n easeIn,\n easeInOut,\n easeOut,\n circIn,\n circInOut,\n circOut,\n backIn,\n backInOut,\n backOut,\n anticipate,\n};\nconst isValidEasing = (easing) => {\n return typeof easing === \"string\";\n};\nconst easingDefinitionToFunction = (definition) => {\n if (isBezierDefinition(definition)) {\n // If cubic bezier definition, create bezier curve\n invariant(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`, \"cubic-bezier-length\");\n const [x1, y1, x2, y2] = definition;\n return cubicBezier(x1, y1, x2, y2);\n }\n else if (isValidEasing(definition)) {\n // Else lookup from table\n invariant(easingLookup[definition] !== undefined, `Invalid easing type '${definition}'`, \"invalid-easing-type\");\n return easingLookup[definition];\n }\n return definition;\n};\n\nexport { easingDefinitionToFunction };\n","import { progress } from 'motion-utils';\nimport { mixNumber } from '../../../utils/mix/number.mjs';\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = progress(0, remaining, i);\n offset.push(mixNumber(min, 1, offsetProgress));\n }\n}\n\nexport { fillOffset };\n","import { fillOffset } from './fill.mjs';\n\nfunction defaultOffset(arr) {\n const offset = [0];\n fillOffset(offset, arr.length - 1);\n return offset;\n}\n\nexport { defaultOffset };\n","function convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\n\nexport { convertOffsetToTimes };\n","import { easeInOut, isEasingArray, easingDefinitionToFunction } from 'motion-utils';\nimport { interpolate } from '../../utils/interpolate.mjs';\nimport { defaultOffset } from '../keyframes/offsets/default.mjs';\nimport { convertOffsetToTimes } from '../keyframes/offsets/time.mjs';\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || easeInOut).splice(0, values.length - 1);\n}\nfunction keyframes({ duration = 300, keyframes: keyframeValues, times, ease = \"easeInOut\", }) {\n /**\n * Easing functions can be externally defined as strings. Here we convert them\n * into actual functions.\n */\n const easingFunctions = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = {\n done: false,\n value: keyframeValues[0],\n };\n /**\n * Create a times array based on the provided 0-1 offsets\n */\n const absoluteTimes = convertOffsetToTimes(\n // Only use the provided offsets if they're the correct length\n // TODO Maybe we should warn here if there's a length mismatch\n times && times.length === keyframeValues.length\n ? times\n : defaultOffset(keyframeValues), duration);\n const mapTimeToKeyframe = interpolate(absoluteTimes, keyframeValues, {\n ease: Array.isArray(easingFunctions)\n ? easingFunctions\n : defaultEasing(keyframeValues, easingFunctions),\n });\n return {\n calculatedDuration: duration,\n next: (t) => {\n state.value = mapTimeToKeyframe(t);\n state.done = t >= duration;\n return state;\n },\n };\n}\n\nexport { defaultEasing, keyframes };\n","const isNotNull = (value) => value !== null;\nfunction getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }, finalKeyframe, speed = 1) {\n const resolvedKeyframes = keyframes.filter(isNotNull);\n const useFirstKeyframe = speed < 0 || (repeat && repeatType !== \"loop\" && repeat % 2 === 1);\n const index = useFirstKeyframe ? 0 : resolvedKeyframes.length - 1;\n return !index || finalKeyframe === undefined\n ? resolvedKeyframes[index]\n : finalKeyframe;\n}\n\nexport { getFinalKeyframe };\n","import { inertia } from '../generators/inertia.mjs';\nimport { keyframes } from '../generators/keyframes.mjs';\nimport { spring } from '../generators/spring/index.mjs';\n\nconst transitionTypeMap = {\n decay: inertia,\n inertia,\n tween: keyframes,\n keyframes: keyframes,\n spring,\n};\nfunction replaceTransitionType(transition) {\n if (typeof transition.type === \"string\") {\n transition.type = transitionTypeMap[transition.type];\n }\n}\n\nexport { replaceTransitionType };\n","class WithPromise {\n constructor() {\n this.updateFinished();\n }\n get finished() {\n return this._finished;\n }\n updateFinished() {\n this._finished = new Promise((resolve) => {\n this.resolve = resolve;\n });\n }\n notifyFinished() {\n this.resolve();\n }\n /**\n * Allows the animation to be awaited.\n *\n * @deprecated Use `finished` instead.\n */\n then(onResolve, onReject) {\n return this.finished.then(onResolve, onReject);\n }\n}\n\nexport { WithPromise };\n","import { invariant, pipe, clamp, millisecondsToSeconds, secondsToMilliseconds } from 'motion-utils';\nimport { time } from '../frameloop/sync-time.mjs';\nimport { activeAnimations } from '../stats/animation-count.mjs';\nimport { mix } from '../utils/mix/index.mjs';\nimport { frameloopDriver } from './drivers/frame.mjs';\nimport { inertia } from './generators/inertia.mjs';\nimport { keyframes } from './generators/keyframes.mjs';\nimport { calcGeneratorDuration } from './generators/utils/calc-duration.mjs';\nimport { getFinalKeyframe } from './keyframes/get-final.mjs';\nimport { replaceTransitionType } from './utils/replace-transition-type.mjs';\nimport { WithPromise } from './utils/WithPromise.mjs';\n\nconst percentToProgress = (percent) => percent / 100;\nclass JSAnimation extends WithPromise {\n constructor(options) {\n super();\n this.state = \"idle\";\n this.startTime = null;\n this.isStopped = false;\n /**\n * The current time of the animation.\n */\n this.currentTime = 0;\n /**\n * The time at which the animation was paused.\n */\n this.holdTime = null;\n /**\n * Playback speed as a factor. 0 would be stopped, -1 reverse and 2 double speed.\n */\n this.playbackSpeed = 1;\n /**\n * This method is bound to the instance to fix a pattern where\n * animation.stop is returned as a reference from a useEffect.\n */\n this.stop = () => {\n const { motionValue } = this.options;\n if (motionValue && motionValue.updatedAt !== time.now()) {\n this.tick(time.now());\n }\n this.isStopped = true;\n if (this.state === \"idle\")\n return;\n this.teardown();\n this.options.onStop?.();\n };\n activeAnimations.mainThread++;\n this.options = options;\n this.initAnimation();\n this.play();\n if (options.autoplay === false)\n this.pause();\n }\n initAnimation() {\n const { options } = this;\n replaceTransitionType(options);\n const { type = keyframes, repeat = 0, repeatDelay = 0, repeatType, velocity = 0, } = options;\n let { keyframes: keyframes$1 } = options;\n const generatorFactory = type || keyframes;\n if (process.env.NODE_ENV !== \"production\" &&\n generatorFactory !== keyframes) {\n invariant(keyframes$1.length <= 2, `Only two keyframes currently supported with spring and inertia animations. Trying to animate ${keyframes$1}`, \"spring-two-frames\");\n }\n if (generatorFactory !== keyframes &&\n typeof keyframes$1[0] !== \"number\") {\n this.mixKeyframes = pipe(percentToProgress, mix(keyframes$1[0], keyframes$1[1]));\n keyframes$1 = [0, 100];\n }\n const generator = generatorFactory({ ...options, keyframes: keyframes$1 });\n /**\n * If we have a mirror repeat type we need to create a second generator that outputs the\n * mirrored (not reversed) animation and later ping pong between the two generators.\n */\n if (repeatType === \"mirror\") {\n this.mirroredGenerator = generatorFactory({\n ...options,\n keyframes: [...keyframes$1].reverse(),\n velocity: -velocity,\n });\n }\n /**\n * If duration is undefined and we have repeat options,\n * we need to calculate a duration from the generator.\n *\n * We set it to the generator itself to cache the duration.\n * Any timeline resolver will need to have already precalculated\n * the duration by this step.\n */\n if (generator.calculatedDuration === null) {\n generator.calculatedDuration = calcGeneratorDuration(generator);\n }\n const { calculatedDuration } = generator;\n this.calculatedDuration = calculatedDuration;\n this.resolvedDuration = calculatedDuration + repeatDelay;\n this.totalDuration = this.resolvedDuration * (repeat + 1) - repeatDelay;\n this.generator = generator;\n }\n updateTime(timestamp) {\n const animationTime = Math.round(timestamp - this.startTime) * this.playbackSpeed;\n // Update currentTime\n if (this.holdTime !== null) {\n this.currentTime = this.holdTime;\n }\n else {\n // Rounding the time because floating point arithmetic is not always accurate, e.g. 3000.367 - 1000.367 =\n // 2000.0000000000002. This is a problem when we are comparing the currentTime with the duration, for\n // example.\n this.currentTime = animationTime;\n }\n }\n tick(timestamp, sample = false) {\n const { generator, totalDuration, mixKeyframes, mirroredGenerator, resolvedDuration, calculatedDuration, } = this;\n if (this.startTime === null)\n return generator.next(0);\n const { delay = 0, keyframes, repeat, repeatType, repeatDelay, type, onUpdate, finalKeyframe, } = this.options;\n /**\n * requestAnimationFrame timestamps can come through as lower than\n * the startTime as set by performance.now(). Here we prevent this,\n * though in the future it could be possible to make setting startTime\n * a pending operation that gets resolved here.\n */\n if (this.speed > 0) {\n this.startTime = Math.min(this.startTime, timestamp);\n }\n else if (this.speed < 0) {\n this.startTime = Math.min(timestamp - totalDuration / this.speed, this.startTime);\n }\n if (sample) {\n this.currentTime = timestamp;\n }\n else {\n this.updateTime(timestamp);\n }\n // Rebase on delay\n const timeWithoutDelay = this.currentTime - delay * (this.playbackSpeed >= 0 ? 1 : -1);\n const isInDelayPhase = this.playbackSpeed >= 0\n ? timeWithoutDelay < 0\n : timeWithoutDelay > totalDuration;\n this.currentTime = Math.max(timeWithoutDelay, 0);\n // If this animation has finished, set the current time to the total duration.\n if (this.state === \"finished\" && this.holdTime === null) {\n this.currentTime = totalDuration;\n }\n let elapsed = this.currentTime;\n let frameGenerator = generator;\n if (repeat) {\n /**\n * Get the current progress (0-1) of the animation. If t is >\n * than duration we'll get values like 2.5 (midway through the\n * third iteration)\n */\n const progress = Math.min(this.currentTime, totalDuration) / resolvedDuration;\n /**\n * Get the current iteration (0 indexed). For instance the floor of\n * 2.5 is 2.\n */\n let currentIteration = Math.floor(progress);\n /**\n * Get the current progress of the iteration by taking the remainder\n * so 2.5 is 0.5 through iteration 2\n */\n let iterationProgress = progress % 1.0;\n /**\n * If iteration progress is 1 we count that as the end\n * of the previous iteration.\n */\n if (!iterationProgress && progress >= 1) {\n iterationProgress = 1;\n }\n iterationProgress === 1 && currentIteration--;\n currentIteration = Math.min(currentIteration, repeat + 1);\n /**\n * Reverse progress if we're not running in \"normal\" direction\n */\n const isOddIteration = Boolean(currentIteration % 2);\n if (isOddIteration) {\n if (repeatType === \"reverse\") {\n iterationProgress = 1 - iterationProgress;\n if (repeatDelay) {\n iterationProgress -= repeatDelay / resolvedDuration;\n }\n }\n else if (repeatType === \"mirror\") {\n frameGenerator = mirroredGenerator;\n }\n }\n elapsed = clamp(0, 1, iterationProgress) * resolvedDuration;\n }\n /**\n * If we're in negative time, set state as the initial keyframe.\n * This prevents delay: x, duration: 0 animations from finishing\n * instantly.\n */\n const state = isInDelayPhase\n ? { done: false, value: keyframes[0] }\n : frameGenerator.next(elapsed);\n if (mixKeyframes) {\n state.value = mixKeyframes(state.value);\n }\n let { done } = state;\n if (!isInDelayPhase && calculatedDuration !== null) {\n done =\n this.playbackSpeed >= 0\n ? this.currentTime >= totalDuration\n : this.currentTime <= 0;\n }\n const isAnimationFinished = this.holdTime === null &&\n (this.state === \"finished\" || (this.state === \"running\" && done));\n // TODO: The exception for inertia could be cleaner here\n if (isAnimationFinished && type !== inertia) {\n state.value = getFinalKeyframe(keyframes, this.options, finalKeyframe, this.speed);\n }\n if (onUpdate) {\n onUpdate(state.value);\n }\n if (isAnimationFinished) {\n this.finish();\n }\n return state;\n }\n /**\n * Allows the returned animation to be awaited or promise-chained. Currently\n * resolves when the animation finishes at all but in a future update could/should\n * reject if its cancels.\n */\n then(resolve, reject) {\n return this.finished.then(resolve, reject);\n }\n get duration() {\n return millisecondsToSeconds(this.calculatedDuration);\n }\n get time() {\n return millisecondsToSeconds(this.currentTime);\n }\n set time(newTime) {\n newTime = secondsToMilliseconds(newTime);\n this.currentTime = newTime;\n if (this.startTime === null ||\n this.holdTime !== null ||\n this.playbackSpeed === 0) {\n this.holdTime = newTime;\n }\n else if (this.driver) {\n this.startTime = this.driver.now() - newTime / this.playbackSpeed;\n }\n this.driver?.start(false);\n }\n get speed() {\n return this.playbackSpeed;\n }\n set speed(newSpeed) {\n this.updateTime(time.now());\n const hasChanged = this.playbackSpeed !== newSpeed;\n this.playbackSpeed = newSpeed;\n if (hasChanged) {\n this.time = millisecondsToSeconds(this.currentTime);\n }\n }\n play() {\n if (this.isStopped)\n return;\n const { driver = frameloopDriver, startTime } = this.options;\n if (!this.driver) {\n this.driver = driver((timestamp) => this.tick(timestamp));\n }\n this.options.onPlay?.();\n const now = this.driver.now();\n if (this.state === \"finished\") {\n this.updateFinished();\n this.startTime = now;\n }\n else if (this.holdTime !== null) {\n this.startTime = now - this.holdTime;\n }\n else if (!this.startTime) {\n this.startTime = startTime ?? now;\n }\n if (this.state === \"finished\" && this.speed < 0) {\n this.startTime += this.calculatedDuration;\n }\n this.holdTime = null;\n /**\n * Set playState to running only after we've used it in\n * the previous logic.\n */\n this.state = \"running\";\n this.driver.start();\n }\n pause() {\n this.state = \"paused\";\n this.updateTime(time.now());\n this.holdTime = this.currentTime;\n }\n complete() {\n if (this.state !== \"running\") {\n this.play();\n }\n this.state = \"finished\";\n this.holdTime = null;\n }\n finish() {\n this.notifyFinished();\n this.teardown();\n this.state = \"finished\";\n this.options.onComplete?.();\n }\n cancel() {\n this.holdTime = null;\n this.startTime = 0;\n this.tick(0);\n this.teardown();\n this.options.onCancel?.();\n }\n teardown() {\n this.state = \"idle\";\n this.stopDriver();\n this.startTime = this.holdTime = null;\n activeAnimations.mainThread--;\n }\n stopDriver() {\n if (!this.driver)\n return;\n this.driver.stop();\n this.driver = undefined;\n }\n sample(sampleTime) {\n this.startTime = 0;\n return this.tick(sampleTime, true);\n }\n attachTimeline(timeline) {\n if (this.options.allowFlatten) {\n this.options.type = \"keyframes\";\n this.options.ease = \"linear\";\n this.initAnimation();\n }\n this.driver?.stop();\n return timeline.observe(this);\n }\n}\n// Legacy function support\nfunction animateValue(options) {\n return new JSAnimation(options);\n}\n\nexport { JSAnimation, animateValue };\n","const isCSSVar = (name) => name.startsWith(\"--\");\n\nexport { isCSSVar };\n","import { isCSSVar } from './is-css-var.mjs';\n\nfunction setStyle(element, name, value) {\n isCSSVar(name)\n ? element.style.setProperty(name, value)\n : (element.style[name] = value);\n}\n\nexport { setStyle };\n","/*#__NO_SIDE_EFFECTS__*/\nfunction memo(callback) {\n let result;\n return () => {\n if (result === undefined)\n result = callback();\n return result;\n };\n}\n\nexport { memo };\n","import { memo } from 'motion-utils';\n\nconst supportsScrollTimeline = /* @__PURE__ */ memo(() => window.ScrollTimeline !== undefined);\n\nexport { supportsScrollTimeline };\n","/**\n * Add the ability for test suites to manually set support flags\n * to better test more environments.\n */\nconst supportsFlags = {};\n\nexport { supportsFlags };\n","import { memo } from 'motion-utils';\nimport { supportsFlags } from './flags.mjs';\n\nfunction memoSupports(callback, supportsFlag) {\n const memoized = memo(callback);\n return () => supportsFlags[supportsFlag] ?? memoized();\n}\n\nexport { memoSupports };\n","import { memoSupports } from './memo.mjs';\n\nconst supportsLinearEasing = /*@__PURE__*/ memoSupports(() => {\n try {\n document\n .createElement(\"div\")\n .animate({ opacity: 0 }, { easing: \"linear(0, 1)\" });\n }\n catch (e) {\n return false;\n }\n return true;\n}, \"linearEasing\");\n\nexport { supportsLinearEasing };\n","const cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\n\nexport { cubicBezierAsString };\n","import { cubicBezierAsString } from './cubic-bezier.mjs';\n\nconst supportedWaapiEasing = {\n linear: \"linear\",\n ease: \"ease\",\n easeIn: \"ease-in\",\n easeOut: \"ease-out\",\n easeInOut: \"ease-in-out\",\n circIn: /*@__PURE__*/ cubicBezierAsString([0, 0.65, 0.55, 1]),\n circOut: /*@__PURE__*/ cubicBezierAsString([0.55, 0, 1, 0.45]),\n backIn: /*@__PURE__*/ cubicBezierAsString([0.31, 0.01, 0.66, -0.59]),\n backOut: /*@__PURE__*/ cubicBezierAsString([0.33, 1.53, 0.69, 0.99]),\n};\n\nexport { supportedWaapiEasing };\n","import { isBezierDefinition } from 'motion-utils';\nimport { supportsLinearEasing } from '../../../utils/supports/linear-easing.mjs';\nimport { generateLinearEasing } from '../utils/linear.mjs';\nimport { cubicBezierAsString } from './cubic-bezier.mjs';\nimport { supportedWaapiEasing } from './supported.mjs';\n\nfunction mapEasingToNativeEasing(easing, duration) {\n if (!easing) {\n return undefined;\n }\n else if (typeof easing === \"function\") {\n return supportsLinearEasing()\n ? generateLinearEasing(easing, duration)\n : \"ease-out\";\n }\n else if (isBezierDefinition(easing)) {\n return cubicBezierAsString(easing);\n }\n else if (Array.isArray(easing)) {\n return easing.map((segmentEasing) => mapEasingToNativeEasing(segmentEasing, duration) ||\n supportedWaapiEasing.easeOut);\n }\n else {\n return supportedWaapiEasing[easing];\n }\n}\n\nexport { mapEasingToNativeEasing };\n","import { activeAnimations } from '../../stats/animation-count.mjs';\nimport { statsBuffer } from '../../stats/buffer.mjs';\nimport { mapEasingToNativeEasing } from './easing/map-easing.mjs';\n\nfunction startWaapiAnimation(element, valueName, keyframes, { delay = 0, duration = 300, repeat = 0, repeatType = \"loop\", ease = \"easeOut\", times, } = {}, pseudoElement = undefined) {\n const keyframeOptions = {\n [valueName]: keyframes,\n };\n if (times)\n keyframeOptions.offset = times;\n const easing = mapEasingToNativeEasing(ease, duration);\n /**\n * If this is an easing array, apply to keyframes, not animation as a whole\n */\n if (Array.isArray(easing))\n keyframeOptions.easing = easing;\n if (statsBuffer.value) {\n activeAnimations.waapi++;\n }\n const options = {\n delay,\n duration,\n easing: !Array.isArray(easing) ? easing : \"linear\",\n fill: \"both\",\n iterations: repeat + 1,\n direction: repeatType === \"reverse\" ? \"alternate\" : \"normal\",\n };\n if (pseudoElement)\n options.pseudoElement = pseudoElement;\n const animation = element.animate(keyframeOptions, options);\n if (statsBuffer.value) {\n animation.finished.finally(() => {\n activeAnimations.waapi--;\n });\n }\n return animation;\n}\n\nexport { startWaapiAnimation };\n","function isGenerator(type) {\n return typeof type === \"function\" && \"applyToOptions\" in type;\n}\n\nexport { isGenerator };\n","import { supportsLinearEasing } from '../../../utils/supports/linear-easing.mjs';\nimport { isGenerator } from '../../generators/utils/is-generator.mjs';\n\nfunction applyGeneratorOptions({ type, ...options }) {\n if (isGenerator(type) && supportsLinearEasing()) {\n return type.applyToOptions(options);\n }\n else {\n options.duration ?? (options.duration = 300);\n options.ease ?? (options.ease = \"easeOut\");\n }\n return options;\n}\n\nexport { applyGeneratorOptions };\n","import { invariant, millisecondsToSeconds, secondsToMilliseconds, noop } from 'motion-utils';\nimport { setStyle } from '../render/dom/style-set.mjs';\nimport { supportsScrollTimeline } from '../utils/supports/scroll-timeline.mjs';\nimport { getFinalKeyframe } from './keyframes/get-final.mjs';\nimport { WithPromise } from './utils/WithPromise.mjs';\nimport { startWaapiAnimation } from './waapi/start-waapi-animation.mjs';\nimport { applyGeneratorOptions } from './waapi/utils/apply-generator.mjs';\n\n/**\n * NativeAnimation implements AnimationPlaybackControls for the browser's Web Animations API.\n */\nclass NativeAnimation extends WithPromise {\n constructor(options) {\n super();\n this.finishedTime = null;\n this.isStopped = false;\n if (!options)\n return;\n const { element, name, keyframes, pseudoElement, allowFlatten = false, finalKeyframe, onComplete, } = options;\n this.isPseudoElement = Boolean(pseudoElement);\n this.allowFlatten = allowFlatten;\n this.options = options;\n invariant(typeof options.type !== \"string\", `Mini animate() doesn't support \"type\" as a string.`, \"mini-spring\");\n const transition = applyGeneratorOptions(options);\n this.animation = startWaapiAnimation(element, name, keyframes, transition, pseudoElement);\n if (transition.autoplay === false) {\n this.animation.pause();\n }\n this.animation.onfinish = () => {\n this.finishedTime = this.time;\n if (!pseudoElement) {\n const keyframe = getFinalKeyframe(keyframes, this.options, finalKeyframe, this.speed);\n if (this.updateMotionValue) {\n this.updateMotionValue(keyframe);\n }\n else {\n /**\n * If we can, we want to commit the final style as set by the user,\n * rather than the computed keyframe value supplied by the animation.\n */\n setStyle(element, name, keyframe);\n }\n this.animation.cancel();\n }\n onComplete?.();\n this.notifyFinished();\n };\n }\n play() {\n if (this.isStopped)\n return;\n this.animation.play();\n if (this.state === \"finished\") {\n this.updateFinished();\n }\n }\n pause() {\n this.animation.pause();\n }\n complete() {\n this.animation.finish?.();\n }\n cancel() {\n try {\n this.animation.cancel();\n }\n catch (e) { }\n }\n stop() {\n if (this.isStopped)\n return;\n this.isStopped = true;\n const { state } = this;\n if (state === \"idle\" || state === \"finished\") {\n return;\n }\n if (this.updateMotionValue) {\n this.updateMotionValue();\n }\n else {\n this.commitStyles();\n }\n if (!this.isPseudoElement)\n this.cancel();\n }\n /**\n * WAAPI doesn't natively have any interruption capabilities.\n *\n * In this method, we commit styles back to the DOM before cancelling\n * the animation.\n *\n * This is designed to be overridden by NativeAnimationExtended, which\n * will create a renderless JS animation and sample it twice to calculate\n * its current value, \"previous\" value, and therefore allow\n * Motion to also correctly calculate velocity for any subsequent animation\n * while deferring the commit until the next animation frame.\n */\n commitStyles() {\n if (!this.isPseudoElement) {\n this.animation.commitStyles?.();\n }\n }\n get duration() {\n const duration = this.animation.effect?.getComputedTiming?.().duration || 0;\n return millisecondsToSeconds(Number(duration));\n }\n get time() {\n return millisecondsToSeconds(Number(this.animation.currentTime) || 0);\n }\n set time(newTime) {\n this.finishedTime = null;\n this.animation.currentTime = secondsToMilliseconds(newTime);\n }\n /**\n * The playback speed of the animation.\n * 1 = normal speed, 2 = double speed, 0.5 = half speed.\n */\n get speed() {\n return this.animation.playbackRate;\n }\n set speed(newSpeed) {\n // Allow backwards playback after finishing\n if (newSpeed < 0)\n this.finishedTime = null;\n this.animation.playbackRate = newSpeed;\n }\n get state() {\n return this.finishedTime !== null\n ? \"finished\"\n : this.animation.playState;\n }\n get startTime() {\n return Number(this.animation.startTime);\n }\n set startTime(newStartTime) {\n this.animation.startTime = newStartTime;\n }\n /**\n * Attaches a timeline to the animation, for instance the `ScrollTimeline`.\n */\n attachTimeline({ timeline, observe }) {\n if (this.allowFlatten) {\n this.animation.effect?.updateTiming({ easing: \"linear\" });\n }\n this.animation.onfinish = null;\n if (timeline && supportsScrollTimeline()) {\n this.animation.timeline = timeline;\n return noop;\n }\n else {\n return observe(this);\n }\n }\n}\n\nexport { NativeAnimation };\n","import { anticipate, backInOut, circInOut } from 'motion-utils';\n\nconst unsupportedEasingFunctions = {\n anticipate,\n backInOut,\n circInOut,\n};\nfunction isUnsupportedEase(key) {\n return key in unsupportedEasingFunctions;\n}\nfunction replaceStringEasing(transition) {\n if (typeof transition.ease === \"string\" &&\n isUnsupportedEase(transition.ease)) {\n transition.ease = unsupportedEasingFunctions[transition.ease];\n }\n}\n\nexport { replaceStringEasing };\n","import { secondsToMilliseconds } from 'motion-utils';\nimport { JSAnimation } from './JSAnimation.mjs';\nimport { NativeAnimation } from './NativeAnimation.mjs';\nimport { replaceTransitionType } from './utils/replace-transition-type.mjs';\nimport { replaceStringEasing } from './waapi/utils/unsupported-easing.mjs';\n\n/**\n * 10ms is chosen here as it strikes a balance between smooth\n * results (more than one keyframe per frame at 60fps) and\n * keyframe quantity.\n */\nconst sampleDelta = 10; //ms\nclass NativeAnimationExtended extends NativeAnimation {\n constructor(options) {\n /**\n * The base NativeAnimation function only supports a subset\n * of Motion easings, and WAAPI also only supports some\n * easing functions via string/cubic-bezier definitions.\n *\n * This function replaces those unsupported easing functions\n * with a JS easing function. This will later get compiled\n * to a linear() easing function.\n */\n replaceStringEasing(options);\n /**\n * Ensure we replace the transition type with a generator function\n * before passing to WAAPI.\n *\n * TODO: Does this have a better home? It could be shared with\n * JSAnimation.\n */\n replaceTransitionType(options);\n super(options);\n if (options.startTime) {\n this.startTime = options.startTime;\n }\n this.options = options;\n }\n /**\n * WAAPI doesn't natively have any interruption capabilities.\n *\n * Rather than read commited styles back out of the DOM, we can\n * create a renderless JS animation and sample it twice to calculate\n * its current value, \"previous\" value, and therefore allow\n * Motion to calculate velocity for any subsequent animation.\n */\n updateMotionValue(value) {\n const { motionValue, onUpdate, onComplete, element, ...options } = this.options;\n if (!motionValue)\n return;\n if (value !== undefined) {\n motionValue.set(value);\n return;\n }\n const sampleAnimation = new JSAnimation({\n ...options,\n autoplay: false,\n });\n const sampleTime = secondsToMilliseconds(this.finishedTime ?? this.time);\n motionValue.setWithVelocity(sampleAnimation.sample(sampleTime - sampleDelta).value, sampleAnimation.sample(sampleTime).value, sampleDelta);\n sampleAnimation.stop();\n }\n}\n\nexport { NativeAnimationExtended };\n","import { complex } from '../../value/types/complex/index.mjs';\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nconst isAnimatable = (value, name) => {\n // If the list of keys that might be non-animatable grows, replace with Set\n if (name === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n (complex.test(value) || value === \"0\") && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n return false;\n};\n\nexport { isAnimatable };\n","import { warning } from 'motion-utils';\nimport { isGenerator } from '../generators/utils/is-generator.mjs';\nimport { isAnimatable } from './is-animatable.mjs';\n\nfunction hasKeyframesChanged(keyframes) {\n const current = keyframes[0];\n if (keyframes.length === 1)\n return true;\n for (let i = 0; i < keyframes.length; i++) {\n if (keyframes[i] !== current)\n return true;\n }\n}\nfunction canAnimate(keyframes, name, type, velocity) {\n /**\n * Check if we're able to animate between the start and end keyframes,\n * and throw a warning if we're attempting to animate between one that's\n * animatable and another that isn't.\n */\n const originKeyframe = keyframes[0];\n if (originKeyframe === null)\n return false;\n /**\n * These aren't traditionally animatable but we do support them.\n * In future we could look into making this more generic or replacing\n * this function with mix() === mixImmediate\n */\n if (name === \"display\" || name === \"visibility\")\n return true;\n const targetKeyframe = keyframes[keyframes.length - 1];\n const isOriginAnimatable = isAnimatable(originKeyframe, name);\n const isTargetAnimatable = isAnimatable(targetKeyframe, name);\n warning(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${name} from \"${originKeyframe}\" to \"${targetKeyframe}\". \"${isOriginAnimatable ? targetKeyframe : originKeyframe}\" is not an animatable value.`, \"value-not-animatable\");\n // Always skip if any of these are true\n if (!isOriginAnimatable || !isTargetAnimatable) {\n return false;\n }\n return (hasKeyframesChanged(keyframes) ||\n ((type === \"spring\" || isGenerator(type)) && velocity));\n}\n\nexport { canAnimate };\n","import { memo } from 'motion-utils';\n\n/**\n * A list of values that can be hardware-accelerated.\n */\nconst acceleratedValues = new Set([\n \"opacity\",\n \"clipPath\",\n \"filter\",\n \"transform\",\n // TODO: Could be re-enabled now we have support for linear() easing\n // \"background-color\"\n]);\nconst supportsWaapi = /*@__PURE__*/ memo(() => Object.hasOwnProperty.call(Element.prototype, \"animate\"));\nfunction supportsBrowserAnimation(options) {\n const { motionValue, name, repeatDelay, repeatType, damping, type } = options;\n const subject = motionValue?.owner?.current;\n /**\n * We use this check instead of isHTMLElement() because we explicitly\n * **don't** want elements in different timing contexts (i.e. popups)\n * to be accelerated, as it's not possible to sync these animations\n * properly with those driven from the main window frameloop.\n */\n if (!(subject instanceof HTMLElement)) {\n return false;\n }\n const { onUpdate, transformTemplate } = motionValue.owner.getProps();\n return (supportsWaapi() &&\n name &&\n acceleratedValues.has(name) &&\n (name !== \"transform\" || !transformTemplate) &&\n /**\n * If we're outputting values to onUpdate then we can't use WAAPI as there's\n * no way to read the value from WAAPI every frame.\n */\n !onUpdate &&\n !repeatDelay &&\n repeatType !== \"mirror\" &&\n damping !== 0 &&\n type !== \"inertia\");\n}\n\nexport { supportsBrowserAnimation };\n","import { MotionGlobalConfig, noop } from 'motion-utils';\nimport { time } from '../frameloop/sync-time.mjs';\nimport { JSAnimation } from './JSAnimation.mjs';\nimport { getFinalKeyframe } from './keyframes/get-final.mjs';\nimport { KeyframeResolver, flushKeyframeResolvers } from './keyframes/KeyframesResolver.mjs';\nimport { NativeAnimationExtended } from './NativeAnimationExtended.mjs';\nimport { canAnimate } from './utils/can-animate.mjs';\nimport { WithPromise } from './utils/WithPromise.mjs';\nimport { supportsBrowserAnimation } from './waapi/supports/waapi.mjs';\n\n/**\n * Maximum time allowed between an animation being created and it being\n * resolved for us to use the latter as the start time.\n *\n * This is to ensure that while we prefer to \"start\" an animation as soon\n * as it's triggered, we also want to avoid a visual jump if there's a big delay\n * between these two moments.\n */\nconst MAX_RESOLVE_DELAY = 40;\nclass AsyncMotionValueAnimation extends WithPromise {\n constructor({ autoplay = true, delay = 0, type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType = \"loop\", keyframes, name, motionValue, element, ...options }) {\n super();\n /**\n * Bound to support return animation.stop pattern\n */\n this.stop = () => {\n if (this._animation) {\n this._animation.stop();\n this.stopTimeline?.();\n }\n this.keyframeResolver?.cancel();\n };\n this.createdAt = time.now();\n const optionsWithDefaults = {\n autoplay,\n delay,\n type,\n repeat,\n repeatDelay,\n repeatType,\n name,\n motionValue,\n element,\n ...options,\n };\n const KeyframeResolver$1 = element?.KeyframeResolver || KeyframeResolver;\n this.keyframeResolver = new KeyframeResolver$1(keyframes, (resolvedKeyframes, finalKeyframe, forced) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe, optionsWithDefaults, !forced), name, motionValue, element);\n this.keyframeResolver?.scheduleResolve();\n }\n onKeyframesResolved(keyframes, finalKeyframe, options, sync) {\n this.keyframeResolver = undefined;\n const { name, type, velocity, delay, isHandoff, onUpdate } = options;\n this.resolvedAt = time.now();\n /**\n * If we can't animate this value with the resolved keyframes\n * then we should complete it immediately.\n */\n if (!canAnimate(keyframes, name, type, velocity)) {\n if (MotionGlobalConfig.instantAnimations || !delay) {\n onUpdate?.(getFinalKeyframe(keyframes, options, finalKeyframe));\n }\n keyframes[0] = keyframes[keyframes.length - 1];\n options.duration = 0;\n options.repeat = 0;\n }\n /**\n * Resolve startTime for the animation.\n *\n * This method uses the createdAt and resolvedAt to calculate the\n * animation startTime. *Ideally*, we would use the createdAt time as t=0\n * as the following frame would then be the first frame of the animation in\n * progress, which would feel snappier.\n *\n * However, if there's a delay (main thread work) between the creation of\n * the animation and the first commited frame, we prefer to use resolvedAt\n * to avoid a sudden jump into the animation.\n */\n const startTime = sync\n ? !this.resolvedAt\n ? this.createdAt\n : this.resolvedAt - this.createdAt > MAX_RESOLVE_DELAY\n ? this.resolvedAt\n : this.createdAt\n : undefined;\n const resolvedOptions = {\n startTime,\n finalKeyframe,\n ...options,\n keyframes,\n };\n /**\n * Animate via WAAPI if possible. If this is a handoff animation, the optimised animation will be running via\n * WAAPI. Therefore, this animation must be JS to ensure it runs \"under\" the\n * optimised animation.\n */\n const animation = !isHandoff && supportsBrowserAnimation(resolvedOptions)\n ? new NativeAnimationExtended({\n ...resolvedOptions,\n element: resolvedOptions.motionValue.owner.current,\n })\n : new JSAnimation(resolvedOptions);\n animation.finished.then(() => this.notifyFinished()).catch(noop);\n if (this.pendingTimeline) {\n this.stopTimeline = animation.attachTimeline(this.pendingTimeline);\n this.pendingTimeline = undefined;\n }\n this._animation = animation;\n }\n get finished() {\n if (!this._animation) {\n return this._finished;\n }\n else {\n return this.animation.finished;\n }\n }\n then(onResolve, _onReject) {\n return this.finished.finally(onResolve).then(() => { });\n }\n get animation() {\n if (!this._animation) {\n this.keyframeResolver?.resume();\n flushKeyframeResolvers();\n }\n return this._animation;\n }\n get duration() {\n return this.animation.duration;\n }\n get time() {\n return this.animation.time;\n }\n set time(newTime) {\n this.animation.time = newTime;\n }\n get speed() {\n return this.animation.speed;\n }\n get state() {\n return this.animation.state;\n }\n set speed(newSpeed) {\n this.animation.speed = newSpeed;\n }\n get startTime() {\n return this.animation.startTime;\n }\n attachTimeline(timeline) {\n if (this._animation) {\n this.stopTimeline = this.animation.attachTimeline(timeline);\n }\n else {\n this.pendingTimeline = timeline;\n }\n return () => this.stop();\n }\n play() {\n this.animation.play();\n }\n pause() {\n this.animation.pause();\n }\n complete() {\n this.animation.complete();\n }\n cancel() {\n if (this._animation) {\n this.animation.cancel();\n }\n this.keyframeResolver?.cancel();\n }\n}\n\nexport { AsyncMotionValueAnimation };\n","const isNotNull = (value) => value !== null;\nfunction getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }, finalKeyframe) {\n const resolvedKeyframes = keyframes.filter(isNotNull);\n const index = repeat && repeatType !== \"loop\" && repeat % 2 === 1\n ? 0\n : resolvedKeyframes.length - 1;\n return !index || finalKeyframe === undefined\n ? resolvedKeyframes[index]\n : finalKeyframe;\n}\n\nexport { getFinalKeyframe };\n","import { transformProps } from 'motion-dom';\n\nconst underDampedSpring = {\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n};\nconst criticallyDampedSpring = (target) => ({\n type: \"spring\",\n stiffness: 550,\n damping: target === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n});\nconst keyframesTransition = {\n type: \"keyframes\",\n duration: 0.8,\n};\n/**\n * Default easing curve is a slightly shallower version of\n * the default browser easing curve.\n */\nconst ease = {\n type: \"keyframes\",\n ease: [0.25, 0.1, 0.35, 1],\n duration: 0.3,\n};\nconst getDefaultTransition = (valueKey, { keyframes }) => {\n if (keyframes.length > 2) {\n return keyframesTransition;\n }\n else if (transformProps.has(valueKey)) {\n return valueKey.startsWith(\"scale\")\n ? criticallyDampedSpring(keyframes[1])\n : underDampedSpring;\n }\n return ease;\n};\n\nexport { getDefaultTransition };\n","/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined({ when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, elapsed, ...transition }) {\n return !!Object.keys(transition).length;\n}\n\nexport { isTransitionDefined };\n","import { getValueTransition, frame, JSAnimation, AsyncMotionValueAnimation } from 'motion-dom';\nimport { secondsToMilliseconds, MotionGlobalConfig } from 'motion-utils';\nimport { getFinalKeyframe } from '../animators/waapi/utils/get-final-keyframe.mjs';\nimport { getDefaultTransition } from '../utils/default-transitions.mjs';\nimport { isTransitionDefined } from '../utils/is-transition-defined.mjs';\n\nconst animateMotionValue = (name, value, target, transition = {}, element, isHandoff) => (onComplete) => {\n const valueTransition = getValueTransition(transition, name) || {};\n /**\n * Most transition values are currently completely overwritten by value-specific\n * transitions. In the future it'd be nicer to blend these transitions. But for now\n * delay actually does inherit from the root transition if not value-specific.\n */\n const delay = valueTransition.delay || transition.delay || 0;\n /**\n * Elapsed isn't a public transition option but can be passed through from\n * optimized appear effects in milliseconds.\n */\n let { elapsed = 0 } = transition;\n elapsed = elapsed - secondsToMilliseconds(delay);\n const options = {\n keyframes: Array.isArray(target) ? target : [null, target],\n ease: \"easeOut\",\n velocity: value.getVelocity(),\n ...valueTransition,\n delay: -elapsed,\n onUpdate: (v) => {\n value.set(v);\n valueTransition.onUpdate && valueTransition.onUpdate(v);\n },\n onComplete: () => {\n onComplete();\n valueTransition.onComplete && valueTransition.onComplete();\n },\n name,\n motionValue: value,\n element: isHandoff ? undefined : element,\n };\n /**\n * If there's no transition defined for this value, we can generate\n * unique transition settings for this value.\n */\n if (!isTransitionDefined(valueTransition)) {\n Object.assign(options, getDefaultTransition(name, options));\n }\n /**\n * Both WAAPI and our internal animation functions use durations\n * as defined by milliseconds, while our external API defines them\n * as seconds.\n */\n options.duration && (options.duration = secondsToMilliseconds(options.duration));\n options.repeatDelay && (options.repeatDelay = secondsToMilliseconds(options.repeatDelay));\n /**\n * Support deprecated way to set initial value. Prefer keyframe syntax.\n */\n if (options.from !== undefined) {\n options.keyframes[0] = options.from;\n }\n let shouldSkip = false;\n if (options.type === false ||\n (options.duration === 0 && !options.repeatDelay)) {\n options.duration = 0;\n if (options.delay === 0) {\n shouldSkip = true;\n }\n }\n if (MotionGlobalConfig.instantAnimations ||\n MotionGlobalConfig.skipAnimations) {\n shouldSkip = true;\n options.duration = 0;\n options.delay = 0;\n }\n /**\n * If the transition type or easing has been explicitly set by the user\n * then we don't want to allow flattening the animation.\n */\n options.allowFlatten = !valueTransition.type && !valueTransition.ease;\n /**\n * If we can or must skip creating the animation, and apply only\n * the final keyframe, do so. We also check once keyframes are resolved but\n * this early check prevents the need to create an animation at all.\n */\n if (shouldSkip && !isHandoff && value.get() !== undefined) {\n const finalKeyframe = getFinalKeyframe(options.keyframes, valueTransition);\n if (finalKeyframe !== undefined) {\n frame.update(() => {\n options.onUpdate(finalKeyframe);\n options.onComplete();\n });\n return;\n }\n }\n return valueTransition.isSync\n ? new JSAnimation(options)\n : new AsyncMotionValueAnimation(options);\n};\n\nexport { animateMotionValue };\n","import { getValueTransition, frame, positionalKeys } from 'motion-dom';\nimport { setTarget } from '../../render/utils/setters.mjs';\nimport { addValueToWillChange } from '../../value/use-will-change/add-will-change.mjs';\nimport { getOptimisedAppearId } from '../optimized-appear/get-appear-id.mjs';\nimport { animateMotionValue } from './motion-value.mjs';\n\n/**\n * Decide whether we should block this animation. Previously, we achieved this\n * just by checking whether the key was listed in protectedKeys, but this\n * posed problems if an animation was triggered by afterChildren and protectedKeys\n * had been set to true in the meantime.\n */\nfunction shouldBlockAnimation({ protectedKeys, needsAnimating }, key) {\n const shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\nfunction animateTarget(visualElement, targetAndTransition, { delay = 0, transitionOverride, type } = {}) {\n let { transition = visualElement.getDefaultTransition(), transitionEnd, ...target } = targetAndTransition;\n if (transitionOverride)\n transition = transitionOverride;\n const animations = [];\n const animationTypeState = type &&\n visualElement.animationState &&\n visualElement.animationState.getState()[type];\n for (const key in target) {\n const value = visualElement.getValue(key, visualElement.latestValues[key] ?? null);\n const valueTarget = target[key];\n if (valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n const valueTransition = {\n delay,\n ...getValueTransition(transition || {}, key),\n };\n /**\n * If the value is already at the defined target, skip the animation.\n */\n const currentValue = value.get();\n if (currentValue !== undefined &&\n !value.isAnimating &&\n !Array.isArray(valueTarget) &&\n valueTarget === currentValue &&\n !valueTransition.velocity) {\n continue;\n }\n /**\n * If this is the first time a value is being animated, check\n * to see if we're handling off from an existing animation.\n */\n let isHandoff = false;\n if (window.MotionHandoffAnimation) {\n const appearId = getOptimisedAppearId(visualElement);\n if (appearId) {\n const startTime = window.MotionHandoffAnimation(appearId, key, frame);\n if (startTime !== null) {\n valueTransition.startTime = startTime;\n isHandoff = true;\n }\n }\n }\n addValueToWillChange(visualElement, key);\n value.start(animateMotionValue(key, value, valueTarget, visualElement.shouldReduceMotion && positionalKeys.has(key)\n ? { type: false }\n : valueTransition, visualElement, isHandoff));\n const animation = value.animation;\n if (animation) {\n animations.push(animation);\n }\n }\n if (transitionEnd) {\n Promise.all(animations).then(() => {\n frame.update(() => {\n transitionEnd && setTarget(visualElement, transitionEnd);\n });\n });\n }\n return animations;\n}\n\nexport { animateTarget };\n","import { resolveVariant } from '../../render/utils/resolve-dynamic-variants.mjs';\nimport { animateTarget } from './visual-element-target.mjs';\n\nfunction animateVariant(visualElement, variant, options = {}) {\n const resolved = resolveVariant(visualElement, variant, options.type === \"exit\"\n ? visualElement.presenceContext?.custom\n : undefined);\n let { transition = visualElement.getDefaultTransition() || {} } = resolved || {};\n if (options.transitionOverride) {\n transition = options.transitionOverride;\n }\n /**\n * If we have a variant, create a callback that runs it as an animation.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getAnimation = resolved\n ? () => Promise.all(animateTarget(visualElement, resolved, options))\n : () => Promise.resolve();\n /**\n * If we have children, create a callback that runs all their animations.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getChildAnimations = visualElement.variantChildren && visualElement.variantChildren.size\n ? (forwardDelay = 0) => {\n const { delayChildren = 0, staggerChildren, staggerDirection, } = transition;\n return animateChildren(visualElement, variant, forwardDelay, delayChildren, staggerChildren, staggerDirection, options);\n }\n : () => Promise.resolve();\n /**\n * If the transition explicitly defines a \"when\" option, we need to resolve either\n * this animation or all children animations before playing the other.\n */\n const { when } = transition;\n if (when) {\n const [first, last] = when === \"beforeChildren\"\n ? [getAnimation, getChildAnimations]\n : [getChildAnimations, getAnimation];\n return first().then(() => last());\n }\n else {\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n }\n}\nfunction animateChildren(visualElement, variant, delay = 0, delayChildren = 0, staggerChildren = 0, staggerDirection = 1, options) {\n const animations = [];\n const numChildren = visualElement.variantChildren.size;\n const maxStaggerDuration = (numChildren - 1) * staggerChildren;\n const delayIsFunction = typeof delayChildren === \"function\";\n const generateStaggerDuration = delayIsFunction\n ? (i) => delayChildren(i, numChildren)\n : // Support deprecated staggerChildren\n staggerDirection === 1\n ? (i = 0) => i * staggerChildren\n : (i = 0) => maxStaggerDuration - i * staggerChildren;\n Array.from(visualElement.variantChildren)\n .sort(sortByTreeOrder)\n .forEach((child, i) => {\n child.notify(\"AnimationStart\", variant);\n animations.push(animateVariant(child, variant, {\n ...options,\n delay: delay +\n (delayIsFunction ? 0 : delayChildren) +\n generateStaggerDuration(i),\n }).then(() => child.notify(\"AnimationComplete\", variant)));\n });\n return Promise.all(animations);\n}\nfunction sortByTreeOrder(a, b) {\n return a.sortNodePosition(b);\n}\n\nexport { animateVariant, sortByTreeOrder };\n","import { resolveVariant } from '../../render/utils/resolve-dynamic-variants.mjs';\nimport { animateTarget } from './visual-element-target.mjs';\nimport { animateVariant } from './visual-element-variant.mjs';\n\nfunction animateVisualElement(visualElement, definition, options = {}) {\n visualElement.notify(\"AnimationStart\", definition);\n let animation;\n if (Array.isArray(definition)) {\n const animations = definition.map((variant) => animateVariant(visualElement, variant, options));\n animation = Promise.all(animations);\n }\n else if (typeof definition === \"string\") {\n animation = animateVariant(visualElement, definition, options);\n }\n else {\n const resolvedDefinition = typeof definition === \"function\"\n ? resolveVariant(visualElement, definition, options.custom)\n : definition;\n animation = Promise.all(animateTarget(visualElement, resolvedDefinition, options));\n }\n return animation.then(() => {\n visualElement.notify(\"AnimationComplete\", definition);\n });\n}\n\nexport { animateVisualElement };\n","function shallowCompare(next, prev) {\n if (!Array.isArray(prev))\n return false;\n const prevLength = prev.length;\n if (prevLength !== next.length)\n return false;\n for (let i = 0; i < prevLength; i++) {\n if (prev[i] !== next[i])\n return false;\n }\n return true;\n}\n\nexport { shallowCompare };\n","import { isVariantLabel } from './is-variant-label.mjs';\nimport { variantProps } from './variant-props.mjs';\n\nconst numVariantProps = variantProps.length;\nfunction getVariantContext(visualElement) {\n if (!visualElement)\n return undefined;\n if (!visualElement.isControllingVariants) {\n const context = visualElement.parent\n ? getVariantContext(visualElement.parent) || {}\n : {};\n if (visualElement.props.initial !== undefined) {\n context.initial = visualElement.props.initial;\n }\n return context;\n }\n const context = {};\n for (let i = 0; i < numVariantProps; i++) {\n const name = variantProps[i];\n const prop = visualElement.props[name];\n if (isVariantLabel(prop) || prop === false) {\n context[name] = prop;\n }\n }\n return context;\n}\n\nexport { getVariantContext };\n","import { animateVisualElement } from '../../animation/interfaces/visual-element.mjs';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isKeyframesTarget } from '../../animation/utils/is-keyframes-target.mjs';\nimport { shallowCompare } from '../../utils/shallow-compare.mjs';\nimport { getVariantContext } from './get-variant-context.mjs';\nimport { isVariantLabel } from './is-variant-label.mjs';\nimport { resolveVariant } from './resolve-dynamic-variants.mjs';\nimport { variantPriorityOrder } from './variant-props.mjs';\n\nconst reversePriorityOrder = [...variantPriorityOrder].reverse();\nconst numAnimationTypes = variantPriorityOrder.length;\nfunction animateList(visualElement) {\n return (animations) => Promise.all(animations.map(({ animation, options }) => animateVisualElement(visualElement, animation, options)));\n}\nfunction createAnimationState(visualElement) {\n let animate = animateList(visualElement);\n let state = createState();\n let isInitialRender = true;\n /**\n * This function will be used to reduce the animation definitions for\n * each active animation type into an object of resolved values for it.\n */\n const buildResolvedTypeValues = (type) => (acc, definition) => {\n const resolved = resolveVariant(visualElement, definition, type === \"exit\"\n ? visualElement.presenceContext?.custom\n : undefined);\n if (resolved) {\n const { transition, transitionEnd, ...target } = resolved;\n acc = { ...acc, ...target, ...transitionEnd };\n }\n return acc;\n };\n /**\n * This just allows us to inject mocked animation functions\n * @internal\n */\n function setAnimateFunction(makeAnimator) {\n animate = makeAnimator(visualElement);\n }\n /**\n * When we receive new props, we need to:\n * 1. Create a list of protected keys for each type. This is a directory of\n * value keys that are currently being \"handled\" by types of a higher priority\n * so that whenever an animation is played of a given type, these values are\n * protected from being animated.\n * 2. Determine if an animation type needs animating.\n * 3. Determine if any values have been removed from a type and figure out\n * what to animate those to.\n */\n function animateChanges(changedActiveType) {\n const { props } = visualElement;\n const context = getVariantContext(visualElement.parent) || {};\n /**\n * A list of animations that we'll build into as we iterate through the animation\n * types. This will get executed at the end of the function.\n */\n const animations = [];\n /**\n * Keep track of which values have been removed. Then, as we hit lower priority\n * animation types, we can check if they contain removed values and animate to that.\n */\n const removedKeys = new Set();\n /**\n * A dictionary of all encountered keys. This is an object to let us build into and\n * copy it without iteration. Each time we hit an animation type we set its protected\n * keys - the keys its not allowed to animate - to the latest version of this object.\n */\n let encounteredKeys = {};\n /**\n * If a variant has been removed at a given index, and this component is controlling\n * variant animations, we want to ensure lower-priority variants are forced to animate.\n */\n let removedVariantIndex = Infinity;\n /**\n * Iterate through all animation types in reverse priority order. For each, we want to\n * detect which values it's handling and whether or not they've changed (and therefore\n * need to be animated). If any values have been removed, we want to detect those in\n * lower priority props and flag for animation.\n */\n for (let i = 0; i < numAnimationTypes; i++) {\n const type = reversePriorityOrder[i];\n const typeState = state[type];\n const prop = props[type] !== undefined\n ? props[type]\n : context[type];\n const propIsVariant = isVariantLabel(prop);\n /**\n * If this type has *just* changed isActive status, set activeDelta\n * to that status. Otherwise set to null.\n */\n const activeDelta = type === changedActiveType ? typeState.isActive : null;\n if (activeDelta === false)\n removedVariantIndex = i;\n /**\n * If this prop is an inherited variant, rather than been set directly on the\n * component itself, we want to make sure we allow the parent to trigger animations.\n *\n * TODO: Can probably change this to a !isControllingVariants check\n */\n let isInherited = prop === context[type] &&\n prop !== props[type] &&\n propIsVariant;\n /**\n *\n */\n if (isInherited &&\n isInitialRender &&\n visualElement.manuallyAnimateOnMount) {\n isInherited = false;\n }\n /**\n * Set all encountered keys so far as the protected keys for this type. This will\n * be any key that has been animated or otherwise handled by active, higher-priortiy types.\n */\n typeState.protectedKeys = { ...encounteredKeys };\n // Check if we can skip analysing this prop early\n if (\n // If it isn't active and hasn't *just* been set as inactive\n (!typeState.isActive && activeDelta === null) ||\n // If we didn't and don't have any defined prop for this animation type\n (!prop && !typeState.prevProp) ||\n // Or if the prop doesn't define an animation\n isAnimationControls(prop) ||\n typeof prop === \"boolean\") {\n continue;\n }\n /**\n * As we go look through the values defined on this type, if we detect\n * a changed value or a value that was removed in a higher priority, we set\n * this to true and add this prop to the animation list.\n */\n const variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n let shouldAnimateType = variantDidChange ||\n // If we're making this variant active, we want to always make it active\n (type === changedActiveType &&\n typeState.isActive &&\n !isInherited &&\n propIsVariant) ||\n // If we removed a higher-priority variant (i is in reverse order)\n (i > removedVariantIndex && propIsVariant);\n let handledRemovedValues = false;\n /**\n * As animations can be set as variant lists, variants or target objects, we\n * coerce everything to an array if it isn't one already\n */\n const definitionList = Array.isArray(prop) ? prop : [prop];\n /**\n * Build an object of all the resolved values. We'll use this in the subsequent\n * animateChanges calls to determine whether a value has changed.\n */\n let resolvedValues = definitionList.reduce(buildResolvedTypeValues(type), {});\n if (activeDelta === false)\n resolvedValues = {};\n /**\n * Now we need to loop through all the keys in the prev prop and this prop,\n * and decide:\n * 1. If the value has changed, and needs animating\n * 2. If it has been removed, and needs adding to the removedKeys set\n * 3. If it has been removed in a higher priority type and needs animating\n * 4. If it hasn't been removed in a higher priority but hasn't changed, and\n * needs adding to the type's protectedKeys list.\n */\n const { prevResolvedValues = {} } = typeState;\n const allKeys = {\n ...prevResolvedValues,\n ...resolvedValues,\n };\n const markToAnimate = (key) => {\n shouldAnimateType = true;\n if (removedKeys.has(key)) {\n handledRemovedValues = true;\n removedKeys.delete(key);\n }\n typeState.needsAnimating[key] = true;\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = false;\n };\n for (const key in allKeys) {\n const next = resolvedValues[key];\n const prev = prevResolvedValues[key];\n // If we've already handled this we can just skip ahead\n if (encounteredKeys.hasOwnProperty(key))\n continue;\n /**\n * If the value has changed, we probably want to animate it.\n */\n let valueHasChanged = false;\n if (isKeyframesTarget(next) && isKeyframesTarget(prev)) {\n valueHasChanged = !shallowCompare(next, prev);\n }\n else {\n valueHasChanged = next !== prev;\n }\n if (valueHasChanged) {\n if (next !== undefined && next !== null) {\n // If next is defined and doesn't equal prev, it needs animating\n markToAnimate(key);\n }\n else {\n // If it's undefined, it's been removed.\n removedKeys.add(key);\n }\n }\n else if (next !== undefined && removedKeys.has(key)) {\n /**\n * If next hasn't changed and it isn't undefined, we want to check if it's\n * been removed by a higher priority\n */\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we add it to the list of protected values\n * to ensure it doesn't get animated.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n /**\n * Update the typeState so next time animateChanges is called we can compare the\n * latest prop and resolvedValues to these.\n */\n typeState.prevProp = prop;\n typeState.prevResolvedValues = resolvedValues;\n /**\n *\n */\n if (typeState.isActive) {\n encounteredKeys = { ...encounteredKeys, ...resolvedValues };\n }\n if (isInitialRender && visualElement.blockInitialAnimation) {\n shouldAnimateType = false;\n }\n /**\n * If this is an inherited prop we want to skip this animation\n * unless the inherited variants haven't changed on this render.\n */\n const willAnimateViaParent = isInherited && variantDidChange;\n const needsAnimating = !willAnimateViaParent || handledRemovedValues;\n if (shouldAnimateType && needsAnimating) {\n animations.push(...definitionList.map((animation) => ({\n animation: animation,\n options: { type },\n })));\n }\n }\n /**\n * If there are some removed value that haven't been dealt with,\n * we need to create a new animation that falls back either to the value\n * defined in the style prop, or the last read value.\n */\n if (removedKeys.size) {\n const fallbackAnimation = {};\n /**\n * If the initial prop contains a transition we can use that, otherwise\n * allow the animation function to use the visual element's default.\n */\n if (typeof props.initial !== \"boolean\") {\n const initialTransition = resolveVariant(visualElement, Array.isArray(props.initial)\n ? props.initial[0]\n : props.initial);\n if (initialTransition && initialTransition.transition) {\n fallbackAnimation.transition = initialTransition.transition;\n }\n }\n removedKeys.forEach((key) => {\n const fallbackTarget = visualElement.getBaseTarget(key);\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = true;\n // @ts-expect-error - @mattgperry to figure if we should do something here\n fallbackAnimation[key] = fallbackTarget ?? null;\n });\n animations.push({ animation: fallbackAnimation });\n }\n let shouldAnimate = Boolean(animations.length);\n if (isInitialRender &&\n (props.initial === false || props.initial === props.animate) &&\n !visualElement.manuallyAnimateOnMount) {\n shouldAnimate = false;\n }\n isInitialRender = false;\n return shouldAnimate ? animate(animations) : Promise.resolve();\n }\n /**\n * Change whether a certain animation type is active.\n */\n function setActive(type, isActive) {\n // If the active state hasn't changed, we can safely do nothing here\n if (state[type].isActive === isActive)\n return Promise.resolve();\n // Propagate active change to children\n visualElement.variantChildren?.forEach((child) => child.animationState?.setActive(type, isActive));\n state[type].isActive = isActive;\n const animations = animateChanges(type);\n for (const key in state) {\n state[key].protectedKeys = {};\n }\n return animations;\n }\n return {\n animateChanges,\n setActive,\n setAnimateFunction,\n getState: () => state,\n reset: () => {\n state = createState();\n isInitialRender = true;\n },\n };\n}\nfunction checkVariantsDidChange(prev, next) {\n if (typeof next === \"string\") {\n return next !== prev;\n }\n else if (Array.isArray(next)) {\n return !shallowCompare(next, prev);\n }\n return false;\n}\nfunction createTypeState(isActive = false) {\n return {\n isActive,\n protectedKeys: {},\n needsAnimating: {},\n prevResolvedValues: {},\n };\n}\nfunction createState() {\n return {\n animate: createTypeState(true),\n whileInView: createTypeState(),\n whileHover: createTypeState(),\n whileTap: createTypeState(),\n whileDrag: createTypeState(),\n whileFocus: createTypeState(),\n exit: createTypeState(),\n };\n}\n\nexport { checkVariantsDidChange, createAnimationState };\n","class Feature {\n constructor(node) {\n this.isMounted = false;\n this.node = node;\n }\n update() { }\n}\n\nexport { Feature };\n","import { isAnimationControls } from '../../../animation/utils/is-animation-controls.mjs';\nimport { createAnimationState } from '../../../render/utils/animation-state.mjs';\nimport { Feature } from '../Feature.mjs';\n\nclass AnimationFeature extends Feature {\n /**\n * We dynamically generate the AnimationState manager as it contains a reference\n * to the underlying animation library. We only want to load that if we load this,\n * so people can optionally code split it out using the `m` component.\n */\n constructor(node) {\n super(node);\n node.animationState || (node.animationState = createAnimationState(node));\n }\n updateAnimationControlsSubscription() {\n const { animate } = this.node.getProps();\n if (isAnimationControls(animate)) {\n this.unmountControls = animate.subscribe(this.node);\n }\n }\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n mount() {\n this.updateAnimationControlsSubscription();\n }\n update() {\n const { animate } = this.node.getProps();\n const { animate: prevAnimate } = this.node.prevProps || {};\n if (animate !== prevAnimate) {\n this.updateAnimationControlsSubscription();\n }\n }\n unmount() {\n this.node.animationState.reset();\n this.unmountControls?.();\n }\n}\n\nexport { AnimationFeature };\n","import { Feature } from '../Feature.mjs';\n\nlet id = 0;\nclass ExitAnimationFeature extends Feature {\n constructor() {\n super(...arguments);\n this.id = id++;\n }\n update() {\n if (!this.node.presenceContext)\n return;\n const { isPresent, onExitComplete } = this.node.presenceContext;\n const { isPresent: prevIsPresent } = this.node.prevPresenceContext || {};\n if (!this.node.animationState || isPresent === prevIsPresent) {\n return;\n }\n const exitAnimation = this.node.animationState.setActive(\"exit\", !isPresent);\n if (onExitComplete && !isPresent) {\n exitAnimation.then(() => {\n onExitComplete(this.id);\n });\n }\n }\n mount() {\n const { register, onExitComplete } = this.node.presenceContext || {};\n if (onExitComplete) {\n onExitComplete(this.id);\n }\n if (register) {\n this.unmount = register(this.id);\n }\n }\n unmount() { }\n}\n\nexport { ExitAnimationFeature };\n","import { AnimationFeature } from './animation/index.mjs';\nimport { ExitAnimationFeature } from './animation/exit.mjs';\n\nconst animations = {\n animation: {\n Feature: AnimationFeature,\n },\n exit: {\n Feature: ExitAnimationFeature,\n },\n};\n\nexport { animations };\n","const isDragging = {\n x: false,\n y: false,\n};\nfunction isDragActive() {\n return isDragging.x || isDragging.y;\n}\n\nexport { isDragActive, isDragging };\n","import { isDragging } from './is-active.mjs';\n\nfunction setDragLock(axis) {\n if (axis === \"x\" || axis === \"y\") {\n if (isDragging[axis]) {\n return null;\n }\n else {\n isDragging[axis] = true;\n return () => {\n isDragging[axis] = false;\n };\n }\n }\n else {\n if (isDragging.x || isDragging.y) {\n return null;\n }\n else {\n isDragging.x = isDragging.y = true;\n return () => {\n isDragging.x = isDragging.y = false;\n };\n }\n }\n}\n\nexport { setDragLock };\n","function addDomEvent(target, eventName, handler, options = { passive: true }) {\n target.addEventListener(eventName, handler, options);\n return () => target.removeEventListener(eventName, handler);\n}\n\nexport { addDomEvent };\n","const isPrimaryPointer = (event) => {\n if (event.pointerType === \"mouse\") {\n return typeof event.button !== \"number\" || event.button <= 0;\n }\n else {\n /**\n * isPrimary is true for all mice buttons, whereas every touch point\n * is regarded as its own input. So subsequent concurrent touch points\n * will be false.\n *\n * Specifically match against false here as incomplete versions of\n * PointerEvents in very old browser might have it set as undefined.\n */\n return event.isPrimary !== false;\n }\n};\n\nexport { isPrimaryPointer };\n","import { isPrimaryPointer } from 'motion-dom';\n\nfunction extractEventInfo(event) {\n return {\n point: {\n x: event.pageX,\n y: event.pageY,\n },\n };\n}\nconst addPointerInfo = (handler) => {\n return (event) => isPrimaryPointer(event) && handler(event, extractEventInfo(event));\n};\n\nexport { addPointerInfo, extractEventInfo };\n","import { addDomEvent } from './add-dom-event.mjs';\nimport { addPointerInfo } from './event-info.mjs';\n\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, eventName, addPointerInfo(handler), options);\n}\n\nexport { addPointerEvent };\n","import { mixNumber } from 'motion-dom';\n\nconst SCALE_PRECISION = 0.0001;\nconst SCALE_MIN = 1 - SCALE_PRECISION;\nconst SCALE_MAX = 1 + SCALE_PRECISION;\nconst TRANSLATE_PRECISION = 0.01;\nconst TRANSLATE_MIN = 0 - TRANSLATE_PRECISION;\nconst TRANSLATE_MAX = 0 + TRANSLATE_PRECISION;\nfunction calcLength(axis) {\n return axis.max - axis.min;\n}\nfunction isNear(value, target, maxDistance) {\n return Math.abs(value - target) <= maxDistance;\n}\nfunction calcAxisDelta(delta, source, target, origin = 0.5) {\n delta.origin = origin;\n delta.originPoint = mixNumber(source.min, source.max, delta.origin);\n delta.scale = calcLength(target) / calcLength(source);\n delta.translate =\n mixNumber(target.min, target.max, delta.origin) - delta.originPoint;\n if ((delta.scale >= SCALE_MIN && delta.scale <= SCALE_MAX) ||\n isNaN(delta.scale)) {\n delta.scale = 1.0;\n }\n if ((delta.translate >= TRANSLATE_MIN &&\n delta.translate <= TRANSLATE_MAX) ||\n isNaN(delta.translate)) {\n delta.translate = 0.0;\n }\n}\nfunction calcBoxDelta(delta, source, target, origin) {\n calcAxisDelta(delta.x, source.x, target.x, origin ? origin.originX : undefined);\n calcAxisDelta(delta.y, source.y, target.y, origin ? origin.originY : undefined);\n}\nfunction calcRelativeAxis(target, relative, parent) {\n target.min = parent.min + relative.min;\n target.max = target.min + calcLength(relative);\n}\nfunction calcRelativeBox(target, relative, parent) {\n calcRelativeAxis(target.x, relative.x, parent.x);\n calcRelativeAxis(target.y, relative.y, parent.y);\n}\nfunction calcRelativeAxisPosition(target, layout, parent) {\n target.min = layout.min - parent.min;\n target.max = target.min + calcLength(layout);\n}\nfunction calcRelativePosition(target, layout, parent) {\n calcRelativeAxisPosition(target.x, layout.x, parent.x);\n calcRelativeAxisPosition(target.y, layout.y, parent.y);\n}\n\nexport { calcAxisDelta, calcBoxDelta, calcLength, calcRelativeAxis, calcRelativeAxisPosition, calcRelativeBox, calcRelativePosition, isNear };\n","function eachAxis(callback) {\n return [callback(\"x\"), callback(\"y\")];\n}\n\nexport { eachAxis };\n","// Fixes https://github.com/motiondivision/motion/issues/2270\nconst getContextWindow = ({ current }) => {\n return current ? current.ownerDocument.defaultView : null;\n};\n\nexport { getContextWindow };\n","const distance = (a, b) => Math.abs(a - b);\nfunction distance2D(a, b) {\n // Multi-dimensional\n const xDelta = distance(a.x, b.x);\n const yDelta = distance(a.y, b.y);\n return Math.sqrt(xDelta ** 2 + yDelta ** 2);\n}\n\nexport { distance, distance2D };\n","import { frame, isPrimaryPointer, cancelFrame, frameData } from 'motion-dom';\nimport { pipe, secondsToMilliseconds, millisecondsToSeconds } from 'motion-utils';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { extractEventInfo } from '../../events/event-info.mjs';\nimport { distance2D } from '../../utils/distance.mjs';\n\n/**\n * @internal\n */\nclass PanSession {\n constructor(event, handlers, { transformPagePoint, contextWindow = window, dragSnapToOrigin = false, distanceThreshold = 3, } = {}) {\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n /**\n * @internal\n */\n this.contextWindow = window;\n this.updatePoint = () => {\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const info = getPanInfo(this.lastMoveEventInfo, this.history);\n const isPanStarted = this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursor.\n const isDistancePastThreshold = distance2D(info.offset, { x: 0, y: 0 }) >= this.distanceThreshold;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n const { point } = info;\n const { timestamp } = frameData;\n this.history.push({ ...point, timestamp });\n const { onStart, onMove } = this.handlers;\n if (!isPanStarted) {\n onStart && onStart(this.lastMoveEvent, info);\n this.startEvent = this.lastMoveEvent;\n }\n onMove && onMove(this.lastMoveEvent, info);\n };\n this.handlePointerMove = (event, info) => {\n this.lastMoveEvent = event;\n this.lastMoveEventInfo = transformPoint(info, this.transformPagePoint);\n // Throttle mouse move event to once per frame\n frame.update(this.updatePoint, true);\n };\n this.handlePointerUp = (event, info) => {\n this.end();\n const { onEnd, onSessionEnd, resumeAnimation } = this.handlers;\n if (this.dragSnapToOrigin)\n resumeAnimation && resumeAnimation();\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const panInfo = getPanInfo(event.type === \"pointercancel\"\n ? this.lastMoveEventInfo\n : transformPoint(info, this.transformPagePoint), this.history);\n if (this.startEvent && onEnd) {\n onEnd(event, panInfo);\n }\n onSessionEnd && onSessionEnd(event, panInfo);\n };\n // If we have more than one touch, don't start detecting this gesture\n if (!isPrimaryPointer(event))\n return;\n this.dragSnapToOrigin = dragSnapToOrigin;\n this.handlers = handlers;\n this.transformPagePoint = transformPagePoint;\n this.distanceThreshold = distanceThreshold;\n this.contextWindow = contextWindow || window;\n const info = extractEventInfo(event);\n const initialInfo = transformPoint(info, this.transformPagePoint);\n const { point } = initialInfo;\n const { timestamp } = frameData;\n this.history = [{ ...point, timestamp }];\n const { onSessionStart } = handlers;\n onSessionStart &&\n onSessionStart(event, getPanInfo(initialInfo, this.history));\n this.removeListeners = pipe(addPointerEvent(this.contextWindow, \"pointermove\", this.handlePointerMove), addPointerEvent(this.contextWindow, \"pointerup\", this.handlePointerUp), addPointerEvent(this.contextWindow, \"pointercancel\", this.handlePointerUp));\n }\n updateHandlers(handlers) {\n this.handlers = handlers;\n }\n end() {\n this.removeListeners && this.removeListeners();\n cancelFrame(this.updatePoint);\n }\n}\nfunction transformPoint(info, transformPagePoint) {\n return transformPagePoint ? { point: transformPagePoint(info.point) } : info;\n}\nfunction subtractPoint(a, b) {\n return { x: a.x - b.x, y: a.y - b.y };\n}\nfunction getPanInfo({ point }, history) {\n return {\n point,\n delta: subtractPoint(point, lastDevicePoint(history)),\n offset: subtractPoint(point, startDevicePoint(history)),\n velocity: getVelocity(history, 0.1),\n };\n}\nfunction startDevicePoint(history) {\n return history[0];\n}\nfunction lastDevicePoint(history) {\n return history[history.length - 1];\n}\nfunction getVelocity(history, timeDelta) {\n if (history.length < 2) {\n return { x: 0, y: 0 };\n }\n let i = history.length - 1;\n let timestampedPoint = null;\n const lastPoint = lastDevicePoint(history);\n while (i >= 0) {\n timestampedPoint = history[i];\n if (lastPoint.timestamp - timestampedPoint.timestamp >\n secondsToMilliseconds(timeDelta)) {\n break;\n }\n i--;\n }\n if (!timestampedPoint) {\n return { x: 0, y: 0 };\n }\n const time = millisecondsToSeconds(lastPoint.timestamp - timestampedPoint.timestamp);\n if (time === 0) {\n return { x: 0, y: 0 };\n }\n const currentVelocity = {\n x: (lastPoint.x - timestampedPoint.x) / time,\n y: (lastPoint.y - timestampedPoint.y) / time,\n };\n if (currentVelocity.x === Infinity) {\n currentVelocity.x = 0;\n }\n if (currentVelocity.y === Infinity) {\n currentVelocity.y = 0;\n }\n return currentVelocity;\n}\n\nexport { PanSession };\n","import { mixNumber } from 'motion-dom';\nimport { progress, clamp } from 'motion-utils';\nimport { calcLength } from '../../../projection/geometry/delta-calc.mjs';\n\n/**\n * Apply constraints to a point. These constraints are both physical along an\n * axis, and an elastic factor that determines how much to constrain the point\n * by if it does lie outside the defined parameters.\n */\nfunction applyConstraints(point, { min, max }, elastic) {\n if (min !== undefined && point < min) {\n // If we have a min point defined, and this is outside of that, constrain\n point = elastic\n ? mixNumber(min, point, elastic.min)\n : Math.max(point, min);\n }\n else if (max !== undefined && point > max) {\n // If we have a max point defined, and this is outside of that, constrain\n point = elastic\n ? mixNumber(max, point, elastic.max)\n : Math.min(point, max);\n }\n return point;\n}\n/**\n * Calculate constraints in terms of the viewport when defined relatively to the\n * measured axis. This is measured from the nearest edge, so a max constraint of 200\n * on an axis with a max value of 300 would return a constraint of 500 - axis length\n */\nfunction calcRelativeAxisConstraints(axis, min, max) {\n return {\n min: min !== undefined ? axis.min + min : undefined,\n max: max !== undefined\n ? axis.max + max - (axis.max - axis.min)\n : undefined,\n };\n}\n/**\n * Calculate constraints in terms of the viewport when\n * defined relatively to the measured bounding box.\n */\nfunction calcRelativeConstraints(layoutBox, { top, left, bottom, right }) {\n return {\n x: calcRelativeAxisConstraints(layoutBox.x, left, right),\n y: calcRelativeAxisConstraints(layoutBox.y, top, bottom),\n };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative axis\n */\nfunction calcViewportAxisConstraints(layoutAxis, constraintsAxis) {\n let min = constraintsAxis.min - layoutAxis.min;\n let max = constraintsAxis.max - layoutAxis.max;\n // If the constraints axis is actually smaller than the layout axis then we can\n // flip the constraints\n if (constraintsAxis.max - constraintsAxis.min <\n layoutAxis.max - layoutAxis.min) {\n [min, max] = [max, min];\n }\n return { min, max };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative box\n */\nfunction calcViewportConstraints(layoutBox, constraintsBox) {\n return {\n x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),\n y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y),\n };\n}\n/**\n * Calculate a transform origin relative to the source axis, between 0-1, that results\n * in an asthetically pleasing scale/transform needed to project from source to target.\n */\nfunction calcOrigin(source, target) {\n let origin = 0.5;\n const sourceLength = calcLength(source);\n const targetLength = calcLength(target);\n if (targetLength > sourceLength) {\n origin = progress(target.min, target.max - sourceLength, source.min);\n }\n else if (sourceLength > targetLength) {\n origin = progress(source.min, source.max - targetLength, target.min);\n }\n return clamp(0, 1, origin);\n}\n/**\n * Rebase the calculated viewport constraints relative to the layout.min point.\n */\nfunction rebaseAxisConstraints(layout, constraints) {\n const relativeConstraints = {};\n if (constraints.min !== undefined) {\n relativeConstraints.min = constraints.min - layout.min;\n }\n if (constraints.max !== undefined) {\n relativeConstraints.max = constraints.max - layout.min;\n }\n return relativeConstraints;\n}\nconst defaultElastic = 0.35;\n/**\n * Accepts a dragElastic prop and returns resolved elastic values for each axis.\n */\nfunction resolveDragElastic(dragElastic = defaultElastic) {\n if (dragElastic === false) {\n dragElastic = 0;\n }\n else if (dragElastic === true) {\n dragElastic = defaultElastic;\n }\n return {\n x: resolveAxisElastic(dragElastic, \"left\", \"right\"),\n y: resolveAxisElastic(dragElastic, \"top\", \"bottom\"),\n };\n}\nfunction resolveAxisElastic(dragElastic, minLabel, maxLabel) {\n return {\n min: resolvePointElastic(dragElastic, minLabel),\n max: resolvePointElastic(dragElastic, maxLabel),\n };\n}\nfunction resolvePointElastic(dragElastic, label) {\n return typeof dragElastic === \"number\"\n ? dragElastic\n : dragElastic[label] || 0;\n}\n\nexport { applyConstraints, calcOrigin, calcRelativeAxisConstraints, calcRelativeConstraints, calcViewportAxisConstraints, calcViewportConstraints, defaultElastic, rebaseAxisConstraints, resolveAxisElastic, resolveDragElastic, resolvePointElastic };\n","import { frame, mixNumber, setDragLock, percent } from 'motion-dom';\nimport { invariant } from 'motion-utils';\nimport { animateMotionValue } from '../../animation/interfaces/motion-value.mjs';\nimport { addDomEvent } from '../../events/add-dom-event.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { extractEventInfo } from '../../events/event-info.mjs';\nimport { convertBoxToBoundingBox, convertBoundingBoxToBox } from '../../projection/geometry/conversion.mjs';\nimport { calcLength } from '../../projection/geometry/delta-calc.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { eachAxis } from '../../projection/utils/each-axis.mjs';\nimport { measurePageBox } from '../../projection/utils/measure.mjs';\nimport { getContextWindow } from '../../utils/get-context-window.mjs';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { addValueToWillChange } from '../../value/use-will-change/add-will-change.mjs';\nimport { PanSession } from '../pan/PanSession.mjs';\nimport { applyConstraints, calcRelativeConstraints, resolveDragElastic, rebaseAxisConstraints, calcViewportConstraints, calcOrigin, defaultElastic } from './utils/constraints.mjs';\n\nconst elementDragControls = new WeakMap();\nclass VisualElementDragControls {\n constructor(visualElement) {\n this.openDragLock = null;\n this.isDragging = false;\n this.currentDirection = null;\n this.originPoint = { x: 0, y: 0 };\n /**\n * The permitted boundaries of travel, in pixels.\n */\n this.constraints = false;\n this.hasMutatedConstraints = false;\n /**\n * The per-axis resolved elastic values.\n */\n this.elastic = createBox();\n /**\n * The latest pointer event. Used as fallback when the `cancel` and `stop` functions are called without arguments.\n */\n this.latestPointerEvent = null;\n /**\n * The latest pan info. Used as fallback when the `cancel` and `stop` functions are called without arguments.\n */\n this.latestPanInfo = null;\n this.visualElement = visualElement;\n }\n start(originEvent, { snapToCursor = false, distanceThreshold } = {}) {\n /**\n * Don't start dragging if this component is exiting\n */\n const { presenceContext } = this.visualElement;\n if (presenceContext && presenceContext.isPresent === false)\n return;\n const onSessionStart = (event) => {\n const { dragSnapToOrigin } = this.getProps();\n // Stop or pause any animations on both axis values immediately. This allows the user to throw and catch\n // the component.\n dragSnapToOrigin ? this.pauseAnimation() : this.stopAnimation();\n if (snapToCursor) {\n this.snapToCursor(extractEventInfo(event).point);\n }\n };\n const onStart = (event, info) => {\n // Attempt to grab the global drag gesture lock - maybe make this part of PanSession\n const { drag, dragPropagation, onDragStart } = this.getProps();\n if (drag && !dragPropagation) {\n if (this.openDragLock)\n this.openDragLock();\n this.openDragLock = setDragLock(drag);\n // If we don 't have the lock, don't start dragging\n if (!this.openDragLock)\n return;\n }\n this.latestPointerEvent = event;\n this.latestPanInfo = info;\n this.isDragging = true;\n this.currentDirection = null;\n this.resolveConstraints();\n if (this.visualElement.projection) {\n this.visualElement.projection.isAnimationBlocked = true;\n this.visualElement.projection.target = undefined;\n }\n /**\n * Record gesture origin\n */\n eachAxis((axis) => {\n let current = this.getAxisMotionValue(axis).get() || 0;\n /**\n * If the MotionValue is a percentage value convert to px\n */\n if (percent.test(current)) {\n const { projection } = this.visualElement;\n if (projection && projection.layout) {\n const measuredAxis = projection.layout.layoutBox[axis];\n if (measuredAxis) {\n const length = calcLength(measuredAxis);\n current = length * (parseFloat(current) / 100);\n }\n }\n }\n this.originPoint[axis] = current;\n });\n // Fire onDragStart event\n if (onDragStart) {\n frame.postRender(() => onDragStart(event, info));\n }\n addValueToWillChange(this.visualElement, \"transform\");\n const { animationState } = this.visualElement;\n animationState && animationState.setActive(\"whileDrag\", true);\n };\n const onMove = (event, info) => {\n this.latestPointerEvent = event;\n this.latestPanInfo = info;\n const { dragPropagation, dragDirectionLock, onDirectionLock, onDrag, } = this.getProps();\n // If we didn't successfully receive the gesture lock, early return.\n if (!dragPropagation && !this.openDragLock)\n return;\n const { offset } = info;\n // Attempt to detect drag direction if directionLock is true\n if (dragDirectionLock && this.currentDirection === null) {\n this.currentDirection = getCurrentDirection(offset);\n // If we've successfully set a direction, notify listener\n if (this.currentDirection !== null) {\n onDirectionLock && onDirectionLock(this.currentDirection);\n }\n return;\n }\n // Update each point with the latest position\n this.updateAxis(\"x\", info.point, offset);\n this.updateAxis(\"y\", info.point, offset);\n /**\n * Ideally we would leave the renderer to fire naturally at the end of\n * this frame but if the element is about to change layout as the result\n * of a re-render we want to ensure the browser can read the latest\n * bounding box to ensure the pointer and element don't fall out of sync.\n */\n this.visualElement.render();\n /**\n * This must fire after the render call as it might trigger a state\n * change which itself might trigger a layout update.\n */\n onDrag && onDrag(event, info);\n };\n const onSessionEnd = (event, info) => {\n this.latestPointerEvent = event;\n this.latestPanInfo = info;\n this.stop(event, info);\n this.latestPointerEvent = null;\n this.latestPanInfo = null;\n };\n const resumeAnimation = () => eachAxis((axis) => this.getAnimationState(axis) === \"paused\" &&\n this.getAxisMotionValue(axis).animation?.play());\n const { dragSnapToOrigin } = this.getProps();\n this.panSession = new PanSession(originEvent, {\n onSessionStart,\n onStart,\n onMove,\n onSessionEnd,\n resumeAnimation,\n }, {\n transformPagePoint: this.visualElement.getTransformPagePoint(),\n dragSnapToOrigin,\n distanceThreshold,\n contextWindow: getContextWindow(this.visualElement),\n });\n }\n /**\n * @internal\n */\n stop(event, panInfo) {\n const finalEvent = event || this.latestPointerEvent;\n const finalPanInfo = panInfo || this.latestPanInfo;\n const isDragging = this.isDragging;\n this.cancel();\n if (!isDragging || !finalPanInfo || !finalEvent)\n return;\n const { velocity } = finalPanInfo;\n this.startAnimation(velocity);\n const { onDragEnd } = this.getProps();\n if (onDragEnd) {\n frame.postRender(() => onDragEnd(finalEvent, finalPanInfo));\n }\n }\n /**\n * @internal\n */\n cancel() {\n this.isDragging = false;\n const { projection, animationState } = this.visualElement;\n if (projection) {\n projection.isAnimationBlocked = false;\n }\n this.panSession && this.panSession.end();\n this.panSession = undefined;\n const { dragPropagation } = this.getProps();\n if (!dragPropagation && this.openDragLock) {\n this.openDragLock();\n this.openDragLock = null;\n }\n animationState && animationState.setActive(\"whileDrag\", false);\n }\n updateAxis(axis, _point, offset) {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!offset || !shouldDrag(axis, drag, this.currentDirection))\n return;\n const axisValue = this.getAxisMotionValue(axis);\n let next = this.originPoint[axis] + offset[axis];\n // Apply constraints\n if (this.constraints && this.constraints[axis]) {\n next = applyConstraints(next, this.constraints[axis], this.elastic[axis]);\n }\n axisValue.set(next);\n }\n resolveConstraints() {\n const { dragConstraints, dragElastic } = this.getProps();\n const layout = this.visualElement.projection &&\n !this.visualElement.projection.layout\n ? this.visualElement.projection.measure(false)\n : this.visualElement.projection?.layout;\n const prevConstraints = this.constraints;\n if (dragConstraints && isRefObject(dragConstraints)) {\n if (!this.constraints) {\n this.constraints = this.resolveRefConstraints();\n }\n }\n else {\n if (dragConstraints && layout) {\n this.constraints = calcRelativeConstraints(layout.layoutBox, dragConstraints);\n }\n else {\n this.constraints = false;\n }\n }\n this.elastic = resolveDragElastic(dragElastic);\n /**\n * If we're outputting to external MotionValues, we want to rebase the measured constraints\n * from viewport-relative to component-relative.\n */\n if (prevConstraints !== this.constraints &&\n layout &&\n this.constraints &&\n !this.hasMutatedConstraints) {\n eachAxis((axis) => {\n if (this.constraints !== false &&\n this.getAxisMotionValue(axis)) {\n this.constraints[axis] = rebaseAxisConstraints(layout.layoutBox[axis], this.constraints[axis]);\n }\n });\n }\n }\n resolveRefConstraints() {\n const { dragConstraints: constraints, onMeasureDragConstraints } = this.getProps();\n if (!constraints || !isRefObject(constraints))\n return false;\n const constraintsElement = constraints.current;\n invariant(constraintsElement !== null, \"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\", \"drag-constraints-ref\");\n const { projection } = this.visualElement;\n // TODO\n if (!projection || !projection.layout)\n return false;\n const constraintsBox = measurePageBox(constraintsElement, projection.root, this.visualElement.getTransformPagePoint());\n let measuredConstraints = calcViewportConstraints(projection.layout.layoutBox, constraintsBox);\n /**\n * If there's an onMeasureDragConstraints listener we call it and\n * if different constraints are returned, set constraints to that\n */\n if (onMeasureDragConstraints) {\n const userConstraints = onMeasureDragConstraints(convertBoxToBoundingBox(measuredConstraints));\n this.hasMutatedConstraints = !!userConstraints;\n if (userConstraints) {\n measuredConstraints = convertBoundingBoxToBox(userConstraints);\n }\n }\n return measuredConstraints;\n }\n startAnimation(velocity) {\n const { drag, dragMomentum, dragElastic, dragTransition, dragSnapToOrigin, onDragTransitionEnd, } = this.getProps();\n const constraints = this.constraints || {};\n const momentumAnimations = eachAxis((axis) => {\n if (!shouldDrag(axis, drag, this.currentDirection)) {\n return;\n }\n let transition = (constraints && constraints[axis]) || {};\n if (dragSnapToOrigin)\n transition = { min: 0, max: 0 };\n /**\n * Overdamp the boundary spring if `dragElastic` is disabled. There's still a frame\n * of spring animations so we should look into adding a disable spring option to `inertia`.\n * We could do something here where we affect the `bounceStiffness` and `bounceDamping`\n * using the value of `dragElastic`.\n */\n const bounceStiffness = dragElastic ? 200 : 1000000;\n const bounceDamping = dragElastic ? 40 : 10000000;\n const inertia = {\n type: \"inertia\",\n velocity: dragMomentum ? velocity[axis] : 0,\n bounceStiffness,\n bounceDamping,\n timeConstant: 750,\n restDelta: 1,\n restSpeed: 10,\n ...dragTransition,\n ...transition,\n };\n // If we're not animating on an externally-provided `MotionValue` we can use the\n // component's animation controls which will handle interactions with whileHover (etc),\n // otherwise we just have to animate the `MotionValue` itself.\n return this.startAxisValueAnimation(axis, inertia);\n });\n // Run all animations and then resolve the new drag constraints.\n return Promise.all(momentumAnimations).then(onDragTransitionEnd);\n }\n startAxisValueAnimation(axis, transition) {\n const axisValue = this.getAxisMotionValue(axis);\n addValueToWillChange(this.visualElement, axis);\n return axisValue.start(animateMotionValue(axis, axisValue, 0, transition, this.visualElement, false));\n }\n stopAnimation() {\n eachAxis((axis) => this.getAxisMotionValue(axis).stop());\n }\n pauseAnimation() {\n eachAxis((axis) => this.getAxisMotionValue(axis).animation?.pause());\n }\n getAnimationState(axis) {\n return this.getAxisMotionValue(axis).animation?.state;\n }\n /**\n * Drag works differently depending on which props are provided.\n *\n * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.\n * - Otherwise, we apply the delta to the x/y motion values.\n */\n getAxisMotionValue(axis) {\n const dragKey = `_drag${axis.toUpperCase()}`;\n const props = this.visualElement.getProps();\n const externalMotionValue = props[dragKey];\n return externalMotionValue\n ? externalMotionValue\n : this.visualElement.getValue(axis, (props.initial\n ? props.initial[axis]\n : undefined) || 0);\n }\n snapToCursor(point) {\n eachAxis((axis) => {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!shouldDrag(axis, drag, this.currentDirection))\n return;\n const { projection } = this.visualElement;\n const axisValue = this.getAxisMotionValue(axis);\n if (projection && projection.layout) {\n const { min, max } = projection.layout.layoutBox[axis];\n axisValue.set(point[axis] - mixNumber(min, max, 0.5));\n }\n });\n }\n /**\n * When the viewport resizes we want to check if the measured constraints\n * have changed and, if so, reposition the element within those new constraints\n * relative to where it was before the resize.\n */\n scalePositionWithinConstraints() {\n if (!this.visualElement.current)\n return;\n const { drag, dragConstraints } = this.getProps();\n const { projection } = this.visualElement;\n if (!isRefObject(dragConstraints) || !projection || !this.constraints)\n return;\n /**\n * Stop current animations as there can be visual glitching if we try to do\n * this mid-animation\n */\n this.stopAnimation();\n /**\n * Record the relative position of the dragged element relative to the\n * constraints box and save as a progress value.\n */\n const boxProgress = { x: 0, y: 0 };\n eachAxis((axis) => {\n const axisValue = this.getAxisMotionValue(axis);\n if (axisValue && this.constraints !== false) {\n const latest = axisValue.get();\n boxProgress[axis] = calcOrigin({ min: latest, max: latest }, this.constraints[axis]);\n }\n });\n /**\n * Update the layout of this element and resolve the latest drag constraints\n */\n const { transformTemplate } = this.visualElement.getProps();\n this.visualElement.current.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n this.resolveConstraints();\n /**\n * For each axis, calculate the current progress of the layout axis\n * within the new constraints.\n */\n eachAxis((axis) => {\n if (!shouldDrag(axis, drag, null))\n return;\n /**\n * Calculate a new transform based on the previous box progress\n */\n const axisValue = this.getAxisMotionValue(axis);\n const { min, max } = this.constraints[axis];\n axisValue.set(mixNumber(min, max, boxProgress[axis]));\n });\n }\n addListeners() {\n if (!this.visualElement.current)\n return;\n elementDragControls.set(this.visualElement, this);\n const element = this.visualElement.current;\n /**\n * Attach a pointerdown event listener on this DOM element to initiate drag tracking.\n */\n const stopPointerListener = addPointerEvent(element, \"pointerdown\", (event) => {\n const { drag, dragListener = true } = this.getProps();\n drag && dragListener && this.start(event);\n });\n const measureDragConstraints = () => {\n const { dragConstraints } = this.getProps();\n if (isRefObject(dragConstraints) && dragConstraints.current) {\n this.constraints = this.resolveRefConstraints();\n }\n };\n const { projection } = this.visualElement;\n const stopMeasureLayoutListener = projection.addEventListener(\"measure\", measureDragConstraints);\n if (projection && !projection.layout) {\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n }\n frame.read(measureDragConstraints);\n /**\n * Attach a window resize listener to scale the draggable target within its defined\n * constraints as the window resizes.\n */\n const stopResizeListener = addDomEvent(window, \"resize\", () => this.scalePositionWithinConstraints());\n /**\n * If the element's layout changes, calculate the delta and apply that to\n * the drag gesture's origin point.\n */\n const stopLayoutUpdateListener = projection.addEventListener(\"didUpdate\", (({ delta, hasLayoutChanged }) => {\n if (this.isDragging && hasLayoutChanged) {\n eachAxis((axis) => {\n const motionValue = this.getAxisMotionValue(axis);\n if (!motionValue)\n return;\n this.originPoint[axis] += delta[axis].translate;\n motionValue.set(motionValue.get() + delta[axis].translate);\n });\n this.visualElement.render();\n }\n }));\n return () => {\n stopResizeListener();\n stopPointerListener();\n stopMeasureLayoutListener();\n stopLayoutUpdateListener && stopLayoutUpdateListener();\n };\n }\n getProps() {\n const props = this.visualElement.getProps();\n const { drag = false, dragDirectionLock = false, dragPropagation = false, dragConstraints = false, dragElastic = defaultElastic, dragMomentum = true, } = props;\n return {\n ...props,\n drag,\n dragDirectionLock,\n dragPropagation,\n dragConstraints,\n dragElastic,\n dragMomentum,\n };\n }\n}\nfunction shouldDrag(direction, drag, currentDirection) {\n return ((drag === true || drag === direction) &&\n (currentDirection === null || currentDirection === direction));\n}\n/**\n * Based on an x/y offset determine the current drag direction. If both axis' offsets are lower\n * than the provided threshold, return `null`.\n *\n * @param offset - The x/y offset from origin.\n * @param lockThreshold - (Optional) - the minimum absolute offset before we can determine a drag direction.\n */\nfunction getCurrentDirection(offset, lockThreshold = 10) {\n let direction = null;\n if (Math.abs(offset.y) > lockThreshold) {\n direction = \"y\";\n }\n else if (Math.abs(offset.x) > lockThreshold) {\n direction = \"x\";\n }\n return direction;\n}\n\nexport { VisualElementDragControls, elementDragControls };\n","import { Feature } from '../../motion/features/Feature.mjs';\nimport { noop } from 'motion-utils';\nimport { VisualElementDragControls } from './VisualElementDragControls.mjs';\n\nclass DragGesture extends Feature {\n constructor(node) {\n super(node);\n this.removeGroupControls = noop;\n this.removeListeners = noop;\n this.controls = new VisualElementDragControls(node);\n }\n mount() {\n // If we've been provided a DragControls for manual control over the drag gesture,\n // subscribe this component to it on mount.\n const { dragControls } = this.node.getProps();\n if (dragControls) {\n this.removeGroupControls = dragControls.subscribe(this.controls);\n }\n this.removeListeners = this.controls.addListeners() || noop;\n }\n unmount() {\n this.removeGroupControls();\n this.removeListeners();\n }\n}\n\nexport { DragGesture };\n","import { frame } from 'motion-dom';\nimport { noop } from 'motion-utils';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { Feature } from '../../motion/features/Feature.mjs';\nimport { getContextWindow } from '../../utils/get-context-window.mjs';\nimport { PanSession } from './PanSession.mjs';\n\nconst asyncHandler = (handler) => (event, info) => {\n if (handler) {\n frame.postRender(() => handler(event, info));\n }\n};\nclass PanGesture extends Feature {\n constructor() {\n super(...arguments);\n this.removePointerDownListener = noop;\n }\n onPointerDown(pointerDownEvent) {\n this.session = new PanSession(pointerDownEvent, this.createPanHandlers(), {\n transformPagePoint: this.node.getTransformPagePoint(),\n contextWindow: getContextWindow(this.node),\n });\n }\n createPanHandlers() {\n const { onPanSessionStart, onPanStart, onPan, onPanEnd } = this.node.getProps();\n return {\n onSessionStart: asyncHandler(onPanSessionStart),\n onStart: asyncHandler(onPanStart),\n onMove: onPan,\n onEnd: (event, info) => {\n delete this.session;\n if (onPanEnd) {\n frame.postRender(() => onPanEnd(event, info));\n }\n },\n };\n }\n mount() {\n this.removePointerDownListener = addPointerEvent(this.node.current, \"pointerdown\", (event) => this.onPointerDown(event));\n }\n update() {\n this.session && this.session.updateHandlers(this.createPanHandlers());\n }\n unmount() {\n this.removePointerDownListener();\n this.session && this.session.end();\n }\n}\n\nexport { PanGesture };\n","import { useContext, useId, useEffect, useCallback } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence(subscribe = true) {\n const context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n const { isPresent, onExitComplete, register } = context;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n const id = useId();\n useEffect(() => {\n if (subscribe) {\n return register(id);\n }\n }, [subscribe]);\n const safeToRemove = useCallback(() => subscribe && onExitComplete && onExitComplete(id), [id, onExitComplete, subscribe]);\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n\nexport { isPresent, useIsPresent, usePresence };\n","/**\n * This should only ever be modified on the client otherwise it'll\n * persist through server requests. If we need instanced states we\n * could lazy-init via root.\n */\nconst globalProjectionState = {\n /**\n * Global flag as to whether the tree has animated since the last time\n * we resized the window\n */\n hasAnimatedSinceResize: true,\n /**\n * We set this to true once, on the first update. Any nodes added to the tree beyond that\n * update will be given a `data-projection-id` attribute.\n */\n hasEverUpdated: false,\n};\n\nexport { globalProjectionState };\n","import { px } from 'motion-dom';\n\nfunction pixelsToPercent(pixels, axis) {\n if (axis.max === axis.min)\n return 0;\n return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nconst correctBorderRadius = {\n correct: (latest, node) => {\n if (!node.target)\n return latest;\n /**\n * If latest is a string, if it's a percentage we can return immediately as it's\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n */\n if (typeof latest === \"string\") {\n if (px.test(latest)) {\n latest = parseFloat(latest);\n }\n else {\n return latest;\n }\n }\n /**\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n * pixel value as a percentage of each axis\n */\n const x = pixelsToPercent(latest, node.target.x);\n const y = pixelsToPercent(latest, node.target.y);\n return `${x}% ${y}%`;\n },\n};\n\nexport { correctBorderRadius, pixelsToPercent };\n","import { complex, mixNumber } from 'motion-dom';\n\nconst correctBoxShadow = {\n correct: (latest, { treeScale, projectionDelta }) => {\n const original = latest;\n const shadow = complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n const template = complex.createTransformer(latest);\n const offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n const xScale = projectionDelta.x.scale * treeScale.x;\n const yScale = projectionDelta.y.scale * treeScale.y;\n shadow[0 + offset] /= xScale;\n shadow[1 + offset] /= yScale;\n /**\n * Ideally we'd correct x and y scales individually, but because blur and\n * spread apply to both we have to take a scale average and apply that instead.\n * We could potentially improve the outcome of this by incorporating the ratio between\n * the two scales.\n */\n const averageScale = mixNumber(xScale, yScale, 0.5);\n // Blur\n if (typeof shadow[2 + offset] === \"number\")\n shadow[2 + offset] /= averageScale;\n // Spread\n if (typeof shadow[3 + offset] === \"number\")\n shadow[3 + offset] /= averageScale;\n return template(shadow);\n },\n};\n\nexport { correctBoxShadow };\n","\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport { frame, microtask } from 'motion-dom';\nimport { useContext, Component } from 'react';\nimport { usePresence } from '../../../components/AnimatePresence/use-presence.mjs';\nimport { LayoutGroupContext } from '../../../context/LayoutGroupContext.mjs';\nimport { SwitchLayoutGroupContext } from '../../../context/SwitchLayoutGroupContext.mjs';\nimport { globalProjectionState } from '../../../projection/node/state.mjs';\nimport { correctBorderRadius } from '../../../projection/styles/scale-border-radius.mjs';\nimport { correctBoxShadow } from '../../../projection/styles/scale-box-shadow.mjs';\nimport { addScaleCorrector } from '../../../projection/styles/scale-correction.mjs';\n\n/**\n * Track whether we've taken any snapshots yet. If not,\n * we can safely skip notification of didUpdate.\n */\nlet hasTakenAnySnapshot = false;\nclass MeasureLayoutWithContext extends Component {\n /**\n * This only mounts projection nodes for components that\n * need measuring, we might want to do it for all components\n * in order to incorporate transforms\n */\n componentDidMount() {\n const { visualElement, layoutGroup, switchLayoutGroup, layoutId } = this.props;\n const { projection } = visualElement;\n addScaleCorrector(defaultScaleCorrectors);\n if (projection) {\n if (layoutGroup.group)\n layoutGroup.group.add(projection);\n if (switchLayoutGroup && switchLayoutGroup.register && layoutId) {\n switchLayoutGroup.register(projection);\n }\n if (hasTakenAnySnapshot) {\n projection.root.didUpdate();\n }\n projection.addEventListener(\"animationComplete\", () => {\n this.safeToRemove();\n });\n projection.setOptions({\n ...projection.options,\n onExitComplete: () => this.safeToRemove(),\n });\n }\n globalProjectionState.hasEverUpdated = true;\n }\n getSnapshotBeforeUpdate(prevProps) {\n const { layoutDependency, visualElement, drag, isPresent } = this.props;\n const { projection } = visualElement;\n if (!projection)\n return null;\n /**\n * TODO: We use this data in relegate to determine whether to\n * promote a previous element. There's no guarantee its presence data\n * will have updated by this point - if a bug like this arises it will\n * have to be that we markForRelegation and then find a new lead some other way,\n * perhaps in didUpdate\n */\n projection.isPresent = isPresent;\n hasTakenAnySnapshot = true;\n if (drag ||\n prevProps.layoutDependency !== layoutDependency ||\n layoutDependency === undefined ||\n prevProps.isPresent !== isPresent) {\n projection.willUpdate();\n }\n else {\n this.safeToRemove();\n }\n if (prevProps.isPresent !== isPresent) {\n if (isPresent) {\n projection.promote();\n }\n else if (!projection.relegate()) {\n /**\n * If there's another stack member taking over from this one,\n * it's in charge of the exit animation and therefore should\n * be in charge of the safe to remove. Otherwise we call it here.\n */\n frame.postRender(() => {\n const stack = projection.getStack();\n if (!stack || !stack.members.length) {\n this.safeToRemove();\n }\n });\n }\n }\n return null;\n }\n componentDidUpdate() {\n const { projection } = this.props.visualElement;\n if (projection) {\n projection.root.didUpdate();\n microtask.postRender(() => {\n if (!projection.currentAnimation && projection.isLead()) {\n this.safeToRemove();\n }\n });\n }\n }\n componentWillUnmount() {\n const { visualElement, layoutGroup, switchLayoutGroup: promoteContext, } = this.props;\n const { projection } = visualElement;\n if (projection) {\n projection.scheduleCheckAfterUnmount();\n if (layoutGroup && layoutGroup.group)\n layoutGroup.group.remove(projection);\n if (promoteContext && promoteContext.deregister)\n promoteContext.deregister(projection);\n }\n }\n safeToRemove() {\n const { safeToRemove } = this.props;\n safeToRemove && safeToRemove();\n }\n render() {\n return null;\n }\n}\nfunction MeasureLayout(props) {\n const [isPresent, safeToRemove] = usePresence();\n const layoutGroup = useContext(LayoutGroupContext);\n return (jsx(MeasureLayoutWithContext, { ...props, layoutGroup: layoutGroup, switchLayoutGroup: useContext(SwitchLayoutGroupContext), isPresent: isPresent, safeToRemove: safeToRemove }));\n}\nconst defaultScaleCorrectors = {\n borderRadius: {\n ...correctBorderRadius,\n applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ],\n },\n borderTopLeftRadius: correctBorderRadius,\n borderTopRightRadius: correctBorderRadius,\n borderBottomLeftRadius: correctBorderRadius,\n borderBottomRightRadius: correctBorderRadius,\n boxShadow: correctBoxShadow,\n};\n\nexport { MeasureLayout };\n","function isObject(value) {\n return typeof value === \"object\" && value !== null;\n}\n\nexport { isObject };\n","import { isObject } from 'motion-utils';\n\n/**\n * Checks if an element is an SVG element in a way\n * that works across iframes\n */\nfunction isSVGElement(element) {\n return isObject(element) && \"ownerSVGElement\" in element;\n}\n\nexport { isSVGElement };\n","import { isSVGElement } from './is-svg-element.mjs';\n\n/**\n * Checks if an element is specifically an SVGSVGElement (the root SVG element)\n * in a way that works across iframes\n */\nfunction isSVGSVGElement(element) {\n return isSVGElement(element) && element.tagName === \"svg\";\n}\n\nexport { isSVGSVGElement };\n","import { isMotionValue, motionValue } from 'motion-dom';\nimport { animateMotionValue } from '../interfaces/motion-value.mjs';\n\nfunction animateSingleValue(value, keyframes, options) {\n const motionValue$1 = isMotionValue(value) ? value : motionValue(value);\n motionValue$1.start(animateMotionValue(\"\", motionValue$1, keyframes, options));\n return motionValue$1.animation;\n}\n\nexport { animateSingleValue };\n","const compareByDepth = (a, b) => a.depth - b.depth;\n\nexport { compareByDepth };\n","import { addUniqueItem, removeItem } from 'motion-utils';\nimport { compareByDepth } from './compare-by-depth.mjs';\n\nclass FlatTree {\n constructor() {\n this.children = [];\n this.isDirty = false;\n }\n add(child) {\n addUniqueItem(this.children, child);\n this.isDirty = true;\n }\n remove(child) {\n removeItem(this.children, child);\n this.isDirty = true;\n }\n forEach(callback) {\n this.isDirty && this.children.sort(compareByDepth);\n this.isDirty = false;\n this.children.forEach(callback);\n }\n}\n\nexport { FlatTree };\n","import { time, frame, cancelFrame } from 'motion-dom';\nimport { secondsToMilliseconds } from 'motion-utils';\n\n/**\n * Timeout defined in ms\n */\nfunction delay(callback, timeout) {\n const start = time.now();\n const checkElapsed = ({ timestamp }) => {\n const elapsed = timestamp - start;\n if (elapsed >= timeout) {\n cancelFrame(checkElapsed);\n callback(elapsed - timeout);\n }\n };\n frame.setup(checkElapsed, true);\n return () => cancelFrame(checkElapsed);\n}\nfunction delayInSeconds(callback, timeout) {\n return delay(callback, secondsToMilliseconds(timeout));\n}\n\nexport { delay, delayInSeconds };\n","import { mixNumber, percent, px } from 'motion-dom';\nimport { progress, circOut, noop } from 'motion-utils';\n\nconst borders = [\"TopLeft\", \"TopRight\", \"BottomLeft\", \"BottomRight\"];\nconst numBorders = borders.length;\nconst asNumber = (value) => typeof value === \"string\" ? parseFloat(value) : value;\nconst isPx = (value) => typeof value === \"number\" || px.test(value);\nfunction mixValues(target, follow, lead, progress, shouldCrossfadeOpacity, isOnlyMember) {\n if (shouldCrossfadeOpacity) {\n target.opacity = mixNumber(0, lead.opacity ?? 1, easeCrossfadeIn(progress));\n target.opacityExit = mixNumber(follow.opacity ?? 1, 0, easeCrossfadeOut(progress));\n }\n else if (isOnlyMember) {\n target.opacity = mixNumber(follow.opacity ?? 1, lead.opacity ?? 1, progress);\n }\n /**\n * Mix border radius\n */\n for (let i = 0; i < numBorders; i++) {\n const borderLabel = `border${borders[i]}Radius`;\n let followRadius = getRadius(follow, borderLabel);\n let leadRadius = getRadius(lead, borderLabel);\n if (followRadius === undefined && leadRadius === undefined)\n continue;\n followRadius || (followRadius = 0);\n leadRadius || (leadRadius = 0);\n const canMix = followRadius === 0 ||\n leadRadius === 0 ||\n isPx(followRadius) === isPx(leadRadius);\n if (canMix) {\n target[borderLabel] = Math.max(mixNumber(asNumber(followRadius), asNumber(leadRadius), progress), 0);\n if (percent.test(leadRadius) || percent.test(followRadius)) {\n target[borderLabel] += \"%\";\n }\n }\n else {\n target[borderLabel] = leadRadius;\n }\n }\n /**\n * Mix rotation\n */\n if (follow.rotate || lead.rotate) {\n target.rotate = mixNumber(follow.rotate || 0, lead.rotate || 0, progress);\n }\n}\nfunction getRadius(values, radiusName) {\n return values[radiusName] !== undefined\n ? values[radiusName]\n : values.borderRadius;\n}\n// /**\n// * We only want to mix the background color if there's a follow element\n// * that we're not crossfading opacity between. For instance with switch\n// * AnimateSharedLayout animations, this helps the illusion of a continuous\n// * element being animated but also cuts down on the number of paints triggered\n// * for elements where opacity is doing that work for us.\n// */\n// if (\n// !hasFollowElement &&\n// latestLeadValues.backgroundColor &&\n// latestFollowValues.backgroundColor\n// ) {\n// /**\n// * This isn't ideal performance-wise as mixColor is creating a new function every frame.\n// * We could probably create a mixer that runs at the start of the animation but\n// * the idea behind the crossfader is that it runs dynamically between two potentially\n// * changing targets (ie opacity or borderRadius may be animating independently via variants)\n// */\n// leadState.backgroundColor = followState.backgroundColor = mixColor(\n// latestFollowValues.backgroundColor as string,\n// latestLeadValues.backgroundColor as string\n// )(p)\n// }\nconst easeCrossfadeIn = /*@__PURE__*/ compress(0, 0.5, circOut);\nconst easeCrossfadeOut = /*@__PURE__*/ compress(0.5, 0.95, noop);\nfunction compress(min, max, easing) {\n return (p) => {\n // Could replace ifs with clamp\n if (p < min)\n return 0;\n if (p > max)\n return 1;\n return easing(progress(min, max, p));\n };\n}\n\nexport { mixValues };\n","/**\n * Reset an axis to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisInto(axis, originAxis) {\n axis.min = originAxis.min;\n axis.max = originAxis.max;\n}\n/**\n * Reset a box to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyBoxInto(box, originBox) {\n copyAxisInto(box.x, originBox.x);\n copyAxisInto(box.y, originBox.y);\n}\n/**\n * Reset a delta to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisDeltaInto(delta, originDelta) {\n delta.translate = originDelta.translate;\n delta.scale = originDelta.scale;\n delta.originPoint = originDelta.originPoint;\n delta.origin = originDelta.origin;\n}\n\nexport { copyAxisDeltaInto, copyAxisInto, copyBoxInto };\n","import { percent, mixNumber } from 'motion-dom';\nimport { scalePoint } from './delta-apply.mjs';\n\n/**\n * Remove a delta from a point. This is essentially the steps of applyPointDelta in reverse\n */\nfunction removePointDelta(point, translate, scale, originPoint, boxScale) {\n point -= translate;\n point = scalePoint(point, 1 / scale, originPoint);\n if (boxScale !== undefined) {\n point = scalePoint(point, 1 / boxScale, originPoint);\n }\n return point;\n}\n/**\n * Remove a delta from an axis. This is essentially the steps of applyAxisDelta in reverse\n */\nfunction removeAxisDelta(axis, translate = 0, scale = 1, origin = 0.5, boxScale, originAxis = axis, sourceAxis = axis) {\n if (percent.test(translate)) {\n translate = parseFloat(translate);\n const relativeProgress = mixNumber(sourceAxis.min, sourceAxis.max, translate / 100);\n translate = relativeProgress - sourceAxis.min;\n }\n if (typeof translate !== \"number\")\n return;\n let originPoint = mixNumber(originAxis.min, originAxis.max, origin);\n if (axis === originAxis)\n originPoint -= translate;\n axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Remove a transforms from an axis. This is essentially the steps of applyAxisTransforms in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeAxisTransforms(axis, transforms, [key, scaleKey, originKey], origin, sourceAxis) {\n removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale, origin, sourceAxis);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Remove a transforms from an box. This is essentially the steps of applyAxisBox in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeBoxTransforms(box, transforms, originBox, sourceBox) {\n removeAxisTransforms(box.x, transforms, xKeys, originBox ? originBox.x : undefined, sourceBox ? sourceBox.x : undefined);\n removeAxisTransforms(box.y, transforms, yKeys, originBox ? originBox.y : undefined, sourceBox ? sourceBox.y : undefined);\n}\n\nexport { removeAxisDelta, removeAxisTransforms, removeBoxTransforms, removePointDelta };\n","import { calcLength } from './delta-calc.mjs';\n\nfunction isAxisDeltaZero(delta) {\n return delta.translate === 0 && delta.scale === 1;\n}\nfunction isDeltaZero(delta) {\n return isAxisDeltaZero(delta.x) && isAxisDeltaZero(delta.y);\n}\nfunction axisEquals(a, b) {\n return a.min === b.min && a.max === b.max;\n}\nfunction boxEquals(a, b) {\n return axisEquals(a.x, b.x) && axisEquals(a.y, b.y);\n}\nfunction axisEqualsRounded(a, b) {\n return (Math.round(a.min) === Math.round(b.min) &&\n Math.round(a.max) === Math.round(b.max));\n}\nfunction boxEqualsRounded(a, b) {\n return axisEqualsRounded(a.x, b.x) && axisEqualsRounded(a.y, b.y);\n}\nfunction aspectRatio(box) {\n return calcLength(box.x) / calcLength(box.y);\n}\nfunction axisDeltaEquals(a, b) {\n return (a.translate === b.translate &&\n a.scale === b.scale &&\n a.originPoint === b.originPoint);\n}\n\nexport { aspectRatio, axisDeltaEquals, axisEquals, axisEqualsRounded, boxEquals, boxEqualsRounded, isDeltaZero };\n","import { addUniqueItem, removeItem } from 'motion-utils';\n\nclass NodeStack {\n constructor() {\n this.members = [];\n }\n add(node) {\n addUniqueItem(this.members, node);\n node.scheduleRender();\n }\n remove(node) {\n removeItem(this.members, node);\n if (node === this.prevLead) {\n this.prevLead = undefined;\n }\n if (node === this.lead) {\n const prevLead = this.members[this.members.length - 1];\n if (prevLead) {\n this.promote(prevLead);\n }\n }\n }\n relegate(node) {\n const indexOfNode = this.members.findIndex((member) => node === member);\n if (indexOfNode === 0)\n return false;\n /**\n * Find the next projection node that is present\n */\n let prevLead;\n for (let i = indexOfNode; i >= 0; i--) {\n const member = this.members[i];\n if (member.isPresent !== false) {\n prevLead = member;\n break;\n }\n }\n if (prevLead) {\n this.promote(prevLead);\n return true;\n }\n else {\n return false;\n }\n }\n promote(node, preserveFollowOpacity) {\n const prevLead = this.lead;\n if (node === prevLead)\n return;\n this.prevLead = prevLead;\n this.lead = node;\n node.show();\n if (prevLead) {\n prevLead.instance && prevLead.scheduleRender();\n node.scheduleRender();\n node.resumeFrom = prevLead;\n if (preserveFollowOpacity) {\n node.resumeFrom.preserveOpacity = true;\n }\n if (prevLead.snapshot) {\n node.snapshot = prevLead.snapshot;\n node.snapshot.latestValues =\n prevLead.animationValues || prevLead.latestValues;\n }\n if (node.root && node.root.isUpdating) {\n node.isLayoutDirty = true;\n }\n const { crossfade } = node.options;\n if (crossfade === false) {\n prevLead.hide();\n }\n /**\n * TODO:\n * - Test border radius when previous node was deleted\n * - boxShadow mixing\n * - Shared between element A in scrolled container and element B (scroll stays the same or changes)\n * - Shared between element A in transformed container and element B (transform stays the same or changes)\n * - Shared between element A in scrolled page and element B (scroll stays the same or changes)\n * ---\n * - Crossfade opacity of root nodes\n * - layoutId changes after animation\n * - layoutId changes mid animation\n */\n }\n }\n exitAnimationComplete() {\n this.members.forEach((node) => {\n const { options, resumingFrom } = node;\n options.onExitComplete && options.onExitComplete();\n if (resumingFrom) {\n resumingFrom.options.onExitComplete &&\n resumingFrom.options.onExitComplete();\n }\n });\n }\n scheduleRender() {\n this.members.forEach((node) => {\n node.instance && node.scheduleRender(false);\n });\n }\n /**\n * Clear any leads that have been removed this render to prevent them from being\n * used in future animations and to prevent memory leaks\n */\n removeLeadSnapshot() {\n if (this.lead && this.lead.snapshot) {\n this.lead.snapshot = undefined;\n }\n }\n}\n\nexport { NodeStack };\n","function buildProjectionTransform(delta, treeScale, latestTransform) {\n let transform = \"\";\n /**\n * The translations we use to calculate are always relative to the viewport coordinate space.\n * But when we apply scales, we also scale the coordinate space of an element and its children.\n * For instance if we have a treeScale (the culmination of all parent scales) of 0.5 and we need\n * to move an element 100 pixels, we actually need to move it 200 in within that scaled space.\n */\n const xTranslate = delta.x.translate / treeScale.x;\n const yTranslate = delta.y.translate / treeScale.y;\n const zTranslate = latestTransform?.z || 0;\n if (xTranslate || yTranslate || zTranslate) {\n transform = `translate3d(${xTranslate}px, ${yTranslate}px, ${zTranslate}px) `;\n }\n /**\n * Apply scale correction for the tree transform.\n * This will apply scale to the screen-orientated axes.\n */\n if (treeScale.x !== 1 || treeScale.y !== 1) {\n transform += `scale(${1 / treeScale.x}, ${1 / treeScale.y}) `;\n }\n if (latestTransform) {\n const { transformPerspective, rotate, rotateX, rotateY, skewX, skewY } = latestTransform;\n if (transformPerspective)\n transform = `perspective(${transformPerspective}px) ${transform}`;\n if (rotate)\n transform += `rotate(${rotate}deg) `;\n if (rotateX)\n transform += `rotateX(${rotateX}deg) `;\n if (rotateY)\n transform += `rotateY(${rotateY}deg) `;\n if (skewX)\n transform += `skewX(${skewX}deg) `;\n if (skewY)\n transform += `skewY(${skewY}deg) `;\n }\n /**\n * Apply scale to match the size of the element to the size we want it.\n * This will apply scale to the element-orientated axes.\n */\n const elementScaleX = delta.x.scale * treeScale.x;\n const elementScaleY = delta.y.scale * treeScale.y;\n if (elementScaleX !== 1 || elementScaleY !== 1) {\n transform += `scale(${elementScaleX}, ${elementScaleY})`;\n }\n return transform || \"none\";\n}\n\nexport { buildProjectionTransform };\n","import { statsBuffer, isSVGElement, isSVGSVGElement, frame, getValueTransition, cancelFrame, time, frameData, frameSteps, microtask, activeAnimations, motionValue, mixNumber } from 'motion-dom';\nimport { SubscriptionManager, clamp, noop } from 'motion-utils';\nimport { animateSingleValue } from '../../animation/animate/single-value.mjs';\nimport { getOptimisedAppearId } from '../../animation/optimized-appear/get-appear-id.mjs';\nimport { FlatTree } from '../../render/utils/flat-tree.mjs';\nimport { delay } from '../../utils/delay.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { mixValues } from '../animation/mix-values.mjs';\nimport { copyBoxInto, copyAxisDeltaInto } from '../geometry/copy.mjs';\nimport { translateAxis, transformBox, applyBoxDelta, applyTreeDeltas } from '../geometry/delta-apply.mjs';\nimport { calcLength, calcRelativePosition, calcRelativeBox, calcBoxDelta, isNear } from '../geometry/delta-calc.mjs';\nimport { removeBoxTransforms } from '../geometry/delta-remove.mjs';\nimport { createBox, createDelta } from '../geometry/models.mjs';\nimport { boxEqualsRounded, isDeltaZero, axisDeltaEquals, aspectRatio, boxEquals } from '../geometry/utils.mjs';\nimport { NodeStack } from '../shared/stack.mjs';\nimport { scaleCorrectors } from '../styles/scale-correction.mjs';\nimport { buildProjectionTransform } from '../styles/transform.mjs';\nimport { eachAxis } from '../utils/each-axis.mjs';\nimport { hasTransform, hasScale, has2DTranslate } from '../utils/has-transform.mjs';\nimport { globalProjectionState } from './state.mjs';\n\nconst metrics = {\n nodes: 0,\n calculatedTargetDeltas: 0,\n calculatedProjections: 0,\n};\nconst transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\n/**\n * We use 1000 as the animation target as 0-1000 maps better to pixels than 0-1\n * which has a noticeable difference in spring animations\n */\nconst animationTarget = 1000;\nlet id = 0;\nfunction resetDistortingTransform(key, visualElement, values, sharedAnimationValues) {\n const { latestValues } = visualElement;\n // Record the distorting transform and then temporarily set it to 0\n if (latestValues[key]) {\n values[key] = latestValues[key];\n visualElement.setStaticValue(key, 0);\n if (sharedAnimationValues) {\n sharedAnimationValues[key] = 0;\n }\n }\n}\nfunction cancelTreeOptimisedTransformAnimations(projectionNode) {\n projectionNode.hasCheckedOptimisedAppear = true;\n if (projectionNode.root === projectionNode)\n return;\n const { visualElement } = projectionNode.options;\n if (!visualElement)\n return;\n const appearId = getOptimisedAppearId(visualElement);\n if (window.MotionHasOptimisedAnimation(appearId, \"transform\")) {\n const { layout, layoutId } = projectionNode.options;\n window.MotionCancelOptimisedAnimation(appearId, \"transform\", frame, !(layout || layoutId));\n }\n const { parent } = projectionNode;\n if (parent && !parent.hasCheckedOptimisedAppear) {\n cancelTreeOptimisedTransformAnimations(parent);\n }\n}\nfunction createProjectionNode({ attachResizeListener, defaultParent, measureScroll, checkIsScrollRoot, resetTransform, }) {\n return class ProjectionNode {\n constructor(latestValues = {}, parent = defaultParent?.()) {\n /**\n * A unique ID generated for every projection node.\n */\n this.id = id++;\n /**\n * An id that represents a unique session instigated by startUpdate.\n */\n this.animationId = 0;\n this.animationCommitId = 0;\n /**\n * A Set containing all this component's children. This is used to iterate\n * through the children.\n *\n * TODO: This could be faster to iterate as a flat array stored on the root node.\n */\n this.children = new Set();\n /**\n * Options for the node. We use this to configure what kind of layout animations\n * we should perform (if any).\n */\n this.options = {};\n /**\n * We use this to detect when its safe to shut down part of a projection tree.\n * We have to keep projecting children for scale correction and relative projection\n * until all their parents stop performing layout animations.\n */\n this.isTreeAnimating = false;\n this.isAnimationBlocked = false;\n /**\n * Flag to true if we think this layout has been changed. We can't always know this,\n * currently we set it to true every time a component renders, or if it has a layoutDependency\n * if that has changed between renders. Additionally, components can be grouped by LayoutGroup\n * and if one node is dirtied, they all are.\n */\n this.isLayoutDirty = false;\n /**\n * Flag to true if we think the projection calculations for this node needs\n * recalculating as a result of an updated transform or layout animation.\n */\n this.isProjectionDirty = false;\n /**\n * Flag to true if the layout *or* transform has changed. This then gets propagated\n * throughout the projection tree, forcing any element below to recalculate on the next frame.\n */\n this.isSharedProjectionDirty = false;\n /**\n * Flag transform dirty. This gets propagated throughout the whole tree but is only\n * respected by shared nodes.\n */\n this.isTransformDirty = false;\n /**\n * Block layout updates for instant layout transitions throughout the tree.\n */\n this.updateManuallyBlocked = false;\n this.updateBlockedByResize = false;\n /**\n * Set to true between the start of the first `willUpdate` call and the end of the `didUpdate`\n * call.\n */\n this.isUpdating = false;\n /**\n * If this is an SVG element we currently disable projection transforms\n */\n this.isSVG = false;\n /**\n * Flag to true (during promotion) if a node doing an instant layout transition needs to reset\n * its projection styles.\n */\n this.needsReset = false;\n /**\n * Flags whether this node should have its transform reset prior to measuring.\n */\n this.shouldResetTransform = false;\n /**\n * Store whether this node has been checked for optimised appear animations. As\n * effects fire bottom-up, and we want to look up the tree for appear animations,\n * this makes sure we only check each path once, stopping at nodes that\n * have already been checked.\n */\n this.hasCheckedOptimisedAppear = false;\n /**\n * An object representing the calculated contextual/accumulated/tree scale.\n * This will be used to scale calculcated projection transforms, as these are\n * calculated in screen-space but need to be scaled for elements to layoutly\n * make it to their calculated destinations.\n *\n * TODO: Lazy-init\n */\n this.treeScale = { x: 1, y: 1 };\n /**\n *\n */\n this.eventHandlers = new Map();\n this.hasTreeAnimated = false;\n // Note: Currently only running on root node\n this.updateScheduled = false;\n this.scheduleUpdate = () => this.update();\n this.projectionUpdateScheduled = false;\n this.checkUpdateFailed = () => {\n if (this.isUpdating) {\n this.isUpdating = false;\n this.clearAllSnapshots();\n }\n };\n /**\n * This is a multi-step process as shared nodes might be of different depths. Nodes\n * are sorted by depth order, so we need to resolve the entire tree before moving to\n * the next step.\n */\n this.updateProjection = () => {\n this.projectionUpdateScheduled = false;\n /**\n * Reset debug counts. Manually resetting rather than creating a new\n * object each frame.\n */\n if (statsBuffer.value) {\n metrics.nodes =\n metrics.calculatedTargetDeltas =\n metrics.calculatedProjections =\n 0;\n }\n this.nodes.forEach(propagateDirtyNodes);\n this.nodes.forEach(resolveTargetDelta);\n this.nodes.forEach(calcProjection);\n this.nodes.forEach(cleanDirtyNodes);\n if (statsBuffer.addProjectionMetrics) {\n statsBuffer.addProjectionMetrics(metrics);\n }\n };\n /**\n * Frame calculations\n */\n this.resolvedRelativeTargetAt = 0.0;\n this.hasProjected = false;\n this.isVisible = true;\n this.animationProgress = 0;\n /**\n * Shared layout\n */\n // TODO Only running on root node\n this.sharedNodes = new Map();\n this.latestValues = latestValues;\n this.root = parent ? parent.root || parent : this;\n this.path = parent ? [...parent.path, parent] : [];\n this.parent = parent;\n this.depth = parent ? parent.depth + 1 : 0;\n for (let i = 0; i < this.path.length; i++) {\n this.path[i].shouldResetTransform = true;\n }\n if (this.root === this)\n this.nodes = new FlatTree();\n }\n addEventListener(name, handler) {\n if (!this.eventHandlers.has(name)) {\n this.eventHandlers.set(name, new SubscriptionManager());\n }\n return this.eventHandlers.get(name).add(handler);\n }\n notifyListeners(name, ...args) {\n const subscriptionManager = this.eventHandlers.get(name);\n subscriptionManager && subscriptionManager.notify(...args);\n }\n hasListeners(name) {\n return this.eventHandlers.has(name);\n }\n /**\n * Lifecycles\n */\n mount(instance) {\n if (this.instance)\n return;\n this.isSVG = isSVGElement(instance) && !isSVGSVGElement(instance);\n this.instance = instance;\n const { layoutId, layout, visualElement } = this.options;\n if (visualElement && !visualElement.current) {\n visualElement.mount(instance);\n }\n this.root.nodes.add(this);\n this.parent && this.parent.children.add(this);\n if (this.root.hasTreeAnimated && (layout || layoutId)) {\n this.isLayoutDirty = true;\n }\n if (attachResizeListener) {\n let cancelDelay;\n let innerWidth = 0;\n const resizeUnblockUpdate = () => (this.root.updateBlockedByResize = false);\n // Set initial innerWidth in a frame.read callback to batch the read\n frame.read(() => {\n innerWidth = window.innerWidth;\n });\n attachResizeListener(instance, () => {\n const newInnerWidth = window.innerWidth;\n if (newInnerWidth === innerWidth)\n return;\n innerWidth = newInnerWidth;\n this.root.updateBlockedByResize = true;\n cancelDelay && cancelDelay();\n cancelDelay = delay(resizeUnblockUpdate, 250);\n if (globalProjectionState.hasAnimatedSinceResize) {\n globalProjectionState.hasAnimatedSinceResize = false;\n this.nodes.forEach(finishAnimation);\n }\n });\n }\n if (layoutId) {\n this.root.registerSharedNode(layoutId, this);\n }\n // Only register the handler if it requires layout animation\n if (this.options.animate !== false &&\n visualElement &&\n (layoutId || layout)) {\n this.addEventListener(\"didUpdate\", ({ delta, hasLayoutChanged, hasRelativeLayoutChanged, layout: newLayout, }) => {\n if (this.isTreeAnimationBlocked()) {\n this.target = undefined;\n this.relativeTarget = undefined;\n return;\n }\n // TODO: Check here if an animation exists\n const layoutTransition = this.options.transition ||\n visualElement.getDefaultTransition() ||\n defaultLayoutTransition;\n const { onLayoutAnimationStart, onLayoutAnimationComplete, } = visualElement.getProps();\n /**\n * The target layout of the element might stay the same,\n * but its position relative to its parent has changed.\n */\n const hasTargetChanged = !this.targetLayout ||\n !boxEqualsRounded(this.targetLayout, newLayout);\n /*\n * Note: Disabled to fix relative animations always triggering new\n * layout animations. If this causes further issues, we can try\n * a different approach to detecting relative target changes.\n */\n // || hasRelativeLayoutChanged\n /**\n * If the layout hasn't seemed to have changed, it might be that the\n * element is visually in the same place in the document but its position\n * relative to its parent has indeed changed. So here we check for that.\n */\n const hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeLayoutChanged;\n if (this.options.layoutRoot ||\n this.resumeFrom ||\n hasOnlyRelativeTargetChanged ||\n (hasLayoutChanged &&\n (hasTargetChanged || !this.currentAnimation))) {\n if (this.resumeFrom) {\n this.resumingFrom = this.resumeFrom;\n this.resumingFrom.resumingFrom = undefined;\n }\n const animationOptions = {\n ...getValueTransition(layoutTransition, \"layout\"),\n onPlay: onLayoutAnimationStart,\n onComplete: onLayoutAnimationComplete,\n };\n if (visualElement.shouldReduceMotion ||\n this.options.layoutRoot) {\n animationOptions.delay = 0;\n animationOptions.type = false;\n }\n this.startAnimation(animationOptions);\n /**\n * Set animation origin after starting animation to avoid layout jump\n * caused by stopping previous layout animation\n */\n this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);\n }\n else {\n /**\n * If the layout hasn't changed and we have an animation that hasn't started yet,\n * finish it immediately. Otherwise it will be animating from a location\n * that was probably never commited to screen and look like a jumpy box.\n */\n if (!hasLayoutChanged) {\n finishAnimation(this);\n }\n if (this.isLead() && this.options.onExitComplete) {\n this.options.onExitComplete();\n }\n }\n this.targetLayout = newLayout;\n });\n }\n }\n unmount() {\n this.options.layoutId && this.willUpdate();\n this.root.nodes.remove(this);\n const stack = this.getStack();\n stack && stack.remove(this);\n this.parent && this.parent.children.delete(this);\n this.instance = undefined;\n this.eventHandlers.clear();\n cancelFrame(this.updateProjection);\n }\n // only on the root\n blockUpdate() {\n this.updateManuallyBlocked = true;\n }\n unblockUpdate() {\n this.updateManuallyBlocked = false;\n }\n isUpdateBlocked() {\n return this.updateManuallyBlocked || this.updateBlockedByResize;\n }\n isTreeAnimationBlocked() {\n return (this.isAnimationBlocked ||\n (this.parent && this.parent.isTreeAnimationBlocked()) ||\n false);\n }\n // Note: currently only running on root node\n startUpdate() {\n if (this.isUpdateBlocked())\n return;\n this.isUpdating = true;\n this.nodes && this.nodes.forEach(resetSkewAndRotation);\n this.animationId++;\n }\n getTransformTemplate() {\n const { visualElement } = this.options;\n return visualElement && visualElement.getProps().transformTemplate;\n }\n willUpdate(shouldNotifyListeners = true) {\n this.root.hasTreeAnimated = true;\n if (this.root.isUpdateBlocked()) {\n this.options.onExitComplete && this.options.onExitComplete();\n return;\n }\n /**\n * If we're running optimised appear animations then these must be\n * cancelled before measuring the DOM. This is so we can measure\n * the true layout of the element rather than the WAAPI animation\n * which will be unaffected by the resetSkewAndRotate step.\n *\n * Note: This is a DOM write. Worst case scenario is this is sandwiched\n * between other snapshot reads which will cause unnecessary style recalculations.\n * This has to happen here though, as we don't yet know which nodes will need\n * snapshots in startUpdate(), but we only want to cancel optimised animations\n * if a layout animation measurement is actually going to be affected by them.\n */\n if (window.MotionCancelOptimisedAnimation &&\n !this.hasCheckedOptimisedAppear) {\n cancelTreeOptimisedTransformAnimations(this);\n }\n !this.root.isUpdating && this.root.startUpdate();\n if (this.isLayoutDirty)\n return;\n this.isLayoutDirty = true;\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.shouldResetTransform = true;\n node.updateScroll(\"snapshot\");\n if (node.options.layoutRoot) {\n node.willUpdate(false);\n }\n }\n const { layoutId, layout } = this.options;\n if (layoutId === undefined && !layout)\n return;\n const transformTemplate = this.getTransformTemplate();\n this.prevTransformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n this.updateSnapshot();\n shouldNotifyListeners && this.notifyListeners(\"willUpdate\");\n }\n update() {\n this.updateScheduled = false;\n const updateWasBlocked = this.isUpdateBlocked();\n // When doing an instant transition, we skip the layout update,\n // but should still clean up the measurements so that the next\n // snapshot could be taken correctly.\n if (updateWasBlocked) {\n this.unblockUpdate();\n this.clearAllSnapshots();\n this.nodes.forEach(clearMeasurements);\n return;\n }\n /**\n * If this is a repeat of didUpdate then ignore the animation.\n */\n if (this.animationId <= this.animationCommitId) {\n this.nodes.forEach(clearIsLayoutDirty);\n return;\n }\n this.animationCommitId = this.animationId;\n if (!this.isUpdating) {\n this.nodes.forEach(clearIsLayoutDirty);\n }\n else {\n this.isUpdating = false;\n /**\n * Write\n */\n this.nodes.forEach(resetTransformStyle);\n /**\n * Read ==================\n */\n // Update layout measurements of updated children\n this.nodes.forEach(updateLayout);\n /**\n * Write\n */\n // Notify listeners that the layout is updated\n this.nodes.forEach(notifyLayoutUpdate);\n }\n this.clearAllSnapshots();\n /**\n * Manually flush any pending updates. Ideally\n * we could leave this to the following requestAnimationFrame but this seems\n * to leave a flash of incorrectly styled content.\n */\n const now = time.now();\n frameData.delta = clamp(0, 1000 / 60, now - frameData.timestamp);\n frameData.timestamp = now;\n frameData.isProcessing = true;\n frameSteps.update.process(frameData);\n frameSteps.preRender.process(frameData);\n frameSteps.render.process(frameData);\n frameData.isProcessing = false;\n }\n didUpdate() {\n if (!this.updateScheduled) {\n this.updateScheduled = true;\n microtask.read(this.scheduleUpdate);\n }\n }\n clearAllSnapshots() {\n this.nodes.forEach(clearSnapshot);\n this.sharedNodes.forEach(removeLeadSnapshots);\n }\n scheduleUpdateProjection() {\n if (!this.projectionUpdateScheduled) {\n this.projectionUpdateScheduled = true;\n frame.preRender(this.updateProjection, false, true);\n }\n }\n scheduleCheckAfterUnmount() {\n /**\n * If the unmounting node is in a layoutGroup and did trigger a willUpdate,\n * we manually call didUpdate to give a chance to the siblings to animate.\n * Otherwise, cleanup all snapshots to prevents future nodes from reusing them.\n */\n frame.postRender(() => {\n if (this.isLayoutDirty) {\n this.root.didUpdate();\n }\n else {\n this.root.checkUpdateFailed();\n }\n });\n }\n /**\n * Update measurements\n */\n updateSnapshot() {\n if (this.snapshot || !this.instance)\n return;\n this.snapshot = this.measure();\n if (this.snapshot &&\n !calcLength(this.snapshot.measuredBox.x) &&\n !calcLength(this.snapshot.measuredBox.y)) {\n this.snapshot = undefined;\n }\n }\n updateLayout() {\n if (!this.instance)\n return;\n this.updateScroll();\n if (!(this.options.alwaysMeasureLayout && this.isLead()) &&\n !this.isLayoutDirty) {\n return;\n }\n /**\n * When a node is mounted, it simply resumes from the prevLead's\n * snapshot instead of taking a new one, but the ancestors scroll\n * might have updated while the prevLead is unmounted. We need to\n * update the scroll again to make sure the layout we measure is\n * up to date.\n */\n if (this.resumeFrom && !this.resumeFrom.instance) {\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.updateScroll();\n }\n }\n const prevLayout = this.layout;\n this.layout = this.measure(false);\n this.layoutCorrected = createBox();\n this.isLayoutDirty = false;\n this.projectionDelta = undefined;\n this.notifyListeners(\"measure\", this.layout.layoutBox);\n const { visualElement } = this.options;\n visualElement &&\n visualElement.notify(\"LayoutMeasure\", this.layout.layoutBox, prevLayout ? prevLayout.layoutBox : undefined);\n }\n updateScroll(phase = \"measure\") {\n let needsMeasurement = Boolean(this.options.layoutScroll && this.instance);\n if (this.scroll &&\n this.scroll.animationId === this.root.animationId &&\n this.scroll.phase === phase) {\n needsMeasurement = false;\n }\n if (needsMeasurement && this.instance) {\n const isRoot = checkIsScrollRoot(this.instance);\n this.scroll = {\n animationId: this.root.animationId,\n phase,\n isRoot,\n offset: measureScroll(this.instance),\n wasRoot: this.scroll ? this.scroll.isRoot : isRoot,\n };\n }\n }\n resetTransform() {\n if (!resetTransform)\n return;\n const isResetRequested = this.isLayoutDirty ||\n this.shouldResetTransform ||\n this.options.alwaysMeasureLayout;\n const hasProjection = this.projectionDelta && !isDeltaZero(this.projectionDelta);\n const transformTemplate = this.getTransformTemplate();\n const transformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n const transformTemplateHasChanged = transformTemplateValue !== this.prevTransformTemplateValue;\n if (isResetRequested &&\n this.instance &&\n (hasProjection ||\n hasTransform(this.latestValues) ||\n transformTemplateHasChanged)) {\n resetTransform(this.instance, transformTemplateValue);\n this.shouldResetTransform = false;\n this.scheduleRender();\n }\n }\n measure(removeTransform = true) {\n const pageBox = this.measurePageBox();\n let layoutBox = this.removeElementScroll(pageBox);\n /**\n * Measurements taken during the pre-render stage\n * still have transforms applied so we remove them\n * via calculation.\n */\n if (removeTransform) {\n layoutBox = this.removeTransform(layoutBox);\n }\n roundBox(layoutBox);\n return {\n animationId: this.root.animationId,\n measuredBox: pageBox,\n layoutBox,\n latestValues: {},\n source: this.id,\n };\n }\n measurePageBox() {\n const { visualElement } = this.options;\n if (!visualElement)\n return createBox();\n const box = visualElement.measureViewportBox();\n const wasInScrollRoot = this.scroll?.wasRoot || this.path.some(checkNodeWasScrollRoot);\n if (!wasInScrollRoot) {\n // Remove viewport scroll to give page-relative coordinates\n const { scroll } = this.root;\n if (scroll) {\n translateAxis(box.x, scroll.offset.x);\n translateAxis(box.y, scroll.offset.y);\n }\n }\n return box;\n }\n removeElementScroll(box) {\n const boxWithoutScroll = createBox();\n copyBoxInto(boxWithoutScroll, box);\n if (this.scroll?.wasRoot) {\n return boxWithoutScroll;\n }\n /**\n * Performance TODO: Keep a cumulative scroll offset down the tree\n * rather than loop back up the path.\n */\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n const { scroll, options } = node;\n if (node !== this.root && scroll && options.layoutScroll) {\n /**\n * If this is a new scroll root, we want to remove all previous scrolls\n * from the viewport box.\n */\n if (scroll.wasRoot) {\n copyBoxInto(boxWithoutScroll, box);\n }\n translateAxis(boxWithoutScroll.x, scroll.offset.x);\n translateAxis(boxWithoutScroll.y, scroll.offset.y);\n }\n }\n return boxWithoutScroll;\n }\n applyTransform(box, transformOnly = false) {\n const withTransforms = createBox();\n copyBoxInto(withTransforms, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!transformOnly &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(withTransforms, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (!hasTransform(node.latestValues))\n continue;\n transformBox(withTransforms, node.latestValues);\n }\n if (hasTransform(this.latestValues)) {\n transformBox(withTransforms, this.latestValues);\n }\n return withTransforms;\n }\n removeTransform(box) {\n const boxWithoutTransform = createBox();\n copyBoxInto(boxWithoutTransform, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!node.instance)\n continue;\n if (!hasTransform(node.latestValues))\n continue;\n hasScale(node.latestValues) && node.updateSnapshot();\n const sourceBox = createBox();\n const nodeBox = node.measurePageBox();\n copyBoxInto(sourceBox, nodeBox);\n removeBoxTransforms(boxWithoutTransform, node.latestValues, node.snapshot ? node.snapshot.layoutBox : undefined, sourceBox);\n }\n if (hasTransform(this.latestValues)) {\n removeBoxTransforms(boxWithoutTransform, this.latestValues);\n }\n return boxWithoutTransform;\n }\n setTargetDelta(delta) {\n this.targetDelta = delta;\n this.root.scheduleUpdateProjection();\n this.isProjectionDirty = true;\n }\n setOptions(options) {\n this.options = {\n ...this.options,\n ...options,\n crossfade: options.crossfade !== undefined ? options.crossfade : true,\n };\n }\n clearMeasurements() {\n this.scroll = undefined;\n this.layout = undefined;\n this.snapshot = undefined;\n this.prevTransformTemplateValue = undefined;\n this.targetDelta = undefined;\n this.target = undefined;\n this.isLayoutDirty = false;\n }\n forceRelativeParentToResolveTarget() {\n if (!this.relativeParent)\n return;\n /**\n * If the parent target isn't up-to-date, force it to update.\n * This is an unfortunate de-optimisation as it means any updating relative\n * projection will cause all the relative parents to recalculate back\n * up the tree.\n */\n if (this.relativeParent.resolvedRelativeTargetAt !==\n frameData.timestamp) {\n this.relativeParent.resolveTargetDelta(true);\n }\n }\n resolveTargetDelta(forceRecalculation = false) {\n /**\n * Once the dirty status of nodes has been spread through the tree, we also\n * need to check if we have a shared node of a different depth that has itself\n * been dirtied.\n */\n const lead = this.getLead();\n this.isProjectionDirty || (this.isProjectionDirty = lead.isProjectionDirty);\n this.isTransformDirty || (this.isTransformDirty = lead.isTransformDirty);\n this.isSharedProjectionDirty || (this.isSharedProjectionDirty = lead.isSharedProjectionDirty);\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n /**\n * We don't use transform for this step of processing so we don't\n * need to check whether any nodes have changed transform.\n */\n const canSkip = !(forceRecalculation ||\n (isShared && this.isSharedProjectionDirty) ||\n this.isProjectionDirty ||\n this.parent?.isProjectionDirty ||\n this.attemptToResolveRelativeTarget ||\n this.root.updateBlockedByResize);\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If we have no layout, we can't perform projection, so early return\n */\n if (!this.layout || !(layout || layoutId))\n return;\n this.resolvedRelativeTargetAt = frameData.timestamp;\n /**\n * If we don't have a targetDelta but do have a layout, we can attempt to resolve\n * a relativeParent. This will allow a component to perform scale correction\n * even if no animation has started.\n */\n if (!this.targetDelta && !this.relativeTarget) {\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n relativeParent.layout &&\n this.animationProgress !== 1) {\n this.relativeParent = relativeParent;\n this.forceRelativeParentToResolveTarget();\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.layout.layoutBox, relativeParent.layout.layoutBox);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * If we have no relative target or no target delta our target isn't valid\n * for this frame.\n */\n if (!this.relativeTarget && !this.targetDelta)\n return;\n /**\n * Lazy-init target data structure\n */\n if (!this.target) {\n this.target = createBox();\n this.targetWithTransforms = createBox();\n }\n /**\n * If we've got a relative box for this component, resolve it into a target relative to the parent.\n */\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.relativeParent &&\n this.relativeParent.target) {\n this.forceRelativeParentToResolveTarget();\n calcRelativeBox(this.target, this.relativeTarget, this.relativeParent.target);\n /**\n * If we've only got a targetDelta, resolve it into a target\n */\n }\n else if (this.targetDelta) {\n if (Boolean(this.resumingFrom)) {\n // TODO: This is creating a new object every frame\n this.target = this.applyTransform(this.layout.layoutBox);\n }\n else {\n copyBoxInto(this.target, this.layout.layoutBox);\n }\n applyBoxDelta(this.target, this.targetDelta);\n }\n else {\n /**\n * If no target, use own layout as target\n */\n copyBoxInto(this.target, this.layout.layoutBox);\n }\n /**\n * If we've been told to attempt to resolve a relative target, do so.\n */\n if (this.attemptToResolveRelativeTarget) {\n this.attemptToResolveRelativeTarget = false;\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n Boolean(relativeParent.resumingFrom) ===\n Boolean(this.resumingFrom) &&\n !relativeParent.options.layoutScroll &&\n relativeParent.target &&\n this.animationProgress !== 1) {\n this.relativeParent = relativeParent;\n this.forceRelativeParentToResolveTarget();\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.target, relativeParent.target);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * Increase debug counter for resolved target deltas\n */\n if (statsBuffer.value) {\n metrics.calculatedTargetDeltas++;\n }\n }\n getClosestProjectingParent() {\n if (!this.parent ||\n hasScale(this.parent.latestValues) ||\n has2DTranslate(this.parent.latestValues)) {\n return undefined;\n }\n if (this.parent.isProjecting()) {\n return this.parent;\n }\n else {\n return this.parent.getClosestProjectingParent();\n }\n }\n isProjecting() {\n return Boolean((this.relativeTarget ||\n this.targetDelta ||\n this.options.layoutRoot) &&\n this.layout);\n }\n calcProjection() {\n const lead = this.getLead();\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n let canSkip = true;\n /**\n * If this is a normal layout animation and neither this node nor its nearest projecting\n * is dirty then we can't skip.\n */\n if (this.isProjectionDirty || this.parent?.isProjectionDirty) {\n canSkip = false;\n }\n /**\n * If this is a shared layout animation and this node's shared projection is dirty then\n * we can't skip.\n */\n if (isShared &&\n (this.isSharedProjectionDirty || this.isTransformDirty)) {\n canSkip = false;\n }\n /**\n * If we have resolved the target this frame we must recalculate the\n * projection to ensure it visually represents the internal calculations.\n */\n if (this.resolvedRelativeTargetAt === frameData.timestamp) {\n canSkip = false;\n }\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If this section of the tree isn't animating we can\n * delete our target sources for the following frame.\n */\n this.isTreeAnimating = Boolean((this.parent && this.parent.isTreeAnimating) ||\n this.currentAnimation ||\n this.pendingAnimation);\n if (!this.isTreeAnimating) {\n this.targetDelta = this.relativeTarget = undefined;\n }\n if (!this.layout || !(layout || layoutId))\n return;\n /**\n * Reset the corrected box with the latest values from box, as we're then going\n * to perform mutative operations on it.\n */\n copyBoxInto(this.layoutCorrected, this.layout.layoutBox);\n /**\n * Record previous tree scales before updating.\n */\n const prevTreeScaleX = this.treeScale.x;\n const prevTreeScaleY = this.treeScale.y;\n /**\n * Apply all the parent deltas to this box to produce the corrected box. This\n * is the layout box, as it will appear on screen as a result of the transforms of its parents.\n */\n applyTreeDeltas(this.layoutCorrected, this.treeScale, this.path, isShared);\n /**\n * If this layer needs to perform scale correction but doesn't have a target,\n * use the layout as the target.\n */\n if (lead.layout &&\n !lead.target &&\n (this.treeScale.x !== 1 || this.treeScale.y !== 1)) {\n lead.target = lead.layout.layoutBox;\n lead.targetWithTransforms = createBox();\n }\n const { target } = lead;\n if (!target) {\n /**\n * If we don't have a target to project into, but we were previously\n * projecting, we want to remove the stored transform and schedule\n * a render to ensure the elements reflect the removed transform.\n */\n if (this.prevProjectionDelta) {\n this.createProjectionDeltas();\n this.scheduleRender();\n }\n return;\n }\n if (!this.projectionDelta || !this.prevProjectionDelta) {\n this.createProjectionDeltas();\n }\n else {\n copyAxisDeltaInto(this.prevProjectionDelta.x, this.projectionDelta.x);\n copyAxisDeltaInto(this.prevProjectionDelta.y, this.projectionDelta.y);\n }\n /**\n * Update the delta between the corrected box and the target box before user-set transforms were applied.\n * This will allow us to calculate the corrected borderRadius and boxShadow to compensate\n * for our layout reprojection, but still allow them to be scaled correctly by the user.\n * It might be that to simplify this we may want to accept that user-set scale is also corrected\n * and we wouldn't have to keep and calc both deltas, OR we could support a user setting\n * to allow people to choose whether these styles are corrected based on just the\n * layout reprojection or the final bounding box.\n */\n calcBoxDelta(this.projectionDelta, this.layoutCorrected, target, this.latestValues);\n if (this.treeScale.x !== prevTreeScaleX ||\n this.treeScale.y !== prevTreeScaleY ||\n !axisDeltaEquals(this.projectionDelta.x, this.prevProjectionDelta.x) ||\n !axisDeltaEquals(this.projectionDelta.y, this.prevProjectionDelta.y)) {\n this.hasProjected = true;\n this.scheduleRender();\n this.notifyListeners(\"projectionUpdate\", target);\n }\n /**\n * Increase debug counter for recalculated projections\n */\n if (statsBuffer.value) {\n metrics.calculatedProjections++;\n }\n }\n hide() {\n this.isVisible = false;\n // TODO: Schedule render\n }\n show() {\n this.isVisible = true;\n // TODO: Schedule render\n }\n scheduleRender(notifyAll = true) {\n this.options.visualElement?.scheduleRender();\n if (notifyAll) {\n const stack = this.getStack();\n stack && stack.scheduleRender();\n }\n if (this.resumingFrom && !this.resumingFrom.instance) {\n this.resumingFrom = undefined;\n }\n }\n createProjectionDeltas() {\n this.prevProjectionDelta = createDelta();\n this.projectionDelta = createDelta();\n this.projectionDeltaWithTransform = createDelta();\n }\n setAnimationOrigin(delta, hasOnlyRelativeTargetChanged = false) {\n const snapshot = this.snapshot;\n const snapshotLatestValues = snapshot ? snapshot.latestValues : {};\n const mixedValues = { ...this.latestValues };\n const targetDelta = createDelta();\n if (!this.relativeParent ||\n !this.relativeParent.options.layoutRoot) {\n this.relativeTarget = this.relativeTargetOrigin = undefined;\n }\n this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;\n const relativeLayout = createBox();\n const snapshotSource = snapshot ? snapshot.source : undefined;\n const layoutSource = this.layout ? this.layout.source : undefined;\n const isSharedLayoutAnimation = snapshotSource !== layoutSource;\n const stack = this.getStack();\n const isOnlyMember = !stack || stack.members.length <= 1;\n const shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation &&\n !isOnlyMember &&\n this.options.crossfade === true &&\n !this.path.some(hasOpacityCrossfade));\n this.animationProgress = 0;\n let prevRelativeTarget;\n this.mixTargetDelta = (latest) => {\n const progress = latest / 1000;\n mixAxisDelta(targetDelta.x, delta.x, progress);\n mixAxisDelta(targetDelta.y, delta.y, progress);\n this.setTargetDelta(targetDelta);\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.layout &&\n this.relativeParent &&\n this.relativeParent.layout) {\n calcRelativePosition(relativeLayout, this.layout.layoutBox, this.relativeParent.layout.layoutBox);\n mixBox(this.relativeTarget, this.relativeTargetOrigin, relativeLayout, progress);\n /**\n * If this is an unchanged relative target we can consider the\n * projection not dirty.\n */\n if (prevRelativeTarget &&\n boxEquals(this.relativeTarget, prevRelativeTarget)) {\n this.isProjectionDirty = false;\n }\n if (!prevRelativeTarget)\n prevRelativeTarget = createBox();\n copyBoxInto(prevRelativeTarget, this.relativeTarget);\n }\n if (isSharedLayoutAnimation) {\n this.animationValues = mixedValues;\n mixValues(mixedValues, snapshotLatestValues, this.latestValues, progress, shouldCrossfadeOpacity, isOnlyMember);\n }\n this.root.scheduleUpdateProjection();\n this.scheduleRender();\n this.animationProgress = progress;\n };\n this.mixTargetDelta(this.options.layoutRoot ? 1000 : 0);\n }\n startAnimation(options) {\n this.notifyListeners(\"animationStart\");\n this.currentAnimation?.stop();\n this.resumingFrom?.currentAnimation?.stop();\n if (this.pendingAnimation) {\n cancelFrame(this.pendingAnimation);\n this.pendingAnimation = undefined;\n }\n /**\n * Start the animation in the next frame to have a frame with progress 0,\n * where the target is the same as when the animation started, so we can\n * calculate the relative positions correctly for instant transitions.\n */\n this.pendingAnimation = frame.update(() => {\n globalProjectionState.hasAnimatedSinceResize = true;\n activeAnimations.layout++;\n this.motionValue || (this.motionValue = motionValue(0));\n this.currentAnimation = animateSingleValue(this.motionValue, [0, 1000], {\n ...options,\n velocity: 0,\n isSync: true,\n onUpdate: (latest) => {\n this.mixTargetDelta(latest);\n options.onUpdate && options.onUpdate(latest);\n },\n onStop: () => {\n activeAnimations.layout--;\n },\n onComplete: () => {\n activeAnimations.layout--;\n options.onComplete && options.onComplete();\n this.completeAnimation();\n },\n });\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = this.currentAnimation;\n }\n this.pendingAnimation = undefined;\n });\n }\n completeAnimation() {\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = undefined;\n this.resumingFrom.preserveOpacity = undefined;\n }\n const stack = this.getStack();\n stack && stack.exitAnimationComplete();\n this.resumingFrom =\n this.currentAnimation =\n this.animationValues =\n undefined;\n this.notifyListeners(\"animationComplete\");\n }\n finishAnimation() {\n if (this.currentAnimation) {\n this.mixTargetDelta && this.mixTargetDelta(animationTarget);\n this.currentAnimation.stop();\n }\n this.completeAnimation();\n }\n applyTransformsToTarget() {\n const lead = this.getLead();\n let { targetWithTransforms, target, layout, latestValues } = lead;\n if (!targetWithTransforms || !target || !layout)\n return;\n /**\n * If we're only animating position, and this element isn't the lead element,\n * then instead of projecting into the lead box we instead want to calculate\n * a new target that aligns the two boxes but maintains the layout shape.\n */\n if (this !== lead &&\n this.layout &&\n layout &&\n shouldAnimatePositionOnly(this.options.animationType, this.layout.layoutBox, layout.layoutBox)) {\n target = this.target || createBox();\n const xLength = calcLength(this.layout.layoutBox.x);\n target.x.min = lead.target.x.min;\n target.x.max = target.x.min + xLength;\n const yLength = calcLength(this.layout.layoutBox.y);\n target.y.min = lead.target.y.min;\n target.y.max = target.y.min + yLength;\n }\n copyBoxInto(targetWithTransforms, target);\n /**\n * Apply the latest user-set transforms to the targetBox to produce the targetBoxFinal.\n * This is the final box that we will then project into by calculating a transform delta and\n * applying it to the corrected box.\n */\n transformBox(targetWithTransforms, latestValues);\n /**\n * Update the delta between the corrected box and the final target box, after\n * user-set transforms are applied to it. This will be used by the renderer to\n * create a transform style that will reproject the element from its layout layout\n * into the desired bounding box.\n */\n calcBoxDelta(this.projectionDeltaWithTransform, this.layoutCorrected, targetWithTransforms, latestValues);\n }\n registerSharedNode(layoutId, node) {\n if (!this.sharedNodes.has(layoutId)) {\n this.sharedNodes.set(layoutId, new NodeStack());\n }\n const stack = this.sharedNodes.get(layoutId);\n stack.add(node);\n const config = node.options.initialPromotionConfig;\n node.promote({\n transition: config ? config.transition : undefined,\n preserveFollowOpacity: config && config.shouldPreserveFollowOpacity\n ? config.shouldPreserveFollowOpacity(node)\n : undefined,\n });\n }\n isLead() {\n const stack = this.getStack();\n return stack ? stack.lead === this : true;\n }\n getLead() {\n const { layoutId } = this.options;\n return layoutId ? this.getStack()?.lead || this : this;\n }\n getPrevLead() {\n const { layoutId } = this.options;\n return layoutId ? this.getStack()?.prevLead : undefined;\n }\n getStack() {\n const { layoutId } = this.options;\n if (layoutId)\n return this.root.sharedNodes.get(layoutId);\n }\n promote({ needsReset, transition, preserveFollowOpacity, } = {}) {\n const stack = this.getStack();\n if (stack)\n stack.promote(this, preserveFollowOpacity);\n if (needsReset) {\n this.projectionDelta = undefined;\n this.needsReset = true;\n }\n if (transition)\n this.setOptions({ transition });\n }\n relegate() {\n const stack = this.getStack();\n if (stack) {\n return stack.relegate(this);\n }\n else {\n return false;\n }\n }\n resetSkewAndRotation() {\n const { visualElement } = this.options;\n if (!visualElement)\n return;\n // If there's no detected skew or rotation values, we can early return without a forced render.\n let hasDistortingTransform = false;\n /**\n * An unrolled check for rotation values. Most elements don't have any rotation and\n * skipping the nested loop and new object creation is 50% faster.\n */\n const { latestValues } = visualElement;\n if (latestValues.z ||\n latestValues.rotate ||\n latestValues.rotateX ||\n latestValues.rotateY ||\n latestValues.rotateZ ||\n latestValues.skewX ||\n latestValues.skewY) {\n hasDistortingTransform = true;\n }\n // If there's no distorting values, we don't need to do any more.\n if (!hasDistortingTransform)\n return;\n const resetValues = {};\n if (latestValues.z) {\n resetDistortingTransform(\"z\", visualElement, resetValues, this.animationValues);\n }\n // Check the skew and rotate value of all axes and reset to 0\n for (let i = 0; i < transformAxes.length; i++) {\n resetDistortingTransform(`rotate${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n resetDistortingTransform(`skew${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n }\n // Force a render of this element to apply the transform with all skews and rotations\n // set to 0.\n visualElement.render();\n // Put back all the values we reset\n for (const key in resetValues) {\n visualElement.setStaticValue(key, resetValues[key]);\n if (this.animationValues) {\n this.animationValues[key] = resetValues[key];\n }\n }\n // Schedule a render for the next frame. This ensures we won't visually\n // see the element with the reset rotate value applied.\n visualElement.scheduleRender();\n }\n applyProjectionStyles(targetStyle, // CSSStyleDeclaration - doesn't allow numbers to be assigned to properties\n styleProp) {\n if (!this.instance || this.isSVG)\n return;\n if (!this.isVisible) {\n targetStyle.visibility = \"hidden\";\n return;\n }\n const transformTemplate = this.getTransformTemplate();\n if (this.needsReset) {\n this.needsReset = false;\n targetStyle.visibility = \"\";\n targetStyle.opacity = \"\";\n targetStyle.pointerEvents =\n resolveMotionValue(styleProp?.pointerEvents) || \"\";\n targetStyle.transform = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : \"none\";\n return;\n }\n const lead = this.getLead();\n if (!this.projectionDelta || !this.layout || !lead.target) {\n if (this.options.layoutId) {\n targetStyle.opacity =\n this.latestValues.opacity !== undefined\n ? this.latestValues.opacity\n : 1;\n targetStyle.pointerEvents =\n resolveMotionValue(styleProp?.pointerEvents) || \"\";\n }\n if (this.hasProjected && !hasTransform(this.latestValues)) {\n targetStyle.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n this.hasProjected = false;\n }\n return;\n }\n targetStyle.visibility = \"\";\n const valuesToRender = lead.animationValues || lead.latestValues;\n this.applyTransformsToTarget();\n let transform = buildProjectionTransform(this.projectionDeltaWithTransform, this.treeScale, valuesToRender);\n if (transformTemplate) {\n transform = transformTemplate(valuesToRender, transform);\n }\n targetStyle.transform = transform;\n const { x, y } = this.projectionDelta;\n targetStyle.transformOrigin = `${x.origin * 100}% ${y.origin * 100}% 0`;\n if (lead.animationValues) {\n /**\n * If the lead component is animating, assign this either the entering/leaving\n * opacity\n */\n targetStyle.opacity =\n lead === this\n ? valuesToRender.opacity ??\n this.latestValues.opacity ??\n 1\n : this.preserveOpacity\n ? this.latestValues.opacity\n : valuesToRender.opacityExit;\n }\n else {\n /**\n * Or we're not animating at all, set the lead component to its layout\n * opacity and other components to hidden.\n */\n targetStyle.opacity =\n lead === this\n ? valuesToRender.opacity !== undefined\n ? valuesToRender.opacity\n : \"\"\n : valuesToRender.opacityExit !== undefined\n ? valuesToRender.opacityExit\n : 0;\n }\n /**\n * Apply scale correction\n */\n for (const key in scaleCorrectors) {\n if (valuesToRender[key] === undefined)\n continue;\n const { correct, applyTo, isCSSVariable } = scaleCorrectors[key];\n /**\n * Only apply scale correction to the value if we have an\n * active projection transform. Otherwise these values become\n * vulnerable to distortion if the element changes size without\n * a corresponding layout animation.\n */\n const corrected = transform === \"none\"\n ? valuesToRender[key]\n : correct(valuesToRender[key], lead);\n if (applyTo) {\n const num = applyTo.length;\n for (let i = 0; i < num; i++) {\n targetStyle[applyTo[i]] = corrected;\n }\n }\n else {\n // If this is a CSS variable, set it directly on the instance.\n // Replacing this function from creating styles to setting them\n // would be a good place to remove per frame object creation\n if (isCSSVariable) {\n this.options.visualElement.renderState.vars[key] = corrected;\n }\n else {\n targetStyle[key] = corrected;\n }\n }\n }\n /**\n * Disable pointer events on follow components. This is to ensure\n * that if a follow component covers a lead component it doesn't block\n * pointer events on the lead.\n */\n if (this.options.layoutId) {\n targetStyle.pointerEvents =\n lead === this\n ? resolveMotionValue(styleProp?.pointerEvents) || \"\"\n : \"none\";\n }\n }\n clearSnapshot() {\n this.resumeFrom = this.snapshot = undefined;\n }\n // Only run on root\n resetTree() {\n this.root.nodes.forEach((node) => node.currentAnimation?.stop());\n this.root.nodes.forEach(clearMeasurements);\n this.root.sharedNodes.clear();\n }\n };\n}\nfunction updateLayout(node) {\n node.updateLayout();\n}\nfunction notifyLayoutUpdate(node) {\n const snapshot = node.resumeFrom?.snapshot || node.snapshot;\n if (node.isLead() &&\n node.layout &&\n snapshot &&\n node.hasListeners(\"didUpdate\")) {\n const { layoutBox: layout, measuredBox: measuredLayout } = node.layout;\n const { animationType } = node.options;\n const isShared = snapshot.source !== node.layout.source;\n // TODO Maybe we want to also resize the layout snapshot so we don't trigger\n // animations for instance if layout=\"size\" and an element has only changed position\n if (animationType === \"size\") {\n eachAxis((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = calcLength(axisSnapshot);\n axisSnapshot.min = layout[axis].min;\n axisSnapshot.max = axisSnapshot.min + length;\n });\n }\n else if (shouldAnimatePositionOnly(animationType, snapshot.layoutBox, layout)) {\n eachAxis((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = calcLength(layout[axis]);\n axisSnapshot.max = axisSnapshot.min + length;\n /**\n * Ensure relative target gets resized and rerendererd\n */\n if (node.relativeTarget && !node.currentAnimation) {\n node.isProjectionDirty = true;\n node.relativeTarget[axis].max =\n node.relativeTarget[axis].min + length;\n }\n });\n }\n const layoutDelta = createDelta();\n calcBoxDelta(layoutDelta, layout, snapshot.layoutBox);\n const visualDelta = createDelta();\n if (isShared) {\n calcBoxDelta(visualDelta, node.applyTransform(measuredLayout, true), snapshot.measuredBox);\n }\n else {\n calcBoxDelta(visualDelta, layout, snapshot.layoutBox);\n }\n const hasLayoutChanged = !isDeltaZero(layoutDelta);\n let hasRelativeLayoutChanged = false;\n if (!node.resumeFrom) {\n const relativeParent = node.getClosestProjectingParent();\n /**\n * If the relativeParent is itself resuming from a different element then\n * the relative snapshot is not relavent\n */\n if (relativeParent && !relativeParent.resumeFrom) {\n const { snapshot: parentSnapshot, layout: parentLayout } = relativeParent;\n if (parentSnapshot && parentLayout) {\n const relativeSnapshot = createBox();\n calcRelativePosition(relativeSnapshot, snapshot.layoutBox, parentSnapshot.layoutBox);\n const relativeLayout = createBox();\n calcRelativePosition(relativeLayout, layout, parentLayout.layoutBox);\n if (!boxEqualsRounded(relativeSnapshot, relativeLayout)) {\n hasRelativeLayoutChanged = true;\n }\n if (relativeParent.options.layoutRoot) {\n node.relativeTarget = relativeLayout;\n node.relativeTargetOrigin = relativeSnapshot;\n node.relativeParent = relativeParent;\n }\n }\n }\n }\n node.notifyListeners(\"didUpdate\", {\n layout,\n snapshot,\n delta: visualDelta,\n layoutDelta,\n hasLayoutChanged,\n hasRelativeLayoutChanged,\n });\n }\n else if (node.isLead()) {\n const { onExitComplete } = node.options;\n onExitComplete && onExitComplete();\n }\n /**\n * Clearing transition\n * TODO: Investigate why this transition is being passed in as {type: false } from Framer\n * and why we need it at all\n */\n node.options.transition = undefined;\n}\nfunction propagateDirtyNodes(node) {\n /**\n * Increase debug counter for nodes encountered this frame\n */\n if (statsBuffer.value) {\n metrics.nodes++;\n }\n if (!node.parent)\n return;\n /**\n * If this node isn't projecting, propagate isProjectionDirty. It will have\n * no performance impact but it will allow the next child that *is* projecting\n * but *isn't* dirty to just check its parent to see if *any* ancestor needs\n * correcting.\n */\n if (!node.isProjecting()) {\n node.isProjectionDirty = node.parent.isProjectionDirty;\n }\n /**\n * Propagate isSharedProjectionDirty and isTransformDirty\n * throughout the whole tree. A future revision can take another look at\n * this but for safety we still recalcualte shared nodes.\n */\n node.isSharedProjectionDirty || (node.isSharedProjectionDirty = Boolean(node.isProjectionDirty ||\n node.parent.isProjectionDirty ||\n node.parent.isSharedProjectionDirty));\n node.isTransformDirty || (node.isTransformDirty = node.parent.isTransformDirty);\n}\nfunction cleanDirtyNodes(node) {\n node.isProjectionDirty =\n node.isSharedProjectionDirty =\n node.isTransformDirty =\n false;\n}\nfunction clearSnapshot(node) {\n node.clearSnapshot();\n}\nfunction clearMeasurements(node) {\n node.clearMeasurements();\n}\nfunction clearIsLayoutDirty(node) {\n node.isLayoutDirty = false;\n}\nfunction resetTransformStyle(node) {\n const { visualElement } = node.options;\n if (visualElement && visualElement.getProps().onBeforeLayoutMeasure) {\n visualElement.notify(\"BeforeLayoutMeasure\");\n }\n node.resetTransform();\n}\nfunction finishAnimation(node) {\n node.finishAnimation();\n node.targetDelta = node.relativeTarget = node.target = undefined;\n node.isProjectionDirty = true;\n}\nfunction resolveTargetDelta(node) {\n node.resolveTargetDelta();\n}\nfunction calcProjection(node) {\n node.calcProjection();\n}\nfunction resetSkewAndRotation(node) {\n node.resetSkewAndRotation();\n}\nfunction removeLeadSnapshots(stack) {\n stack.removeLeadSnapshot();\n}\nfunction mixAxisDelta(output, delta, p) {\n output.translate = mixNumber(delta.translate, 0, p);\n output.scale = mixNumber(delta.scale, 1, p);\n output.origin = delta.origin;\n output.originPoint = delta.originPoint;\n}\nfunction mixAxis(output, from, to, p) {\n output.min = mixNumber(from.min, to.min, p);\n output.max = mixNumber(from.max, to.max, p);\n}\nfunction mixBox(output, from, to, p) {\n mixAxis(output.x, from.x, to.x, p);\n mixAxis(output.y, from.y, to.y, p);\n}\nfunction hasOpacityCrossfade(node) {\n return (node.animationValues && node.animationValues.opacityExit !== undefined);\n}\nconst defaultLayoutTransition = {\n duration: 0.45,\n ease: [0.4, 0, 0.1, 1],\n};\nconst userAgentContains = (string) => typeof navigator !== \"undefined\" &&\n navigator.userAgent &&\n navigator.userAgent.toLowerCase().includes(string);\n/**\n * Measured bounding boxes must be rounded in Safari and\n * left untouched in Chrome, otherwise non-integer layouts within scaled-up elements\n * can appear to jump.\n */\nconst roundPoint = userAgentContains(\"applewebkit/\") && !userAgentContains(\"chrome/\")\n ? Math.round\n : noop;\nfunction roundAxis(axis) {\n // Round to the nearest .5 pixels to support subpixel layouts\n axis.min = roundPoint(axis.min);\n axis.max = roundPoint(axis.max);\n}\nfunction roundBox(box) {\n roundAxis(box.x);\n roundAxis(box.y);\n}\nfunction shouldAnimatePositionOnly(animationType, snapshot, layout) {\n return (animationType === \"position\" ||\n (animationType === \"preserve-aspect\" &&\n !isNear(aspectRatio(snapshot), aspectRatio(layout), 0.2)));\n}\nfunction checkNodeWasScrollRoot(node) {\n return node !== node.root && node.scroll?.wasRoot;\n}\n\nexport { cleanDirtyNodes, createProjectionNode, mixAxis, mixAxisDelta, mixBox, propagateDirtyNodes };\n","import { addDomEvent } from '../../events/add-dom-event.mjs';\nimport { createProjectionNode } from './create-projection-node.mjs';\n\nconst DocumentProjectionNode = createProjectionNode({\n attachResizeListener: (ref, notify) => addDomEvent(ref, \"resize\", notify),\n measureScroll: () => ({\n x: document.documentElement.scrollLeft || document.body.scrollLeft,\n y: document.documentElement.scrollTop || document.body.scrollTop,\n }),\n checkIsScrollRoot: () => true,\n});\n\nexport { DocumentProjectionNode };\n","import { createProjectionNode } from './create-projection-node.mjs';\nimport { DocumentProjectionNode } from './DocumentProjectionNode.mjs';\n\nconst rootProjectionNode = {\n current: undefined,\n};\nconst HTMLProjectionNode = createProjectionNode({\n measureScroll: (instance) => ({\n x: instance.scrollLeft,\n y: instance.scrollTop,\n }),\n defaultParent: () => {\n if (!rootProjectionNode.current) {\n const documentNode = new DocumentProjectionNode({});\n documentNode.mount(window);\n documentNode.setOptions({ layoutScroll: true });\n rootProjectionNode.current = documentNode;\n }\n return rootProjectionNode.current;\n },\n resetTransform: (instance, value) => {\n instance.style.transform = value !== undefined ? value : \"none\";\n },\n checkIsScrollRoot: (instance) => Boolean(window.getComputedStyle(instance).position === \"fixed\"),\n});\n\nexport { HTMLProjectionNode, rootProjectionNode };\n","import { DragGesture } from '../../gestures/drag/index.mjs';\nimport { PanGesture } from '../../gestures/pan/index.mjs';\nimport { MeasureLayout } from './layout/MeasureLayout.mjs';\nimport { HTMLProjectionNode } from '../../projection/node/HTMLProjectionNode.mjs';\n\nconst drag = {\n pan: {\n Feature: PanGesture,\n },\n drag: {\n Feature: DragGesture,\n ProjectionNode: HTMLProjectionNode,\n MeasureLayout,\n },\n};\n\nexport { drag };\n","function resolveElements(elementOrSelector, scope, selectorCache) {\n if (elementOrSelector instanceof EventTarget) {\n return [elementOrSelector];\n }\n else if (typeof elementOrSelector === \"string\") {\n let root = document;\n if (scope) {\n root = scope.current;\n }\n const elements = selectorCache?.[elementOrSelector] ??\n root.querySelectorAll(elementOrSelector);\n return elements ? Array.from(elements) : [];\n }\n return Array.from(elementOrSelector);\n}\n\nexport { resolveElements };\n","import { resolveElements } from '../../utils/resolve-elements.mjs';\n\nfunction setupGesture(elementOrSelector, options) {\n const elements = resolveElements(elementOrSelector);\n const gestureAbortController = new AbortController();\n const eventOptions = {\n passive: true,\n ...options,\n signal: gestureAbortController.signal,\n };\n const cancel = () => gestureAbortController.abort();\n return [elements, eventOptions, cancel];\n}\n\nexport { setupGesture };\n","import { isDragActive } from './drag/state/is-active.mjs';\nimport { setupGesture } from './utils/setup.mjs';\n\nfunction isValidHover(event) {\n return !(event.pointerType === \"touch\" || isDragActive());\n}\n/**\n * Create a hover gesture. hover() is different to .addEventListener(\"pointerenter\")\n * in that it has an easier syntax, filters out polyfilled touch events, interoperates\n * with drag gestures, and automatically removes the \"pointerennd\" event listener when the hover ends.\n *\n * @public\n */\nfunction hover(elementOrSelector, onHoverStart, options = {}) {\n const [elements, eventOptions, cancel] = setupGesture(elementOrSelector, options);\n const onPointerEnter = (enterEvent) => {\n if (!isValidHover(enterEvent))\n return;\n const { target } = enterEvent;\n const onHoverEnd = onHoverStart(target, enterEvent);\n if (typeof onHoverEnd !== \"function\" || !target)\n return;\n const onPointerLeave = (leaveEvent) => {\n if (!isValidHover(leaveEvent))\n return;\n onHoverEnd(leaveEvent);\n target.removeEventListener(\"pointerleave\", onPointerLeave);\n };\n target.addEventListener(\"pointerleave\", onPointerLeave, eventOptions);\n };\n elements.forEach((element) => {\n element.addEventListener(\"pointerenter\", onPointerEnter, eventOptions);\n });\n return cancel;\n}\n\nexport { hover };\n","import { hover, frame } from 'motion-dom';\nimport { extractEventInfo } from '../events/event-info.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\n\nfunction handleHoverEvent(node, event, lifecycle) {\n const { props } = node;\n if (node.animationState && props.whileHover) {\n node.animationState.setActive(\"whileHover\", lifecycle === \"Start\");\n }\n const eventName = (\"onHover\" + lifecycle);\n const callback = props[eventName];\n if (callback) {\n frame.postRender(() => callback(event, extractEventInfo(event)));\n }\n}\nclass HoverGesture extends Feature {\n mount() {\n const { current } = this.node;\n if (!current)\n return;\n this.unmount = hover(current, (_element, startEvent) => {\n handleHoverEvent(this.node, startEvent, \"Start\");\n return (endEvent) => handleHoverEvent(this.node, endEvent, \"End\");\n });\n }\n unmount() { }\n}\n\nexport { HoverGesture };\n","import { pipe } from 'motion-utils';\nimport { addDomEvent } from '../events/add-dom-event.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\n\nclass FocusGesture extends Feature {\n constructor() {\n super(...arguments);\n this.isActive = false;\n }\n onFocus() {\n let isFocusVisible = false;\n /**\n * If this element doesn't match focus-visible then don't\n * apply whileHover. But, if matches throws that focus-visible\n * is not a valid selector then in that browser outline styles will be applied\n * to the element by default and we want to match that behaviour with whileFocus.\n */\n try {\n isFocusVisible = this.node.current.matches(\":focus-visible\");\n }\n catch (e) {\n isFocusVisible = true;\n }\n if (!isFocusVisible || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", true);\n this.isActive = true;\n }\n onBlur() {\n if (!this.isActive || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", false);\n this.isActive = false;\n }\n mount() {\n this.unmount = pipe(addDomEvent(this.node.current, \"focus\", () => this.onFocus()), addDomEvent(this.node.current, \"blur\", () => this.onBlur()));\n }\n unmount() { }\n}\n\nexport { FocusGesture };\n","import { isObject } from 'motion-utils';\n\n/**\n * Checks if an element is an HTML element in a way\n * that works across iframes\n */\nfunction isHTMLElement(element) {\n return isObject(element) && \"offsetHeight\" in element;\n}\n\nexport { isHTMLElement };\n","/**\n * Recursively traverse up the tree to check whether the provided child node\n * is the parent or a descendant of it.\n *\n * @param parent - Element to find\n * @param child - Element to test against parent\n */\nconst isNodeOrChild = (parent, child) => {\n if (!child) {\n return false;\n }\n else if (parent === child) {\n return true;\n }\n else {\n return isNodeOrChild(parent, child.parentElement);\n }\n};\n\nexport { isNodeOrChild };\n","const focusableElements = new Set([\n \"BUTTON\",\n \"INPUT\",\n \"SELECT\",\n \"TEXTAREA\",\n \"A\",\n]);\nfunction isElementKeyboardAccessible(element) {\n return (focusableElements.has(element.tagName) ||\n element.tabIndex !== -1);\n}\n\nexport { isElementKeyboardAccessible };\n","const isPressing = new WeakSet();\n\nexport { isPressing };\n","import { isPressing } from './state.mjs';\n\n/**\n * Filter out events that are not \"Enter\" keys.\n */\nfunction filterEvents(callback) {\n return (event) => {\n if (event.key !== \"Enter\")\n return;\n callback(event);\n };\n}\nfunction firePointerEvent(target, type) {\n target.dispatchEvent(new PointerEvent(\"pointer\" + type, { isPrimary: true, bubbles: true }));\n}\nconst enableKeyboardPress = (focusEvent, eventOptions) => {\n const element = focusEvent.currentTarget;\n if (!element)\n return;\n const handleKeydown = filterEvents(() => {\n if (isPressing.has(element))\n return;\n firePointerEvent(element, \"down\");\n const handleKeyup = filterEvents(() => {\n firePointerEvent(element, \"up\");\n });\n const handleBlur = () => firePointerEvent(element, \"cancel\");\n element.addEventListener(\"keyup\", handleKeyup, eventOptions);\n element.addEventListener(\"blur\", handleBlur, eventOptions);\n });\n element.addEventListener(\"keydown\", handleKeydown, eventOptions);\n /**\n * Add an event listener that fires on blur to remove the keydown events.\n */\n element.addEventListener(\"blur\", () => element.removeEventListener(\"keydown\", handleKeydown), eventOptions);\n};\n\nexport { enableKeyboardPress };\n","import { isHTMLElement } from '../../utils/is-html-element.mjs';\nimport { isDragActive } from '../drag/state/is-active.mjs';\nimport { isNodeOrChild } from '../utils/is-node-or-child.mjs';\nimport { isPrimaryPointer } from '../utils/is-primary-pointer.mjs';\nimport { setupGesture } from '../utils/setup.mjs';\nimport { isElementKeyboardAccessible } from './utils/is-keyboard-accessible.mjs';\nimport { enableKeyboardPress } from './utils/keyboard.mjs';\nimport { isPressing } from './utils/state.mjs';\n\n/**\n * Filter out events that are not primary pointer events, or are triggering\n * while a Motion gesture is active.\n */\nfunction isValidPressEvent(event) {\n return isPrimaryPointer(event) && !isDragActive();\n}\n/**\n * Create a press gesture.\n *\n * Press is different to `\"pointerdown\"`, `\"pointerup\"` in that it\n * automatically filters out secondary pointer events like right\n * click and multitouch.\n *\n * It also adds accessibility support for keyboards, where\n * an element with a press gesture will receive focus and\n * trigger on Enter `\"keydown\"` and `\"keyup\"` events.\n *\n * This is different to a browser's `\"click\"` event, which does\n * respond to keyboards but only for the `\"click\"` itself, rather\n * than the press start and end/cancel. The element also needs\n * to be focusable for this to work, whereas a press gesture will\n * make an element focusable by default.\n *\n * @public\n */\nfunction press(targetOrSelector, onPressStart, options = {}) {\n const [targets, eventOptions, cancelEvents] = setupGesture(targetOrSelector, options);\n const startPress = (startEvent) => {\n const target = startEvent.currentTarget;\n if (!isValidPressEvent(startEvent))\n return;\n isPressing.add(target);\n const onPressEnd = onPressStart(target, startEvent);\n const onPointerEnd = (endEvent, success) => {\n window.removeEventListener(\"pointerup\", onPointerUp);\n window.removeEventListener(\"pointercancel\", onPointerCancel);\n if (isPressing.has(target)) {\n isPressing.delete(target);\n }\n if (!isValidPressEvent(endEvent)) {\n return;\n }\n if (typeof onPressEnd === \"function\") {\n onPressEnd(endEvent, { success });\n }\n };\n const onPointerUp = (upEvent) => {\n onPointerEnd(upEvent, target === window ||\n target === document ||\n options.useGlobalTarget ||\n isNodeOrChild(target, upEvent.target));\n };\n const onPointerCancel = (cancelEvent) => {\n onPointerEnd(cancelEvent, false);\n };\n window.addEventListener(\"pointerup\", onPointerUp, eventOptions);\n window.addEventListener(\"pointercancel\", onPointerCancel, eventOptions);\n };\n targets.forEach((target) => {\n const pointerDownTarget = options.useGlobalTarget ? window : target;\n pointerDownTarget.addEventListener(\"pointerdown\", startPress, eventOptions);\n if (isHTMLElement(target)) {\n target.addEventListener(\"focus\", (event) => enableKeyboardPress(event, eventOptions));\n if (!isElementKeyboardAccessible(target) &&\n !target.hasAttribute(\"tabindex\")) {\n target.tabIndex = 0;\n }\n }\n });\n return cancelEvents;\n}\n\nexport { press };\n","import { press, frame } from 'motion-dom';\nimport { extractEventInfo } from '../events/event-info.mjs';\nimport { Feature } from '../motion/features/Feature.mjs';\n\nfunction handlePressEvent(node, event, lifecycle) {\n const { props } = node;\n if (node.current instanceof HTMLButtonElement && node.current.disabled) {\n return;\n }\n if (node.animationState && props.whileTap) {\n node.animationState.setActive(\"whileTap\", lifecycle === \"Start\");\n }\n const eventName = (\"onTap\" + (lifecycle === \"End\" ? \"\" : lifecycle));\n const callback = props[eventName];\n if (callback) {\n frame.postRender(() => callback(event, extractEventInfo(event)));\n }\n}\nclass PressGesture extends Feature {\n mount() {\n const { current } = this.node;\n if (!current)\n return;\n this.unmount = press(current, (_element, startEvent) => {\n handlePressEvent(this.node, startEvent, \"Start\");\n return (endEvent, { success }) => handlePressEvent(this.node, endEvent, success ? \"End\" : \"Cancel\");\n }, { useGlobalTarget: this.node.props.globalTapTarget });\n }\n unmount() { }\n}\n\nexport { PressGesture };\n","/**\n * Map an IntersectionHandler callback to an element. We only ever make one handler for one\n * element, so even though these handlers might all be triggered by different\n * observers, we can keep them in the same map.\n */\nconst observerCallbacks = new WeakMap();\n/**\n * Multiple observers can be created for multiple element/document roots. Each with\n * different settings. So here we store dictionaries of observers to each root,\n * using serialised settings (threshold/margin) as lookup keys.\n */\nconst observers = new WeakMap();\nconst fireObserverCallback = (entry) => {\n const callback = observerCallbacks.get(entry.target);\n callback && callback(entry);\n};\nconst fireAllObserverCallbacks = (entries) => {\n entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver({ root, ...options }) {\n const lookupRoot = root || document;\n /**\n * If we don't have an observer lookup map for this root, create one.\n */\n if (!observers.has(lookupRoot)) {\n observers.set(lookupRoot, {});\n }\n const rootObservers = observers.get(lookupRoot);\n const key = JSON.stringify(options);\n /**\n * If we don't have an observer for this combination of root and settings,\n * create one.\n */\n if (!rootObservers[key]) {\n rootObservers[key] = new IntersectionObserver(fireAllObserverCallbacks, { root, ...options });\n }\n return rootObservers[key];\n}\nfunction observeIntersection(element, options, callback) {\n const rootInteresectionObserver = initIntersectionObserver(options);\n observerCallbacks.set(element, callback);\n rootInteresectionObserver.observe(element);\n return () => {\n observerCallbacks.delete(element);\n rootInteresectionObserver.unobserve(element);\n };\n}\n\nexport { observeIntersection };\n","import { Feature } from '../Feature.mjs';\nimport { observeIntersection } from './observers.mjs';\n\nconst thresholdNames = {\n some: 0,\n all: 1,\n};\nclass InViewFeature extends Feature {\n constructor() {\n super(...arguments);\n this.hasEnteredView = false;\n this.isInView = false;\n }\n startObserver() {\n this.unmount();\n const { viewport = {} } = this.node.getProps();\n const { root, margin: rootMargin, amount = \"some\", once } = viewport;\n const options = {\n root: root ? root.current : undefined,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n const onIntersectionUpdate = (entry) => {\n const { isIntersecting } = entry;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (this.isInView === isIntersecting)\n return;\n this.isInView = isIntersecting;\n /**\n * Handle hasEnteredView. If this is only meant to run once, and\n * element isn't visible, early return. Otherwise set hasEnteredView to true.\n */\n if (once && !isIntersecting && this.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n this.hasEnteredView = true;\n }\n if (this.node.animationState) {\n this.node.animationState.setActive(\"whileInView\", isIntersecting);\n }\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n const { onViewportEnter, onViewportLeave } = this.node.getProps();\n const callback = isIntersecting ? onViewportEnter : onViewportLeave;\n callback && callback(entry);\n };\n return observeIntersection(this.node.current, options, onIntersectionUpdate);\n }\n mount() {\n this.startObserver();\n }\n update() {\n if (typeof IntersectionObserver === \"undefined\")\n return;\n const { props, prevProps } = this.node;\n const hasOptionsChanged = [\"amount\", \"margin\", \"root\"].some(hasViewportOptionChanged(props, prevProps));\n if (hasOptionsChanged) {\n this.startObserver();\n }\n }\n unmount() { }\n}\nfunction hasViewportOptionChanged({ viewport = {} }, { viewport: prevViewport = {} } = {}) {\n return (name) => viewport[name] !== prevViewport[name];\n}\n\nexport { InViewFeature };\n","import { HoverGesture } from '../../gestures/hover.mjs';\nimport { FocusGesture } from '../../gestures/focus.mjs';\nimport { PressGesture } from '../../gestures/press.mjs';\nimport { InViewFeature } from './viewport/index.mjs';\n\nconst gestureAnimations = {\n inView: {\n Feature: InViewFeature,\n },\n tap: {\n Feature: PressGesture,\n },\n focus: {\n Feature: FocusGesture,\n },\n hover: {\n Feature: HoverGesture,\n },\n};\n\nexport { gestureAnimations };\n","import { HTMLProjectionNode } from '../../projection/node/HTMLProjectionNode.mjs';\nimport { MeasureLayout } from './layout/MeasureLayout.mjs';\n\nconst layout = {\n layout: {\n ProjectionNode: HTMLProjectionNode,\n MeasureLayout,\n },\n};\n\nexport { layout };\n","import { animations } from '../../../motion/features/animations.mjs';\nimport { drag } from '../../../motion/features/drag.mjs';\nimport { gestureAnimations } from '../../../motion/features/gestures.mjs';\nimport { layout } from '../../../motion/features/layout.mjs';\n\nconst featureBundle = {\n ...animations,\n ...gestureAnimations,\n ...drag,\n ...layout,\n};\n\nexport { featureBundle };\n","import { createDomVisualElement } from '../../dom/create-visual-element.mjs';\nimport { createMotionProxy } from '../create-proxy.mjs';\nimport { featureBundle } from './feature-bundle.mjs';\n\nconst motion = /*@__PURE__*/ createMotionProxy(featureBundle, createDomVisualElement);\n\nexport { motion };\n","import { MotionGlobalConfig } from 'motion-utils';\nimport { frameData } from './frame.mjs';\n\nlet now;\nfunction clearTime() {\n now = undefined;\n}\n/**\n * An eventloop-synchronous alternative to performance.now().\n *\n * Ensures that time measurements remain consistent within a synchronous context.\n * Usually calling performance.now() twice within the same synchronous context\n * will return different values which isn't useful for animations when we're usually\n * trying to sync animations to the same frame.\n */\nconst time = {\n now: () => {\n if (now === undefined) {\n time.set(frameData.isProcessing || MotionGlobalConfig.useManualTiming\n ? frameData.timestamp\n : performance.now());\n }\n return now;\n },\n set: (newTime) => {\n now = newTime;\n queueMicrotask(clearTime);\n },\n};\n\nexport { time };\n","// Adapted from https://gist.github.com/mjackson/5311256\nfunction hueToRgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n hue /= 360;\n saturation /= 100;\n lightness /= 100;\n let red = 0;\n let green = 0;\n let blue = 0;\n if (!saturation) {\n red = green = blue = lightness;\n }\n else {\n const q = lightness < 0.5\n ? lightness * (1 + saturation)\n : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n red = hueToRgb(p, q, hue + 1 / 3);\n green = hueToRgb(p, q, hue);\n blue = hueToRgb(p, q, hue - 1 / 3);\n }\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha,\n };\n}\n\nexport { hslaToRgba };\n","function mixImmediate(a, b) {\n return (p) => (p > 0 ? b : a);\n}\n\nexport { mixImmediate };\n","import { warning } from 'motion-utils';\nimport { hex } from '../../value/types/color/hex.mjs';\nimport { hsla } from '../../value/types/color/hsla.mjs';\nimport { hslaToRgba } from '../../value/types/color/hsla-to-rgba.mjs';\nimport { rgba } from '../../value/types/color/rgba.mjs';\nimport { mixImmediate } from './immediate.mjs';\nimport { mixNumber } from './number.mjs';\n\n// Linear color space blending\n// Explained https://www.youtube.com/watch?v=LKnqECcg6Gw\n// Demonstrated http://codepen.io/osublake/pen/xGVVaN\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n const expo = v * (to * to - fromExpo) + fromExpo;\n return expo < 0 ? 0 : Math.sqrt(expo);\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nfunction asRGBA(color) {\n const type = getColorType(color);\n warning(Boolean(type), `'${color}' is not an animatable color. Use the equivalent color code instead.`, \"color-not-animatable\");\n if (!Boolean(type))\n return false;\n let model = type.parse(color);\n if (type === hsla) {\n // TODO Remove this cast - needed since Motion's stricter typing\n model = hslaToRgba(model);\n }\n return model;\n}\nconst mixColor = (from, to) => {\n const fromRGBA = asRGBA(from);\n const toRGBA = asRGBA(to);\n if (!fromRGBA || !toRGBA) {\n return mixImmediate(from, to);\n }\n const blended = { ...fromRGBA };\n return (v) => {\n blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v);\n blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v);\n blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v);\n blended.alpha = mixNumber(fromRGBA.alpha, toRGBA.alpha, v);\n return rgba.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };\n","const invisibleValues = new Set([\"none\", \"hidden\"]);\n/**\n * Returns a function that, when provided a progress value between 0 and 1,\n * will return the \"none\" or \"hidden\" string only when the progress is that of\n * the origin or target.\n */\nfunction mixVisibility(origin, target) {\n if (invisibleValues.has(origin)) {\n return (p) => (p <= 0 ? origin : target);\n }\n else {\n return (p) => (p >= 1 ? target : origin);\n }\n}\n\nexport { invisibleValues, mixVisibility };\n","import { pipe, warning } from 'motion-utils';\nimport { isCSSVariableToken } from '../../animation/utils/is-css-variable.mjs';\nimport { color } from '../../value/types/color/index.mjs';\nimport { complex, analyseComplexValue } from '../../value/types/complex/index.mjs';\nimport { mixColor } from './color.mjs';\nimport { mixImmediate } from './immediate.mjs';\nimport { mixNumber as mixNumber$1 } from './number.mjs';\nimport { invisibleValues, mixVisibility } from './visibility.mjs';\n\nfunction mixNumber(a, b) {\n return (p) => mixNumber$1(a, b, p);\n}\nfunction getMixer(a) {\n if (typeof a === \"number\") {\n return mixNumber;\n }\n else if (typeof a === \"string\") {\n return isCSSVariableToken(a)\n ? mixImmediate\n : color.test(a)\n ? mixColor\n : mixComplex;\n }\n else if (Array.isArray(a)) {\n return mixArray;\n }\n else if (typeof a === \"object\") {\n return color.test(a) ? mixColor : mixObject;\n }\n return mixImmediate;\n}\nfunction mixArray(a, b) {\n const output = [...a];\n const numValues = output.length;\n const blendValue = a.map((v, i) => getMixer(v)(v, b[i]));\n return (p) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](p);\n }\n return output;\n };\n}\nfunction mixObject(a, b) {\n const output = { ...a, ...b };\n const blendValue = {};\n for (const key in output) {\n if (a[key] !== undefined && b[key] !== undefined) {\n blendValue[key] = getMixer(a[key])(a[key], b[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n}\nfunction matchOrder(origin, target) {\n const orderedOrigin = [];\n const pointers = { color: 0, var: 0, number: 0 };\n for (let i = 0; i < target.values.length; i++) {\n const type = target.types[i];\n const originIndex = origin.indexes[type][pointers[type]];\n const originValue = origin.values[originIndex] ?? 0;\n orderedOrigin[i] = originValue;\n pointers[type]++;\n }\n return orderedOrigin;\n}\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyseComplexValue(origin);\n const targetStats = analyseComplexValue(target);\n const canInterpolate = originStats.indexes.var.length === targetStats.indexes.var.length &&\n originStats.indexes.color.length === targetStats.indexes.color.length &&\n originStats.indexes.number.length >= targetStats.indexes.number.length;\n if (canInterpolate) {\n if ((invisibleValues.has(origin) &&\n !targetStats.values.length) ||\n (invisibleValues.has(target) &&\n !originStats.values.length)) {\n return mixVisibility(origin, target);\n }\n return pipe(mixArray(matchOrder(originStats, targetStats), targetStats.values), template);\n }\n else {\n warning(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`, \"complex-values-different\");\n return mixImmediate(origin, target);\n }\n};\n\nexport { getMixer, mixArray, mixComplex, mixObject };\n","import { getMixer } from './complex.mjs';\nimport { mixNumber } from './number.mjs';\n\nfunction mix(from, to, p) {\n if (typeof from === \"number\" &&\n typeof to === \"number\" &&\n typeof p === \"number\") {\n return mixNumber(from, to, p);\n }\n const mixer = getMixer(from);\n return mixer(from, to);\n}\n\nexport { mix };\n","import { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.mjs';\n\nconst useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\n","function isNullish(v) {\n return v == null;\n}\n\nexport { isNullish };\n","const singleColorRegex = /^(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))$/iu;\n\nexport { singleColorRegex };\n","import { floatRegex } from '../utils/float-regex.mjs';\nimport { isNullish } from '../utils/is-nullish.mjs';\nimport { singleColorRegex } from '../utils/single-color-regex.mjs';\n\n/**\n * Returns true if the provided string is a color, ie rgba(0,0,0,0) or #000,\n * but false if a number or multiple colors\n */\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((typeof v === \"string\" &&\n singleColorRegex.test(v) &&\n v.startsWith(type)) ||\n (testProp &&\n !isNullish(v) &&\n Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (typeof v !== \"string\")\n return v;\n const [a, b, c, alpha] = v.match(floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\nexport { isColorString, splitColor };\n","import { hex } from './hex.mjs';\nimport { hsla } from './hsla.mjs';\nimport { rgba } from './rgba.mjs';\n\nconst color = {\n test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),\n parse: (v) => {\n if (rgba.test(v)) {\n return rgba.parse(v);\n }\n else if (hsla.test(v)) {\n return hsla.parse(v);\n }\n else {\n return hex.parse(v);\n }\n },\n transform: (v) => {\n return typeof v === \"string\"\n ? v\n : v.hasOwnProperty(\"red\")\n ? rgba.transform(v)\n : hsla.transform(v);\n },\n getAnimatableNone: (v) => {\n const parsed = color.parse(v);\n parsed.alpha = 0;\n return color.transform(parsed);\n },\n};\n\nexport { color };\n","import { clamp } from 'motion-utils';\n\nconst number = {\n test: (v) => typeof v === \"number\",\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = {\n ...number,\n transform: (v) => clamp(0, 1, v),\n};\nconst scale = {\n ...number,\n default: 1,\n};\n\nexport { alpha, number, scale };\n","import { addUniqueItem, removeItem } from './array.mjs';\n\nclass SubscriptionManager {\n constructor() {\n this.subscriptions = [];\n }\n add(handler) {\n addUniqueItem(this.subscriptions, handler);\n return () => removeItem(this.subscriptions, handler);\n }\n notify(a, b, c) {\n const numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions)\n return;\n if (numSubscriptions === 1) {\n /**\n * If there's only a single handler we can just call it without invoking a loop.\n */\n this.subscriptions[0](a, b, c);\n }\n else {\n for (let i = 0; i < numSubscriptions; i++) {\n /**\n * Check whether the handler exists before firing as it's possible\n * the subscriptions were modified during this loop running.\n */\n const handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n }\n getSize() {\n return this.subscriptions.length;\n }\n clear() {\n this.subscriptions.length = 0;\n }\n}\n\nexport { SubscriptionManager };\n","// If this number is a decimal, make it just five decimal places\n// to avoid exponents\nconst sanitize = (v) => Math.round(v * 100000) / 100000;\n\nexport { sanitize };\n","export var IconsManifest = [\n {\n \"id\": \"ci\",\n \"name\": \"Circum Icons\",\n \"projectUrl\": \"https://circumicons.com/\",\n \"license\": \"MPL-2.0 license\",\n \"licenseUrl\": \"https://github.com/Klarr-Agency/Circum-Icons/blob/main/LICENSE\"\n },\n {\n \"id\": \"fa\",\n \"name\": \"Font Awesome 5\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"fa6\",\n \"name\": \"Font Awesome 6\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"io\",\n \"name\": \"Ionicons 4\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"io5\",\n \"name\": \"Ionicons 5\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"md\",\n \"name\": \"Material Design icons\",\n \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"ti\",\n \"name\": \"Typicons\",\n \"projectUrl\": \"http://s-ings.com/typicons/\",\n \"license\": \"CC BY-SA 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n },\n {\n \"id\": \"go\",\n \"name\": \"Github Octicons icons\",\n \"projectUrl\": \"https://octicons.github.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"fi\",\n \"name\": \"Feather\",\n \"projectUrl\": \"https://feathericons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n },\n {\n \"id\": \"lu\",\n \"name\": \"Lucide\",\n \"projectUrl\": \"https://lucide.dev/\",\n \"license\": \"ISC\",\n \"licenseUrl\": \"https://github.com/lucide-icons/lucide/blob/main/LICENSE\"\n },\n {\n \"id\": \"gi\",\n \"name\": \"Game Icons\",\n \"projectUrl\": \"https://game-icons.net/\",\n \"license\": \"CC BY 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n },\n {\n \"id\": \"wi\",\n \"name\": \"Weather Icons\",\n \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n \"license\": \"SIL OFL 1.1\",\n \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n },\n {\n \"id\": \"di\",\n \"name\": \"Devicons\",\n \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ai\",\n \"name\": \"Ant Design Icons\",\n \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"bs\",\n \"name\": \"Bootstrap Icons\",\n \"projectUrl\": \"https://github.com/twbs/icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ri\",\n \"name\": \"Remix Icon\",\n \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"fc\",\n \"name\": \"Flat Color Icons\",\n \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"gr\",\n \"name\": \"Grommet-Icons\",\n \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"hi\",\n \"name\": \"Heroicons\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"hi2\",\n \"name\": \"Heroicons 2\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"si\",\n \"name\": \"Simple Icons\",\n \"projectUrl\": \"https://simpleicons.org/\",\n \"license\": \"CC0 1.0 Universal\",\n \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n },\n {\n \"id\": \"sl\",\n \"name\": \"Simple Line Icons\",\n \"projectUrl\": \"https://thesabbir.github.io/simple-line-icons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"im\",\n \"name\": \"IcoMoon Free\",\n \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://github.com/Keyamoon/IcoMoon-Free/blob/master/License.txt\"\n },\n {\n \"id\": \"bi\",\n \"name\": \"BoxIcons\",\n \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/atisawd/boxicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"cg\",\n \"name\": \"css.gg\",\n \"projectUrl\": \"https://github.com/astrit/css.gg\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"vsc\",\n \"name\": \"VS Code Icons\",\n \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n \"license\": \"CC BY 4.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"tb\",\n \"name\": \"Tabler Icons\",\n \"projectUrl\": \"https://github.com/tabler/tabler-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"tfi\",\n \"name\": \"Themify Icons\",\n \"projectUrl\": \"https://github.com/lykmapipo/themify-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/thecreation/standard-icons/blob/master/modules/themify-icons/LICENSE\"\n },\n {\n \"id\": \"rx\",\n \"name\": \"Radix Icons\",\n \"projectUrl\": \"https://icons.radix-ui.com\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/radix-ui/icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"pi\",\n \"name\": \"Phosphor Icons\",\n \"projectUrl\": \"https://github.com/phosphor-icons/core\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/phosphor-icons/core/blob/main/LICENSE\"\n },\n {\n \"id\": \"lia\",\n \"name\": \"Icons8 Line Awesome\",\n \"projectUrl\": \"https://icons8.com/line-awesome\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/icons8/line-awesome/blob/master/LICENSE.md\"\n }\n]","import React from \"react\";\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && /*#__PURE__*/React.createContext(DefaultContext);","var _excluded = [\"attr\", \"size\", \"title\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React from \"react\";\nimport { IconContext, DefaultContext } from \"./iconContext.mjs\";\nfunction Tree2Element(tree) {\n return tree && tree.map((node, i) => /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: i\n }, node.attr), Tree2Element(node.child)));\n}\nexport function GenIcon(data) {\n return props => /*#__PURE__*/React.createElement(IconBase, _extends({\n attr: _objectSpread({}, data.attr)\n }, props), Tree2Element(data.child));\n}\nexport function IconBase(props) {\n var elem = conf => {\n var {\n attr,\n size,\n title\n } = props,\n svgProps = _objectWithoutProperties(props, _excluded);\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + \" \" : \"\") + props.className;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: _objectSpread(_objectSpread({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && /*#__PURE__*/React.createElement(\"title\", null, title), props.children);\n };\n return IconContext !== undefined ? /*#__PURE__*/React.createElement(IconContext.Consumer, null, conf => elem(conf)) : elem(DefaultContext);\n}","export * from \"./iconsManifest.mjs\";\nexport * from \"./iconBase.mjs\";\nexport * from \"./iconContext.mjs\";","/*#__NO_SIDE_EFFECTS__*/\nconst noop = (any) => any;\n\nexport { noop };\n","/*\n Progress within given range\n\n Given a lower limit and an upper limit, we return the progress\n (expressed as a number 0-1) represented by the given value, and\n limit that progress to within 0-1.\n\n @param [number]: Lower limit\n @param [number]: Upper limit\n @param [number]: Value to find progress within given range\n @return [number]: Progress of value within range as expressed 0-1\n*/\n/*#__NO_SIDE_EFFECTS__*/\nconst progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };\n","import { clamp } from 'motion-utils';\nimport { number, alpha } from '../numbers/index.mjs';\nimport { sanitize } from '../utils/sanitize.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = (v) => clamp(0, 255, v);\nconst rgbUnit = {\n ...number,\n transform: (v) => Math.round(clampRgbUnit(v)),\n};\nconst rgba = {\n test: /*@__PURE__*/ isColorString(\"rgb\", \"red\"),\n parse: /*@__PURE__*/ splitColor(\"red\", \"green\", \"blue\"),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => \"rgba(\" +\n rgbUnit.transform(red) +\n \", \" +\n rgbUnit.transform(green) +\n \", \" +\n rgbUnit.transform(blue) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\",\n};\n\nexport { rgbUnit, rgba };\n","/**\n * Pipe\n * Compose other transformers to run linearily\n * pipe(min(20), max(40))\n * @param {...functions} transformers\n * @return {function}\n */\nconst combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\nexport { pipe };\n","const isBrowser = typeof window !== \"undefined\";\n\nexport { isBrowser };\n","import { invariant, clamp, MotionGlobalConfig, noop, pipe, progress } from 'motion-utils';\nimport { mix } from './mix/index.mjs';\n\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || MotionGlobalConfig.mix || mix;\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] || noop : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\n/**\n * Create a function that maps from a numerical input array to a generic output array.\n *\n * Accepts:\n * - Numbers\n * - Colors (hex, hsl, hsla, rgb, rgba)\n * - Complex (combinations of one or more numbers or strings)\n *\n * ```jsx\n * const mixColor = interpolate([0, 1], ['#fff', '#000'])\n *\n * mixColor(0.5) // 'rgba(128, 128, 128, 1)'\n * ```\n *\n * TODO Revisit this approach once we've moved to data models for values,\n * probably not needed to pregenerate mixer functions.\n *\n * @public\n */\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\n const inputLength = input.length;\n invariant(inputLength === output.length, \"Both input and output ranges must be the same length\", \"range-length\");\n /**\n * If we're only provided a single input, we can just make a function\n * that returns the output.\n */\n if (inputLength === 1)\n return () => output[0];\n if (inputLength === 2 && output[0] === output[1])\n return () => output[1];\n const isZeroDeltaRange = input[0] === input[1];\n // If input runs highest -> lowest, reverse both arrays\n if (input[0] > input[inputLength - 1]) {\n input = [...input].reverse();\n output = [...output].reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const numMixers = mixers.length;\n const interpolator = (v) => {\n if (isZeroDeltaRange && v < input[0])\n return output[0];\n let i = 0;\n if (numMixers > 1) {\n for (; i < input.length - 2; i++) {\n if (v < input[i + 1])\n break;\n }\n }\n const progressInRange = progress(input[i], input[i + 1], v);\n return mixers[i](progressInRange);\n };\n return isClamp\n ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\nexport { interpolate };\n","const statsBuffer = {\n value: null,\n addProjectionMetrics: null,\n};\n\nexport { statsBuffer };\n","import { alpha } from '../numbers/index.mjs';\nimport { percent } from '../numbers/units.mjs';\nimport { sanitize } from '../utils/sanitize.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst hsla = {\n test: /*@__PURE__*/ isColorString(\"hsl\", \"hue\"),\n parse: /*@__PURE__*/ splitColor(\"hue\", \"saturation\", \"lightness\"),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return (\"hsla(\" +\n Math.round(hue) +\n \", \" +\n percent.transform(sanitize(saturation)) +\n \", \" +\n percent.transform(sanitize(lightness)) +\n \", \" +\n sanitize(alpha.transform(alpha$1)) +\n \")\");\n },\n};\n\nexport { hsla };\n","const isMotionValue = (value) => Boolean(value && value.getVelocity);\n\nexport { isMotionValue };\n","const checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nconst isCSSVariableName = \n/*@__PURE__*/ checkStringStartsWith(\"--\");\nconst startsAsVariableToken = \n/*@__PURE__*/ checkStringStartsWith(\"var(--\");\nconst isCSSVariableToken = (value) => {\n const startsWithToken = startsAsVariableToken(value);\n if (!startsWithToken)\n return false;\n // Ensure any comments are stripped from the value as this can harm performance of the regex.\n return singleCssVariableRegex.test(value.split(\"/*\")[0].trim());\n};\nconst singleCssVariableRegex = /var\\(--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)$/iu;\n\nexport { isCSSVariableName, isCSSVariableToken };\n"],"names":["MotionConfigContext","createContext","transformPagePoint","p","isStatic","reducedMotion","LayoutGroupContext","LazyContext","strict","MotionContext","PresenceContext","SwitchLayoutGroupContext","createMotionComponent","Component","forwardMotionProps","preloadedFeatures","createVisualElement","useVisualState","isSVGComponent","useSVGVisualState","useHTMLVisualState","MotionDOMComponent","externalRef","MeasureLayout","configAndProps","useContext","props","layoutId","useLayoutId","layoutGroupId","id","undefined","context","useCreateMotionContext","visualState","isBrowser","layoutProjection","getProjectionFunctionality","drag","layout","featureDefinitions","combined","isEnabled","ProjectionNode","visualElement","useVisualElement","jsxs","Provider","children","jsx","useRender","useMotionRef","displayName","name","ForwardRefMotionComponent","forwardRef","motionComponentSymbol","hasTakenAnySnapshot","MeasureLayoutWithContext","componentDidMount","layoutGroup","switchLayoutGroup","projection","defaultScaleCorrectors","group","add","register","root","didUpdate","addEventListener","safeToRemove","setOptions","options","onExitComplete","globalProjectionState","hasEverUpdated","prevProps","layoutDependency","isPresent","willUpdate","promote","relegate","frame","postRender","stack","getStack","members","length","componentDidUpdate","microtask","currentAnimation","isLead","componentWillUnmount","promoteContext","scheduleCheckAfterUnmount","remove","deregister","render","borderRadius","correctBorderRadius","applyTo","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","boxShadow","correctBoxShadow","DefaultContext","color","size","className","style","attr","React","_excluded","_extends","Object","assign","bind","target","i","arguments","source","key","prototype","hasOwnProperty","call","apply","ownKeys","e","r","t","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","forEach","obj","value","_toPropertyKey","_toPrimitive","Symbol","toPrimitive","String","Number","defineProperty","configurable","writable","getOwnPropertyDescriptors","defineProperties","GenIcon","data","Tree2Element","tree","map","node","tag","child","IconBase","elem","conf","title","svgProps","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","indexOf","sourceSymbolKeys","propertyIsEnumerable","computedSize","stroke","fill","strokeWidth","height","width","xmlns","IconContext","Consumer"],"sourceRoot":"","ignoreList":[0,1,2,3,4,5,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257]} \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/96-e44dd75924eeec79.js b/opencut-ui/_next/static/chunks/96-e44dd75924eeec79.js new file mode 100644 index 0000000..c5132ad --- /dev/null +++ b/opencut-ui/_next/static/chunks/96-e44dd75924eeec79.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[96],{14392:(e,t,n)=>{n.d(t,{i:()=>a});var r,i=n(74188),o=n(92672),l=(r||(r=n.t(i,2)))[" useInsertionEffect ".trim().toString()]||o.N;function a({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){let[o,a,u]=function({defaultProp:e,onChange:t}){let[n,r]=i.useState(e),o=i.useRef(n),a=i.useRef(t);return l(()=>{a.current=t},[t]),i.useEffect(()=>{o.current!==n&&(a.current?.(n),o.current=n)},[n,o]),[n,r,a]}({defaultProp:t,onChange:n}),s=void 0!==e,c=s?e:o;{let t=i.useRef(void 0!==e);i.useEffect(()=>{let e=t.current;if(e!==s){let t=s?"controlled":"uncontrolled";console.warn(`${r} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=s},[s,r])}return[c,i.useCallback(t=>{if(s){let n="function"==typeof t?t(e):t;n!==e&&u.current?.(n)}else a(t)},[s,e,a,u])]}Symbol("RADIX:SYNC_STATE")},24847:(e,t,n)=>{n.d(t,{C:()=>l});var r=n(74188),i=n(89607),o=n(92672),l=e=>{let{present:t,children:n}=e,l=function(e){var t,n;let[i,l]=r.useState(),u=r.useRef(null),s=r.useRef(e),c=r.useRef("none"),[f,d]=(t=e?"mounted":"unmounted",n={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},r.useReducer((e,t)=>{let r=n[e][t];return null!=r?r:e},t));return r.useEffect(()=>{let e=a(u.current);c.current="mounted"===f?e:"none"},[f]),(0,o.N)(()=>{let t=u.current,n=s.current;if(n!==e){let r=c.current,i=a(t);e?d("MOUNT"):"none"===i||(null==t?void 0:t.display)==="none"?d("UNMOUNT"):n&&r!==i?d("ANIMATION_OUT"):d("UNMOUNT"),s.current=e}},[e,d]),(0,o.N)(()=>{if(i){var e;let t,n=null!=(e=i.ownerDocument.defaultView)?e:window,r=e=>{let r=a(u.current).includes(e.animationName);if(e.target===i&&r&&(d("ANIMATION_END"),!s.current)){let e=i.style.animationFillMode;i.style.animationFillMode="forwards",t=n.setTimeout(()=>{"forwards"===i.style.animationFillMode&&(i.style.animationFillMode=e)})}},o=e=>{e.target===i&&(c.current=a(u.current))};return i.addEventListener("animationstart",o),i.addEventListener("animationcancel",r),i.addEventListener("animationend",r),()=>{n.clearTimeout(t),i.removeEventListener("animationstart",o),i.removeEventListener("animationcancel",r),i.removeEventListener("animationend",r)}}d("ANIMATION_END")},[i,d]),{isPresent:["mounted","unmountSuspended"].includes(f),ref:r.useCallback(e=>{u.current=e?getComputedStyle(e):null,l(e)},[])}}(t),u="function"==typeof n?n({present:l.isPresent}):r.Children.only(n),s=(0,i.s)(l.ref,function(e){var t,n;let r=null==(t=Object.getOwnPropertyDescriptor(e.props,"ref"))?void 0:t.get,i=r&&"isReactWarning"in r&&r.isReactWarning;return i?e.ref:(i=(r=null==(n=Object.getOwnPropertyDescriptor(e,"ref"))?void 0:n.get)&&"isReactWarning"in r&&r.isReactWarning)?e.props.ref:e.props.ref||e.ref}(u));return"function"==typeof n||l.isPresent?r.cloneElement(u,{ref:s}):null};function a(e){return(null==e?void 0:e.animationName)||"none"}l.displayName="Presence"},36432:(e,t,n)=>{n.d(t,{c:()=>i});var r=n(74188);function i(e){let t=r.useRef(e);return r.useEffect(()=>{t.current=e}),r.useMemo(()=>(...e)=>t.current?.(...e),[])}},39636:(e,t,n)=>{n.d(t,{B:()=>u});var r,i=n(74188),o=n(92672),l=(r||(r=n.t(i,2)))[" useId ".trim().toString()]||(()=>void 0),a=0;function u(e){let[t,n]=i.useState(l());return(0,o.N)(()=>{e||n(e=>e??String(a++))},[e]),e||(t?`radix-${t}`:"")}},48396:(e,t,n)=>{n.d(t,{X:()=>o});var r=n(74188),i=n(92672);function o(e){let[t,n]=r.useState(void 0);return(0,i.N)(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{let r,i;if(!Array.isArray(t)||!t.length)return;let o=t[0];if("borderBoxSize"in o){let e=o.borderBoxSize,t=Array.isArray(e)?e[0]:e;r=t.inlineSize,i=t.blockSize}else r=e.offsetWidth,i=e.offsetHeight;n({width:r,height:i})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}n(void 0)},[e]),t}},48841:(e,t,n)=>{n.d(t,{m:()=>r});function r(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),!1===n||!r.defaultPrevented)return t?.(r)}}},58496:(e,t,n)=>{n.r(t),n.d(t,{Portal:()=>u,Root:()=>s});var r=n(74188),i=n(82749),o=n(98765),l=n(92672),a=n(28064),u=r.forwardRef((e,t)=>{var n,u;let{container:s,...c}=e,[f,d]=r.useState(!1);(0,l.N)(()=>d(!0),[]);let p=s||f&&(null==(u=globalThis)||null==(n=u.document)?void 0:n.body);return p?i.createPortal((0,a.jsx)(o.sG.div,{...c,ref:t}),p):null});u.displayName="Portal";var s=u},59078:(e,t,n)=>{n.d(t,{Mz:()=>e1,i3:()=>e2,UC:()=>e8,bL:()=>e0,Bk:()=>eH});var r=n(74188);let i=["top","right","bottom","left"],o=Math.min,l=Math.max,a=Math.round,u=Math.floor,s=e=>({x:e,y:e}),c={left:"right",right:"left",bottom:"top",top:"bottom"},f={start:"end",end:"start"};function d(e,t){return"function"==typeof e?e(t):e}function p(e){return e.split("-")[0]}function m(e){return e.split("-")[1]}function h(e){return"x"===e?"y":"x"}function v(e){return"y"===e?"height":"width"}let g=new Set(["top","bottom"]);function y(e){return g.has(p(e))?"y":"x"}function w(e){return e.replace(/start|end/g,e=>f[e])}let x=["left","right"],b=["right","left"],E=["top","bottom"],R=["bottom","top"];function A(e){return e.replace(/left|right|bottom|top/g,e=>c[e])}function L(e){return"number"!=typeof e?{top:0,right:0,bottom:0,left:0,...e}:{top:e,right:e,bottom:e,left:e}}function O(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function S(e,t,n){let r,{reference:i,floating:o}=e,l=y(t),a=h(y(t)),u=v(a),s=p(t),c="y"===l,f=i.x+i.width/2-o.width/2,d=i.y+i.height/2-o.height/2,g=i[u]/2-o[u]/2;switch(s){case"top":r={x:f,y:i.y-o.height};break;case"bottom":r={x:f,y:i.y+i.height};break;case"right":r={x:i.x+i.width,y:d};break;case"left":r={x:i.x-o.width,y:d};break;default:r={x:i.x,y:i.y}}switch(m(t)){case"start":r[a]-=g*(n&&c?-1:1);break;case"end":r[a]+=g*(n&&c?-1:1)}return r}let N=async(e,t,n)=>{let{placement:r="bottom",strategy:i="absolute",middleware:o=[],platform:l}=n,a=o.filter(Boolean),u=await (null==l.isRTL?void 0:l.isRTL(t)),s=await l.getElementRects({reference:e,floating:t,strategy:i}),{x:c,y:f}=S(s,r,u),d=r,p={},m=0;for(let n=0;ne[t]>=0)}let D=new Set(["left","top"]);async function M(e,t){let{placement:n,platform:r,elements:i}=e,o=await (null==r.isRTL?void 0:r.isRTL(i.floating)),l=p(n),a=m(n),u="y"===y(n),s=D.has(l)?-1:1,c=o&&u?-1:1,f=d(t,e),{mainAxis:h,crossAxis:v,alignmentAxis:g}="number"==typeof f?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return a&&"number"==typeof g&&(v="end"===a?-1*g:g),u?{x:v*c,y:h*s}:{x:h*s,y:v*c}}function k(){return"undefined"!=typeof window}function W(e){return H(e)?(e.nodeName||"").toLowerCase():"#document"}function j(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function F(e){var t;return null==(t=(H(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function H(e){return!!k()&&(e instanceof Node||e instanceof j(e).Node)}function z(e){return!!k()&&(e instanceof Element||e instanceof j(e).Element)}function B(e){return!!k()&&(e instanceof HTMLElement||e instanceof j(e).HTMLElement)}function _(e){return!!k()&&"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof j(e).ShadowRoot)}let I=new Set(["inline","contents"]);function $(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=ee(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!I.has(i)}let U=new Set(["table","td","th"]),V=[":popover-open",":modal"];function G(e){return V.some(t=>{try{return e.matches(t)}catch(e){return!1}})}let X=["transform","translate","scale","rotate","perspective"],Y=["transform","translate","scale","rotate","perspective","filter"],q=["paint","layout","strict","content"];function Q(e){let t=J(),n=z(e)?ee(e):e;return X.some(e=>!!n[e]&&"none"!==n[e])||!!n.containerType&&"normal"!==n.containerType||!t&&!!n.backdropFilter&&"none"!==n.backdropFilter||!t&&!!n.filter&&"none"!==n.filter||Y.some(e=>(n.willChange||"").includes(e))||q.some(e=>(n.contain||"").includes(e))}function J(){return"undefined"!=typeof CSS&&!!CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")}let K=new Set(["html","body","#document"]);function Z(e){return K.has(W(e))}function ee(e){return j(e).getComputedStyle(e)}function et(e){return z(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function en(e){if("html"===W(e))return e;let t=e.assignedSlot||e.parentNode||_(e)&&e.host||F(e);return _(t)?t.host:t}function er(e,t,n){var r;void 0===t&&(t=[]),void 0===n&&(n=!0);let i=function e(t){let n=en(t);return Z(n)?t.ownerDocument?t.ownerDocument.body:t.body:B(n)&&$(n)?n:e(n)}(e),o=i===(null==(r=e.ownerDocument)?void 0:r.body),l=j(i);if(o){let e=ei(l);return t.concat(l,l.visualViewport||[],$(i)?i:[],e&&n?er(e):[])}return t.concat(i,er(i,[],n))}function ei(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function eo(e){let t=ee(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=B(e),o=i?e.offsetWidth:n,l=i?e.offsetHeight:r,u=a(n)!==o||a(r)!==l;return u&&(n=o,r=l),{width:n,height:r,$:u}}function el(e){return z(e)?e:e.contextElement}function ea(e){let t=el(e);if(!B(t))return s(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:o}=eo(t),l=(o?a(n.width):n.width)/r,u=(o?a(n.height):n.height)/i;return l&&Number.isFinite(l)||(l=1),u&&Number.isFinite(u)||(u=1),{x:l,y:u}}let eu=s(0);function es(e){let t=j(e);return J()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:eu}function ec(e,t,n,r){var i;void 0===t&&(t=!1),void 0===n&&(n=!1);let o=e.getBoundingClientRect(),l=el(e),a=s(1);t&&(r?z(r)&&(a=ea(r)):a=ea(e));let u=(void 0===(i=n)&&(i=!1),r&&(!i||r===j(l))&&i)?es(l):s(0),c=(o.left+u.x)/a.x,f=(o.top+u.y)/a.y,d=o.width/a.x,p=o.height/a.y;if(l){let e=j(l),t=r&&z(r)?j(r):r,n=e,i=ei(n);for(;i&&r&&t!==n;){let e=ea(i),t=i.getBoundingClientRect(),r=ee(i),o=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,l=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,f*=e.y,d*=e.x,p*=e.y,c+=o,f+=l,i=ei(n=j(i))}}return O({width:d,height:p,x:c,y:f})}function ef(e,t){let n=et(e).scrollLeft;return t?t.left+n:ec(F(e)).left+n}function ed(e,t,n){void 0===n&&(n=!1);let r=e.getBoundingClientRect();return{x:r.left+t.scrollLeft-(n?0:ef(e,r)),y:r.top+t.scrollTop}}let ep=new Set(["absolute","fixed"]);function em(e,t,n){let r;if("viewport"===t)r=function(e,t){let n=j(e),r=F(e),i=n.visualViewport,o=r.clientWidth,l=r.clientHeight,a=0,u=0;if(i){o=i.width,l=i.height;let e=J();(!e||e&&"fixed"===t)&&(a=i.offsetLeft,u=i.offsetTop)}return{width:o,height:l,x:a,y:u}}(e,n);else if("document"===t)r=function(e){let t=F(e),n=et(e),r=e.ownerDocument.body,i=l(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),o=l(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),a=-n.scrollLeft+ef(e),u=-n.scrollTop;return"rtl"===ee(r).direction&&(a+=l(t.clientWidth,r.clientWidth)-i),{width:i,height:o,x:a,y:u}}(F(e));else if(z(t))r=function(e,t){let n=ec(e,!0,"fixed"===t),r=n.top+e.clientTop,i=n.left+e.clientLeft,o=B(e)?ea(e):s(1),l=e.clientWidth*o.x,a=e.clientHeight*o.y;return{width:l,height:a,x:i*o.x,y:r*o.y}}(t,n);else{let n=es(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return O(r)}function eh(e){return"static"===ee(e).position}function ev(e,t){if(!B(e)||"fixed"===ee(e).position)return null;if(t)return t(e);let n=e.offsetParent;return F(e)===n&&(n=n.ownerDocument.body),n}function eg(e,t){var n;let r=j(e);if(G(e))return r;if(!B(e)){let t=en(e);for(;t&&!Z(t);){if(z(t)&&!eh(t))return t;t=en(t)}return r}let i=ev(e,t);for(;i&&(n=i,U.has(W(n)))&&eh(i);)i=ev(i,t);return i&&Z(i)&&eh(i)&&!Q(i)?r:i||function(e){let t=en(e);for(;B(t)&&!Z(t);){if(Q(t))return t;if(G(t))break;t=en(t)}return null}(e)||r}let ey=async function(e){let t=this.getOffsetParent||eg,n=this.getDimensions,r=await n(e.floating);return{reference:function(e,t,n){let r=B(t),i=F(t),o="fixed"===n,l=ec(e,!0,o,t),a={scrollLeft:0,scrollTop:0},u=s(0);if(r||!r&&!o)if(("body"!==W(t)||$(i))&&(a=et(t)),r){let e=ec(t,!0,o,t);u.x=e.x+t.clientLeft,u.y=e.y+t.clientTop}else i&&(u.x=ef(i));o&&!r&&i&&(u.x=ef(i));let c=!i||r||o?s(0):ed(i,a);return{x:l.left+a.scrollLeft-u.x-c.x,y:l.top+a.scrollTop-u.y-c.y,width:l.width,height:l.height}}(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}},ew={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,o="fixed"===i,l=F(r),a=!!t&&G(t.floating);if(r===l||a&&o)return n;let u={scrollLeft:0,scrollTop:0},c=s(1),f=s(0),d=B(r);if((d||!d&&!o)&&(("body"!==W(r)||$(l))&&(u=et(r)),B(r))){let e=ec(r);c=ea(r),f.x=e.x+r.clientLeft,f.y=e.y+r.clientTop}let p=!l||d||o?s(0):ed(l,u,!0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-u.scrollLeft*c.x+f.x+p.x,y:n.y*c.y-u.scrollTop*c.y+f.y+p.y}},getDocumentElement:F,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[..."clippingAncestors"===n?G(t)?[]:function(e,t){let n=t.get(e);if(n)return n;let r=er(e,[],!1).filter(e=>z(e)&&"body"!==W(e)),i=null,o="fixed"===ee(e).position,l=o?en(e):e;for(;z(l)&&!Z(l);){let t=ee(l),n=Q(l);n||"fixed"!==t.position||(i=null),(o?!n&&!i:!n&&"static"===t.position&&!!i&&ep.has(i.position)||$(l)&&!n&&function e(t,n){let r=en(t);return!(r===n||!z(r)||Z(r))&&("fixed"===ee(r).position||e(r,n))}(e,l))?r=r.filter(e=>e!==l):i=t,l=en(l)}return t.set(e,r),r}(t,this._c):[].concat(n),r],u=a[0],s=a.reduce((e,n)=>{let r=em(t,n,i);return e.top=l(r.top,e.top),e.right=o(r.right,e.right),e.bottom=o(r.bottom,e.bottom),e.left=l(r.left,e.left),e},em(t,u,i));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}},getOffsetParent:eg,getElementRects:ey,getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){let{width:t,height:n}=eo(e);return{width:t,height:n}},getScale:ea,isElement:z,isRTL:function(e){return"rtl"===ee(e).direction}};function ex(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}let eb=e=>({name:"arrow",options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:u,elements:s,middlewareData:c}=t,{element:f,padding:p=0}=d(e,t)||{};if(null==f)return{};let g=L(p),w={x:n,y:r},x=h(y(i)),b=v(x),E=await u.getDimensions(f),R="y"===x,A=R?"clientHeight":"clientWidth",O=a.reference[b]+a.reference[x]-w[x]-a.floating[b],S=w[x]-a.reference[x],N=await (null==u.getOffsetParent?void 0:u.getOffsetParent(f)),T=N?N[A]:0;T&&await (null==u.isElement?void 0:u.isElement(N))||(T=s.floating[A]||a.floating[b]);let C=T/2-E[b]/2-1,P=o(g[R?"top":"left"],C),D=o(g[R?"bottom":"right"],C),M=T-E[b]-D,k=T/2-E[b]/2+(O/2-S/2),W=l(P,o(k,M)),j=!c.arrow&&null!=m(i)&&k!==W&&a.reference[b]/2-(k{t.current=e}),t}var eN=n(98765),eT=n(28064),eC=r.forwardRef((e,t)=>{let{children:n,width:r=10,height:i=5,...o}=e;return(0,eT.jsx)(eN.sG.svg,{...o,ref:t,width:r,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:(0,eT.jsx)("polygon",{points:"0,0 30,0 15,10"})})});eC.displayName="Arrow";var eP=n(89607),eD=n(68533),eM=n(36432),ek=n(92672),eW=n(48396),ej="Popper",[eF,eH]=(0,eD.A)(ej),[ez,eB]=eF(ej),e_=e=>{let{__scopePopper:t,children:n}=e,[i,o]=r.useState(null);return(0,eT.jsx)(ez,{scope:t,anchor:i,onAnchorChange:o,children:n})};e_.displayName=ej;var eI="PopperAnchor",e$=r.forwardRef((e,t)=>{let{__scopePopper:n,virtualRef:i,...o}=e,l=eB(eI,n),a=r.useRef(null),u=(0,eP.s)(t,a);return r.useEffect(()=>{l.onAnchorChange((null==i?void 0:i.current)||a.current)}),i?null:(0,eT.jsx)(eN.sG.div,{...o,ref:u})});e$.displayName=eI;var eU="PopperContent",[eV,eG]=eF(eU),eX=r.forwardRef((e,t)=>{var n,i,a,s,c,f,g,L;let{__scopePopper:O,side:S="bottom",sideOffset:k=0,align:W="center",alignOffset:j=0,arrowPadding:H=0,avoidCollisions:z=!0,collisionBoundary:B=[],collisionPadding:_=0,sticky:I="partial",hideWhenDetached:$=!1,updatePositionStrategy:U="optimized",onPlaced:V,...G}=e,X=eB(eU,O),[Y,q]=r.useState(null),Q=(0,eP.s)(t,e=>q(e)),[J,K]=r.useState(null),Z=(0,eW.X)(J),ee=null!=(g=null==Z?void 0:Z.width)?g:0,et=null!=(L=null==Z?void 0:Z.height)?L:0,en="number"==typeof _?_:{top:0,right:0,bottom:0,left:0,..._},ei=Array.isArray(B)?B:[B],eo=ei.length>0,ea={padding:en,boundary:ei.filter(eJ),altBoundary:eo},{refs:eu,floatingStyles:es,placement:ef,isPositioned:ed,middlewareData:ep}=function(e){void 0===e&&(e={});let{placement:t="bottom",strategy:n="absolute",middleware:i=[],platform:o,elements:{reference:l,floating:a}={},transform:u=!0,whileElementsMounted:s,open:c}=e,[f,d]=r.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[p,m]=r.useState(i);eA(p,i)||m(i);let[h,v]=r.useState(null),[g,y]=r.useState(null),w=r.useCallback(e=>{e!==R.current&&(R.current=e,v(e))},[]),x=r.useCallback(e=>{e!==A.current&&(A.current=e,y(e))},[]),b=l||h,E=a||g,R=r.useRef(null),A=r.useRef(null),L=r.useRef(f),O=null!=s,S=eS(s),T=eS(o),C=eS(c),P=r.useCallback(()=>{if(!R.current||!A.current)return;let e={placement:t,strategy:n,middleware:p};T.current&&(e.platform=T.current),((e,t,n)=>{let r=new Map,i={platform:ew,...n},o={...i.platform,_c:r};return N(e,t,{...i,platform:o})})(R.current,A.current,e).then(e=>{let t={...e,isPositioned:!1!==C.current};D.current&&!eA(L.current,t)&&(L.current=t,eE.flushSync(()=>{d(t)}))})},[p,t,n,T,C]);eR(()=>{!1===c&&L.current.isPositioned&&(L.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[c]);let D=r.useRef(!1);eR(()=>(D.current=!0,()=>{D.current=!1}),[]),eR(()=>{if(b&&(R.current=b),E&&(A.current=E),b&&E){if(S.current)return S.current(b,E,P);P()}},[b,E,P,S,O]);let M=r.useMemo(()=>({reference:R,floating:A,setReference:w,setFloating:x}),[w,x]),k=r.useMemo(()=>({reference:b,floating:E}),[b,E]),W=r.useMemo(()=>{let e={position:n,left:0,top:0};if(!k.floating)return e;let t=eO(k.floating,f.x),r=eO(k.floating,f.y);return u?{...e,transform:"translate("+t+"px, "+r+"px)",...eL(k.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:t,top:r}},[n,u,k.floating,f.x,f.y]);return r.useMemo(()=>({...f,update:P,refs:M,elements:k,floatingStyles:W}),[f,P,M,k,W])}({strategy:"fixed",placement:S+("center"!==W?"-"+W:""),whileElementsMounted:function(){for(var e=arguments.length,t=Array(e),n=0;n{a&&e.addEventListener("scroll",n,{passive:!0}),s&&e.addEventListener("resize",n)});let h=p&&f?function(e,t){let n,r=null,i=F(e);function a(){var e;clearTimeout(n),null==(e=r)||e.disconnect(),r=null}return!function s(c,f){void 0===c&&(c=!1),void 0===f&&(f=1),a();let d=e.getBoundingClientRect(),{left:p,top:m,width:h,height:v}=d;if(c||t(),!h||!v)return;let g=u(m),y=u(i.clientWidth-(p+h)),w={rootMargin:-g+"px "+-y+"px "+-u(i.clientHeight-(m+v))+"px "+-u(p)+"px",threshold:l(0,o(1,f))||1},x=!0;function b(t){let r=t[0].intersectionRatio;if(r!==f){if(!x)return s();r?s(!1,r):n=setTimeout(()=>{s(!1,1e-7)},1e3)}1!==r||ex(d,e.getBoundingClientRect())||s(),x=!1}try{r=new IntersectionObserver(b,{...w,root:i.ownerDocument})}catch(e){r=new IntersectionObserver(b,w)}r.observe(e)}(!0),a}(p,n):null,v=-1,g=null;c&&(g=new ResizeObserver(e=>{let[r]=e;r&&r.target===p&&g&&(g.unobserve(t),cancelAnimationFrame(v),v=requestAnimationFrame(()=>{var e;null==(e=g)||e.observe(t)})),n()}),p&&!d&&g.observe(p),g.observe(t));let y=d?ec(e):null;return d&&function t(){let r=ec(e);y&&!ex(y,r)&&n(),y=r,i=requestAnimationFrame(t)}(),n(),()=>{var e;m.forEach(e=>{a&&e.removeEventListener("scroll",n),s&&e.removeEventListener("resize",n)}),null==h||h(),null==(e=g)||e.disconnect(),g=null,d&&cancelAnimationFrame(i)}}(...t,{animationFrame:"always"===U})},elements:{reference:X.anchor},middleware:[((e,t)=>({...function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var n,r;let{x:i,y:o,placement:l,middlewareData:a}=t,u=await M(t,e);return l===(null==(n=a.offset)?void 0:n.placement)&&null!=(r=a.arrow)&&r.alignmentOffset?{}:{x:i+u.x,y:o+u.y,data:{...u,placement:l}}}}}(e),options:[e,t]}))({mainAxis:k+et,alignmentAxis:j}),z&&((e,t)=>({...function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){let{x:n,y:r,placement:i}=t,{mainAxis:a=!0,crossAxis:u=!1,limiter:s={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...c}=d(e,t),f={x:n,y:r},m=await T(t,c),v=y(p(i)),g=h(v),w=f[g],x=f[v];if(a){let e="y"===g?"top":"left",t="y"===g?"bottom":"right",n=w+m[e],r=w-m[t];w=l(n,o(w,r))}if(u){let e="y"===v?"top":"left",t="y"===v?"bottom":"right",n=x+m[e],r=x-m[t];x=l(n,o(x,r))}let b=s.fn({...t,[g]:w,[v]:x});return{...b,data:{x:b.x-n,y:b.y-r,enabled:{[g]:a,[v]:u}}}}}}(e),options:[e,t]}))({mainAxis:!0,crossAxis:!1,limiter:"partial"===I?((e,t)=>({...function(e){return void 0===e&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:o,middlewareData:l}=t,{offset:a=0,mainAxis:u=!0,crossAxis:s=!0}=d(e,t),c={x:n,y:r},f=y(i),m=h(f),v=c[m],g=c[f],w=d(a,t),x="number"==typeof w?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(u){let e="y"===m?"height":"width",t=o.reference[m]-o.floating[e]+x.mainAxis,n=o.reference[m]+o.reference[e]-x.mainAxis;vn&&(v=n)}if(s){var b,E;let e="y"===m?"width":"height",t=D.has(p(i)),n=o.reference[f]-o.floating[e]+(t&&(null==(b=l.offset)?void 0:b[f])||0)+(t?0:x.crossAxis),r=o.reference[f]+o.reference[e]+(t?0:(null==(E=l.offset)?void 0:E[f])||0)-(t?x.crossAxis:0);gr&&(g=r)}return{[m]:v,[f]:g}}}}(e),options:[e,t]}))():void 0,...ea}),z&&((e,t)=>({...function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,r,i,o,l;let{placement:a,middlewareData:u,rects:s,initialPlacement:c,platform:f,elements:g}=t,{mainAxis:L=!0,crossAxis:O=!0,fallbackPlacements:S,fallbackStrategy:N="bestFit",fallbackAxisSideDirection:C="none",flipAlignment:P=!0,...D}=d(e,t);if(null!=(n=u.arrow)&&n.alignmentOffset)return{};let M=p(a),k=y(c),W=p(c)===c,j=await (null==f.isRTL?void 0:f.isRTL(g.floating)),F=S||(W||!P?[A(c)]:function(e){let t=A(e);return[w(e),t,w(t)]}(c)),H="none"!==C;!S&&H&&F.push(...function(e,t,n,r){let i=m(e),o=function(e,t,n){switch(e){case"top":case"bottom":if(n)return t?b:x;return t?x:b;case"left":case"right":return t?E:R;default:return[]}}(p(e),"start"===n,r);return i&&(o=o.map(e=>e+"-"+i),t&&(o=o.concat(o.map(w)))),o}(c,P,C,j));let z=[c,...F],B=await T(t,D),_=[],I=(null==(r=u.flip)?void 0:r.overflows)||[];if(L&&_.push(B[M]),O){let e=function(e,t,n){void 0===n&&(n=!1);let r=m(e),i=h(y(e)),o=v(i),l="x"===i?r===(n?"end":"start")?"right":"left":"start"===r?"bottom":"top";return t.reference[o]>t.floating[o]&&(l=A(l)),[l,A(l)]}(a,s,j);_.push(B[e[0]],B[e[1]])}if(I=[...I,{placement:a,overflows:_}],!_.every(e=>e<=0)){let e=((null==(i=u.flip)?void 0:i.index)||0)+1,t=z[e];if(t&&("alignment"!==O||k===y(t)||I.every(e=>e.overflows[0]>0&&y(e.placement)===k)))return{data:{index:e,overflows:I},reset:{placement:t}};let n=null==(o=I.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:o.placement;if(!n)switch(N){case"bestFit":{let e=null==(l=I.filter(e=>{if(H){let t=y(e.placement);return t===k||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:l[0];e&&(n=e);break}case"initialPlacement":n=c}if(a!==n)return{reset:{placement:n}}}return{}}}}(e),options:[e,t]}))({...ea}),((e,t)=>({...function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var n,r;let i,a,{placement:u,rects:s,platform:c,elements:f}=t,{apply:h=()=>{},...v}=d(e,t),g=await T(t,v),w=p(u),x=m(u),b="y"===y(u),{width:E,height:R}=s.floating;"top"===w||"bottom"===w?(i=w,a=x===(await (null==c.isRTL?void 0:c.isRTL(f.floating))?"start":"end")?"left":"right"):(a=w,i="end"===x?"top":"bottom");let A=R-g.top-g.bottom,L=E-g.left-g.right,O=o(R-g[i],A),S=o(E-g[a],L),N=!t.middlewareData.shift,C=O,P=S;if(null!=(n=t.middlewareData.shift)&&n.enabled.x&&(P=L),null!=(r=t.middlewareData.shift)&&r.enabled.y&&(C=A),N&&!x){let e=l(g.left,0),t=l(g.right,0),n=l(g.top,0),r=l(g.bottom,0);b?P=E-2*(0!==e||0!==t?e+t:l(g.left,g.right)):C=R-2*(0!==n||0!==r?n+r:l(g.top,g.bottom))}await h({...t,availableWidth:P,availableHeight:C});let D=await c.getDimensions(f.floating);return E!==D.width||R!==D.height?{reset:{rects:!0}}:{}}}}(e),options:[e,t]}))({...ea,apply:e=>{let{elements:t,rects:n,availableWidth:r,availableHeight:i}=e,{width:o,height:l}=n.reference,a=t.floating.style;a.setProperty("--radix-popper-available-width","".concat(r,"px")),a.setProperty("--radix-popper-available-height","".concat(i,"px")),a.setProperty("--radix-popper-anchor-width","".concat(o,"px")),a.setProperty("--radix-popper-anchor-height","".concat(l,"px"))}}),J&&((e,t)=>({...(e=>({name:"arrow",options:e,fn(t){let{element:n,padding:r}="function"==typeof e?e(t):e;return n&&({}).hasOwnProperty.call(n,"current")?null!=n.current?eb({element:n.current,padding:r}).fn(t):{}:n?eb({element:n,padding:r}).fn(t):{}}}))(e),options:[e,t]}))({element:J,padding:H}),eK({arrowWidth:ee,arrowHeight:et}),$&&((e,t)=>({...function(e){return void 0===e&&(e={}),{name:"hide",options:e,async fn(t){let{rects:n}=t,{strategy:r="referenceHidden",...i}=d(e,t);switch(r){case"referenceHidden":{let e=C(await T(t,{...i,elementContext:"reference"}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:P(e)}}}case"escaped":{let e=C(await T(t,{...i,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:P(e)}}}default:return{}}}}}(e),options:[e,t]}))({strategy:"referenceHidden",...ea})]}),[em,eh]=eZ(ef),ev=(0,eM.c)(V);(0,ek.N)(()=>{ed&&(null==ev||ev())},[ed,ev]);let eg=null==(n=ep.arrow)?void 0:n.x,ey=null==(i=ep.arrow)?void 0:i.y,eC=(null==(a=ep.arrow)?void 0:a.centerOffset)!==0,[eD,ej]=r.useState();return(0,ek.N)(()=>{Y&&ej(window.getComputedStyle(Y).zIndex)},[Y]),(0,eT.jsx)("div",{ref:eu.setFloating,"data-radix-popper-content-wrapper":"",style:{...es,transform:ed?es.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:eD,"--radix-popper-transform-origin":[null==(s=ep.transformOrigin)?void 0:s.x,null==(c=ep.transformOrigin)?void 0:c.y].join(" "),...(null==(f=ep.hide)?void 0:f.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:(0,eT.jsx)(eV,{scope:O,placedSide:em,onArrowChange:K,arrowX:eg,arrowY:ey,shouldHideArrow:eC,children:(0,eT.jsx)(eN.sG.div,{"data-side":em,"data-align":eh,...G,ref:Q,style:{...G.style,animation:ed?void 0:"none"}})})})});eX.displayName=eU;var eY="PopperArrow",eq={top:"bottom",right:"left",bottom:"top",left:"right"},eQ=r.forwardRef(function(e,t){let{__scopePopper:n,...r}=e,i=eG(eY,n),o=eq[i.placedSide];return(0,eT.jsx)("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[o]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:(0,eT.jsx)(eC,{...r,ref:t,style:{...r.style,display:"block"}})})});function eJ(e){return null!==e}eQ.displayName=eY;var eK=e=>({name:"transformOrigin",options:e,fn(t){var n,r,i,o,l;let{placement:a,rects:u,middlewareData:s}=t,c=(null==(n=s.arrow)?void 0:n.centerOffset)!==0,f=c?0:e.arrowWidth,d=c?0:e.arrowHeight,[p,m]=eZ(a),h={start:"0%",center:"50%",end:"100%"}[m],v=(null!=(o=null==(r=s.arrow)?void 0:r.x)?o:0)+f/2,g=(null!=(l=null==(i=s.arrow)?void 0:i.y)?l:0)+d/2,y="",w="";return"bottom"===p?(y=c?h:"".concat(v,"px"),w="".concat(-d,"px")):"top"===p?(y=c?h:"".concat(v,"px"),w="".concat(u.floating.height+d,"px")):"right"===p?(y="".concat(-d,"px"),w=c?h:"".concat(g,"px")):"left"===p&&(y="".concat(u.floating.width+d,"px"),w=c?h:"".concat(g,"px")),{data:{x:y,y:w}}}});function eZ(e){let[t,n="center"]=e.split("-");return[t,n]}var e0=e_,e1=e$,e8=eX,e2=eQ},68533:(e,t,n)=>{n.d(t,{A:()=>l,q:()=>o});var r=n(74188),i=n(28064);function o(e,t){let n=r.createContext(t),o=e=>{let{children:t,...o}=e,l=r.useMemo(()=>o,Object.values(o));return(0,i.jsx)(n.Provider,{value:l,children:t})};return o.displayName=e+"Provider",[o,function(i){let o=r.useContext(n);if(o)return o;if(void 0!==t)return t;throw Error(`\`${i}\` must be used within \`${e}\``)}]}function l(e,t=[]){let n=[],o=()=>{let t=n.map(e=>r.createContext(e));return function(n){let i=n?.[e]||t;return r.useMemo(()=>({[`__scope${e}`]:{...n,[e]:i}}),[n,i])}};return o.scopeName=e,[function(t,o){let l=r.createContext(o),a=n.length;n=[...n,o];let u=t=>{let{scope:n,children:o,...u}=t,s=n?.[e]?.[a]||l,c=r.useMemo(()=>u,Object.values(u));return(0,i.jsx)(s.Provider,{value:c,children:o})};return u.displayName=t+"Provider",[u,function(n,i){let u=i?.[e]?.[a]||l,s=r.useContext(u);if(s)return s;if(void 0!==o)return o;throw Error(`\`${n}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let i=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return r.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])}};return n.scopeName=t.scopeName,n}(o,...t)]}},85965:(e,t,n)=>{n.d(t,{Qg:()=>l,bL:()=>u,s6:()=>a});var r=n(74188),i=n(98765),o=n(28064),l=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),a=r.forwardRef((e,t)=>(0,o.jsx)(i.sG.span,{...e,ref:t,style:{...l,...e.style}}));a.displayName="VisuallyHidden";var u=a},92672:(e,t,n)=>{n.d(t,{N:()=>i});var r=n(74188),i=globalThis?.document?r.useLayoutEffect:()=>{}},98370:(e,t,n)=>{n.d(t,{lg:()=>g,qW:()=>d,bL:()=>v});var r,i=n(74188),o=n(48841),l=n(98765),a=n(89607),u=n(36432),s=n(28064),c="dismissableLayer.update",f=i.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),d=i.forwardRef((e,t)=>{var n,d;let{disableOutsidePointerEvents:p=!1,onEscapeKeyDown:v,onPointerDownOutside:g,onFocusOutside:y,onInteractOutside:w,onDismiss:x,...b}=e,E=i.useContext(f),[R,A]=i.useState(null),L=null!=(d=null==R?void 0:R.ownerDocument)?d:null==(n=globalThis)?void 0:n.document,[,O]=i.useState({}),S=(0,a.s)(t,e=>A(e)),N=Array.from(E.layers),[T]=[...E.layersWithOutsidePointerEventsDisabled].slice(-1),C=N.indexOf(T),P=R?N.indexOf(R):-1,D=E.layersWithOutsidePointerEventsDisabled.size>0,M=P>=C,k=function(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null==(t=globalThis)?void 0:t.document,r=(0,u.c)(e),o=i.useRef(!1),l=i.useRef(()=>{});return i.useEffect(()=>{let e=e=>{if(e.target&&!o.current){let t=function(){h("dismissableLayer.pointerDownOutside",r,i,{discrete:!0})},i={originalEvent:e};"touch"===e.pointerType?(n.removeEventListener("click",l.current),l.current=t,n.addEventListener("click",l.current,{once:!0})):t()}else n.removeEventListener("click",l.current);o.current=!1},t=window.setTimeout(()=>{n.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(t),n.removeEventListener("pointerdown",e),n.removeEventListener("click",l.current)}},[n,r]),{onPointerDownCapture:()=>o.current=!0}}(e=>{let t=e.target,n=[...E.branches].some(e=>e.contains(t));M&&!n&&(null==g||g(e),null==w||w(e),e.defaultPrevented||null==x||x())},L),W=function(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null==(t=globalThis)?void 0:t.document,r=(0,u.c)(e),o=i.useRef(!1);return i.useEffect(()=>{let e=e=>{e.target&&!o.current&&h("dismissableLayer.focusOutside",r,{originalEvent:e},{discrete:!1})};return n.addEventListener("focusin",e),()=>n.removeEventListener("focusin",e)},[n,r]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}(e=>{let t=e.target;![...E.branches].some(e=>e.contains(t))&&(null==y||y(e),null==w||w(e),e.defaultPrevented||null==x||x())},L);return!function(e,t=globalThis?.document){let n=(0,u.c)(e);i.useEffect(()=>{let e=e=>{"Escape"===e.key&&n(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})},[n,t])}(e=>{P===E.layers.size-1&&(null==v||v(e),!e.defaultPrevented&&x&&(e.preventDefault(),x()))},L),i.useEffect(()=>{if(R)return p&&(0===E.layersWithOutsidePointerEventsDisabled.size&&(r=L.body.style.pointerEvents,L.body.style.pointerEvents="none"),E.layersWithOutsidePointerEventsDisabled.add(R)),E.layers.add(R),m(),()=>{p&&1===E.layersWithOutsidePointerEventsDisabled.size&&(L.body.style.pointerEvents=r)}},[R,L,p,E]),i.useEffect(()=>()=>{R&&(E.layers.delete(R),E.layersWithOutsidePointerEventsDisabled.delete(R),m())},[R,E]),i.useEffect(()=>{let e=()=>O({});return document.addEventListener(c,e),()=>document.removeEventListener(c,e)},[]),(0,s.jsx)(l.sG.div,{...b,ref:S,style:{pointerEvents:D?M?"auto":"none":void 0,...e.style},onFocusCapture:(0,o.m)(e.onFocusCapture,W.onFocusCapture),onBlurCapture:(0,o.m)(e.onBlurCapture,W.onBlurCapture),onPointerDownCapture:(0,o.m)(e.onPointerDownCapture,k.onPointerDownCapture)})});d.displayName="DismissableLayer";var p=i.forwardRef((e,t)=>{let n=i.useContext(f),r=i.useRef(null),o=(0,a.s)(t,r);return i.useEffect(()=>{let e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}},[n.branches]),(0,s.jsx)(l.sG.div,{...e,ref:o})});function m(){let e=new CustomEvent(c);document.dispatchEvent(e)}function h(e,t,n,r){let{discrete:i}=r,o=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),i?(0,l.hO)(o,a):o.dispatchEvent(a)}p.displayName="DismissableLayerBranch";var v=d,g=p},98765:(e,t,n)=>{n.d(t,{bL:()=>s,hO:()=>u,sG:()=>a});var r=n(74188),i=n(82749),o=n(8059),l=n(28064),a=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let n=(0,o.TL)(`Primitive.${t}`),i=r.forwardRef((e,r)=>{let{asChild:i,...o}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,l.jsx)(i?n:t,{...o,ref:r})});return i.displayName=`Primitive.${t}`,{...e,[t]:i}},{});function u(e,t){e&&i.flushSync(()=>e.dispatchEvent(t))}var s=a}}]); +//# sourceMappingURL=96-e44dd75924eeec79.js.map \ No newline at end of file diff --git a/opencut-ui/_next/static/chunks/96-e44dd75924eeec79.js.map b/opencut-ui/_next/static/chunks/96-e44dd75924eeec79.js.map new file mode 100644 index 0000000..09a0aab --- /dev/null +++ b/opencut-ui/_next/static/chunks/96-e44dd75924eeec79.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/chunks/96-e44dd75924eeec79.js","mappings":"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rBa,EAqBC,OAIrB,IAAM,EAAO,6FC7Bb,sCAGM,EAAG,SACH,EAAG,QADA,CAET,UADS,EACT,CACA,aACA,OACA,IACA,IACA,CAAC,CACD,GACA,aACA,aACA,aACA,YACA,EACA,GACA,YACA,WACA,EAIA,SAAS,EAAQ,KACjB,mBADiB,MACjB,QACA,CACA,SAAS,EAAO,GAChB,oBADgB,EAChB,CAEA,SAAS,EAAY,GACrB,uBAEA,EAHqB,OAGrB,KACA,qBACA,CACA,cACA,8BACA,CACA,gCACA,SAAS,EAAW,GACpB,aAAwB,EAAO,SADX,EAEpB,CAqBA,SAAS,EAtBsB,CAsBO,EACtC,sCACA,CACA,GAHsC,CAGtC,mBACA,mBACA,mBACA,mBAyBA,cACA,kDACA,CAUA,SAAS,EAAgB,GACzB,yBATA,CACA,GAOyB,CAPzB,EACA,QACA,SACA,OACA,GAIA,CAHA,EAGA,CACA,MACA,QACA,SACA,MACA,CACA,CACA,SAAS,EAAgB,GACzB,IACA,IACA,IACA,QACA,SACA,CAAI,EACJ,OACA,QACA,SACA,MACA,OACA,UACA,WACA,IACA,GACA,CACA,CCrIA,kBACA,IAYA,EAZA,CACA,YACA,WACA,CAAI,EACJ,EAAmB,EAAW,GAC9B,EDwCA,ICxCwC,IACxC,EAAsB,EAAa,EADX,CAExB,EAAe,EAAO,GACtB,CAFmC,CAEnC,MAHwC,EAIxC,UAFsB,GAEtB,aACA,4BACA,gBAEA,UACA,UACA,GACA,IACA,gBAEA,KACA,cACA,GACA,IACA,gBAEA,KACA,aACA,GACA,cACA,GACA,EACA,KACA,YACA,GACA,cACA,GACA,EACA,KACA,SACA,GACA,MACA,KACA,CACA,CACA,OAAU,EAAY,IACtB,YACA,oBACA,KACA,WACA,mBAEA,CACA,QACA,CASA,qBACA,IACA,qBACA,sBACA,gBACA,WACA,CAAI,EACJ,oBACA,0CACA,2BACA,YACA,WACA,UACA,CAAG,EACH,CACA,IACA,IACA,CAAI,SACJ,IACA,KACA,IACA,YAAkB,WAA4B,KAC9C,IACA,OACA,KACA,CAAM,KACN,CACA,IACA,IACA,OACA,QACA,CAAM,SACN,IACA,IACA,mBACA,YACA,WACA,iBACA,QACA,WACA,UACA,YACA,UACA,CACA,CAAK,EACL,cACA,cACA,GACA,KACA,KACA,QACA,KAEA,EACA,WACA,IACA,qBACA,aACA,gBAEA,SACA,yCACA,YACA,WACA,UACA,CAAW,WAEX,CACA,IACA,IACA,CAAU,UAEV,KAEA,CACA,OACA,IACA,IACA,YACA,WACA,gBACA,CACA,EAUA,sBACA,KACA,aACA,OAEA,IACA,IACA,IACA,WACA,QACA,WACA,WACA,CAAI,EACJ,CACA,+BACA,0BACA,4BACA,iBACA,YACA,CAAI,EAAU,KACd,EAAwB,EAAgB,GAExC,MADA,MAFc,OAEd,UADwC,IACxC,WACA,GACA,EAA6B,EAAgB,yBAC7C,OAD6C,CAC7C,4JACA,WACA,eACA,UACA,CAAG,GACH,kBACA,IACA,IACA,uBACA,0BACI,YACJ,uEACA,mGACA,IACA,GACA,EAAI,EAIwB,EAAgB,uHAC5C,WACA,OACA,eACA,UACA,CAAG,KACH,OACA,4BACA,wCACA,gCACA,mCACA,CACA,CA+TA,gBACA,OACA,mBACA,sBACA,yBACA,oBAEA,CACA,cACA,OAAS,EAAK,gBACd,CA8LA,8BAKA,sBACA,IACA,YACA,WACA,WACA,CAAI,EACJ,mDACA,EAAe,EAAO,GACtB,EAAoB,EAAY,GAChC,EAAgC,MAAX,EAAW,GAChC,YAFgC,EAEhC,EACA,QAFgC,EAEhC,EACA,EAAmB,EAAQ,KAG3B,CACA,WACA,OAL2B,GAK3B,EACA,gBACA,CAAI,oBACJ,WACA,YACA,kBACA,EAAI,CACJ,uBACA,yBACA,6BACA,EAIA,OAHA,uBACA,qBAEA,GACA,MACA,KACA,EAAI,CACJ,MACA,KACA,CACA,CCvwBA,aACA,gCACA,CACA,qBACA,KACA,+BAKA,WACA,CACA,cACA,MACA,uEACA,CACA,cACA,MACA,6FAEA,oBACA,OAGA,2CACA,CACA,oBACA,OAGA,iDACA,CACA,oBACA,OAGA,yDACA,CACA,oBACA,uCAGA,uDACA,CACA,qCACA,cACA,IACA,WACA,YACA,YACA,UACA,CAAI,MACJ,8DACA,CACA,mCAIA,6BACA,cACA,kBACA,IACA,mBACA,CAAM,SACN,QACA,CACA,CAAG,CACH,CACA,+DACA,oEACA,wCACA,cACA,UACA,eAIA,+PACA,CAaA,mBACA,yCACA,8CACA,CACA,2CACA,cACA,kBACA,CACA,eACA,+BACA,CACA,sBACA,KACA,CACA,wBACA,uBAGA,CACA,qBACA,oBAEA,CACA,eACA,iBACA,SAEA,MAEA,gBAEA,cAEA,cAEA,KACA,oBACA,CAWA,mBACA,KACA,aACA,OAEA,YACA,OAEA,eAlBA,KACA,mBACA,KACA,4CAEA,WACA,EAEA,IACA,EASA,GACA,gDACA,OACA,MACA,YACA,+DACA,CACA,6BACA,CACA,eACA,oEACA,CCzJA,eACA,MAAc,GAAgB,GAG9B,UAH8B,GAG9B,YACA,0BACA,EAAoB,EAAa,GACjC,QADiC,SACjC,GACA,qBACA,EAAyB,EAAK,QAA2B,EAAK,OAK9D,OAJA,IACA,IACA,KAEA,CACA,QACA,SACA,GACA,CACA,CAEA,eACA,SAAmB,sBAGnB,eACA,YACA,IAAO,EAAa,GACpB,OAAW,CADS,CACG,GAEvB,OAFuB,CAEvB,wBACA,CACA,QACA,SACA,IACA,CAAI,MACJ,KAAe,EAAK,oBACpB,KAAe,EAAK,sBAUpB,OANA,uBACA,MAEA,uBACA,MAEA,CACA,IACA,GACA,CACA,CAEA,OAA+B,EAAY,GAC3C,OAD2C,EAC3C,MACA,MAAc,EAAS,UAChB,KAAQ,iBAGf,CACA,8BACA,8BAJA,EAMA,CAWA,yBAVA,CAWA,aACA,OAEA,YACA,OAEA,gCACA,QACA,EAAc,EAAY,GAC1B,IACA,EACU,CAHgB,CAGP,IACnB,UAGA,SAGA,OA5BA,UADA,EA6BA,IA3BA,OA2BA,GAzBA,KAyBA,IAzBmE,EAyBnE,EAzB4E,GAG5E,EAH4E,CAyB5E,MAA2H,EAAY,GACvI,OADuI,EACvI,UACA,kBACA,cACA,eACA,MACA,MAAgB,EAAS,GACzB,IADyB,CACa,EA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G,KACH,OACA,OACA,EAAuB,QAAY,OACnC,EAAsB,QAAY,OAClC,EAAkB,QAAY,IAC9B,UACA,QACA,QACA,QACA,EAAiB,aAAiB,MAClC,0BACA,OAEA,OACA,YACA,WACA,YACA,CACA,YACA,uBDglBqB,WAIrB,cACA,GACA,GCplBmB,MDolBnB,GACA,MAEA,GACA,cACA,IACA,EACA,OAAS,EAAiB,KAC1B,KACA,GAF0B,MAE1B,CACA,CAAG,EACH,EC/lBmB,gCACnB,OACA,KAKA,4BAEA,+BACA,YACQ,YAAkB,MAC1B,IACA,CAAS,EAET,CAAK,CACL,CAAG,cACH,QACA,iCACA,0BACA,OACA,KACA,eACA,EAAO,EAEP,CAAG,MACH,MAAuB,QAAY,KACnC,QACA,aACA,KACA,YACA,GACG,IACH,QAGA,GAFA,iBACA,iBACA,MACA,aACA,wBAEA,GACA,CACA,CAAG,cACH,MAAe,SAAa,OAC5B,YACA,WACA,eACA,aACA,EAAG,QACH,EAAmB,SAAa,OAChC,YACA,UACA,EAAG,QACH,EAAyB,SAAa,MACtC,OACA,WACA,OACA,KACA,EACA,eACA,SAEA,yBACA,4BACA,EACA,CACA,KACA,wCACA,yBACA,sBACA,CAAS,EAGT,CACA,WACA,OACA,KACA,CACA,CAAG,2BACH,OAAS,SAAa,OACtB,KACA,SACA,OACA,WACA,gBACA,EAAG,aACH,EE/D0F,CAEpF,SAAU,QACV,UApBwB,CAoBb,CApBqB,cAAqB,IAAM,EAAQ,IAqBnE,qBAAsB,6DAAI,IAAS,cAIjC,OHwZR,sBA0CA,CAzCA,aACA,OAEA,IACA,oBACA,oBACA,kDACA,sDACA,oBACA,CAAI,EACJ,QACA,aAA0E,GAAoB,SAAwB,GAAoB,KAA5C,CAA4C,CAC1I,UAD0I,IAE1I,kCACA,UACA,CAAK,EACL,iCACA,CAAG,EACH,WAlHA,cACA,IACA,EADA,OAEA,EAAe,EAAkB,GACjC,aADiC,IAEjC,EACA,gBACA,4BACA,MACA,CA2EA,OA1EA,gBACA,YACA,OAEA,YACA,MAEA,IACA,gCACA,CACA,OACA,MACA,QACA,SACA,CAAM,EAIN,GAHA,GACA,IAEA,OACA,OAEA,MAAqB,EAAK,KACH,EAAK,qBAI5B,GACA,WAFA,mBAFwB,EAAK,sBAE7B,OADsB,EAAK,GAC3B,KAGA,UAAiB,EAAG,EAAI,EAAG,QAC3B,EACA,KACA,IAH2B,KAG3B,KACA,6BACA,UACA,MACA,WAEA,EAOA,QAJA,kBACA,UACA,CAAW,KAIX,CACA,wCAQA,IAEA,IACA,CAIA,IACA,8BACA,KAEA,qBACO,CACP,CAAM,SACN,+BACA,CACA,YACA,EACA,IACA,CACA,EA6BA,UACA,KACA,OACA,IACA,yBACA,SACA,qBAGA,eACA,wBACA,6BACA,KACA,0BACA,CAAS,GAET,GACA,CAAK,EACL,OACA,aAEA,cAGA,0BACA,GAGA,aACA,WACA,cACA,IAEA,IACA,0BACA,IACA,IACA,KACA,MACA,cACA,qCACA,oCACA,CAAK,EACL,aACA,4BACA,OACA,GACA,uBAEA,CACA,KGhesC,EAAM,CAClC,eAA2C,WAA3B,CAClB,CAAC,CAEH,EACA,SAAU,CACR,UAAW,EAAQ,QAErB,WAAY,CFiGN,UACZ,GHofA,YAIA,GKzlBc,ILslBd,GGrfa,EHqfb,OACA,MAEA,CACA,cACA,UACA,YACA,QACA,IACA,IACA,IACA,YACA,iBACA,CAAQ,EACR,sBAIA,kFACA,GAEA,CACA,QACA,QACA,MACA,KACA,WACA,CACA,CACA,CACA,CACA,EGphBa,GACb,eACC,EEnGc,CAAE,SAAU,EAAa,GAAa,cAAe,CAAY,CAAC,EACzE,GFyGG,UACX,GAAK,SHihBL,GAIA,EK9nBe,KL2nBf,EGlhBY,GHkhBZ,OACA,OAEA,CACA,aACA,UACA,YACA,IACA,IACA,IACA,YACA,CAAQ,EACR,CACA,cACA,eACA,WACA,OACA,IACA,IACA,IACA,CAAc,EACd,OACA,IACA,GACA,CACA,CACA,CAAS,CACT,KACA,CAAQ,EAAU,KAClB,GACA,IACA,GACA,EACA,OALkB,CAKlB,OACA,EAAwB,EAAY,EAAO,IAC3C,EAAuB,EAAe,GACtC,OACA,KAH2C,CAG3C,CACA,MACA,2BACA,2BACA,SACA,SACA,IAA6B,SAC7B,CACA,EAFwB,CAExB,GACA,CAH6B,GAG7B,uBACA,2BACA,SACA,SACA,ED/0BS,EC+0BqB,ED/0BV,EC+0BU,KAC9B,CACA,GAFyB,CAEzB,IAF8B,CD/0BlB,CCi1BZ,EACA,CDl1BuB,ECk1BvB,EACA,MACA,KACA,CAAO,EACP,OACA,KACA,MACA,QACA,QACA,SACA,MACA,KACA,CACA,CACA,CACA,CACA,CACA,EGxlBY,GACZ,cACA,CAAC,EE3Ge,CACJ,UAAU,EACV,UAAW,GACX,QAAS,cF6GL,UAChB,GAAK,SHolBL,GAIA,OAHA,CKnsBuD,ILmsBvD,EGrlBiB,EHqlBjB,GACA,OAEA,CACA,UACA,MACA,IACA,IACA,IACA,YACA,QACA,iBACA,CAAQ,EACR,CACA,WACA,cACA,eACA,CAAQ,EAAU,KAClB,GACA,IACA,GACA,EACA,EAAwB,EAAW,GALjB,EAMK,EAAe,GACtC,OACA,OACA,EAAwB,CAJW,CAIH,KAChC,mBADgC,EAChC,CACA,WACA,WACA,EAAQ,CACR,WACA,YACA,MAEA,MACA,+BACA,0CACA,0CACA,KACA,IACU,KACV,KAEA,CACA,MACA,QACA,+BACA,QAA6C,EAAO,IACpD,mBADoD,QACpD,+DACA,2FACA,KACA,IACU,KACV,KAEA,CACA,OACA,MACA,KACA,CACA,CACA,CACA,EGppBiB,GACjB,cACA,CAAC,IEhH0D,OAC/C,GAAG,GACJ,EACH,GFqHE,UACV,GH6FA,YAIA,CKvN+B,MLoN/B,CG9FW,IH8FX,OACA,OAEA,CACA,YACA,UACA,gBACA,IAqDA,IA+BA,EAnFA,IACA,YACA,iBACA,QACA,mBACA,WACA,WACA,CAAQ,EACR,CACA,cACA,eACA,qBACA,6BACA,mCACA,mBACA,KACA,CAAQ,EAAU,KAMlB,mBANkB,GAMlB,kBACA,SAEA,MAAmB,EAAO,GAC1B,EAA8B,EAAW,GACzC,EAA8B,EAAO,OACrC,aAFyC,EAEzC,CADqC,CACrC,kCACA,aAAsG,EAAoB,ID5X1H,YACA,EC2X0H,ED3X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","sources":["webpack://_N_E/../../node_modules/.bun/@radix-ui+react-use-controllable-state@1.2.2+0e2fb8dbc083adda/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","webpack://_N_E/../src/presence.tsx","webpack://_N_E/../src/use-state-machine.tsx","webpack://_N_E/../../node_modules/.bun/@radix-ui+react-use-callback-ref@1.1.1+0e2fb8dbc083adda/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","webpack://_N_E/../../node_modules/.bun/@radix-ui+react-id@1.1.1+0e2fb8dbc083adda/node_modules/@radix-ui/react-id/dist/index.mjs","webpack://_N_E/../../node_modules/.bun/@radix-ui+react-use-size@1.1.1+0e2fb8dbc083adda/node_modules/@radix-ui/react-use-size/dist/index.mjs","webpack://_N_E/../../node_modules/.bun/@radix-ui+primitive@1.1.2/node_modules/@radix-ui/primitive/dist/index.mjs","webpack://_N_E/../src/portal.tsx","webpack://_N_E/../../node_modules/.bun/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack://_N_E/../../node_modules/.bun/@floating-ui+core@1.7.2/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","webpack://_N_E/../../node_modules/.bun/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","webpack://_N_E/../../node_modules/.bun/@floating-ui+dom@1.7.2/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack://_N_E/../../node_modules/.bun/@floating-ui+react-dom@2.1.4+6dbf9a050bc9aadb/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","webpack://_N_E/../../node_modules/.bun/@radix-ui+react-arrow@1.1.7+b41f8805ee63d2ff/node_modules/@radix-ui/react-arrow/dist/index.mjs","webpack://_N_E/../src/popper.tsx","webpack://_N_E/../../node_modules/.bun/@radix-ui+react-context@1.1.2+0e2fb8dbc083adda/node_modules/@radix-ui/react-context/dist/index.mjs","webpack://_N_E/../../node_modules/.bun/@radix-ui+react-visually-hidden@1.2.3+b41f8805ee63d2ff/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs","webpack://_N_E/../../node_modules/.bun/@radix-ui+react-use-layout-effect@1.1.1+0e2fb8dbc083adda/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","webpack://_N_E/../../node_modules/.bun/@radix-ui+react-use-escape-keydown@1.1.1+0e2fb8dbc083adda/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","webpack://_N_E/../src/dismissable-layer.tsx","webpack://_N_E/../../node_modules/.bun/@radix-ui+react-primitive@2.1.3+b41f8805ee63d2ff/node_modules/@radix-ui/react-primitive/dist/index.mjs"],"sourcesContent":["// src/use-controllable-state.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useInsertionEffect = React[\" useInsertionEffect \".trim().toString()] || useLayoutEffect;\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n },\n caller\n}) {\n const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({\n defaultProp,\n onChange\n });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n if (true) {\n const isControlledRef = React.useRef(prop !== void 0);\n React.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;\n if (value2 !== prop) {\n onChangeRef.current?.(value2);\n }\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, onChangeRef]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const [value, setValue] = React.useState(defaultProp);\n const prevValueRef = React.useRef(value);\n const onChangeRef = React.useRef(onChange);\n useInsertionEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n onChangeRef.current?.(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef]);\n return [value, setValue, onChangeRef];\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\n// src/use-controllable-state-reducer.tsx\nimport * as React2 from \"react\";\nimport { useEffectEvent } from \"@radix-ui/react-use-effect-event\";\nvar SYNC_STATE = Symbol(\"RADIX:SYNC_STATE\");\nfunction useControllableStateReducer(reducer, userArgs, initialArg, init) {\n const { prop: controlledState, defaultProp, onChange: onChangeProp, caller } = userArgs;\n const isControlled = controlledState !== void 0;\n const onChange = useEffectEvent(onChangeProp);\n if (true) {\n const isControlledRef = React2.useRef(controlledState !== void 0);\n React2.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const args = [{ ...initialArg, state: defaultProp }];\n if (init) {\n args.push(init);\n }\n const [internalState, dispatch] = React2.useReducer(\n (state2, action) => {\n if (action.type === SYNC_STATE) {\n return { ...state2, state: action.state };\n }\n const next = reducer(state2, action);\n if (isControlled && !Object.is(next.state, state2.state)) {\n onChange(next.state);\n }\n return next;\n },\n ...args\n );\n const uncontrolledState = internalState.state;\n const prevValueRef = React2.useRef(uncontrolledState);\n React2.useEffect(() => {\n if (prevValueRef.current !== uncontrolledState) {\n prevValueRef.current = uncontrolledState;\n if (!isControlled) {\n onChange(uncontrolledState);\n }\n }\n }, [onChange, uncontrolledState, prevValueRef, isControlled]);\n const state = React2.useMemo(() => {\n const isControlled2 = controlledState !== void 0;\n if (isControlled2) {\n return { ...internalState, state: controlledState };\n }\n return internalState;\n }, [internalState, controlledState]);\n React2.useEffect(() => {\n if (isControlled && !Object.is(controlledState, internalState.state)) {\n dispatch({ type: SYNC_STATE, state: controlledState });\n }\n }, [controlledState, internalState.state, isControlled]);\n return [state, dispatch];\n}\nexport {\n useControllableState,\n useControllableStateReducer\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { useStateMachine } from './use-state-machine';\n\ninterface PresenceProps {\n children: React.ReactElement | ((props: { present: boolean }) => React.ReactElement);\n present: boolean;\n}\n\nconst Presence: React.FC = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n\n const child = (\n typeof children === 'function'\n ? children({ present: presence.isPresent })\n : React.Children.only(children)\n ) as React.ReactElement<{ ref?: React.Ref }>;\n\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === 'function';\n return forceMount || presence.isPresent ? React.cloneElement(child, { ref }) : null;\n};\n\nPresence.displayName = 'Presence';\n\n/* -------------------------------------------------------------------------------------------------\n * usePresence\n * -----------------------------------------------------------------------------------------------*/\n\nfunction usePresence(present: boolean) {\n const [node, setNode] = React.useState();\n const stylesRef = React.useRef(null);\n const prevPresentRef = React.useRef(present);\n const prevAnimationNameRef = React.useRef('none');\n const initialState = present ? 'mounted' : 'unmounted';\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended',\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted',\n },\n unmounted: {\n MOUNT: 'mounted',\n },\n });\n\n React.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === 'mounted' ? currentAnimationName : 'none';\n }, [state]);\n\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n\n if (present) {\n send('MOUNT');\n } else if (currentAnimationName === 'none' || styles?.display === 'none') {\n // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly\n send('UNMOUNT');\n } else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */\n const isAnimating = prevAnimationName !== currentAnimationName;\n\n if (wasPresent && isAnimating) {\n send('ANIMATION_OUT');\n } else {\n send('UNMOUNT');\n }\n }\n\n prevPresentRef.current = present;\n }\n }, [present, send]);\n\n useLayoutEffect(() => {\n if (node) {\n let timeoutId: number;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */\n const handleAnimationEnd = (event: AnimationEvent) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n // With React 18 concurrency this update is applied a frame after the\n // animation ends, creating a flash of visible content. By setting the\n // animation fill mode to \"forwards\", we force the node to keep the\n // styles of the last keyframe, removing the flash.\n //\n // Previously we flushed the update via ReactDom.flushSync, but with\n // exit animations this resulted in the node being removed from the\n // DOM before the synthetic animationEnd event was dispatched, meaning\n // user-provided event handlers would not be called.\n // https://github.com/radix-ui/primitives/pull/1849\n send('ANIMATION_END');\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = 'forwards';\n // Reset the style after the node had time to unmount (for cases\n // where the component chooses not to unmount). Doing this any\n // sooner than `setTimeout` (e.g. with `requestAnimationFrame`)\n // still causes a flash.\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === 'forwards') {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event: AnimationEvent) => {\n if (event.target === node) {\n // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener('animationstart', handleAnimationStart);\n node.addEventListener('animationcancel', handleAnimationEnd);\n node.addEventListener('animationend', handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener('animationstart', handleAnimationStart);\n node.removeEventListener('animationcancel', handleAnimationEnd);\n node.removeEventListener('animationend', handleAnimationEnd);\n };\n } else {\n // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n send('ANIMATION_END');\n }\n }, [node, send]);\n\n return {\n isPresent: ['mounted', 'unmountSuspended'].includes(state),\n ref: React.useCallback((node: HTMLElement) => {\n stylesRef.current = node ? getComputedStyle(node) : null;\n setNode(node);\n }, []),\n };\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getAnimationName(styles: CSSStyleDeclaration | null) {\n return styles?.animationName || 'none';\n}\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.ReactElement<{ ref?: React.Ref }>) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get;\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element as any).ref;\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get;\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n\n // Not DEV\n return element.props.ref || (element as any).ref;\n}\n\nconst Root = Presence;\n\nexport {\n Presence,\n //\n Root,\n};\nexport type { PresenceProps };\n","import * as React from 'react';\n\ntype Machine = { [k: string]: { [k: string]: S } };\ntype MachineState = keyof T;\ntype MachineEvent = keyof UnionToIntersection;\n\n// 🤯 https://fettblog.eu/typescript-union-to-intersection/\ntype UnionToIntersection = (T extends any ? (x: T) => any : never) extends (x: infer R) => any\n ? R\n : never;\n\nexport function useStateMachine(\n initialState: MachineState,\n machine: M & Machine>\n) {\n return React.useReducer((state: MachineState, event: MachineEvent): MachineState => {\n const nextState = (machine[state] as any)[event];\n return nextState ?? state;\n }, initialState);\n}\n","// packages/react/use-callback-ref/src/use-callback-ref.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\" useId \".trim().toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/use-size.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\n\n/* -------------------------------------------------------------------------------------------------\n * Portal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'Portal';\n\ntype PortalElement = React.ComponentRef;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef;\ninterface PortalProps extends PrimitiveDivProps {\n /**\n * An optional container where the portaled content should be appended.\n */\n container?: Element | DocumentFragment | null;\n}\n\nconst Portal = React.forwardRef((props, forwardedRef) => {\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = React.useState(false);\n useLayoutEffect(() => setMounted(true), []);\n const container = containerProp || (mounted && globalThis?.document?.body);\n return container\n ? ReactDOM.createPortal(, container)\n : null;\n});\n\nPortal.displayName = PORTAL_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Portal;\n\nexport {\n Portal,\n //\n Root,\n};\nexport type { PortalProps };\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nconst yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);\nfunction getSideAxis(placement) {\n return yAxisSides.has(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => d.overflows[0] > 0 && getSideAxis(d.placement) === initialSideAxis)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nconst invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);\n}\nconst tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);\nfunction isTableElement(element) {\n return tableElements.has(getNodeName(element));\n}\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(element) {\n return topLayerSelectors.some(selector => {\n try {\n return element.matches(selector);\n } catch (_e) {\n return false;\n }\n });\n}\nconst transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];\nconst willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];\nconst containValues = ['paint', 'layout', 'strict', 'content'];\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nconst lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);\nfunction isLastTraversableNode(node) {\n return lastTraversableNodeNames.has(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {\n if (ignoreScrollbarX === void 0) {\n ignoreScrollbarX = false;\n }\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :\n // RTL scrollbar.\n getWindowScrollBarX(documentElement, htmlRect));\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nconst absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the element as the offsetParent if it's non-static,\n // while Chrome and Safari return the element. The element must\n // be used to perform the correct calculations even if the element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle +
+
+ + + + + \ No newline at end of file diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..2387fbd --- /dev/null +++ b/src/main.ts @@ -0,0 +1,31 @@ +import {app} from "../../../scripts/app.js"; +import App from "@/App.vue"; + +const {ComfyButton} = window.comfyAPI.button + + +app.registerExtension({ + name: 'ComfyUI.OpenCut.TopMenu', + setup() { + function openOpenCut() { + app.extensionManager?.dialog.showExtensionDialog({ + key: "global-opencut", + title: "ComfyUI OpenCut", + component: App, + dialogComponentProps: { + style: "width: 80vw; height: 80vh;", + maximizable: !0 + } + }); + } + + app.menu?.settingsGroup.append( + new ComfyButton({ + icon: 'video', + tooltip: 'comfyui-opencut', + content: 'OpenCut', + action: openOpenCut, + }), + ) + }, +}) \ No newline at end of file diff --git a/vite.config.mts b/vite.config.mts new file mode 100644 index 0000000..37bfc7c --- /dev/null +++ b/vite.config.mts @@ -0,0 +1,44 @@ +import { fileURLToPath, URL } from 'node:url' +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' +import vueDevTools from 'vite-plugin-vue-devtools' + +export default defineConfig({ + plugins: [ + vue(), + vueDevTools() + ], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + }, + }, + build: { + lib: { + entry: './src/main.js', + formats: ['es'], + fileName: 'main' + }, + rollupOptions: { + external: [ + '../../../scripts/app.js', + '../../../scripts/api.js', + '../../../scripts/domWidget.js', + '../../../scripts/utils.js', + 'vue', + 'vue-i18n', + /^primevue\/?.*/, + /^@primevue\/themes\/?.*/, + ], + output: { + dir: 'js', + assetFileNames: 'assets/[name].[ext]', + entryFileNames: 'main.js' + } + }, + outDir: 'js', + sourcemap: false, + assetsInlineLimit: 0, + cssCodeSplit: false + } +}) \ No newline at end of file