From 14b4c16fa3ad52aa37fad575e638b46944293be8 Mon Sep 17 00:00:00 2001 From: Reckless_Satoshi Date: Fri, 15 Apr 2022 16:26:39 -0700 Subject: [PATCH] Fix for UI & Spanish translation. Implement concurrent invoice payments. --- api/management/commands/follow_invoices.py | 4 +- api/tasks.py | 3 +- docker-compose.yml | 3 +- frontend/src/components/BookPage.js | 4 +- frontend/src/components/Chat.js | 4 +- frontend/src/components/MakerPage.js | 2 +- frontend/src/components/TradeBox.js | 12 +- frontend/src/locales/de.json | 11 +- frontend/src/locales/en.json | 7 +- frontend/src/locales/es.json | 179 +- frontend/src/locales/ru.json | 11 +- frontend/src/locales/zh.json | 11 +- frontend/static/frontend/main.js | 155 +- frontend/static/frontend/main.js.LICENSE.txt | 3353 +----------------- 14 files changed, 377 insertions(+), 3382 deletions(-) diff --git a/api/management/commands/follow_invoices.py b/api/management/commands/follow_invoices.py index 11582c9f..48a5581c 100644 --- a/api/management/commands/follow_invoices.py +++ b/api/management/commands/follow_invoices.py @@ -153,9 +153,7 @@ class Command(BaseCommand): queryset = queryset.union(queryset_retries) for lnpayment in queryset: - success, _ = follow_send_payment( - lnpayment - ) # Do follow_send_payment.delay() for further concurrency. + success, _ = follow_send_payment.delay(lnpayment.payment_hash) # If failed, reset mision control. (This won't scale well, just a temporary fix) if not success: diff --git a/api/tasks.py b/api/tasks.py index 6d9e0d79..a44f57d3 100644 --- a/api/tasks.py +++ b/api/tasks.py @@ -63,7 +63,7 @@ def users_cleansing(): return results @shared_task(name="follow_send_payment") -def follow_send_payment(lnpayment): +def follow_send_payment(hash): """Sends sats to buyer, continuous update""" from decouple import config @@ -73,6 +73,7 @@ def follow_send_payment(lnpayment): from api.lightning.node import LNNode, MACAROON from api.models import LNPayment, Order + lnpayment = LNPayment.objects.get(payment_hash=hash) fee_limit_sat = int( max( lnpayment.num_satoshis * diff --git a/docker-compose.yml b/docker-compose.yml index 9106d067..00b8bdfa 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -27,7 +27,7 @@ services: build: ./frontend container_name: npm-dev restart: always - command: npm run dev + command: npm run build volumes: - ./frontend:/usr/src/frontend @@ -73,6 +73,7 @@ services: REDIS_URL: redis://localhost:6379 volumes: - .:/usr/src/robosats + - /mnt/development/lnd:/lnd network_mode: service:tor tor: diff --git a/frontend/src/components/BookPage.js b/frontend/src/components/BookPage.js index 13fc01f6..79056826 100644 --- a/frontend/src/components/BookPage.js +++ b/frontend/src/components/BookPage.js @@ -262,7 +262,7 @@ class BookPage extends Component { {t("I want to")} - + - {t("The chat has no memory: if you leave, messages are lost.")} {t("Learn easy PGP encryption.")} + {t("The chat has no memory: if you leave, messages are lost.")} {t("Learn easy PGP encryption.")} ) diff --git a/frontend/src/components/MakerPage.js b/frontend/src/components/MakerPage.js index 46f45ffe..4d5e4e8c 100644 --- a/frontend/src/components/MakerPage.js +++ b/frontend/src/components/MakerPage.js @@ -315,7 +315,7 @@ class MakerPage extends Component { error={this.state.badPaymentMethod} helperText={this.state.badPaymentMethod ? t("Must be shorter than 65 characters"):""} label={this.state.currency==1000 ? t("Swap Destination(s)") : t("Fiat Payment Method(s)")} - listHeaderText={t("You can add any method")} + listHeaderText={t("You can add new methods")} addNewButtonText={t("Add New")} /> diff --git a/frontend/src/components/TradeBox.js b/frontend/src/components/TradeBox.js index 5607799a..51c888f8 100644 --- a/frontend/src/components/TradeBox.js +++ b/frontend/src/components/TradeBox.js @@ -27,6 +27,8 @@ function pn(x) { } class TradeBox extends Component { + invoice_escrow_duration = 3; + constructor(props) { super(props); this.state = { @@ -260,7 +262,7 @@ class TradeBox extends Component {
- {this.props.data.is_maker ? t("Your maker bond was unlock") : t("Your taker bond was unlocked")} + {this.props.data.is_maker ? t("Your maker bond was unlocked") : t("Your taker bond was unlocked")}
@@ -285,7 +287,7 @@ class TradeBox extends Component { - + @@ -381,8 +383,8 @@ class TradeBox extends Component { -

{t("Be patient while robots check the book. It might take some time. This box will ring 🔊 once a robot takes your order.")}

-

{t("Please note that if your premium is excessive or your currency or payment methods are not popular, your order might expire untaken. Your bond will return to you (no action needed).")}

+

{t("Be patient while robots check the book. This box will ring 🔊 once a robot takes your order, then you will have {{invoice_escrow_duration}} hours to reply. If you do not reply, you risk losing your bond.", {invoice_escrow_duration: pn(this.invoice_escrow_duration)})}

+

{t("If the order expires untaken, your bond will return to you and no action needed.")}

@@ -535,7 +537,7 @@ class TradeBox extends Component { : null } - + {this.showBondIsLocked()} diff --git a/frontend/src/locales/de.json b/frontend/src/locales/de.json index 08d05939..89dfb7ab 100644 --- a/frontend/src/locales/de.json +++ b/frontend/src/locales/de.json @@ -42,7 +42,7 @@ "Explicit":"Explicit", "Set a fix amount of satoshis":"Set a fix amount of satoshis", "Satoshis":"Satoshis", - "Let the taker chose an amount within the range":"Let the taker chose an amount within the range", + "Let the taker chose an amount within the range":"Let the taker choose an amount within the range", "Enable Amount Range":"Enable Amount Range", "From": "From", "to":"to", @@ -216,7 +216,7 @@ "Collaborative Cancel":"Collaborative Cancel", "Invalid Order Id":"Invalid Order Id", "You must have a robot avatar to see the order details":"You must have a robot avatar to see the order details", - "This order has been cancelled collaborativelly":"This order has been cancelled collaborativelly", + "This order has been cancelled collaborativelly":"This order has been cancelled collaboratively", "You are not allowed to see this order":"You are not allowed to see this order", "The Robotic Satoshis working in the warehouse did not understand you. Please, fill a Bug Issue in Github https://github.com/reckless-satoshi/robosats/issues":"The Robotic Satoshis working in the warehouse did not understand you. Please, fill a Bug Issue in Github https://github.com/reckless-satoshi/robosats/issues", @@ -230,6 +230,7 @@ "Send":"Send", "The chat has no memory: if you leave, messages are lost.":"The chat has no memory: if you leave, messages are lost.", "Learn easy PGP encryption.":"Learn easy PGP encryption.", + "PGP_guide_url":"https://github.com/Reckless-Satoshi/robosats/blob/main/docs/sensitive-data-PGP-guide.md/", "CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline", "Contract Box":"Contract Box", @@ -244,11 +245,11 @@ "Your taker bond is locked":"Your taker bond is locked", "Your maker bond was settled":"Your maker bond was settled", "Your taker bond was settled":"Your taker bond was settled", - "Your maker bond was unlock":"Your maker bond was unlock", + "Your maker bond was unlocked":"Your maker bond was unlocked", "Your taker bond was unlocked":"Your taker bond was unlocked", "Your order is public":"Your order is public", - "Be patient while robots check the book. It might take some time. This box will ring 🔊 once a robot takes your order.":"Be patient while robots check the book. It might take some time. This box will ring 🔊 once a robot takes your order.", - "Please note that if your premium is excessive or your currency or payment methods are not popular, your order might expire untaken. Your bond will return to you (no action needed).":"Please note that if your premium is excessive or your currency or payment methods are not popular, your order might expire untaken. Your bond will return to you (no action needed).", + "Be patient while robots check the book. This box will ring 🔊 once a robot takes your order, then you will have {{invoice_escrow_duration}} hours to reply. If you do not reply, you risk losing your bond.":"Be patient while robots check the book. This box will ring 🔊 once a robot takes your order, then you will have {{invoice_escrow_duration}} hours to reply. If you do not reply, you risk losing your bond.", + "If the order expires untaken, your bond will return to you (no action needed).":"If the order expires untaken, your bond will return to you (no action needed).", "Enable Telegram Notifications":"Enable Telegram Notifications", "Enable TG Notifications":"Enable TG Notifications", "You will be taken to a conversation with RoboSats telegram bot. Simply open the chat and press Start. Note that by enabling telegram notifications you might lower your level of anonymity.":"You will be taken to a conversation with RoboSats telegram bot. Simply open the chat and press Start. Note that by enabling telegram notifications you might lower your level of anonymity.", diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json index 653eab68..89dfb7ab 100644 --- a/frontend/src/locales/en.json +++ b/frontend/src/locales/en.json @@ -230,6 +230,7 @@ "Send":"Send", "The chat has no memory: if you leave, messages are lost.":"The chat has no memory: if you leave, messages are lost.", "Learn easy PGP encryption.":"Learn easy PGP encryption.", + "PGP_guide_url":"https://github.com/Reckless-Satoshi/robosats/blob/main/docs/sensitive-data-PGP-guide.md/", "CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline", "Contract Box":"Contract Box", @@ -244,11 +245,11 @@ "Your taker bond is locked":"Your taker bond is locked", "Your maker bond was settled":"Your maker bond was settled", "Your taker bond was settled":"Your taker bond was settled", - "Your maker bond was unlock":"Your maker bond was unlock", + "Your maker bond was unlocked":"Your maker bond was unlocked", "Your taker bond was unlocked":"Your taker bond was unlocked", "Your order is public":"Your order is public", - "Be patient while robots check the book. It might take some time. This box will ring 🔊 once a robot takes your order.":"Be patient while robots check the book. It might take some time. This box will ring 🔊 once a robot takes your order.", - "Please note that if your premium is excessive or your currency or payment methods are not popular, your order might expire untaken. Your bond will return to you (no action needed).":"Please note that if your premium is excessive or your currency or payment methods are not popular, your order might expire untaken. Your bond will return to you (no action needed).", + "Be patient while robots check the book. This box will ring 🔊 once a robot takes your order, then you will have {{invoice_escrow_duration}} hours to reply. If you do not reply, you risk losing your bond.":"Be patient while robots check the book. This box will ring 🔊 once a robot takes your order, then you will have {{invoice_escrow_duration}} hours to reply. If you do not reply, you risk losing your bond.", + "If the order expires untaken, your bond will return to you (no action needed).":"If the order expires untaken, your bond will return to you (no action needed).", "Enable Telegram Notifications":"Enable Telegram Notifications", "Enable TG Notifications":"Enable TG Notifications", "You will be taken to a conversation with RoboSats telegram bot. Simply open the chat and press Start. Note that by enabling telegram notifications you might lower your level of anonymity.":"You will be taken to a conversation with RoboSats telegram bot. Simply open the chat and press Start. Note that by enabling telegram notifications you might lower your level of anonymity.", diff --git a/frontend/src/locales/es.json b/frontend/src/locales/es.json index 90a71d04..3ef03e07 100644 --- a/frontend/src/locales/es.json +++ b/frontend/src/locales/es.json @@ -1,53 +1,53 @@ { "UNSAFE-ALERT": "Alert that shows on top when browsing from the unsafe clearnet sites", - "You are not using RoboSats privately": "No estás usando RoboSats de forma privada", + "You are not using RoboSats privately": "No usas RoboSats de forma privada", "desktop_unsafe_alert": "Algunas funciones (como el chat) están deshabilitadas para protegerte y sin ellas no podrás completar un intercambio. Para proteger tu privacidad y habilitar RoboSats por completo, usa el <1>Navegador Tor y visita el <3>sitio cebolla.", "phone_unsafe_alert": "No podrás completar un intercambio. Usa el <1>Navegador Tor y visita el <3>sitio cebolla.", "Hide": "Ocultar", "UserGenPage": "User Generation Page and Landing Page", - "Simple and Private LN P2P Exchange": "Intercambio de Lightning P2P Fácil y Privado", + "Simple and Private LN P2P Exchange": "Intercambio LN P2P Fácil y Privado", "This is your trading avatar": "Este es tu Robot de compraventa", - "Store your token safely":"Guarda tu token con cuidado", + "Store your token safely":"Guarda tu token de forma segura", "A robot avatar was found, welcome back!": "Se encontró un Robot, ¡bienvenido de nuevo!", "Copied!":"¡Copiado!", "Generate a new token":"Genera un nuevo token", "Generate Robot":"Generar Robot", - "You must enter a new token first":"Primero introduce un nuevo token", + "You must enter a new token first": "Primero introduce un nuevo token", "Make Order":"Crear orden", - "Info": "Información", + "Info": "Info", "View Book": "Ver libro", "MAKER PAGE - MakerPage.js": "This is the page where users can create new orders", "Order":"Orden", "Customize":"Personalizar", - "Buy or Sell Bitcoin?":"¿Comprar o vender bitcoin?", + "Buy or Sell Bitcoin?":"¿Comprar o Vender Bitcoin?", "Buy":"Comprar", "Sell":"Vender", - "Amount":"Cantidad", - "Amount of fiat to exchange for bitcoin":"Cantidad de fiat a cambiar por bitcoin", + "Amount":"Monto", + "Amount of fiat to exchange for bitcoin":"Monto de fiat a cambiar por bitcoin", "Invalid":"No válido", "Enter your preferred fiat payment methods. Fast methods are highly recommended.": "Introduce tus métodos de pago. Se recomiendan encarecidamente métodos rápidos.", "Must be shorter than 65 characters":"Debe tener menos de 65 caracteres", - "Swap Destination(s)": "Destino(s) del intercambio", - "Fiat Payment Method(s)":"Método(s) de pago en fiat", - "You can add any method":"Puedes añadir cualquier método", + "Swap Destination(s)": "Destino(s) del Swap", + "Fiat Payment Method(s)":"Método(s) de Pago en Fiat", + "You can add new methods":"Puedes añadir nuevos métodos", "Add New":"Añadir nuevo", - "Choose a Pricing Method":"Elige un método de precio", + "Choose a Pricing Method":"Elige Cómo Establecer el Precio", "Relative":"Relativo", - "Let the price move with the market":"EL precio se moverá con el mercado", - "Premium over Market (%)": "Prima (%) sobre mercado", + "Let the price move with the market":"EL precio se moverá relativo al mercado", + "Premium over Market (%)": "Prima sobre el mercado (%)", "Explicit":"Fijo", - "Set a fix amount of satoshis": "Establece una cantidad fija de Sats", - "Satoshis": "Sats", - "Let the taker chose an amount within the range":"Permite que el tomador elija una cantidad dentro del rango.", - "Enable Amount Range":"Activar rango", + "Set a fix amount of satoshis": "Establece un monto fijo de Sats", + "Satoshis": "Satoshis", + "Let the taker chose an amount within the range":"Permite que el tomador elija un monto dentro del rango.", + "Enable Amount Range":"Activar Monto con Rango", "From": "Desde", - "to":"hasta", + "to":"a ", "Public Duration (HH:mm)": "Duración pública (HH:mm)", - "Set the skin-in-the-game, increase for higher safety assurance": "Establece la implicación requerida, aumenta para mayor seguridad", + "Set the skin-in-the-game, increase for higher safety assurance": "Establece la implicación requerida (aumentar para mayor seguridad)", "Fidelity Bond Size": "Tamaño de la fianza", "Allow bondless takers":"Permitir tomadores sin fianza", "COMING SOON - High risk! Limited to {{limitSats}}K Sats": "PRÓXIMAMENTE - ¡Alto riesgo! Limitado a {{limitSats}}K Sats", @@ -102,38 +102,38 @@ "Lifetime contracted volume":"Volumen contratado total", "Made with":"Hecho con", "and":"y", - "... somewhere on Earth!": "... ¡en algún lugar de la tierra!", + "... somewhere on Earth!": "... en algún lugar de la tierra!", "Community":"Comunidad", "Support is only offered via public channels. Join our Telegram community if you have questions or want to hang out with other cool robots. Please, use our Github Issues if you find a bug or want to see new features!": "Sólo se ofrece soporte a través de canales públicos. Únete a nuestra comunidad de Telegram si tienes preguntas o quieres pasar el rato con otros Robots geniales. Por favor, utiliza nuestro GitHub para notificar un error o proponer nuevas funcionalidades.", "Join the RoboSats group": "Únete al grupo de RoboSats", "Telegram (English / Main)":"Telegram (Inglés / Principal)", - "RoboSats Telegram Communities":"Comunidades de RoboSats en Telegram:", + "RoboSats Telegram Communities":"Comunidades de RoboSats", "Join RoboSats Spanish speaking community!": "¡Únete a la comunidad de RoboSats en español!", "Join RoboSats Russian speaking community!": "¡Únete a la comunidad de RoboSats en ruso!", "Join RoboSats Chinese speaking community!": "¡Únete a la comunidad de RoboSats en chino!", "Join RoboSats English speaking community!": "¡Únete a la comunidad de RoboSats en inglés!", - "Tell us about a new feature or a bug":"Coméntanos nuevas funcionalidades o errores", + "Tell us about a new feature or a bug":"Propón funcionalidades o notifica errores", "Github Issues - The Robotic Satoshis Open Source Project": "Issues de GitHub - The Robotic Satoshis Open Source Project", "Your Profile":"Tu perfil", "Your robot": "Tu Robot", - "One active order #{{orderID}}":"Una orden activa #{{orderID}}", + "One active order #{{orderID}}":"Ir a orden activa #{{orderID}}", "Your current order":"Tu orden actual", - "No active orders":"Sin órdenes activas", + "No active orders":"No hay órdenes activas", "Your token (will not remain here)":"Tu token (no permanecerá aquí)", "Back it up!":"¡Guárdalo!", - "Cannot remember":"No lo recuerdo", + "Cannot remember":"Se olvidó", "Rewards and compensations":"Recompensas y compensaciones", "Share to earn 100 Sats per trade": "Comparte para ganar 100 Sats por intercambio", "Your referral link":"Tu enlace de referidos", "Your earned rewards":"Tus recompensas ganadas", - "Claim":"Reclamar", + "Claim":"Retirar", "Invoice for {{amountSats}} Sats": "Factura por {{amountSats}} Sats", "Submit":"Enviar", "There it goes, thank you!🥇": "Ahí va, ¡gracias!🥇", "You have an active order":"Tienes una orden activa", - "You can claim satoshis!": "¡Puedes reclamar Sats!", - "Public Buy Orders":"Órdenes de compra públicas", - "Public Sell Orders":"Órdenes de venta públicas", + "You can claim satoshis!": "¡Puedes retirar Sats!", + "Public Buy Orders":"Órdenes de compra", + "Public Sell Orders":"Órdenes de venta", "Today Active Robots":"Robots activos hoy", "24h Avg Premium": "Prima media en 24h", "Trade Fee":"Comisión", @@ -152,16 +152,16 @@ "ORDER PAGE - OrderPage.js": "Order details page", - "Order Box": "Ventana de orden", + "Order Box": "Orden", "Contract":"Contrato", "Active":"Activo", "Seen recently":"Visto recientemente", "Inactive":"Inactivo", "(Seller)":"(Vendedor)", "(Buyer)":"(Comprador)", - "Order maker": "Creador de la orden", - "Order taker": "Tomador de la orden", - "Order Details":"Detalles de la orden", + "Order maker": "Creador", + "Order taker": "Tomador", + "Order Details":"Detalles", "Order status":"Estado de la orden", "Waiting for maker bond":"Esperando la fianza del creador", "Public":"Pública", @@ -181,27 +181,27 @@ "Wait for dispute resolution":"Espera a la resolución de la disputa", "Maker lost dispute":"El creador perdió la disputa", "Taker lost dispute":"El tomador perdió la disputa", - "Amount range":"Rango de cantidad", + "Amount range":"Rango del monto", "Swap destination": "Destino del intercambio", "Accepted payment methods":"Métodos de pago aceptados", "Others":"Otros", "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/bitcoin - Prima: {{premium}}%", "Price and Premium":"Precio y prima", "Amount of Satoshis": "Cantidad de Sats", - "Premium over market price":"Prima sobre precio de mercado", + "Premium over market price":"Prima sobre el mercado", "Order ID":"ID de la orden", "Expires in":"Expira en", "{{nickname}} is asking for a collaborative cancel":"{{nickname}} solicita cancelar colaborativamente", "You asked for a collaborative cancellation":"Solicitaste cancelar colaborativamente", - "Invoice expired. You did not confirm publishing the order in time. Make a new order.": "Factura caducada. No confirmaste la publicación de la orden a tiempo. Crea una nueva orden.", + "Invoice expired. You did not confirm publishing the order in time. Make a new order.": "Factura caducada: no confirmaste la publicación de la orden a tiempo. Puedes crear una nueva orden.", "This order has been cancelled by the maker":"El creador ha cancelado esta orden", "Penalty lifted, good to go!":"Sanción revocada, ¡vamos!", "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s":"¡No puedes tomar una orden aún! Espera {{timeMin}}m {{timeSec}}s", - "Too low": "Demasiado bajo", - "Too high":"Demasiado alto", - "Enter amount of fiat to exchange for bitcoin": "Introduce la cantidad de fiat a cambiar por bitcoin", - "Amount {{currencyCode}}":"Cantidad {{currencyCode}}", - "You must specify an amount first":"Primero debes especificar una cantidad", + "Too low": "Muy poco", + "Too high":"Demasiado", + "Enter amount of fiat to exchange for bitcoin": "Introduce el monto de fiat a cambiar por bitcoin", + "Amount {{currencyCode}}":"Monto {{currencyCode}}", + "You must specify an amount first":"Primero debes especificar el monto", "Take Order":"Tomar orden", "Wait until you can take an order":"Espera hasta poder tomar una orden", "Cancel the order?": "¿Cancelar la orden?", @@ -210,7 +210,7 @@ "The maker is away": "El creador está ausente", "By taking this order you risk wasting your time. If the maker does not proceed in time, you will be compensated in satoshis for 50% of the maker bond.": "Tomando esta orden corres el riesgo de perder el tiempo. Si el creador no procede a tiempo, se te compensará en Sats con el 50% de la fianza del creador.", "Collaborative cancel the order?":"¿Cancelar la orden colaborativamente?", - "The trade escrow has been posted. The order can be cancelled only if both, maker and taker, agree to cancel.": "Se ha bloqueado el colateral. La orden solo puede cancelarse si tanto el creador como el tomador lo acuerdan.", + "The trade escrow has been posted. The order can be cancelled only if both, maker and taker, agree to cancel.": "Dado que el colateral está bloqueado, la orden solo puede cancelarse si tanto el creador como el tomador lo acuerdan.", "Ask for Cancel":"Solicitar cancelación", "Cancel":"Cancelar", "Collaborative Cancel":"Cancelación colaborativa", @@ -222,50 +222,51 @@ "CHAT BOX - Chat.js": "Ventana del chat", "You": "Tú", - "Peer": "Compañero", + "Peer": "Él", "connected": "conectado", "disconnected": "desconectado", "Type a message": "Escribe un mensaje", "Connecting...": "Conectando...", "Send": "Enviar", - "The chat has no memory: if you leave, messages are lost.": "El chat no tiene memoria: si lo cierras, los mesajes se perderan.", - "Learn easy PGP encryption.": "Aprende encriptación fácil PGP.", + "The chat has no memory: if you leave, messages are lost.": "Chat sin memoria: si lo cierras, los mensajes se pierden.", + "Learn easy PGP encryption.": "Aprende encriptación PGP.", + "PGP_guide_url":"https://github.com/Reckless-Satoshi/robosats/blob/main/docs/sensitive-data-PGP-guide_es.md/", "CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline", - "Contract Box": "Ventana del contrato", - "Robots show commitment to their peers": "Los Robots muestran su compromiso con sus compañeros", - "Lock {{amountSats}} Sats to PUBLISH order": "Bloquear {{amountSats}} Sats para PUBLICAR la orden", - "Lock {{amountSats}} Sats to TAKE order": "Bloquear {{amountSats}} Sats para TOMAR la orden", - "Lock {{amountSats}} Sats as collateral": "Bloquear {{amountSats}} Sats como colateral", + "Contract Box": "Contrato", + "Robots show commitment to their peers": "Los Robots deben mostrar su compromiso", + "Lock {{amountSats}} Sats to PUBLISH order": "Bloquea {{amountSats}} Sats para PUBLICAR", + "Lock {{amountSats}} Sats to TAKE order": "Bloquea {{amountSats}} Sats para TOMAR", + "Lock {{amountSats}} Sats as collateral": "Bloquea {{amountSats}} Sats como colateral", "Copy to clipboard": "Copiar al portapapeles", - "This is a hold invoice, it will freeze in your wallet. It will be charged only if you cancel or lose a dispute.": "Esto es una factura de retención, será retenida en tu cartera. Solo se cobrará si cancelas o pierdes una disputa.", - "This is a hold invoice, it will freeze in your wallet. It will be released to the buyer once you confirm to have received the {{currencyCode}}.": "Esto es una factura de retención, será retenida en tu cartera. Será liberada al comprador cuando confirmes que has recibido el {{currencyCode}}.", + "This is a hold invoice, it will freeze in your wallet. It will be charged only if you cancel or lose a dispute.": "Esto es una factura retenida, los Sats se bloquean en tu cartera. Solo se cobrará si cancelas o pierdes una disputa.", + "This is a hold invoice, it will freeze in your wallet. It will be released to the buyer once you confirm to have received the {{currencyCode}}.": "Esto es una factura retenida, los Sats se bloquean en tu cartera. Será liberada al comprador cuando confirmes que has recibido el {{currencyCode}}.", "Your maker bond is locked": "Tu fianza de creador está bloqueada", "Your taker bond is locked": "Tu fianza de tomador está bloqueada", - "Your maker bond was settled": "Tu fianza de creador se ha publicado", - "Your taker bond was settled": "Tu fianza de tomador se ha publicado", - "Your maker bond was unlock": "Tu fianza de creador se ha desbloqueado", - "Your taker bond was unlocked": "Tu fianza de tomador se ha desbloqueado", - "Your order is public": "Tu orden es póblica", - "Be patient while robots check the book. It might take some time. This box will ring 🔊 once a robot takes your order.": "Se paciente mientras los Robots comprueban el libro. Puede llevar un tiempo. Esta ventana sonará 🔊 una vez que algún Robot tome tu orden.", - "Please note that if your premium is excessive or your currency or payment methods are not popular, your order might expire untaken. Your bond will return to you (no action needed).": "Ten en cuenta que si tu prima es excesiva o tu moneda o metodos de pago no son populares, tu oferta puede expirar sin ser tomada. Tu fianza será devuelta a tu cartera automáticamente.", - "Enable Telegram Notifications": "Activar Notificaciones de Telegram", - "Enable TG Notifications": "Habilitar Notificaciones TG", + "Your maker bond was settled": "Tu fianza se ha cobrado", + "Your taker bond was settled": "Tu fianza se ha cobrado", + "Your maker bond was unlocked": "Tu fianza se ha desbloqueado", + "Your taker bond was unlocked": "Tu fianza se ha desbloqueado", + "Your order is public": "Tu orden es pública", + "Be patient while robots check the book. This box will ring 🔊 once a robot takes your order, then you will have {{invoice_escrow_duration}} hours to reply. If you do not reply, you risk losing your bond.": "Se paciente hasta que un robot tome tu orden. Esta ventana sonará 🔊 una vez que algún Robot tome tu orden. Entonces tendrás {{invoice_escrow_duration}} horas para responder, si no respondes arriesgas perder tu fianza.", + "If the order expires untaken, your bond will return to you (no action needed).": "Si tu oferta expira sin ser tomada, tu fianza será desbloqueada en tu cartera automáticamente.", + "Enable Telegram Notifications": "Notificar en Telegram", + "Enable TG Notifications": "Activar Notificaciones TG", "You will be taken to a conversation with RoboSats telegram bot. Simply open the chat and press Start. Note that by enabling telegram notifications you might lower your level of anonymity.": "Serás llevado a un chat con el bot de Telegram de RoboSats. Simplemente pulsa Empezar. Ten en cuenta que si activas las notificaciones de Telegram reducirás tu anonimato.", "Go back": "Volver", "Enable": "Activar", "Telegram enabled": "Telegram activado", - "Public orders for {{currencyCode}}": "Órdenes publicas para {{currencyCode}}", + "Public orders for {{currencyCode}}": "Órdenes públicas para {{currencyCode}}", "Premium rank": "Rango de prima", - "Among public {{currencyCode}} orders (higher is cheaper)": "Entre ordenes públicas de {{currencyCode}} (más alto, más barato)", + "Among public {{currencyCode}} orders (higher is cheaper)": "Entre las órdenes públicas de {{currencyCode}} (más alto, más barato)", "A taker has been found!": "¡Un tomador ha sido encontrado!", "Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "Por favor, espera a que el tomador bloquee su fianza. Si no lo hace a tiempo, la orden será pública de nuevo.", "Submit an invoice for {{amountSats}} Sats": "Envía una factura por {{amountSats}} Sats", - "The taker is committed! Before letting you send {{amountFiat}} {{currencyCode}}, we want to make sure you are able to receive the BTC. Please provide a valid invoice for {{amountSats}} Satoshis.": "¡El tomador está comprometido! Antes de dejarte enviar {{amountFiat}} {{currencyCode}}, queremos asegurarnos de que puedes recibir en Lightning. Por favor proporciona una factura valida por {{amountSats}} Sats.", - "Payout Lightning Invoice": "Paga la factura Lightning", - "Your invoice looks good!": "¡Tu factura se ve bien!", + "The taker is committed! Before letting you send {{amountFiat}} {{currencyCode}}, we want to make sure you are able to receive the BTC. Please provide a valid invoice for {{amountSats}} Satoshis.": "¡El tomador está comprometido! Antes de dejarte enviar {{amountFiat}} {{currencyCode}}, queremos asegurarnos de que puedes recibir en Lightning. Por favor proporciona una factura válida por {{amountSats}} Sats.", + "Payout Lightning Invoice": "Factura Lightning", + "Your invoice looks good!": "¡Tu factura es buena!", "We are waiting for the seller lock the trade amount.": "Esperando a que el vendedor bloquee el colateral.", - "Just hang on for a moment. If the seller does not deposit, you will get your bond back automatically. In addition, you will receive a compensation (check the rewards in your profile).": "Espera un momento. Si el vendedor no deposita, recuperarás tu fianza automáticamente. Además, conseguirás una compensación (comprueba las recompensas en tu perfil).", + "Just hang on for a moment. If the seller does not deposit, you will get your bond back automatically. In addition, you will receive a compensation (check the rewards in your profile).": "Espera un momento. Si el vendedor no deposita, recuperarás tu fianza automáticamente. Además, recibirás una compensación (comprueba las recompensas en tu perfil).", "The trade collateral is locked!": "¡El colateral está bloqueado!", "We are waiting for the buyer to post a lightning invoice. Once he does, you will be able to directly communicate the fiat payment details.": "Estamos esperando a que el comprador envíe una factura Lightning. Cuando lo haga, podrás comunicarle directamente los detalles del pago en fiat.", "Just hang on for a moment. If the buyer does not cooperate, you will get back the trade collateral and your bond automatically. In addition, you will receive a compensation (check the rewards in your profile).": "Espera un momento. Si el comprador no coopera, se te devolverá el colateral y tu fianza automáticamente. Además, recibiras una compensación (comprueba las recompensas en tu perfil).", @@ -273,11 +274,11 @@ "Confirm {{currencyCode}} received": "Confirmar {{currencyCode}} recibido", "Open Dispute": "Abrir Disputa", "The order has expired": "La orden ha expirado", - "Chat with the buyer": "Chat con el comprador", - "Chat with the seller": "Chat con el vendedor", - "Say hi! Be helpful and concise. Let them know how to send you {{currencyCode}}.": "¡Di hola! Se útil y conciso. Escríbele como puede enviarte {{currencyCode}}.", + "Chat with the buyer": "Habla con el comprador", + "Chat with the seller": "Habla con el vendedor", + "Say hi! Be helpful and concise. Let them know how to send you {{currencyCode}}.": "¡Di hola! Sé claro y conciso. Escríbele como puede enviarte {{currencyCode}}.", "The buyer has sent the fiat. Click 'Confirm Received' once you receive it.": "El comprador a enviado el fiat. Presiona 'Confirmar recibido' cuando lo hayas recibido.", - "Say hi! Ask for payment details and click 'Confirm Sent' as soon as the payment is sent.": "¡Di hola! Pregunta por los detalles del pago y presiona 'Confirmar enviado' en cuanto lo hayas enviado.", + "Say hi! Ask for payment details and click 'Confirm Sent' as soon as the payment is sent.": "¡Di hola! Pide los detalles de pago y pulsa 'Confirmar enviado' en cuanto pagues.", "Wait for the seller to confirm he has received the payment.": "Espera a que el vendedor confirme que ha recibido el pago.", "Confirm you received {{currencyCode}}?": "¿Confirmas que has recibido {{currencyCode}}?", "Confirming that you received the fiat will finalize the trade. The satoshis in the escrow will be released to the buyer. Only confirm after the {{currencyCode}} has arrived to your account. In addition, if you have received {{currencyCode}} and do not confirm the receipt, you risk losing your bond.": "Confirmando que has recibido el fiat finalizará el intercambio. Los Sats del colateral se enviarán al comparador. Confirma sólo después de asegurar que te ha llegado {{currencyCode}}. Además, si lo has recibido {{currencyCode}} y no confirmas la recepción, te arriesgas a perder tu fianza.", @@ -285,33 +286,33 @@ "🎉Trade finished!🥳": "🎉¡Intercambio finalizado!🥳", "rate_robosats": "¿Qué opinas de 🤖<1>RoboSats⚡?", "Thank you! RoboSats loves you too ❤️": "¡Muchas gracias! RoboSats te quiere también ❤️", - "RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats es mejor con más liquidez y usuarios. ¡Cuéntale a un amigo bitcoiner sobre RoboSats!", + "RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats mejora con más liquidez y usuarios. ¡Cuéntale a un amigo bitcoiner sobre RoboSats!", "Thank you for using Robosats!": "¡Gracias por usar RoboSats!", "let_us_know_hot_to_improve": "Dinos cómo podría mejorar la plataforma (<1>Telegram / <3>Github)", "Start Again": "Empezar de nuevo", - "Attempting Lightning Payment": "Intentando el pago en Lightning", + "Attempting Lightning Payment": "Intentando el pago Lightning", "RoboSats is trying to pay your lightning invoice. Remember that lightning nodes must be online in order to receive payments.": "RoboSats está intentando pagar tu factura de Lightning. Recuerda que los nodos Lightning deben estar en línea para recibir pagos.", "Retrying!": "¡Reintentando!", "Lightning Routing Failed": "Fallo en el enrutamiento de Lightning", "Your invoice has expired or more than 3 payment attempts have been made. Muun wallet is not recommended. ": "Tu factura ha expirado o se han hecho más de 3 intentos de pago. La cartera Muun no está recomendada. ", - "Check the list of compatible wallets": "Comprueba la lista de carteras compatibles", - "RoboSats will try to pay your invoice 3 times every 5 minutes. If it keeps failing, you will be able to submit a new invoice. Check whether you have enough inbound liquidity. Remember that lightning nodes must be online in order to receive payments.": "RoboSats intentará pagar tu factura 3 veces cada 5 minutos. Si sigue fallando, deberías poder presentar una nueva factura. Comprueba si tienes suficiente liquidez entrante. Recuerda que los nodos de Lightning tienen que estar en línea para poder recibir pagos.", + "Check the list of compatible wallets": "Mira la lista de carteras compatibles", + "RoboSats will try to pay your invoice 3 times every 5 minutes. If it keeps failing, you will be able to submit a new invoice. Check whether you have enough inbound liquidity. Remember that lightning nodes must be online in order to receive payments.": "RoboSats intentará pagar tu factura 3 veces cada 5 minutos. Si sigue fallando, podras presentar una nueva factura. Comprueba si tienes suficiente liquidez entrante. Recuerda que los nodos de Lightning tienen que estar en línea para poder recibir pagos.", "Next attempt in": "Próximo intento en", "Do you want to open a dispute?": "¿Quieres abrir una disputa?", - "The RoboSats staff will examine the statements and evidence provided. You need to build a complete case, as the staff cannot read the chat. It is best to provide a burner contact method with your statement. The satoshis in the trade escrow will be sent to the dispute winner, while the dispute loser will lose the bond.": "El equipo de RoboSats examinará las declaraciones y evidencias presentadas. Como el equipo no puede leer el chat, necesitas crear un caso completo. Es mejor dar un método de contacto de usar y tirar con tu declaración. Los Sats del colateral serán enviados al ganador de la disputa, mientras que el perdedor perderá la fianza.", - "Disagree": "Desacuerdo", - "Agree and open dispute": "Aceptar y abrir disputa", + "The RoboSats staff will examine the statements and evidence provided. You need to build a complete case, as the staff cannot read the chat. It is best to provide a burner contact method with your statement. The satoshis in the trade escrow will be sent to the dispute winner, while the dispute loser will lose the bond.": "El equipo de RoboSats examinará las declaraciones y evidencias presentadas. Como el equipo no puede leer el chat, necesitas escribir una declaració completa y exhaustiva. Es mejor dar un método de contacto de usar y tirar con tu declaración. Los Sats del colateral serán enviados al ganador de la disputa, mientras que el perdedor perderá la fianza.", + "Disagree": "Volver", + "Agree and open dispute": "Abrir disputa", "A dispute has been opened": "Una disputa ha sido abierta", "Please, submit your statement. Be clear and specific about what happened and provide the necessary evidence. You MUST provide a contact method: burner email, XMPP or telegram username to follow up with the staff. Disputes are solved at the discretion of real robots (aka humans), so be as helpful as possible to ensure a fair outcome. Max 5000 chars.": "Por favor, presenta tu declaración. Se claro y conciso sobre que pasó y entrega la evidencia necesaria. DEBES dar un metodo de contacto para comunicarte con el equipo: método de contacto de usar y tirar, XMPP o usuario de Telegram. Las disputas son resueltas con la discreción de los Robots reales (también conocidos como humanos), así que ayuda en lo posible para asegurar un resultado justo. 5000 caracteres máx.", - "Submit dispute statement": "Presentar la declaración de la disputa", + "Submit dispute statement": "Presentar declaración", "We have received your statement": "Hemos recibido tu declaración", "We are waiting for your trade counterpart statement. If you are hesitant about the state of the dispute or want to add more information, contact robosats@protonmail.com.": "Estamos esperando la declaración de tu compañero. Si dudas sobre el estado de la disputa o quieres añadir más información, contacta en robosats@protonmail.com.", "Please, save the information needed to identify your order and your payments: order ID; payment hashes of the bonds or escrow (check on your lightning wallet); exact amount of satoshis; and robot nickname. You will have to identify yourself as the user involved in this trade via email (or other contact methods).": "Por favor, guarda la información necesaria para identificar tu orden y tus pagos: ID de orden; claves del pago de la fianza o el colateral (comprueba tu cartera Lightning); cantidad exacta de Sats; y nombre del Robot. Tendrás que identificarte como el usuario involucrado en este intercambio por email (u otro método de contacto).", "We have the statements": "Tenemos la declaración", - "Both statements have been received, wait for the staff to resolve the dispute. If you are hesitant about the state of the dispute or want to add more information, contact robosats@protonmail.com. If you did not provide a contact method, or are unsure whether you wrote it right, write us immediately.": "Ambas declaraciones se han recibido, espera a que el equipo resuelva la disputa. Si dudas sobre el estado de la disputa o quieres añadir información, contacta con robosats@protonmail.com. Si no diste un método de contacto, o dudas de si lo escribiste bien, escribenos inmediatamente.", - "You have won the dispute": "Has ganado la diputa", - "You can claim the dispute resolution amount (escrow and fidelity bond) from your profile rewards. If there is anything the staff can help with, do not hesitate to contact to robosats@protonmail.com (or via your provided burner contact method).": "Puedes reclamar la cantidad de la resolución de la disputa (fianza y colateral) desde las recompensas de tu perfil. Si hay algo que el equipo pueda hacer, no dudes en contactar con robosats@protonmail.com (o a través del método de contacto de usar y tirar que especificaste).", - "You have lost the dispute": "Has perdido la diputa", + "Both statements have been received, wait for the staff to resolve the dispute. If you are hesitant about the state of the dispute or want to add more information, contact robosats@protonmail.com. If you did not provide a contact method, or are unsure whether you wrote it right, write us immediately.": "Ambas declaraciones se han recibido, espera a que el equipo resuelva la disputa. Si dudas sobre el estado de la disputa o quieres añadir información, contacta con robosats@protonmail.com. Si no diste un método de contacto, o dudas de si lo escribiste bien, escríbenos inmediatamente.", + "You have won the dispute": "Has ganado la disputa", + "You can claim the dispute resolution amount (escrow and fidelity bond) from your profile rewards. If there is anything the staff can help with, do not hesitate to contact to robosats@protonmail.com (or via your provided burner contact method).": "Puedes retirar la cantidad de la resolución de la disputa (fianza y colateral) desde las recompensas de tu perfil. Si hay algo que el equipo pueda hacer, no dudes en contactar con robosats@protonmail.com (o a través del método de contacto de usar y tirar que especificaste).", + "You have lost the dispute": "Has perdido la disputa", "Unfortunately you have lost the dispute. If you think this is a mistake you can ask to re-open the case via email to robosats@protonmail.com. However, chances of it being investigated again are low.": "Desafortunadamente has perdido la disputa. Si piensas que es un error también puedes pedir reabrir el caso por email a robosats@protonmail.com. De todas formas, las probabilidades de ser investigado de nuevo son bajas.", "INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use", @@ -328,22 +329,22 @@ "How it works": "Cómo funciona", "You can also check the full guide in ": "También puedes revisar la guía entera en ", "How to use": "Cómo utilizar", - "What payment methods are accepted?": "¿Qué metodos de pago son aceptados?", + "What payment methods are accepted?": "¿Qué métodos de pago son aceptados?", "All of them as long as they are fast. You can write down your preferred payment method(s). You will have to match with a peer who also accepts that method. The step to exchange fiat has a expiry time of 24 hours before a dispute is automatically open. We highly recommend using instant fiat payment rails.": "Todos siempre que sean rápidos. Puedes escribir abajo tu método de pago preferido(s). Tendrás que encontrar un compañero que acepte ese método. El paso para intercambiar el fiat tiene un tiempo de expiración de 24 horas antes de que se abra una disputa automáticamente. Te recomendamos métodos instantáneos de envío de fiat.", "Are there trade limits?": "¿Hay límites de intercambios?", "Maximum single trade size is {{maxAmount}} Satoshis to minimize lightning routing failure. There is no limits to the number of trades per day. A robot can only have one order at a time. However, you can use multiple robots simultaneously in different browsers (remember to back up your robot tokens!).": "Para minimizar fallos en el enrutamiento Lightning, el máximo por intercambio es de {{maxAmount}} Sats. No hay límite de intercambios en el tiempo. Aunque un Robot solo puede intervenir en una orden a la vez, puedes usar varios Robots en diferentes navegadores (¡recuerda guardar los tokens de tus Robots!).", "Is RoboSats private?": "¿RoboSats es privado?", "RoboSats will never ask you for your name, country or ID. RoboSats does not custody your funds and does not care who you are. RoboSats does not collect or custody any personal data. For best anonymity use Tor Browser and access the .onion hidden service.": "RoboSats no custodia tus fondos y no recolecta o custodia ningún dato personal, pues no le importa quien eres. RoboSats nunca te preguntará por tu nombre, país o número de documento. Para mejorar tu privacidad, usa el Navegador Tor y visita el sitio cebolla.", - "Your trading peer is the only one who can potentially guess anything about you. Keep your chat short and concise. Avoid providing non-essential information other than strictly necessary for the fiat payment.": "Tu compañero de intercambio es el único que puede pontencialmente adivinar algo sobre ti. Manten tu conversación corta y concisa. Evita dar datos que no sean estrictamente necesarios para el pago del fiat.", + "Your trading peer is the only one who can potentially guess anything about you. Keep your chat short and concise. Avoid providing non-essential information other than strictly necessary for the fiat payment.": "Tu compañero de intercambio es el único que puede potencialmente adivinar algo sobre ti. Mantén tu conversación corta y concisa. Evita dar datos que no sean estrictamente necesarios para el pago del fiat.", "What are the risks?": "¿Cuáles son los riesgos?", "This is an experimental application, things could go wrong. Trade small amounts!": "Esta es una aplicación experimental, algo puede ir mal. ¡Intercambia en pequeñas cantidades!", "The seller faces the same charge-back risk as with any other peer-to-peer service. Paypal or credit cards are not recommended.": "El vendedor tiene los mismos riesgos de devolución como con cualquier servicio P2P. PayPal o tarjetas de crédito no están recomendadas.", "What is the trust model?": "¿Cuál es el modelo de confianza?", - "The buyer and the seller never have to trust each other. Some trust on RoboSats is needed since linking the seller's hold invoice and buyer payment is not atomic (yet). In addition, disputes are solved by the RoboSats staff.": "El comprador y el vendedor nunca deben de confiar el uno en el otro. Una minima confiaza en RoboSats es necesaria, pues es el enlace entre la fianza del vendedor y el pago del comprador, que no es atómico (todavía). Además, las disputas se resuelven por el personal de RoboSats.", - "To be totally clear. Trust requirements are minimized. However, there is still one way RoboSats could run away with your satoshis: by not releasing the satoshis to the buyer. It could be argued that such move is not in RoboSats' interest as it would damage the reputation for a small payout. However, you should hesitate and only trade small quantities at a time. For large amounts use an onchain escrow service such as Bisq": "Con total claridad, los requerimentos de confianza son minimizados. De todas formas, todavía hay una forma en que RoboSats podría huir con tus Sats: no enviándoselos al comprador. Podría argumentarse que ese movimiento dañaría la reputación de RoboSats por un pequeño importe. De todas formas, deberías dudar y solo intercambiar pequeñas cantidades a la vez. Para grandes cantidades usa un exchange de primera capa como Bisq", + "The buyer and the seller never have to trust each other. Some trust on RoboSats is needed since linking the seller's hold invoice and buyer payment is not atomic (yet). In addition, disputes are solved by the RoboSats staff.": "El comprador y el vendedor nunca deben de confiar el uno en el otro. Una mínima confianza en RoboSats es necesaria, pues es el enlace entre la fianza del vendedor y el pago del comprador, que no es atómico (todavía). Además, las disputas se resuelven por el personal de RoboSats.", + "To be totally clear. Trust requirements are minimized. However, there is still one way RoboSats could run away with your satoshis: by not releasing the satoshis to the buyer. It could be argued that such move is not in RoboSats' interest as it would damage the reputation for a small payout. However, you should hesitate and only trade small quantities at a time. For large amounts use an onchain escrow service such as Bisq": "Con total claridad, los requerimentos de confianza son minimizados. De todas formas, todavía hay una forma en que RoboSats podría huir con tus Sats: no enviándoselos al comprador. Podría argumentarse que ese movimiento dañaría la reputación de RoboSats por un pequeño importe. De todas formas, deberías dudar y solo intercambiar pequeños montos cada vez. Para montos grandes usa un exchange de primera capa como Bisq", "You can build more trust on RoboSats by inspecting the source code.": "Puedes aumentar la confianza en RoboSats inspeccionando el código fuente.", "Project source code": "Código fuente del proyecto", - "What happens if RoboSats suddenly disappears?": "¿Que pasaría si RoboSats desapareciera?", + "What happens if RoboSats suddenly disappears?": "¿Qué pasaría si RoboSats desapareciera?", "Your sats will return to you. Any hold invoice that is not settled would be automatically returned even if RoboSats goes down forever. This is true for both, locked bonds and trading escrows. However, there is a small window between the seller confirms FIAT RECEIVED and the moment the buyer receives the satoshis when the funds could be permanently lost if RoboSats disappears. This window is about 1 second long. Make sure to have enough inbound liquidity to avoid routing failures. If you have any problem, reach out trough the RoboSats public channels.": "Tus Sats te serán devueltos. Cualquier factura no asentada será automaticamente devuelta incluso aunque RoboSats desaparezca. Esto es cierto tanto para las fianzas como para los colaterales. De todas formas, entre que el vendedor confirma haber recibido el fiat y el comprador recibe los Sats, hay un tiempo de aprox. 1 segundo en que los fondos podrían perderse si RoboSats desapareciera. Asegurate de tener suficiente liquidez entrante para evitar fallos de enrutamiento. Si tienes algún problema, busca en los canales públicos de RoboSats.", "In many countries using RoboSats is no different than using Ebay or Craiglist. Your regulation may vary. It is your responsibility to comply.": "En muchos países usar RoboSats no es diferente a usar Ebay o WallaPop. Tu regulación puede variar, es tu responsabilidad su cumplimiento.", "Is RoboSats legal in my country?": "¿Es RoboSats legal en mi país?", diff --git a/frontend/src/locales/ru.json b/frontend/src/locales/ru.json index 08d05939..89dfb7ab 100644 --- a/frontend/src/locales/ru.json +++ b/frontend/src/locales/ru.json @@ -42,7 +42,7 @@ "Explicit":"Explicit", "Set a fix amount of satoshis":"Set a fix amount of satoshis", "Satoshis":"Satoshis", - "Let the taker chose an amount within the range":"Let the taker chose an amount within the range", + "Let the taker chose an amount within the range":"Let the taker choose an amount within the range", "Enable Amount Range":"Enable Amount Range", "From": "From", "to":"to", @@ -216,7 +216,7 @@ "Collaborative Cancel":"Collaborative Cancel", "Invalid Order Id":"Invalid Order Id", "You must have a robot avatar to see the order details":"You must have a robot avatar to see the order details", - "This order has been cancelled collaborativelly":"This order has been cancelled collaborativelly", + "This order has been cancelled collaborativelly":"This order has been cancelled collaboratively", "You are not allowed to see this order":"You are not allowed to see this order", "The Robotic Satoshis working in the warehouse did not understand you. Please, fill a Bug Issue in Github https://github.com/reckless-satoshi/robosats/issues":"The Robotic Satoshis working in the warehouse did not understand you. Please, fill a Bug Issue in Github https://github.com/reckless-satoshi/robosats/issues", @@ -230,6 +230,7 @@ "Send":"Send", "The chat has no memory: if you leave, messages are lost.":"The chat has no memory: if you leave, messages are lost.", "Learn easy PGP encryption.":"Learn easy PGP encryption.", + "PGP_guide_url":"https://github.com/Reckless-Satoshi/robosats/blob/main/docs/sensitive-data-PGP-guide.md/", "CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline", "Contract Box":"Contract Box", @@ -244,11 +245,11 @@ "Your taker bond is locked":"Your taker bond is locked", "Your maker bond was settled":"Your maker bond was settled", "Your taker bond was settled":"Your taker bond was settled", - "Your maker bond was unlock":"Your maker bond was unlock", + "Your maker bond was unlocked":"Your maker bond was unlocked", "Your taker bond was unlocked":"Your taker bond was unlocked", "Your order is public":"Your order is public", - "Be patient while robots check the book. It might take some time. This box will ring 🔊 once a robot takes your order.":"Be patient while robots check the book. It might take some time. This box will ring 🔊 once a robot takes your order.", - "Please note that if your premium is excessive or your currency or payment methods are not popular, your order might expire untaken. Your bond will return to you (no action needed).":"Please note that if your premium is excessive or your currency or payment methods are not popular, your order might expire untaken. Your bond will return to you (no action needed).", + "Be patient while robots check the book. This box will ring 🔊 once a robot takes your order, then you will have {{invoice_escrow_duration}} hours to reply. If you do not reply, you risk losing your bond.":"Be patient while robots check the book. This box will ring 🔊 once a robot takes your order, then you will have {{invoice_escrow_duration}} hours to reply. If you do not reply, you risk losing your bond.", + "If the order expires untaken, your bond will return to you (no action needed).":"If the order expires untaken, your bond will return to you (no action needed).", "Enable Telegram Notifications":"Enable Telegram Notifications", "Enable TG Notifications":"Enable TG Notifications", "You will be taken to a conversation with RoboSats telegram bot. Simply open the chat and press Start. Note that by enabling telegram notifications you might lower your level of anonymity.":"You will be taken to a conversation with RoboSats telegram bot. Simply open the chat and press Start. Note that by enabling telegram notifications you might lower your level of anonymity.", diff --git a/frontend/src/locales/zh.json b/frontend/src/locales/zh.json index 08d05939..89dfb7ab 100644 --- a/frontend/src/locales/zh.json +++ b/frontend/src/locales/zh.json @@ -42,7 +42,7 @@ "Explicit":"Explicit", "Set a fix amount of satoshis":"Set a fix amount of satoshis", "Satoshis":"Satoshis", - "Let the taker chose an amount within the range":"Let the taker chose an amount within the range", + "Let the taker chose an amount within the range":"Let the taker choose an amount within the range", "Enable Amount Range":"Enable Amount Range", "From": "From", "to":"to", @@ -216,7 +216,7 @@ "Collaborative Cancel":"Collaborative Cancel", "Invalid Order Id":"Invalid Order Id", "You must have a robot avatar to see the order details":"You must have a robot avatar to see the order details", - "This order has been cancelled collaborativelly":"This order has been cancelled collaborativelly", + "This order has been cancelled collaborativelly":"This order has been cancelled collaboratively", "You are not allowed to see this order":"You are not allowed to see this order", "The Robotic Satoshis working in the warehouse did not understand you. Please, fill a Bug Issue in Github https://github.com/reckless-satoshi/robosats/issues":"The Robotic Satoshis working in the warehouse did not understand you. Please, fill a Bug Issue in Github https://github.com/reckless-satoshi/robosats/issues", @@ -230,6 +230,7 @@ "Send":"Send", "The chat has no memory: if you leave, messages are lost.":"The chat has no memory: if you leave, messages are lost.", "Learn easy PGP encryption.":"Learn easy PGP encryption.", + "PGP_guide_url":"https://github.com/Reckless-Satoshi/robosats/blob/main/docs/sensitive-data-PGP-guide.md/", "CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline", "Contract Box":"Contract Box", @@ -244,11 +245,11 @@ "Your taker bond is locked":"Your taker bond is locked", "Your maker bond was settled":"Your maker bond was settled", "Your taker bond was settled":"Your taker bond was settled", - "Your maker bond was unlock":"Your maker bond was unlock", + "Your maker bond was unlocked":"Your maker bond was unlocked", "Your taker bond was unlocked":"Your taker bond was unlocked", "Your order is public":"Your order is public", - "Be patient while robots check the book. It might take some time. This box will ring 🔊 once a robot takes your order.":"Be patient while robots check the book. It might take some time. This box will ring 🔊 once a robot takes your order.", - "Please note that if your premium is excessive or your currency or payment methods are not popular, your order might expire untaken. Your bond will return to you (no action needed).":"Please note that if your premium is excessive or your currency or payment methods are not popular, your order might expire untaken. Your bond will return to you (no action needed).", + "Be patient while robots check the book. This box will ring 🔊 once a robot takes your order, then you will have {{invoice_escrow_duration}} hours to reply. If you do not reply, you risk losing your bond.":"Be patient while robots check the book. This box will ring 🔊 once a robot takes your order, then you will have {{invoice_escrow_duration}} hours to reply. If you do not reply, you risk losing your bond.", + "If the order expires untaken, your bond will return to you (no action needed).":"If the order expires untaken, your bond will return to you (no action needed).", "Enable Telegram Notifications":"Enable Telegram Notifications", "Enable TG Notifications":"Enable TG Notifications", "You will be taken to a conversation with RoboSats telegram bot. Simply open the chat and press Start. Note that by enabling telegram notifications you might lower your level of anonymity.":"You will be taken to a conversation with RoboSats telegram bot. Simply open the chat and press Start. Note that by enabling telegram notifications you might lower your level of anonymity.", diff --git a/frontend/static/frontend/main.js b/frontend/static/frontend/main.js index 841790de..7d14e480 100644 --- a/frontend/static/frontend/main.js +++ b/frontend/static/frontend/main.js @@ -1,2 +1,155 @@ /*! For license information please see main.js.LICENSE.txt */ -(()=>{var __webpack_modules__={"./node_modules/@babel/runtime/helpers/interopRequireDefault.js":module=>{eval('function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n "default": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;\n\n//# sourceURL=webpack://frontend/./node_modules/@babel/runtime/helpers/interopRequireDefault.js?')},"./node_modules/@babel/runtime/helpers/interopRequireWildcard.js":(module,__unused_webpack_exports,__webpack_require__)=>{eval('var _typeof = (__webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"]);\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== "function") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") {\n return {\n "default": obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\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\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj["default"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard, module.exports.__esModule = true, module.exports["default"] = module.exports;\n\n//# sourceURL=webpack://frontend/./node_modules/@babel/runtime/helpers/interopRequireWildcard.js?')},"./node_modules/@babel/runtime/helpers/typeof.js":module=>{eval('function _typeof(obj) {\n "@babel/helpers - typeof";\n\n return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;\n }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;\n\n//# sourceURL=webpack://frontend/./node_modules/@babel/runtime/helpers/typeof.js?')},"./node_modules/@date-io/date-fns/build/index.esm.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ DateFnsUtils)\n/* harmony export */ });\n/* harmony import */ var date_fns_addDays__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! date-fns/addDays */ "./node_modules/date-fns/esm/addDays/index.js");\n/* harmony import */ var date_fns_addSeconds__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! date-fns/addSeconds */ "./node_modules/date-fns/esm/addSeconds/index.js");\n/* harmony import */ var date_fns_addMinutes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! date-fns/addMinutes */ "./node_modules/date-fns/esm/addMinutes/index.js");\n/* harmony import */ var date_fns_addHours__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! date-fns/addHours */ "./node_modules/date-fns/esm/addHours/index.js");\n/* harmony import */ var date_fns_addWeeks__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! date-fns/addWeeks */ "./node_modules/date-fns/esm/addWeeks/index.js");\n/* harmony import */ var date_fns_addMonths__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! date-fns/addMonths */ "./node_modules/date-fns/esm/addMonths/index.js");\n/* harmony import */ var date_fns_addYears__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! date-fns/addYears */ "./node_modules/date-fns/esm/addYears/index.js");\n/* harmony import */ var date_fns_differenceInYears__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! date-fns/differenceInYears */ "./node_modules/date-fns/esm/differenceInYears/index.js");\n/* harmony import */ var date_fns_differenceInQuarters__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! date-fns/differenceInQuarters */ "./node_modules/date-fns/esm/differenceInQuarters/index.js");\n/* harmony import */ var date_fns_differenceInMonths__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! date-fns/differenceInMonths */ "./node_modules/date-fns/esm/differenceInMonths/index.js");\n/* harmony import */ var date_fns_differenceInWeeks__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! date-fns/differenceInWeeks */ "./node_modules/date-fns/esm/differenceInWeeks/index.js");\n/* harmony import */ var date_fns_differenceInDays__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! date-fns/differenceInDays */ "./node_modules/date-fns/esm/differenceInDays/index.js");\n/* harmony import */ var date_fns_differenceInHours__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! date-fns/differenceInHours */ "./node_modules/date-fns/esm/differenceInHours/index.js");\n/* harmony import */ var date_fns_differenceInMinutes__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! date-fns/differenceInMinutes */ "./node_modules/date-fns/esm/differenceInMinutes/index.js");\n/* harmony import */ var date_fns_differenceInSeconds__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! date-fns/differenceInSeconds */ "./node_modules/date-fns/esm/differenceInSeconds/index.js");\n/* harmony import */ var date_fns_differenceInMilliseconds__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! date-fns/differenceInMilliseconds */ "./node_modules/date-fns/esm/differenceInMilliseconds/index.js");\n/* harmony import */ var date_fns_eachDayOfInterval__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! date-fns/eachDayOfInterval */ "./node_modules/date-fns/esm/eachDayOfInterval/index.js");\n/* harmony import */ var date_fns_endOfDay__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! date-fns/endOfDay */ "./node_modules/date-fns/esm/endOfDay/index.js");\n/* harmony import */ var date_fns_endOfWeek__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! date-fns/endOfWeek */ "./node_modules/date-fns/esm/endOfWeek/index.js");\n/* harmony import */ var date_fns_endOfYear__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! date-fns/endOfYear */ "./node_modules/date-fns/esm/endOfYear/index.js");\n/* harmony import */ var date_fns_format__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! date-fns/format */ "./node_modules/date-fns/esm/format/index.js");\n/* harmony import */ var date_fns_getHours__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! date-fns/getHours */ "./node_modules/date-fns/esm/getHours/index.js");\n/* harmony import */ var date_fns_getSeconds__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! date-fns/getSeconds */ "./node_modules/date-fns/esm/getSeconds/index.js");\n/* harmony import */ var date_fns_getYear__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! date-fns/getYear */ "./node_modules/date-fns/esm/getYear/index.js");\n/* harmony import */ var date_fns_isAfter__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! date-fns/isAfter */ "./node_modules/date-fns/esm/isAfter/index.js");\n/* harmony import */ var date_fns_isBefore__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! date-fns/isBefore */ "./node_modules/date-fns/esm/isBefore/index.js");\n/* harmony import */ var date_fns_isEqual__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! date-fns/isEqual */ "./node_modules/date-fns/esm/isEqual/index.js");\n/* harmony import */ var date_fns_isSameDay__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! date-fns/isSameDay */ "./node_modules/date-fns/esm/isSameDay/index.js");\n/* harmony import */ var date_fns_isSameYear__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! date-fns/isSameYear */ "./node_modules/date-fns/esm/isSameYear/index.js");\n/* harmony import */ var date_fns_isSameMonth__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! date-fns/isSameMonth */ "./node_modules/date-fns/esm/isSameMonth/index.js");\n/* harmony import */ var date_fns_isSameHour__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! date-fns/isSameHour */ "./node_modules/date-fns/esm/isSameHour/index.js");\n/* harmony import */ var date_fns_isValid__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! date-fns/isValid */ "./node_modules/date-fns/esm/isValid/index.js");\n/* harmony import */ var date_fns_parse__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! date-fns/parse */ "./node_modules/date-fns/esm/parse/index.js");\n/* harmony import */ var date_fns_setHours__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! date-fns/setHours */ "./node_modules/date-fns/esm/setHours/index.js");\n/* harmony import */ var date_fns_setMinutes__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! date-fns/setMinutes */ "./node_modules/date-fns/esm/setMinutes/index.js");\n/* harmony import */ var date_fns_setMonth__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! date-fns/setMonth */ "./node_modules/date-fns/esm/setMonth/index.js");\n/* harmony import */ var date_fns_getDay__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! date-fns/getDay */ "./node_modules/date-fns/esm/getDay/index.js");\n/* harmony import */ var date_fns_getDaysInMonth__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! date-fns/getDaysInMonth */ "./node_modules/date-fns/esm/getDaysInMonth/index.js");\n/* harmony import */ var date_fns_setSeconds__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! date-fns/setSeconds */ "./node_modules/date-fns/esm/setSeconds/index.js");\n/* harmony import */ var date_fns_setYear__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! date-fns/setYear */ "./node_modules/date-fns/esm/setYear/index.js");\n/* harmony import */ var date_fns_startOfDay__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! date-fns/startOfDay */ "./node_modules/date-fns/esm/startOfDay/index.js");\n/* harmony import */ var date_fns_startOfMonth__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! date-fns/startOfMonth */ "./node_modules/date-fns/esm/startOfMonth/index.js");\n/* harmony import */ var date_fns_endOfMonth__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! date-fns/endOfMonth */ "./node_modules/date-fns/esm/endOfMonth/index.js");\n/* harmony import */ var date_fns_startOfWeek__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! date-fns/startOfWeek */ "./node_modules/date-fns/esm/startOfWeek/index.js");\n/* harmony import */ var date_fns_startOfYear__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! date-fns/startOfYear */ "./node_modules/date-fns/esm/startOfYear/index.js");\n/* harmony import */ var date_fns_parseISO__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! date-fns/parseISO */ "./node_modules/date-fns/esm/parseISO/index.js");\n/* harmony import */ var date_fns_formatISO__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! date-fns/formatISO */ "./node_modules/date-fns/esm/formatISO/index.js");\n/* harmony import */ var date_fns_isWithinInterval__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! date-fns/isWithinInterval */ "./node_modules/date-fns/esm/isWithinInterval/index.js");\n/* harmony import */ var date_fns_lib_format_longFormatters__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! date-fns/_lib/format/longFormatters */ "./node_modules/date-fns/_lib/format/longFormatters/index.js");\n/* harmony import */ var date_fns_lib_format_longFormatters__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(date_fns_lib_format_longFormatters__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var date_fns_locale_en_US__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! date-fns/locale/en-US */ "./node_modules/date-fns/esm/locale/en-US/index.js");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar defaultFormats = {\n dayOfMonth: "d",\n fullDate: "PP",\n fullDateWithWeekday: "PPPP",\n fullDateTime: "PP p",\n fullDateTime12h: "PP hh:mm aaa",\n fullDateTime24h: "PP HH:mm",\n fullTime: "p",\n fullTime12h: "hh:mm aaa",\n fullTime24h: "HH:mm",\n hours12h: "hh",\n hours24h: "HH",\n keyboardDate: "P",\n keyboardDateTime: "P p",\n keyboardDateTime12h: "P hh:mm aaa",\n keyboardDateTime24h: "P HH:mm",\n minutes: "mm",\n month: "LLLL",\n monthAndDate: "MMMM d",\n monthAndYear: "LLLL yyyy",\n monthShort: "MMM",\n weekday: "EEEE",\n weekdayShort: "EEE",\n normalDate: "d MMMM",\n normalDateWithWeekday: "EEE, MMM d",\n seconds: "ss",\n shortDate: "MMM d",\n year: "yyyy",\n};\nvar DateFnsUtils = /** @class */ (function () {\n function DateFnsUtils(_a) {\n var _this = this;\n var _b = _a === void 0 ? {} : _a, locale = _b.locale, formats = _b.formats;\n this.lib = "date-fns";\n // Note: date-fns input types are more lenient than this adapter, so we need to expose our more\n // strict signature and delegate to the more lenient signature. Otherwise, we have downstream type errors upon usage.\n this.is12HourCycleInCurrentLocale = function () {\n if (_this.locale) {\n return /a/.test(_this.locale.formatLong.time());\n }\n // By default date-fns is using en-US locale with am/pm enabled\n return true;\n };\n this.getFormatHelperText = function (format) {\n // @see https://github.com/date-fns/date-fns/blob/master/src/format/index.js#L31\n var longFormatRegexp = /P+p+|P+|p+|\'\'|\'(\'\'|[^\'])+(\'|$)|./g;\n var locale = _this.locale || date_fns_locale_en_US__WEBPACK_IMPORTED_MODULE_0__["default"];\n return format\n .match(longFormatRegexp)\n .map(function (token) {\n var firstCharacter = token[0];\n if (firstCharacter === "p" || firstCharacter === "P") {\n var longFormatter = (date_fns_lib_format_longFormatters__WEBPACK_IMPORTED_MODULE_1___default())[firstCharacter];\n return longFormatter(token, locale.formatLong, {});\n }\n return token;\n })\n .join("")\n .replace(/(aaa|aa|a)/g, "(a|p)m")\n .toLocaleLowerCase();\n };\n this.parseISO = function (isoString) {\n return (0,date_fns_parseISO__WEBPACK_IMPORTED_MODULE_2__["default"])(isoString);\n };\n this.toISO = function (value) {\n return (0,date_fns_formatISO__WEBPACK_IMPORTED_MODULE_3__["default"])(value, { format: "extended" });\n };\n this.getCurrentLocaleCode = function () {\n var _a;\n return ((_a = _this.locale) === null || _a === void 0 ? void 0 : _a.code) || "en-US";\n };\n this.addSeconds = function (value, count) {\n return (0,date_fns_addSeconds__WEBPACK_IMPORTED_MODULE_4__["default"])(value, count);\n };\n this.addMinutes = function (value, count) {\n return (0,date_fns_addMinutes__WEBPACK_IMPORTED_MODULE_5__["default"])(value, count);\n };\n this.addHours = function (value, count) {\n return (0,date_fns_addHours__WEBPACK_IMPORTED_MODULE_6__["default"])(value, count);\n };\n this.addDays = function (value, count) {\n return (0,date_fns_addDays__WEBPACK_IMPORTED_MODULE_7__["default"])(value, count);\n };\n this.addWeeks = function (value, count) {\n return (0,date_fns_addWeeks__WEBPACK_IMPORTED_MODULE_8__["default"])(value, count);\n };\n this.addMonths = function (value, count) {\n return (0,date_fns_addMonths__WEBPACK_IMPORTED_MODULE_9__["default"])(value, count);\n };\n this.isValid = function (value) {\n return (0,date_fns_isValid__WEBPACK_IMPORTED_MODULE_10__["default"])(_this.date(value));\n };\n this.getDiff = function (value, comparing, unit) {\n switch (unit) {\n case "years":\n return (0,date_fns_differenceInYears__WEBPACK_IMPORTED_MODULE_11__["default"])(value, _this.date(comparing));\n case "quarters":\n return (0,date_fns_differenceInQuarters__WEBPACK_IMPORTED_MODULE_12__["default"])(value, _this.date(comparing));\n case "months":\n return (0,date_fns_differenceInMonths__WEBPACK_IMPORTED_MODULE_13__["default"])(value, _this.date(comparing));\n case "weeks":\n return (0,date_fns_differenceInWeeks__WEBPACK_IMPORTED_MODULE_14__["default"])(value, _this.date(comparing));\n case "days":\n return (0,date_fns_differenceInDays__WEBPACK_IMPORTED_MODULE_15__["default"])(value, _this.date(comparing));\n case "hours":\n return (0,date_fns_differenceInHours__WEBPACK_IMPORTED_MODULE_16__["default"])(value, _this.date(comparing));\n case "minutes":\n return (0,date_fns_differenceInMinutes__WEBPACK_IMPORTED_MODULE_17__["default"])(value, _this.date(comparing));\n case "seconds":\n return (0,date_fns_differenceInSeconds__WEBPACK_IMPORTED_MODULE_18__["default"])(value, _this.date(comparing));\n default: {\n return (0,date_fns_differenceInMilliseconds__WEBPACK_IMPORTED_MODULE_19__["default"])(value, _this.date(comparing));\n }\n }\n };\n this.isAfter = function (value, comparing) {\n return (0,date_fns_isAfter__WEBPACK_IMPORTED_MODULE_20__["default"])(value, comparing);\n };\n this.isBefore = function (value, comparing) {\n return (0,date_fns_isBefore__WEBPACK_IMPORTED_MODULE_21__["default"])(value, comparing);\n };\n this.startOfDay = function (value) {\n return (0,date_fns_startOfDay__WEBPACK_IMPORTED_MODULE_22__["default"])(value);\n };\n this.endOfDay = function (value) {\n return (0,date_fns_endOfDay__WEBPACK_IMPORTED_MODULE_23__["default"])(value);\n };\n this.getHours = function (value) {\n return (0,date_fns_getHours__WEBPACK_IMPORTED_MODULE_24__["default"])(value);\n };\n this.setHours = function (value, count) {\n return (0,date_fns_setHours__WEBPACK_IMPORTED_MODULE_25__["default"])(value, count);\n };\n this.setMinutes = function (value, count) {\n return (0,date_fns_setMinutes__WEBPACK_IMPORTED_MODULE_26__["default"])(value, count);\n };\n this.getSeconds = function (value) {\n return (0,date_fns_getSeconds__WEBPACK_IMPORTED_MODULE_27__["default"])(value);\n };\n this.setSeconds = function (value, count) {\n return (0,date_fns_setSeconds__WEBPACK_IMPORTED_MODULE_28__["default"])(value, count);\n };\n this.isSameDay = function (value, comparing) {\n return (0,date_fns_isSameDay__WEBPACK_IMPORTED_MODULE_29__["default"])(value, comparing);\n };\n this.isSameMonth = function (value, comparing) {\n return (0,date_fns_isSameMonth__WEBPACK_IMPORTED_MODULE_30__["default"])(value, comparing);\n };\n this.isSameYear = function (value, comparing) {\n return (0,date_fns_isSameYear__WEBPACK_IMPORTED_MODULE_31__["default"])(value, comparing);\n };\n this.isSameHour = function (value, comparing) {\n return (0,date_fns_isSameHour__WEBPACK_IMPORTED_MODULE_32__["default"])(value, comparing);\n };\n this.startOfMonth = function (value) {\n return (0,date_fns_startOfMonth__WEBPACK_IMPORTED_MODULE_33__["default"])(value);\n };\n this.endOfMonth = function (value) {\n return (0,date_fns_endOfMonth__WEBPACK_IMPORTED_MODULE_34__["default"])(value);\n };\n this.startOfWeek = function (value) {\n return (0,date_fns_startOfWeek__WEBPACK_IMPORTED_MODULE_35__["default"])(value, { locale: _this.locale });\n };\n this.endOfWeek = function (value) {\n return (0,date_fns_endOfWeek__WEBPACK_IMPORTED_MODULE_36__["default"])(value, { locale: _this.locale });\n };\n this.getYear = function (value) {\n return (0,date_fns_getYear__WEBPACK_IMPORTED_MODULE_37__["default"])(value);\n };\n this.setYear = function (value, count) {\n return (0,date_fns_setYear__WEBPACK_IMPORTED_MODULE_38__["default"])(value, count);\n };\n this.date = function (value) {\n if (typeof value === "undefined") {\n return new Date();\n }\n if (value === null) {\n return null;\n }\n return new Date(value);\n };\n this.toJsDate = function (value) {\n return value;\n };\n this.parse = function (value, formatString) {\n if (value === "") {\n return null;\n }\n return (0,date_fns_parse__WEBPACK_IMPORTED_MODULE_39__["default"])(value, formatString, new Date(), { locale: _this.locale });\n };\n this.format = function (date, formatKey) {\n return _this.formatByString(date, _this.formats[formatKey]);\n };\n this.formatByString = function (date, formatString) {\n return (0,date_fns_format__WEBPACK_IMPORTED_MODULE_40__["default"])(date, formatString, { locale: _this.locale });\n };\n this.isEqual = function (date, comparing) {\n if (date === null && comparing === null) {\n return true;\n }\n return (0,date_fns_isEqual__WEBPACK_IMPORTED_MODULE_41__["default"])(date, comparing);\n };\n this.isNull = function (date) {\n return date === null;\n };\n this.isAfterDay = function (date, value) {\n return (0,date_fns_isAfter__WEBPACK_IMPORTED_MODULE_20__["default"])(date, (0,date_fns_endOfDay__WEBPACK_IMPORTED_MODULE_23__["default"])(value));\n };\n this.isBeforeDay = function (date, value) {\n return (0,date_fns_isBefore__WEBPACK_IMPORTED_MODULE_21__["default"])(date, (0,date_fns_startOfDay__WEBPACK_IMPORTED_MODULE_22__["default"])(value));\n };\n this.isBeforeYear = function (date, value) {\n return (0,date_fns_isBefore__WEBPACK_IMPORTED_MODULE_21__["default"])(date, (0,date_fns_startOfYear__WEBPACK_IMPORTED_MODULE_42__["default"])(value));\n };\n this.isAfterYear = function (date, value) {\n return (0,date_fns_isAfter__WEBPACK_IMPORTED_MODULE_20__["default"])(date, (0,date_fns_endOfYear__WEBPACK_IMPORTED_MODULE_43__["default"])(value));\n };\n this.isWithinRange = function (date, _a) {\n var start = _a[0], end = _a[1];\n return (0,date_fns_isWithinInterval__WEBPACK_IMPORTED_MODULE_44__["default"])(date, { start: start, end: end });\n };\n this.formatNumber = function (numberToFormat) {\n return numberToFormat;\n };\n this.getMinutes = function (date) {\n return date.getMinutes();\n };\n this.getMonth = function (date) {\n return date.getMonth();\n };\n this.getDaysInMonth = function (date) {\n return (0,date_fns_getDaysInMonth__WEBPACK_IMPORTED_MODULE_45__["default"])(date);\n };\n this.setMonth = function (date, count) {\n return (0,date_fns_setMonth__WEBPACK_IMPORTED_MODULE_46__["default"])(date, count);\n };\n this.getMeridiemText = function (ampm) {\n return ampm === "am" ? "AM" : "PM";\n };\n this.getNextMonth = function (date) {\n return (0,date_fns_addMonths__WEBPACK_IMPORTED_MODULE_9__["default"])(date, 1);\n };\n this.getPreviousMonth = function (date) {\n return (0,date_fns_addMonths__WEBPACK_IMPORTED_MODULE_9__["default"])(date, -1);\n };\n this.getMonthArray = function (date) {\n var firstMonth = (0,date_fns_startOfYear__WEBPACK_IMPORTED_MODULE_42__["default"])(date);\n var monthArray = [firstMonth];\n while (monthArray.length < 12) {\n var prevMonth = monthArray[monthArray.length - 1];\n monthArray.push(_this.getNextMonth(prevMonth));\n }\n return monthArray;\n };\n this.mergeDateAndTime = function (date, time) {\n return _this.setSeconds(_this.setMinutes(_this.setHours(date, _this.getHours(time)), _this.getMinutes(time)), _this.getSeconds(time));\n };\n this.getWeekdays = function () {\n var now = new Date();\n return (0,date_fns_eachDayOfInterval__WEBPACK_IMPORTED_MODULE_47__["default"])({\n start: (0,date_fns_startOfWeek__WEBPACK_IMPORTED_MODULE_35__["default"])(now, { locale: _this.locale }),\n end: (0,date_fns_endOfWeek__WEBPACK_IMPORTED_MODULE_36__["default"])(now, { locale: _this.locale }),\n }).map(function (day) { return _this.formatByString(day, "EEEEEE"); });\n };\n this.getWeekArray = function (date) {\n var start = (0,date_fns_startOfWeek__WEBPACK_IMPORTED_MODULE_35__["default"])((0,date_fns_startOfMonth__WEBPACK_IMPORTED_MODULE_33__["default"])(date), { locale: _this.locale });\n var end = (0,date_fns_endOfWeek__WEBPACK_IMPORTED_MODULE_36__["default"])((0,date_fns_endOfMonth__WEBPACK_IMPORTED_MODULE_34__["default"])(date), { locale: _this.locale });\n var count = 0;\n var current = start;\n var nestedWeeks = [];\n var lastDay = null;\n while ((0,date_fns_isBefore__WEBPACK_IMPORTED_MODULE_21__["default"])(current, end)) {\n var weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];\n var day = (0,date_fns_getDay__WEBPACK_IMPORTED_MODULE_48__["default"])(current);\n if (lastDay !== day) {\n lastDay = day;\n nestedWeeks[weekNumber].push(current);\n count += 1;\n }\n current = (0,date_fns_addDays__WEBPACK_IMPORTED_MODULE_7__["default"])(current, 1);\n }\n return nestedWeeks;\n };\n this.getYearRange = function (start, end) {\n var startDate = (0,date_fns_startOfYear__WEBPACK_IMPORTED_MODULE_42__["default"])(start);\n var endDate = (0,date_fns_endOfYear__WEBPACK_IMPORTED_MODULE_43__["default"])(end);\n var years = [];\n var current = startDate;\n while ((0,date_fns_isBefore__WEBPACK_IMPORTED_MODULE_21__["default"])(current, endDate)) {\n years.push(current);\n current = (0,date_fns_addYears__WEBPACK_IMPORTED_MODULE_49__["default"])(current, 1);\n }\n return years;\n };\n this.locale = locale;\n this.formats = Object.assign({}, defaultFormats, formats);\n }\n return DateFnsUtils;\n}());\n\n\n\n\n//# sourceURL=webpack://frontend/./node_modules/@date-io/date-fns/build/index.esm.js?')},"./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _emotion_sheet__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @emotion/sheet */ "./node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js");\n/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/src/Tokenizer.js");\n/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/src/Utility.js");\n/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/src/Middleware.js");\n/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/src/Serializer.js");\n/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/src/Parser.js");\n/* harmony import */ var _emotion_weak_memoize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @emotion/weak-memoize */ "./node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js");\n/* harmony import */ var _emotion_memoize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @emotion/memoize */ "./node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js");\n\n\n\n\n\nvar last = function last(arr) {\n return arr.length ? arr[arr.length - 1] : null;\n}; // based on https://github.com/thysultan/stylis.js/blob/e6843c373ebcbbfade25ebcc23f540ed8508da0a/src/Tokenizer.js#L239-L244\n\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = (0,stylis__WEBPACK_IMPORTED_MODULE_3__.peek)(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if ((0,stylis__WEBPACK_IMPORTED_MODULE_3__.token)(character)) {\n break;\n }\n\n (0,stylis__WEBPACK_IMPORTED_MODULE_3__.next)();\n }\n\n return (0,stylis__WEBPACK_IMPORTED_MODULE_3__.slice)(begin, stylis__WEBPACK_IMPORTED_MODULE_3__.position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we\'ve started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch ((0,stylis__WEBPACK_IMPORTED_MODULE_3__.token)(character)) {\n case 0:\n // &\\f\n if (character === 38 && (0,stylis__WEBPACK_IMPORTED_MODULE_3__.peek)() === 12) {\n // this is not 100% correct, we don\'t account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it\'s very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(stylis__WEBPACK_IMPORTED_MODULE_3__.position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += (0,stylis__WEBPACK_IMPORTED_MODULE_3__.delimit)(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = (0,stylis__WEBPACK_IMPORTED_MODULE_3__.peek)() === 58 ? \'&\\f\' : \'\';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += (0,stylis__WEBPACK_IMPORTED_MODULE_4__.from)(character);\n }\n } while (character = (0,stylis__WEBPACK_IMPORTED_MODULE_3__.next)());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return (0,stylis__WEBPACK_IMPORTED_MODULE_3__.dealloc)(toRules((0,stylis__WEBPACK_IMPORTED_MODULE_3__.alloc)(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== \'rule\' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== \'rule\') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its "rule parent"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + " " + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === \'decl\') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element["return"] = \'\';\n element.value = \'\';\n }\n }\n};\nvar ignoreFlag = \'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason\';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return !!element && element.type === \'comm\' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== \'rule\') return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n var prevElement = index > 0 ? children[index - 1] : null;\n\n if (prevElement && isIgnoringComment(last(prevElement.children))) {\n return;\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error("The pseudo class \\"" + unsafePseudoClass + "\\" is potentially unsafe when doing server-side rendering. Try changing it to \\"" + unsafePseudoClass.split(\'-child\')[0] + "-of-type\\".");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don\'t get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = \'\';\n element.value = \'\';\n element["return"] = \'\';\n element.children = \'\';\n element.props = \'\';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error("`@import` rules can\'t be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error("`@import` rules can\'t be after other rules. Please put your `@import` rules before your other rules.");\n nullifyElement(element);\n }\n};\n\nvar defaultStylisPlugins = [stylis__WEBPACK_IMPORTED_MODULE_5__.prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (false) {}\n\n if ( key === \'css\') {\n var ssrStyles = document.querySelectorAll("style[data-emotion]:not([data-s])"); // get SSRed styles out of the way of React\'s hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute(\'data-emotion\');\n\n if (dataEmotionAttribute.indexOf(\' \') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute(\'data-s\', \'\');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (false) {}\n\n var inserted = {}; // $FlowFixMe\n\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don\'t have a space in them which\n // means that the style elements we\'re looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll("style[data-emotion^=\\"" + key + " \\"]"), function (node) {\n var attrib = node.getAttribute("data-emotion").split(\' \'); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (false) {}\n\n {\n var currentSheet;\n var finalizingPlugins = [stylis__WEBPACK_IMPORTED_MODULE_6__.stringify, false ? 0 : (0,stylis__WEBPACK_IMPORTED_MODULE_5__.rulesheet)(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = (0,stylis__WEBPACK_IMPORTED_MODULE_5__.middleware)(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return (0,stylis__WEBPACK_IMPORTED_MODULE_6__.serialize)((0,stylis__WEBPACK_IMPORTED_MODULE_7__.compile)(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (false) {}\n\n stylis(selector ? selector + "{" + serialized.styles + "}" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new _emotion_sheet__WEBPACK_IMPORTED_MODULE_0__.StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createCache);\n\n\n//# sourceURL=webpack://frontend/./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js?')},"./node_modules/@emotion/hash/dist/hash.browser.esm.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (murmur2);\n\n\n//# sourceURL=webpack://frontend/./node_modules/@emotion/hash/dist/hash.browser.esm.js?")},"./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.browser.esm.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _emotion_memoize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @emotion/memoize */ "./node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js");\n\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */(0,_emotion_memoize__WEBPACK_IMPORTED_MODULE_0__["default"])(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isPropValid);\n\n\n//# sourceURL=webpack://frontend/./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.browser.esm.js?')},"./node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nfunction memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (memoize);\n\n\n//# sourceURL=webpack://frontend/./node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js?')},"./node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! hoist-non-react-statics */ "./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_0__);\n\n\n// this file isolates this package that is not tree-shakeable\n// and if this module doesn\'t actually contain any logic of its own\n// then Rollup just use \'hoist-non-react-statics\' directly in other chunks\n\nvar hoistNonReactStatics = (function (targetComponent, sourceComponent) {\n return hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_0___default()(targetComponent, sourceComponent);\n});\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (hoistNonReactStatics);\n\n\n//# sourceURL=webpack://frontend/./node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js?')},"./node_modules/@emotion/react/dist/emotion-element-699e6908.browser.esm.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "C": () => (/* binding */ CacheProvider),\n/* harmony export */ "E": () => (/* binding */ Emotion),\n/* harmony export */ "T": () => (/* binding */ ThemeContext),\n/* harmony export */ "_": () => (/* binding */ __unsafe_useEmotionCache),\n/* harmony export */ "a": () => (/* binding */ ThemeProvider),\n/* harmony export */ "b": () => (/* binding */ withTheme),\n/* harmony export */ "c": () => (/* binding */ createEmotionProps),\n/* harmony export */ "h": () => (/* binding */ hasOwnProperty),\n/* harmony export */ "u": () => (/* binding */ useTheme),\n/* harmony export */ "w": () => (/* binding */ withEmotionCache)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var _emotion_cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @emotion/cache */ "./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var _emotion_weak_memoize__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @emotion/weak-memoize */ "./node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js");\n/* harmony import */ var _isolated_hnrs_dist_emotion_react_isolated_hnrs_browser_esm_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js */ "./node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js");\n/* harmony import */ var _emotion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @emotion/utils */ "./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js");\n/* harmony import */ var _emotion_serialize__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @emotion/serialize */ "./node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js");\n\n\n\n\n\n\n\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)( // we\'re doing this to avoid preconstruct\'s dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it\'s also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== \'undefined\' ? /* #__PURE__ */(0,_emotion_cache__WEBPACK_IMPORTED_MODULE_1__["default"])({\n key: \'css\'\n}) : null);\n\nif (false) {}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function (props, ref) {\n // the cache will never be null in the browser\n var cache = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({});\n\nif (false) {}\n\nvar useTheme = function useTheme() {\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === \'function\') {\n var mergedTheme = theme(outerTheme);\n\n if (false) {}\n\n return mergedTheme;\n }\n\n if (false) {}\n\n return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__["default"])({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */(0,_emotion_weak_memoize__WEBPACK_IMPORTED_MODULE_3__["default"])(function (outerTheme) {\n return (0,_emotion_weak_memoize__WEBPACK_IMPORTED_MODULE_3__["default"])(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || \'Component\';\n\n var render = function render(props, ref) {\n var theme = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(ThemeContext);\n return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Component, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__["default"])({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(render);\n WithTheme.displayName = "WithTheme(" + componentName + ")";\n return (0,_isolated_hnrs_dist_emotion_react_isolated_hnrs_browser_esm_js__WEBPACK_IMPORTED_MODULE_6__["default"])(WithTheme, Component);\n}\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n\n if (match) {\n // The match may be something like \'Object.createEmotionProps\'\n var parts = match[1].split(\'.\');\n return parts[parts.length - 1];\n } // Safari / Firefox\n\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return match[1];\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set([\'renderWithHooks\', \'processChild\', \'finishClassComponent\', \'renderToString\']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, \'-\');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split(\'\\n\');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just "Error"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = \'__EMOTION_TYPE_PLEASE_DO_NOT_USE__\';\nvar labelPropName = \'__EMOTION_LABEL_PLEASE_DO_NOT_USE__\';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (false) {}\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn\'t already been computed\n\n if (false) { var label; }\n\n return newProps;\n};\n\nvar Noop = function Noop() {\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === \'string\' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var type = props[typePropName];\n var registeredStyles = [cssProp];\n var className = \'\';\n\n if (typeof props.className === \'string\') {\n className = (0,_emotion_utils__WEBPACK_IMPORTED_MODULE_4__.getRegisteredStyles)(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + " ";\n }\n\n var serialized = (0,_emotion_serialize__WEBPACK_IMPORTED_MODULE_5__.serializeStyles)(registeredStyles, undefined, (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(ThemeContext));\n\n if (false) { var labelFromStack; }\n\n var rules = (0,_emotion_utils__WEBPACK_IMPORTED_MODULE_4__.insertStyles)(cache, serialized, typeof type === \'string\');\n className += cache.key + "-" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== \'css\' && key !== typePropName && ( true || 0)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n var ele = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(type, newProps);\n var possiblyStyleElement = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Noop, null);\n\n\n return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, possiblyStyleElement, ele);\n});\n\nif (false) {}\n\n\n\n\n//# sourceURL=webpack://frontend/./node_modules/@emotion/react/dist/emotion-element-699e6908.browser.esm.js?')},"./node_modules/@emotion/react/dist/emotion-react.browser.esm.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "CacheProvider": () => (/* reexport safe */ _emotion_element_699e6908_browser_esm_js__WEBPACK_IMPORTED_MODULE_2__.C),\n/* harmony export */ "ThemeContext": () => (/* reexport safe */ _emotion_element_699e6908_browser_esm_js__WEBPACK_IMPORTED_MODULE_2__.T),\n/* harmony export */ "ThemeProvider": () => (/* reexport safe */ _emotion_element_699e6908_browser_esm_js__WEBPACK_IMPORTED_MODULE_2__.a),\n/* harmony export */ "__unsafe_useEmotionCache": () => (/* reexport safe */ _emotion_element_699e6908_browser_esm_js__WEBPACK_IMPORTED_MODULE_2__._),\n/* harmony export */ "useTheme": () => (/* reexport safe */ _emotion_element_699e6908_browser_esm_js__WEBPACK_IMPORTED_MODULE_2__.u),\n/* harmony export */ "withEmotionCache": () => (/* reexport safe */ _emotion_element_699e6908_browser_esm_js__WEBPACK_IMPORTED_MODULE_2__.w),\n/* harmony export */ "withTheme": () => (/* reexport safe */ _emotion_element_699e6908_browser_esm_js__WEBPACK_IMPORTED_MODULE_2__.b),\n/* harmony export */ "ClassNames": () => (/* binding */ ClassNames),\n/* harmony export */ "Global": () => (/* binding */ Global),\n/* harmony export */ "createElement": () => (/* binding */ jsx),\n/* harmony export */ "css": () => (/* binding */ css),\n/* harmony export */ "jsx": () => (/* binding */ jsx),\n/* harmony export */ "keyframes": () => (/* binding */ keyframes)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var _emotion_cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @emotion/cache */ "./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js");\n/* harmony import */ var _emotion_element_699e6908_browser_esm_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./emotion-element-699e6908.browser.esm.js */ "./node_modules/@emotion/react/dist/emotion-element-699e6908.browser.esm.js");\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var _emotion_weak_memoize__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @emotion/weak-memoize */ "./node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! hoist-non-react-statics */ "./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _emotion_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @emotion/utils */ "./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js");\n/* harmony import */ var _emotion_serialize__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @emotion/serialize */ "./node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js");\n/* harmony import */ var _emotion_sheet__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @emotion/sheet */ "./node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js");\n\n\n\n\n\n\n\n\n\n\n\n\nvar pkg = {\n\tname: "@emotion/react",\n\tversion: "11.7.1",\n\tmain: "dist/emotion-react.cjs.js",\n\tmodule: "dist/emotion-react.esm.js",\n\tbrowser: {\n\t\t"./dist/emotion-react.cjs.js": "./dist/emotion-react.browser.cjs.js",\n\t\t"./dist/emotion-react.esm.js": "./dist/emotion-react.browser.esm.js"\n\t},\n\ttypes: "types/index.d.ts",\n\tfiles: [\n\t\t"src",\n\t\t"dist",\n\t\t"jsx-runtime",\n\t\t"jsx-dev-runtime",\n\t\t"_isolated-hnrs",\n\t\t"types/*.d.ts",\n\t\t"macro.js",\n\t\t"macro.d.ts",\n\t\t"macro.js.flow"\n\t],\n\tsideEffects: false,\n\tauthor: "mitchellhamilton ",\n\tlicense: "MIT",\n\tscripts: {\n\t\t"test:typescript": "dtslint types"\n\t},\n\tdependencies: {\n\t\t"@babel/runtime": "^7.13.10",\n\t\t"@emotion/cache": "^11.7.1",\n\t\t"@emotion/serialize": "^1.0.2",\n\t\t"@emotion/sheet": "^1.1.0",\n\t\t"@emotion/utils": "^1.0.0",\n\t\t"@emotion/weak-memoize": "^0.2.5",\n\t\t"hoist-non-react-statics": "^3.3.1"\n\t},\n\tpeerDependencies: {\n\t\t"@babel/core": "^7.0.0",\n\t\treact: ">=16.8.0"\n\t},\n\tpeerDependenciesMeta: {\n\t\t"@babel/core": {\n\t\t\toptional: true\n\t\t},\n\t\t"@types/react": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t"@babel/core": "^7.13.10",\n\t\t"@emotion/css": "11.7.1",\n\t\t"@emotion/css-prettifier": "1.0.1",\n\t\t"@emotion/server": "11.4.0",\n\t\t"@emotion/styled": "11.6.0",\n\t\t"@types/react": "^16.9.11",\n\t\tdtslint: "^0.3.0",\n\t\t"html-tag-names": "^1.1.2",\n\t\treact: "16.14.0",\n\t\t"svg-tag-names": "^1.1.1"\n\t},\n\trepository: "https://github.com/emotion-js/emotion/tree/main/packages/react",\n\tpublishConfig: {\n\t\taccess: "public"\n\t},\n\t"umd:main": "dist/emotion-react.umd.min.js",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t"./index.js",\n\t\t\t"./jsx-runtime.js",\n\t\t\t"./jsx-dev-runtime.js",\n\t\t\t"./_isolated-hnrs.js"\n\t\t],\n\t\tumdName: "emotionReact"\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !_emotion_element_699e6908_browser_esm_js__WEBPACK_IMPORTED_MODULE_2__.h.call(props, \'css\')) {\n // $FlowFixMe\n return react__WEBPACK_IMPORTED_MODULE_0__.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = _emotion_element_699e6908_browser_esm_js__WEBPACK_IMPORTED_MODULE_2__.E;\n createElementArgArray[1] = (0,_emotion_element_699e6908_browser_esm_js__WEBPACK_IMPORTED_MODULE_2__.c)(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return react__WEBPACK_IMPORTED_MODULE_0__.createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn\'t been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */(0,_emotion_element_699e6908_browser_esm_js__WEBPACK_IMPORTED_MODULE_2__.w)(function (props, cache) {\n if (false) {}\n\n var styles = props.styles;\n var serialized = (0,_emotion_serialize__WEBPACK_IMPORTED_MODULE_7__.serializeStyles)([styles], undefined, (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_emotion_element_699e6908_browser_esm_js__WEBPACK_IMPORTED_MODULE_2__.T));\n // but it is based on a constant that will never change at runtime\n // it\'s effectively like having two implementations and switching them out\n // so it\'s not actually breaking anything\n\n\n var sheetRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)(function () {\n var key = cache.key + "-global";\n var sheet = new _emotion_sheet__WEBPACK_IMPORTED_MODULE_8__.StyleSheet({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector("style[data-emotion=\\"" + key + " " + serialized.name + "\\"]");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won\'t be recognizable as rehydratable by other s\n\n node.setAttribute(\'data-emotion\', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n (0,_emotion_utils__WEBPACK_IMPORTED_MODULE_6__.insertStyles)(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn\'t exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert("", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (false) {}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return (0,_emotion_serialize__WEBPACK_IMPORTED_MODULE_7__.serializeStyles)(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = "animation-" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: "@keyframes " + name + "{" + insertable.styles + "}",\n anim: 1,\n toString: function toString() {\n return "_EMO_" + this.name + "_" + this.styles + "_EMO_";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = \'\';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case \'boolean\':\n break;\n\n case \'object\':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (false) {}\n\n toAdd = \'\';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += \' \');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += \' \');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = (0,_emotion_utils__WEBPACK_IMPORTED_MODULE_6__.getRegisteredStyles)(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Noop = function Noop() {\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */(0,_emotion_element_699e6908_browser_esm_js__WEBPACK_IMPORTED_MODULE_2__.w)(function (props, cache) {\n var hasRendered = false;\n\n var css = function css() {\n if (hasRendered && "production" !== \'production\') {}\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = (0,_emotion_serialize__WEBPACK_IMPORTED_MODULE_7__.serializeStyles)(args, cache.registered);\n\n {\n (0,_emotion_utils__WEBPACK_IMPORTED_MODULE_6__.insertStyles)(cache, serialized, false);\n }\n\n return cache.key + "-" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && "production" !== \'production\') {}\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_emotion_element_699e6908_browser_esm_js__WEBPACK_IMPORTED_MODULE_2__.T)\n };\n var ele = props.children(content);\n hasRendered = true;\n var possiblyStyleElement = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Noop, null);\n\n\n return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, possiblyStyleElement, ele);\n});\n\nif (false) {}\n\nif (false) { var globalKey, globalContext, isJest, isBrowser; }\n\n\n\n\n//# sourceURL=webpack://frontend/./node_modules/@emotion/react/dist/emotion-react.browser.esm.js?')},"./node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"serializeStyles\": () => (/* binding */ serializeStyles)\n/* harmony export */ });\n/* harmony import */ var _emotion_hash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @emotion/hash */ \"./node_modules/@emotion/hash/dist/hash.browser.esm.js\");\n/* harmony import */ var _emotion_unitless__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @emotion/unitless */ \"./node_modules/@emotion/unitless/dist/unitless.browser.esm.js\");\n/* harmony import */ var _emotion_memoize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @emotion/memoize */ \"./node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js\");\n\n\n\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */(0,_emotion_memoize__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (_emotion_unitless__WEBPACK_IMPORTED_MODULE_1__[\"default\"][key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (false) { var hyphenatedCache, hyphenPattern, msPattern, oldProcessStyleValue, contentValues, contentValuePattern; }\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (false) {}\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (false) {}\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (false) {}\n\n break;\n }\n\n case 'string':\n if (false) { var replaced, matched; }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && \"production\" !== 'production') {}\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (false) {}\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (false) {} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (false) {}\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (false) {}\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (false) {} // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = (0,_emotion_hash__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(styles) + identifierName;\n\n if (false) {}\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\n\n\n\n//# sourceURL=webpack://frontend/./node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js?")},"./node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"StyleSheet\": () => (/* binding */ StyleSheet)\n/* harmony export */ });\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? \"production\" === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (false) { var isImportRule; }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (false) {}\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (false) {}\n };\n\n return StyleSheet;\n}();\n\n\n\n\n//# sourceURL=webpack://frontend/./node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js?")},"./node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var _emotion_is_prop_valid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @emotion/is-prop-valid */ "./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.browser.esm.js");\n/* harmony import */ var _emotion_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @emotion/react */ "./node_modules/@emotion/react/dist/emotion-element-699e6908.browser.esm.js");\n/* harmony import */ var _emotion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @emotion/utils */ "./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js");\n/* harmony import */ var _emotion_serialize__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @emotion/serialize */ "./node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js");\n\n\n\n\n\n\n\nvar testOmitPropsOnStringTag = _emotion_is_prop_valid__WEBPACK_IMPORTED_MODULE_2__["default"];\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== \'theme\';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === \'string\' && // 96 is one less than the char code\n // for "a" so this is checking that\n // it\'s a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== \'function\' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = "You have illegal escape sequence in your template literal, most likely inside content\'s property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\"content: \'\\\\00d7\';\\" should become \\"content: \'\\\\\\\\00d7\';\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences";\n\nvar Noop = function Noop() {\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (false) {}\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp(\'as\');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push("label:" + identifierName + ";");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (false) {}\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (false) {}\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = (0,_emotion_react__WEBPACK_IMPORTED_MODULE_5__.w)(function (props, cache, ref) {\n var finalTag = shouldUseAs && props.as || baseTag;\n var className = \'\';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_emotion_react__WEBPACK_IMPORTED_MODULE_5__.T);\n }\n\n if (typeof props.className === \'string\') {\n className = (0,_emotion_utils__WEBPACK_IMPORTED_MODULE_3__.getRegisteredStyles)(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + " ";\n }\n\n var serialized = (0,_emotion_serialize__WEBPACK_IMPORTED_MODULE_4__.serializeStyles)(styles.concat(classInterpolations), cache.registered, mergedProps);\n var rules = (0,_emotion_utils__WEBPACK_IMPORTED_MODULE_3__.insertStyles)(cache, serialized, typeof finalTag === \'string\');\n className += cache.key + "-" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += " " + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(finalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === \'as\') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n var ele = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(finalTag, newProps);\n var possiblyStyleElement = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(Noop, null);\n\n\n return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.createElement)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, possiblyStyleElement, ele);\n });\n Styled.displayName = identifierName !== undefined ? identifierName : "Styled(" + (typeof baseTag === \'string\' ? baseTag : baseTag.displayName || baseTag.name || \'Component\') + ")";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, \'toString\', {\n value: function value() {\n if (targetClassName === undefined && "production" !== \'production\') {} // $FlowFixMe: coerce undefined to string\n\n\n return "." + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createStyled);\n\n\n//# sourceURL=webpack://frontend/./node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js?')},"./node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _emotion_is_prop_valid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @emotion/is-prop-valid */ \"./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.browser.esm.js\");\n/* harmony import */ var _base_dist_emotion_styled_base_browser_esm_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../base/dist/emotion-styled-base.browser.esm.js */ \"./node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js\");\n/* harmony import */ var _emotion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @emotion/utils */ \"./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js\");\n/* harmony import */ var _emotion_serialize__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @emotion/serialize */ \"./node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js\");\n\n\n\n\n\n\n\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = _base_dist_emotion_styled_base_browser_esm_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].bind();\ntags.forEach(function (tagName) {\n // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n newStyled[tagName] = newStyled(tagName);\n});\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (newStyled);\n\n\n//# sourceURL=webpack://frontend/./node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js?")},"./node_modules/@emotion/unitless/dist/unitless.browser.esm.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nvar unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (unitlessKeys);\n\n\n//# sourceURL=webpack://frontend/./node_modules/@emotion/unitless/dist/unitless.browser.esm.js?')},"./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "getRegisteredStyles": () => (/* binding */ getRegisteredStyles),\n/* harmony export */ "insertStyles": () => (/* binding */ insertStyles)\n/* harmony export */ });\nvar isBrowser = "object" !== \'undefined\';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = \'\';\n classNames.split(\' \').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + ";");\n } else {\n rawClassName += className + " ";\n }\n });\n return rawClassName;\n}\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n var className = cache.key + "-" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it\'s a string tag, we know it won\'t\n // so we don\'t have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we\'re in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? "." + className : \'\', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\n\n\n\n//# sourceURL=webpack://frontend/./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js?')},"./node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nvar weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn\'t include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (weakMemoize);\n\n\n//# sourceURL=webpack://frontend/./node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js?')},"./node_modules/@material-ui/core/colors/common.js":(__unused_webpack_module,exports)=>{"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", ({\n value: true\n}));\nexports["default"] = void 0;\nvar common = {\n black: \'#000\',\n white: \'#fff\'\n};\nvar _default = common;\nexports["default"] = _default;\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/colors/common.js?')},"./node_modules/@material-ui/core/colors/grey.js":(__unused_webpack_module,exports)=>{"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nvar grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#d5d5d5',\n A200: '#aaaaaa',\n A400: '#303030',\n A700: '#616161'\n};\nvar _default = grey;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/colors/grey.js?")},"./node_modules/@material-ui/core/esm/CircularProgress/CircularProgress.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "styles": () => (/* binding */ styles),\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! clsx */ "./node_modules/clsx/dist/clsx.m.js");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ "./node_modules/@material-ui/core/esm/styles/withStyles.js");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/capitalize */ "./node_modules/@material-ui/core/esm/utils/capitalize.js");\n\n\n\n\n\n\n\n\nvar SIZE = 44;\nvar styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n display: \'inline-block\'\n },\n\n /* Styles applied to the root element if `variant="static"`. */\n static: {\n transition: theme.transitions.create(\'transform\')\n },\n\n /* Styles applied to the root element if `variant="indeterminate"`. */\n indeterminate: {\n animation: \'$circular-rotate 1.4s linear infinite\'\n },\n\n /* Styles applied to the root element if `variant="determinate"`. */\n determinate: {\n transition: theme.transitions.create(\'transform\')\n },\n\n /* Styles applied to the root element if `color="primary"`. */\n colorPrimary: {\n color: theme.palette.primary.main\n },\n\n /* Styles applied to the root element if `color="secondary"`. */\n colorSecondary: {\n color: theme.palette.secondary.main\n },\n\n /* Styles applied to the `svg` element. */\n svg: {\n display: \'block\' // Keeps the progress centered\n\n },\n\n /* Styles applied to the `circle` svg path. */\n circle: {\n stroke: \'currentColor\' // Use butt to follow the specification, by chance, it\'s already the default CSS value.\n // strokeLinecap: \'butt\',\n\n },\n\n /* Styles applied to the `circle` svg path if `variant="static"`. */\n circleStatic: {\n transition: theme.transitions.create(\'stroke-dashoffset\')\n },\n\n /* Styles applied to the `circle` svg path if `variant="indeterminate"`. */\n circleIndeterminate: {\n animation: \'$circular-dash 1.4s ease-in-out infinite\',\n // Some default value that looks fine waiting for the animation to kicks in.\n strokeDasharray: \'80px, 200px\',\n strokeDashoffset: \'0px\' // Add the unit to fix a Edge 16 and below bug.\n\n },\n\n /* Styles applied to the `circle` svg path if `variant="determinate"`. */\n circleDeterminate: {\n transition: theme.transitions.create(\'stroke-dashoffset\')\n },\n \'@keyframes circular-rotate\': {\n \'0%\': {\n // Fix IE 11 wobbly\n transformOrigin: \'50% 50%\'\n },\n \'100%\': {\n transform: \'rotate(360deg)\'\n }\n },\n \'@keyframes circular-dash\': {\n \'0%\': {\n strokeDasharray: \'1px, 200px\',\n strokeDashoffset: \'0px\'\n },\n \'50%\': {\n strokeDasharray: \'100px, 200px\',\n strokeDashoffset: \'-15px\'\n },\n \'100%\': {\n strokeDasharray: \'100px, 200px\',\n strokeDashoffset: \'-125px\'\n }\n },\n\n /* Styles applied to the `circle` svg path if `disableShrink={true}`. */\n circleDisableShrink: {\n animation: \'none\'\n }\n };\n};\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\n\nvar CircularProgress = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.forwardRef(function CircularProgress(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? \'primary\' : _props$color,\n _props$disableShrink = props.disableShrink,\n disableShrink = _props$disableShrink === void 0 ? false : _props$disableShrink,\n _props$size = props.size,\n size = _props$size === void 0 ? 40 : _props$size,\n style = props.style,\n _props$thickness = props.thickness,\n thickness = _props$thickness === void 0 ? 3.6 : _props$thickness,\n _props$value = props.value,\n value = _props$value === void 0 ? 0 : _props$value,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? \'indeterminate\' : _props$variant,\n other = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__["default"])(props, ["classes", "className", "color", "disableShrink", "size", "style", "thickness", "value", "variant"]);\n\n var circleStyle = {};\n var rootStyle = {};\n var rootProps = {};\n\n if (variant === \'determinate\' || variant === \'static\') {\n var circumference = 2 * Math.PI * ((SIZE - thickness) / 2);\n circleStyle.strokeDasharray = circumference.toFixed(3);\n rootProps[\'aria-valuenow\'] = Math.round(value);\n circleStyle.strokeDashoffset = "".concat(((100 - value) / 100 * circumference).toFixed(3), "px");\n rootStyle.transform = \'rotate(-90deg)\';\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_3__["default"])(classes.root, className, color !== \'inherit\' && classes["color".concat((0,_utils_capitalize__WEBPACK_IMPORTED_MODULE_4__["default"])(color))], {\n \'determinate\': classes.determinate,\n \'indeterminate\': classes.indeterminate,\n \'static\': classes.static\n }[variant]),\n style: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n width: size,\n height: size\n }, rootStyle, style),\n ref: ref,\n role: "progressbar"\n }, rootProps, other), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement("svg", {\n className: classes.svg,\n viewBox: "".concat(SIZE / 2, " ").concat(SIZE / 2, " ").concat(SIZE, " ").concat(SIZE)\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement("circle", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_3__["default"])(classes.circle, disableShrink && classes.circleDisableShrink, {\n \'determinate\': classes.circleDeterminate,\n \'indeterminate\': classes.circleIndeterminate,\n \'static\': classes.circleStatic\n }[variant]),\n style: circleStyle,\n cx: SIZE,\n cy: SIZE,\n r: (SIZE - thickness) / 2,\n fill: "none",\n strokeWidth: thickness\n })));\n});\n false ? 0 : void 0;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__["default"])(styles, {\n name: \'MuiCircularProgress\',\n flip: false\n})(CircularProgress));\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/CircularProgress/CircularProgress.js?')},"./node_modules/@material-ui/core/esm/CircularProgress/index.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* reexport safe */ _CircularProgress__WEBPACK_IMPORTED_MODULE_0__["default"])\n/* harmony export */ });\n/* harmony import */ var _CircularProgress__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CircularProgress */ "./node_modules/@material-ui/core/esm/CircularProgress/CircularProgress.js");\n\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/CircularProgress/index.js?')},"./node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "styles": () => (/* binding */ styles),\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! clsx */ "./node_modules/clsx/dist/clsx.m.js");\n/* harmony import */ var _styles_withStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../styles/withStyles */ "./node_modules/@material-ui/core/esm/styles/withStyles.js");\n/* harmony import */ var _utils_capitalize__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/capitalize */ "./node_modules/@material-ui/core/esm/utils/capitalize.js");\n\n\n\n\n\n\n\n\nvar styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n userSelect: \'none\',\n width: \'1em\',\n height: \'1em\',\n display: \'inline-block\',\n fill: \'currentColor\',\n flexShrink: 0,\n fontSize: theme.typography.pxToRem(24),\n transition: theme.transitions.create(\'fill\', {\n duration: theme.transitions.duration.shorter\n })\n },\n\n /* Styles applied to the root element if `color="primary"`. */\n colorPrimary: {\n color: theme.palette.primary.main\n },\n\n /* Styles applied to the root element if `color="secondary"`. */\n colorSecondary: {\n color: theme.palette.secondary.main\n },\n\n /* Styles applied to the root element if `color="action"`. */\n colorAction: {\n color: theme.palette.action.active\n },\n\n /* Styles applied to the root element if `color="error"`. */\n colorError: {\n color: theme.palette.error.main\n },\n\n /* Styles applied to the root element if `color="disabled"`. */\n colorDisabled: {\n color: theme.palette.action.disabled\n },\n\n /* Styles applied to the root element if `fontSize="inherit"`. */\n fontSizeInherit: {\n fontSize: \'inherit\'\n },\n\n /* Styles applied to the root element if `fontSize="small"`. */\n fontSizeSmall: {\n fontSize: theme.typography.pxToRem(20)\n },\n\n /* Styles applied to the root element if `fontSize="large"`. */\n fontSizeLarge: {\n fontSize: theme.typography.pxToRem(35)\n }\n };\n};\nvar SvgIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.forwardRef(function SvgIcon(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? \'inherit\' : _props$color,\n _props$component = props.component,\n Component = _props$component === void 0 ? \'svg\' : _props$component,\n _props$fontSize = props.fontSize,\n fontSize = _props$fontSize === void 0 ? \'medium\' : _props$fontSize,\n htmlColor = props.htmlColor,\n titleAccess = props.titleAccess,\n _props$viewBox = props.viewBox,\n viewBox = _props$viewBox === void 0 ? \'0 0 24 24\' : _props$viewBox,\n other = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__["default"])(props, ["children", "classes", "className", "color", "component", "fontSize", "htmlColor", "titleAccess", "viewBox"]);\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(Component, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_3__["default"])(classes.root, className, color !== \'inherit\' && classes["color".concat((0,_utils_capitalize__WEBPACK_IMPORTED_MODULE_4__["default"])(color))], fontSize !== \'default\' && fontSize !== \'medium\' && classes["fontSize".concat((0,_utils_capitalize__WEBPACK_IMPORTED_MODULE_4__["default"])(fontSize))]),\n focusable: "false",\n viewBox: viewBox,\n color: htmlColor,\n "aria-hidden": titleAccess ? undefined : true,\n role: titleAccess ? \'img\' : undefined,\n ref: ref\n }, other), children, titleAccess ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement("title", null, titleAccess) : null);\n});\n false ? 0 : void 0;\nSvgIcon.muiName = \'SvgIcon\';\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_styles_withStyles__WEBPACK_IMPORTED_MODULE_5__["default"])(styles, {\n name: \'MuiSvgIcon\'\n})(SvgIcon));\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js?')},"./node_modules/@material-ui/core/esm/colors/blue.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nvar blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (blue);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/colors/blue.js?")},"./node_modules/@material-ui/core/esm/colors/common.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nvar common = {\n black: '#000',\n white: '#fff'\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (common);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/colors/common.js?")},"./node_modules/@material-ui/core/esm/colors/green.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nvar green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (green);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/colors/green.js?")},"./node_modules/@material-ui/core/esm/colors/grey.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nvar grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#d5d5d5',\n A200: '#aaaaaa',\n A400: '#303030',\n A700: '#616161'\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (grey);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/colors/grey.js?")},"./node_modules/@material-ui/core/esm/colors/indigo.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nvar indigo = {\n 50: '#e8eaf6',\n 100: '#c5cae9',\n 200: '#9fa8da',\n 300: '#7986cb',\n 400: '#5c6bc0',\n 500: '#3f51b5',\n 600: '#3949ab',\n 700: '#303f9f',\n 800: '#283593',\n 900: '#1a237e',\n A100: '#8c9eff',\n A200: '#536dfe',\n A400: '#3d5afe',\n A700: '#304ffe'\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (indigo);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/colors/indigo.js?")},"./node_modules/@material-ui/core/esm/colors/orange.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nvar orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (orange);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/colors/orange.js?")},"./node_modules/@material-ui/core/esm/colors/pink.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nvar pink = {\n 50: '#fce4ec',\n 100: '#f8bbd0',\n 200: '#f48fb1',\n 300: '#f06292',\n 400: '#ec407a',\n 500: '#e91e63',\n 600: '#d81b60',\n 700: '#c2185b',\n 800: '#ad1457',\n 900: '#880e4f',\n A100: '#ff80ab',\n A200: '#ff4081',\n A400: '#f50057',\n A700: '#c51162'\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (pink);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/colors/pink.js?")},"./node_modules/@material-ui/core/esm/colors/red.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nvar red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (red);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/colors/red.js?")},"./node_modules/@material-ui/core/esm/styles/colorManipulator.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"hexToRgb\": () => (/* binding */ hexToRgb),\n/* harmony export */ \"rgbToHex\": () => (/* binding */ rgbToHex),\n/* harmony export */ \"hslToRgb\": () => (/* binding */ hslToRgb),\n/* harmony export */ \"decomposeColor\": () => (/* binding */ decomposeColor),\n/* harmony export */ \"recomposeColor\": () => (/* binding */ recomposeColor),\n/* harmony export */ \"getContrastRatio\": () => (/* binding */ getContrastRatio),\n/* harmony export */ \"getLuminance\": () => (/* binding */ getLuminance),\n/* harmony export */ \"emphasize\": () => (/* binding */ emphasize),\n/* harmony export */ \"fade\": () => (/* binding */ fade),\n/* harmony export */ \"alpha\": () => (/* binding */ alpha),\n/* harmony export */ \"darken\": () => (/* binding */ darken),\n/* harmony export */ \"lighten\": () => (/* binding */ lighten)\n/* harmony export */ });\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material-ui/utils */ \"./node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js\");\n\n\n/* eslint-disable no-use-before-define */\n\n/**\n * Returns a number whose value is limited to the given range.\n *\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clamp(value) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (false) {}\n\n return Math.min(Math.max(min, value), max);\n}\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n *\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\n\n\nfunction hexToRgb(color) {\n color = color.substr(1);\n var re = new RegExp(\".{1,\".concat(color.length >= 6 ? 2 : 1, \"}\"), 'g');\n var colors = color.match(re);\n\n if (colors && colors[0].length === 1) {\n colors = colors.map(function (n) {\n return n + n;\n });\n }\n\n return colors ? \"rgb\".concat(colors.length === 4 ? 'a' : '', \"(\").concat(colors.map(function (n, index) {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', '), \")\") : '';\n}\n\nfunction intToHex(int) {\n var hex = int.toString(16);\n return hex.length === 1 ? \"0\".concat(hex) : hex;\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n *\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\n\n\nfunction rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n\n var _decomposeColor = decomposeColor(color),\n values = _decomposeColor.values;\n\n return \"#\".concat(values.map(function (n) {\n return intToHex(n);\n }).join(''));\n}\n/**\n * Converts a color from hsl format to rgb format.\n *\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\n\nfunction hslToRgb(color) {\n color = decomposeColor(color);\n var _color = color,\n values = _color.values;\n var h = values[0];\n var s = values[1] / 100;\n var l = values[2] / 100;\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n var type = 'rgb';\n var rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n\n return recomposeColor({\n type: type,\n values: rgb\n });\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\n\nfunction decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n\n var marker = color.indexOf('(');\n var type = color.substring(0, marker);\n\n if (['rgb', 'rgba', 'hsl', 'hsla'].indexOf(type) === -1) {\n throw new Error( false ? 0 : (0,_material_ui_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(3, color));\n }\n\n var values = color.substring(marker + 1, color.length - 1).split(',');\n values = values.map(function (value) {\n return parseFloat(value);\n });\n return {\n type: type,\n values: values\n };\n}\n/**\n * Converts a color object with type and values to a string.\n *\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\n\nfunction recomposeColor(color) {\n var type = color.type;\n var values = color.values;\n\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map(function (n, i) {\n return i < 3 ? parseInt(n, 10) : n;\n });\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = \"\".concat(values[1], \"%\");\n values[2] = \"\".concat(values[2], \"%\");\n }\n\n return \"\".concat(type, \"(\").concat(values.join(', '), \")\");\n}\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\n\nfunction getContrastRatio(foreground, background) {\n var lumA = getLuminance(foreground);\n var lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\n\nfunction getLuminance(color) {\n color = decomposeColor(color);\n var rgb = color.type === 'hsl' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(function (val) {\n val /= 255; // normalized\n\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }); // Truncate at 3 digits\n\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nfunction emphasize(color) {\n var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nvar warnedOnce = false;\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0 -1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n *\n * @deprecated\n * Use `import { alpha } from '@material-ui/core/styles'` instead.\n */\n\nfunction fade(color, value) {\n if (false) {}\n\n return alpha(color, value);\n}\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha value is overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0-1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nfunction alpha(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n\n color.values[3] = value;\n return recomposeColor(color);\n}\n/**\n * Darkens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nfunction darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n\n return recomposeColor(color);\n}\n/**\n * Lightens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nfunction lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n }\n\n return recomposeColor(color);\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/styles/colorManipulator.js?")},"./node_modules/@material-ui/core/esm/styles/createBreakpoints.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "keys": () => (/* binding */ keys),\n/* harmony export */ "default": () => (/* binding */ createBreakpoints)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js");\n\n\n// Sorted ASC by size. That\'s important.\n// It can\'t be configured as it\'s used statically for propTypes.\nvar keys = [\'xs\', \'sm\', \'md\', \'lg\', \'xl\']; // Keep in mind that @media is inclusive by the CSS specification.\n\nfunction createBreakpoints(breakpoints) {\n var _breakpoints$values = breakpoints.values,\n values = _breakpoints$values === void 0 ? {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n } : _breakpoints$values,\n _breakpoints$unit = breakpoints.unit,\n unit = _breakpoints$unit === void 0 ? \'px\' : _breakpoints$unit,\n _breakpoints$step = breakpoints.step,\n step = _breakpoints$step === void 0 ? 5 : _breakpoints$step,\n other = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__["default"])(breakpoints, ["values", "unit", "step"]);\n\n function up(key) {\n var value = typeof values[key] === \'number\' ? values[key] : key;\n return "@media (min-width:".concat(value).concat(unit, ")");\n }\n\n function down(key) {\n var endIndex = keys.indexOf(key) + 1;\n var upperbound = values[keys[endIndex]];\n\n if (endIndex === keys.length) {\n // xl down applies to all sizes\n return up(\'xs\');\n }\n\n var value = typeof upperbound === \'number\' && endIndex > 0 ? upperbound : key;\n return "@media (max-width:".concat(value - step / 100).concat(unit, ")");\n }\n\n function between(start, end) {\n var endIndex = keys.indexOf(end);\n\n if (endIndex === keys.length - 1) {\n return up(start);\n }\n\n return "@media (min-width:".concat(typeof values[start] === \'number\' ? values[start] : start).concat(unit, ") and ") + "(max-width:".concat((endIndex !== -1 && typeof values[keys[endIndex + 1]] === \'number\' ? values[keys[endIndex + 1]] : end) - step / 100).concat(unit, ")");\n }\n\n function only(key) {\n return between(key, key);\n }\n\n var warnedOnce = false;\n\n function width(key) {\n if (false) {}\n\n return values[key];\n }\n\n return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n keys: keys,\n values: values,\n up: up,\n down: down,\n between: between,\n only: only,\n width: width\n }, other);\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/styles/createBreakpoints.js?')},"./node_modules/@material-ui/core/esm/styles/createMixins.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ createMixins)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n\n\nfunction createMixins(breakpoints, spacing, mixins) {\n var _toolbar;\n\n return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({\n gutters: function gutters() {\n var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n console.warn([\'Material-UI: theme.mixins.gutters() is deprecated.\', \'You can use the source of the mixin directly:\', "\\n paddingLeft: theme.spacing(2),\\n paddingRight: theme.spacing(2),\\n [theme.breakpoints.up(\'sm\')]: {\\n paddingLeft: theme.spacing(3),\\n paddingRight: theme.spacing(3),\\n },\\n "].join(\'\\n\'));\n return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({\n paddingLeft: spacing(2),\n paddingRight: spacing(2)\n }, styles, (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])({}, breakpoints.up(\'sm\'), (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({\n paddingLeft: spacing(3),\n paddingRight: spacing(3)\n }, styles[breakpoints.up(\'sm\')])));\n },\n toolbar: (_toolbar = {\n minHeight: 56\n }, (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(_toolbar, "".concat(breakpoints.up(\'xs\'), " and (orientation: landscape)"), {\n minHeight: 48\n }), (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(_toolbar, breakpoints.up(\'sm\'), {\n minHeight: 64\n }), _toolbar)\n }, mixins);\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/styles/createMixins.js?')},"./node_modules/@material-ui/core/esm/styles/createPalette.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "light": () => (/* binding */ light),\n/* harmony export */ "dark": () => (/* binding */ dark),\n/* harmony export */ "default": () => (/* binding */ createPalette)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @material-ui/utils */ "./node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @material-ui/utils */ "./node_modules/@material-ui/utils/esm/deepmerge.js");\n/* harmony import */ var _colors_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../colors/common */ "./node_modules/@material-ui/core/esm/colors/common.js");\n/* harmony import */ var _colors_grey__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../colors/grey */ "./node_modules/@material-ui/core/esm/colors/grey.js");\n/* harmony import */ var _colors_indigo__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../colors/indigo */ "./node_modules/@material-ui/core/esm/colors/indigo.js");\n/* harmony import */ var _colors_pink__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../colors/pink */ "./node_modules/@material-ui/core/esm/colors/pink.js");\n/* harmony import */ var _colors_red__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../colors/red */ "./node_modules/@material-ui/core/esm/colors/red.js");\n/* harmony import */ var _colors_orange__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../colors/orange */ "./node_modules/@material-ui/core/esm/colors/orange.js");\n/* harmony import */ var _colors_blue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../colors/blue */ "./node_modules/@material-ui/core/esm/colors/blue.js");\n/* harmony import */ var _colors_green__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../colors/green */ "./node_modules/@material-ui/core/esm/colors/green.js");\n/* harmony import */ var _colorManipulator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./colorManipulator */ "./node_modules/@material-ui/core/esm/styles/colorManipulator.js");\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: \'rgba(0, 0, 0, 0.87)\',\n // Secondary text.\n secondary: \'rgba(0, 0, 0, 0.54)\',\n // Disabled text have even lower visual prominence.\n disabled: \'rgba(0, 0, 0, 0.38)\',\n // Text hints.\n hint: \'rgba(0, 0, 0, 0.38)\'\n },\n // The color used to divide different elements.\n divider: \'rgba(0, 0, 0, 0.12)\',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: _colors_common__WEBPACK_IMPORTED_MODULE_2__["default"].white,\n default: _colors_grey__WEBPACK_IMPORTED_MODULE_3__["default"][50]\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: \'rgba(0, 0, 0, 0.54)\',\n // The color of an hovered action.\n hover: \'rgba(0, 0, 0, 0.04)\',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: \'rgba(0, 0, 0, 0.08)\',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: \'rgba(0, 0, 0, 0.26)\',\n // The background color of a disabled action.\n disabledBackground: \'rgba(0, 0, 0, 0.12)\',\n disabledOpacity: 0.38,\n focus: \'rgba(0, 0, 0, 0.12)\',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nvar dark = {\n text: {\n primary: _colors_common__WEBPACK_IMPORTED_MODULE_2__["default"].white,\n secondary: \'rgba(255, 255, 255, 0.7)\',\n disabled: \'rgba(255, 255, 255, 0.5)\',\n hint: \'rgba(255, 255, 255, 0.5)\',\n icon: \'rgba(255, 255, 255, 0.5)\'\n },\n divider: \'rgba(255, 255, 255, 0.12)\',\n background: {\n paper: _colors_grey__WEBPACK_IMPORTED_MODULE_3__["default"][800],\n default: \'#303030\'\n },\n action: {\n active: _colors_common__WEBPACK_IMPORTED_MODULE_2__["default"].white,\n hover: \'rgba(255, 255, 255, 0.08)\',\n hoverOpacity: 0.08,\n selected: \'rgba(255, 255, 255, 0.16)\',\n selectedOpacity: 0.16,\n disabled: \'rgba(255, 255, 255, 0.3)\',\n disabledBackground: \'rgba(255, 255, 255, 0.12)\',\n disabledOpacity: 0.38,\n focus: \'rgba(255, 255, 255, 0.12)\',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\n\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n var tonalOffsetLight = tonalOffset.light || tonalOffset;\n var tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === \'light\') {\n intent.light = (0,_colorManipulator__WEBPACK_IMPORTED_MODULE_4__.lighten)(intent.main, tonalOffsetLight);\n } else if (direction === \'dark\') {\n intent.dark = (0,_colorManipulator__WEBPACK_IMPORTED_MODULE_4__.darken)(intent.main, tonalOffsetDark);\n }\n }\n}\n\nfunction createPalette(palette) {\n var _palette$primary = palette.primary,\n primary = _palette$primary === void 0 ? {\n light: _colors_indigo__WEBPACK_IMPORTED_MODULE_5__["default"][300],\n main: _colors_indigo__WEBPACK_IMPORTED_MODULE_5__["default"][500],\n dark: _colors_indigo__WEBPACK_IMPORTED_MODULE_5__["default"][700]\n } : _palette$primary,\n _palette$secondary = palette.secondary,\n secondary = _palette$secondary === void 0 ? {\n light: _colors_pink__WEBPACK_IMPORTED_MODULE_6__["default"].A200,\n main: _colors_pink__WEBPACK_IMPORTED_MODULE_6__["default"].A400,\n dark: _colors_pink__WEBPACK_IMPORTED_MODULE_6__["default"].A700\n } : _palette$secondary,\n _palette$error = palette.error,\n error = _palette$error === void 0 ? {\n light: _colors_red__WEBPACK_IMPORTED_MODULE_7__["default"][300],\n main: _colors_red__WEBPACK_IMPORTED_MODULE_7__["default"][500],\n dark: _colors_red__WEBPACK_IMPORTED_MODULE_7__["default"][700]\n } : _palette$error,\n _palette$warning = palette.warning,\n warning = _palette$warning === void 0 ? {\n light: _colors_orange__WEBPACK_IMPORTED_MODULE_8__["default"][300],\n main: _colors_orange__WEBPACK_IMPORTED_MODULE_8__["default"][500],\n dark: _colors_orange__WEBPACK_IMPORTED_MODULE_8__["default"][700]\n } : _palette$warning,\n _palette$info = palette.info,\n info = _palette$info === void 0 ? {\n light: _colors_blue__WEBPACK_IMPORTED_MODULE_9__["default"][300],\n main: _colors_blue__WEBPACK_IMPORTED_MODULE_9__["default"][500],\n dark: _colors_blue__WEBPACK_IMPORTED_MODULE_9__["default"][700]\n } : _palette$info,\n _palette$success = palette.success,\n success = _palette$success === void 0 ? {\n light: _colors_green__WEBPACK_IMPORTED_MODULE_10__["default"][300],\n main: _colors_green__WEBPACK_IMPORTED_MODULE_10__["default"][500],\n dark: _colors_green__WEBPACK_IMPORTED_MODULE_10__["default"][700]\n } : _palette$success,\n _palette$type = palette.type,\n type = _palette$type === void 0 ? \'light\' : _palette$type,\n _palette$contrastThre = palette.contrastThreshold,\n contrastThreshold = _palette$contrastThre === void 0 ? 3 : _palette$contrastThre,\n _palette$tonalOffset = palette.tonalOffset,\n tonalOffset = _palette$tonalOffset === void 0 ? 0.2 : _palette$tonalOffset,\n other = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__["default"])(palette, ["primary", "secondary", "error", "warning", "info", "success", "type", "contrastThreshold", "tonalOffset"]); // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n\n\n function getContrastText(background) {\n var contrastText = (0,_colorManipulator__WEBPACK_IMPORTED_MODULE_4__.getContrastRatio)(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n\n if (false) { var contrast; }\n\n return contrastText;\n }\n\n var augmentColor = function augmentColor(color) {\n var mainShade = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n var lightShade = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var darkShade = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 700;\n color = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, color);\n\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n\n if (!color.main) {\n throw new Error( false ? 0 : (0,_material_ui_utils__WEBPACK_IMPORTED_MODULE_11__["default"])(4, mainShade));\n }\n\n if (typeof color.main !== \'string\') {\n throw new Error( false ? 0 : (0,_material_ui_utils__WEBPACK_IMPORTED_MODULE_11__["default"])(5, JSON.stringify(color.main)));\n }\n\n addLightOrDark(color, \'light\', lightShade, tonalOffset);\n addLightOrDark(color, \'dark\', darkShade, tonalOffset);\n\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n\n return color;\n };\n\n var types = {\n dark: dark,\n light: light\n };\n\n if (false) {}\n\n var paletteOutput = (0,_material_ui_utils__WEBPACK_IMPORTED_MODULE_12__["default"])((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n // A collection of common colors.\n common: _colors_common__WEBPACK_IMPORTED_MODULE_2__["default"],\n // The palette type, can be light or dark.\n type: type,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor(primary),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor(secondary, \'A400\', \'A200\', \'A700\'),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor(error),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor(warning),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor(info),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor(success),\n // The grey colors.\n grey: _colors_grey__WEBPACK_IMPORTED_MODULE_3__["default"],\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold: contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText: getContrastText,\n // Generate a rich color object.\n augmentColor: augmentColor,\n // Used by the functions below to shift a color\'s luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset: tonalOffset\n }, types[type]), other);\n return paletteOutput;\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/styles/createPalette.js?')},"./node_modules/@material-ui/core/esm/styles/createSpacing.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ createSpacing)\n/* harmony export */ });\n/* harmony import */ var _material_ui_system__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material-ui/system */ \"./node_modules/@material-ui/system/esm/spacing.js\");\n\nvar warnOnce;\nfunction createSpacing() {\n var spacingInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;\n\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n } // Material Design layouts are visually balanced. Most measurements align to an 8dp grid applied, which aligns both spacing and the overall layout.\n // Smaller components, such as icons and type, can align to a 4dp grid.\n // https://material.io/design/layout/understanding-layout.html#usage\n\n\n var transform = (0,_material_ui_system__WEBPACK_IMPORTED_MODULE_0__.createUnarySpacing)({\n spacing: spacingInput\n });\n\n var spacing = function spacing() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (false) {}\n\n if (args.length === 0) {\n return transform(1);\n }\n\n if (args.length === 1) {\n return transform(args[0]);\n }\n\n return args.map(function (argument) {\n if (typeof argument === 'string') {\n return argument;\n }\n\n var output = transform(argument);\n return typeof output === 'number' ? \"\".concat(output, \"px\") : output;\n }).join(' ');\n }; // Backward compatibility, to remove in v5.\n\n\n Object.defineProperty(spacing, 'unit', {\n get: function get() {\n if (false) {}\n\n return spacingInput;\n }\n });\n spacing.mui = true;\n return spacing;\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/styles/createSpacing.js?")},"./node_modules/@material-ui/core/esm/styles/createTheme.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "createMuiTheme": () => (/* binding */ createMuiTheme),\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/utils */ "./node_modules/@material-ui/utils/esm/deepmerge.js");\n/* harmony import */ var _createBreakpoints__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createBreakpoints */ "./node_modules/@material-ui/core/esm/styles/createBreakpoints.js");\n/* harmony import */ var _createMixins__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./createMixins */ "./node_modules/@material-ui/core/esm/styles/createMixins.js");\n/* harmony import */ var _createPalette__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createPalette */ "./node_modules/@material-ui/core/esm/styles/createPalette.js");\n/* harmony import */ var _createTypography__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./createTypography */ "./node_modules/@material-ui/core/esm/styles/createTypography.js");\n/* harmony import */ var _shadows__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./shadows */ "./node_modules/@material-ui/core/esm/styles/shadows.js");\n/* harmony import */ var _shape__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./shape */ "./node_modules/@material-ui/core/esm/styles/shape.js");\n/* harmony import */ var _createSpacing__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createSpacing */ "./node_modules/@material-ui/core/esm/styles/createSpacing.js");\n/* harmony import */ var _transitions__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./transitions */ "./node_modules/@material-ui/core/esm/styles/transitions.js");\n/* harmony import */ var _zIndex__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./zIndex */ "./node_modules/@material-ui/core/esm/styles/zIndex.js");\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction createTheme() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _options$breakpoints = options.breakpoints,\n breakpointsInput = _options$breakpoints === void 0 ? {} : _options$breakpoints,\n _options$mixins = options.mixins,\n mixinsInput = _options$mixins === void 0 ? {} : _options$mixins,\n _options$palette = options.palette,\n paletteInput = _options$palette === void 0 ? {} : _options$palette,\n spacingInput = options.spacing,\n _options$typography = options.typography,\n typographyInput = _options$typography === void 0 ? {} : _options$typography,\n other = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__["default"])(options, ["breakpoints", "mixins", "palette", "spacing", "typography"]);\n\n var palette = (0,_createPalette__WEBPACK_IMPORTED_MODULE_2__["default"])(paletteInput);\n var breakpoints = (0,_createBreakpoints__WEBPACK_IMPORTED_MODULE_3__["default"])(breakpointsInput);\n var spacing = (0,_createSpacing__WEBPACK_IMPORTED_MODULE_4__["default"])(spacingInput);\n var muiTheme = (0,_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__["default"])({\n breakpoints: breakpoints,\n direction: \'ltr\',\n mixins: (0,_createMixins__WEBPACK_IMPORTED_MODULE_6__["default"])(breakpoints, spacing, mixinsInput),\n overrides: {},\n // Inject custom styles\n palette: palette,\n props: {},\n // Provide default props\n shadows: _shadows__WEBPACK_IMPORTED_MODULE_7__["default"],\n typography: (0,_createTypography__WEBPACK_IMPORTED_MODULE_8__["default"])(palette, typographyInput),\n spacing: spacing,\n shape: _shape__WEBPACK_IMPORTED_MODULE_9__["default"],\n transitions: _transitions__WEBPACK_IMPORTED_MODULE_10__["default"],\n zIndex: _zIndex__WEBPACK_IMPORTED_MODULE_11__["default"]\n }, other);\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n muiTheme = args.reduce(function (acc, argument) {\n return (0,_material_ui_utils__WEBPACK_IMPORTED_MODULE_5__["default"])(acc, argument);\n }, muiTheme);\n\n if (false) { var traverse, pseudoClasses; }\n\n return muiTheme;\n}\n\nvar warnedOnce = false;\nfunction createMuiTheme() {\n if (false) {}\n\n return createTheme.apply(void 0, arguments);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createTheme);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/styles/createTheme.js?')},"./node_modules/@material-ui/core/esm/styles/createTypography.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ createTypography)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/utils */ "./node_modules/@material-ui/utils/esm/deepmerge.js");\n\n\n\n\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\n\nvar warnedOnce = false;\n\nfunction roundWithDeprecationWarning(value) {\n if (false) {}\n\n return round(value);\n}\n\nvar caseAllCaps = {\n textTransform: \'uppercase\'\n};\nvar defaultFontFamily = \'"Roboto", "Helvetica", "Arial", sans-serif\';\n/**\n * @see @link{https://material.io/design/typography/the-type-system.html}\n * @see @link{https://material.io/design/typography/understanding-typography.html}\n */\n\nfunction createTypography(palette, typography) {\n var _ref = typeof typography === \'function\' ? typography(palette) : typography,\n _ref$fontFamily = _ref.fontFamily,\n fontFamily = _ref$fontFamily === void 0 ? defaultFontFamily : _ref$fontFamily,\n _ref$fontSize = _ref.fontSize,\n fontSize = _ref$fontSize === void 0 ? 14 : _ref$fontSize,\n _ref$fontWeightLight = _ref.fontWeightLight,\n fontWeightLight = _ref$fontWeightLight === void 0 ? 300 : _ref$fontWeightLight,\n _ref$fontWeightRegula = _ref.fontWeightRegular,\n fontWeightRegular = _ref$fontWeightRegula === void 0 ? 400 : _ref$fontWeightRegula,\n _ref$fontWeightMedium = _ref.fontWeightMedium,\n fontWeightMedium = _ref$fontWeightMedium === void 0 ? 500 : _ref$fontWeightMedium,\n _ref$fontWeightBold = _ref.fontWeightBold,\n fontWeightBold = _ref$fontWeightBold === void 0 ? 700 : _ref$fontWeightBold,\n _ref$htmlFontSize = _ref.htmlFontSize,\n htmlFontSize = _ref$htmlFontSize === void 0 ? 16 : _ref$htmlFontSize,\n allVariants = _ref.allVariants,\n pxToRem2 = _ref.pxToRem,\n other = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__["default"])(_ref, ["fontFamily", "fontSize", "fontWeightLight", "fontWeightRegular", "fontWeightMedium", "fontWeightBold", "htmlFontSize", "allVariants", "pxToRem"]);\n\n if (false) {}\n\n var coef = fontSize / 14;\n\n var pxToRem = pxToRem2 || function (size) {\n return "".concat(size / htmlFontSize * coef, "rem");\n };\n\n var buildVariant = function buildVariant(fontWeight, size, lineHeight, letterSpacing, casing) {\n return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight: lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: "".concat(round(letterSpacing / size), "em")\n } : {}, casing, allVariants);\n };\n\n var variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps)\n };\n return (0,_material_ui_utils__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n htmlFontSize: htmlFontSize,\n pxToRem: pxToRem,\n round: roundWithDeprecationWarning,\n // TODO v5: remove\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeightLight: fontWeightLight,\n fontWeightRegular: fontWeightRegular,\n fontWeightMedium: fontWeightMedium,\n fontWeightBold: fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n\n });\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/styles/createTypography.js?')},"./node_modules/@material-ui/core/esm/styles/defaultTheme.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _createTheme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createTheme */ "./node_modules/@material-ui/core/esm/styles/createTheme.js");\n\nvar defaultTheme = (0,_createTheme__WEBPACK_IMPORTED_MODULE_0__["default"])();\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (defaultTheme);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/styles/defaultTheme.js?')},"./node_modules/@material-ui/core/esm/styles/shadows.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nvar shadowKeyUmbraOpacity = 0.2;\nvar shadowKeyPenumbraOpacity = 0.14;\nvar shadowAmbientShadowOpacity = 0.12;\n\nfunction createShadow() {\n return ["".concat(arguments.length <= 0 ? undefined : arguments[0], "px ").concat(arguments.length <= 1 ? undefined : arguments[1], "px ").concat(arguments.length <= 2 ? undefined : arguments[2], "px ").concat(arguments.length <= 3 ? undefined : arguments[3], "px rgba(0,0,0,").concat(shadowKeyUmbraOpacity, ")"), "".concat(arguments.length <= 4 ? undefined : arguments[4], "px ").concat(arguments.length <= 5 ? undefined : arguments[5], "px ").concat(arguments.length <= 6 ? undefined : arguments[6], "px ").concat(arguments.length <= 7 ? undefined : arguments[7], "px rgba(0,0,0,").concat(shadowKeyPenumbraOpacity, ")"), "".concat(arguments.length <= 8 ? undefined : arguments[8], "px ").concat(arguments.length <= 9 ? undefined : arguments[9], "px ").concat(arguments.length <= 10 ? undefined : arguments[10], "px ").concat(arguments.length <= 11 ? undefined : arguments[11], "px rgba(0,0,0,").concat(shadowAmbientShadowOpacity, ")")].join(\',\');\n} // Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\n\n\nvar shadows = [\'none\', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (shadows);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/styles/shadows.js?')},"./node_modules/@material-ui/core/esm/styles/shape.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nvar shape = {\n borderRadius: 4\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (shape);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/styles/shape.js?')},"./node_modules/@material-ui/core/esm/styles/transitions.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "easing": () => (/* binding */ easing),\n/* harmony export */ "duration": () => (/* binding */ duration),\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js");\n\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nvar easing = {\n // This is the most common easing curve.\n easeInOut: \'cubic-bezier(0.4, 0, 0.2, 1)\',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: \'cubic-bezier(0.0, 0, 0.2, 1)\',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: \'cubic-bezier(0.4, 0, 1, 1)\',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: \'cubic-bezier(0.4, 0, 0.6, 1)\'\n}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nvar duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\n\nfunction formatMs(milliseconds) {\n return "".concat(Math.round(milliseconds), "ms");\n}\n/**\n * @param {string|Array} props\n * @param {object} param\n * @param {string} param.prop\n * @param {number} param.duration\n * @param {string} param.easing\n * @param {number} param.delay\n */\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n easing: easing,\n duration: duration,\n create: function create() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [\'all\'];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _options$duration = options.duration,\n durationOption = _options$duration === void 0 ? duration.standard : _options$duration,\n _options$easing = options.easing,\n easingOption = _options$easing === void 0 ? easing.easeInOut : _options$easing,\n _options$delay = options.delay,\n delay = _options$delay === void 0 ? 0 : _options$delay,\n other = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__["default"])(options, ["duration", "easing", "delay"]);\n\n if (false) { var isNumber, isString; }\n\n return (Array.isArray(props) ? props : [props]).map(function (animatedProp) {\n return "".concat(animatedProp, " ").concat(typeof durationOption === \'string\' ? durationOption : formatMs(durationOption), " ").concat(easingOption, " ").concat(typeof delay === \'string\' ? delay : formatMs(delay));\n }).join(\',\');\n },\n getAutoHeightDuration: function getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n\n var constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10);\n }\n});\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/styles/transitions.js?')},"./node_modules/@material-ui/core/esm/styles/withStyles.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var _material_ui_styles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/styles */ "./node_modules/@material-ui/styles/esm/withStyles/withStyles.js");\n/* harmony import */ var _defaultTheme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./defaultTheme */ "./node_modules/@material-ui/core/esm/styles/defaultTheme.js");\n\n\n\n\nfunction withStyles(stylesOrCreator, options) {\n return (0,_material_ui_styles__WEBPACK_IMPORTED_MODULE_1__["default"])(stylesOrCreator, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n defaultTheme: _defaultTheme__WEBPACK_IMPORTED_MODULE_2__["default"]\n }, options));\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (withStyles);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/styles/withStyles.js?')},"./node_modules/@material-ui/core/esm/styles/zIndex.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nvar zIndex = {\n mobileStepper: 1000,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (zIndex);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/styles/zIndex.js?')},"./node_modules/@material-ui/core/esm/utils/capitalize.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ capitalize)\n/* harmony export */ });\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material-ui/utils */ "./node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js");\n\n// It should to be noted that this function isn\'t equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word a the sentence.\n// We only handle the first word.\nfunction capitalize(string) {\n if (typeof string !== \'string\') {\n throw new Error( false ? 0 : (0,_material_ui_utils__WEBPACK_IMPORTED_MODULE_0__["default"])(7));\n }\n\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/utils/capitalize.js?')},"./node_modules/@material-ui/core/esm/utils/createChainedFunction.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ createChainedFunction)\n/* harmony export */ });\n/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nfunction createChainedFunction() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n return funcs.reduce(function (acc, func) {\n if (func == null) {\n return acc;\n }\n\n if (false) {}\n\n return function chainedFunction() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, function () {});\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/utils/createChainedFunction.js?')},"./node_modules/@material-ui/core/esm/utils/createSvgIcon.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ createSvgIcon)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var _SvgIcon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../SvgIcon */ "./node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js");\n\n\n\n/**\n * Private module reserved for @material-ui/x packages.\n */\n\nfunction createSvgIcon(path, displayName) {\n var Component = function Component(props, ref) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_SvgIcon__WEBPACK_IMPORTED_MODULE_2__["default"], (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n ref: ref\n }, props), path);\n };\n\n if (false) {}\n\n Component.muiName = _SvgIcon__WEBPACK_IMPORTED_MODULE_2__["default"].muiName;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.memo( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(Component));\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/utils/createSvgIcon.js?')},"./node_modules/@material-ui/core/esm/utils/debounce.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ debounce)\n/* harmony export */ });\n// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nfunction debounce(func) {\n var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 166;\n var timeout;\n\n function debounced() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // eslint-disable-next-line consistent-this\n var that = this;\n\n var later = function later() {\n func.apply(that, args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n debounced.clear = function () {\n clearTimeout(timeout);\n };\n\n return debounced;\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/utils/debounce.js?')},"./node_modules/@material-ui/core/esm/utils/deprecatedPropType.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ deprecatedPropType)\n/* harmony export */ });\nfunction deprecatedPropType(validator, reason) {\n if (true) {\n return function () {\n return null;\n };\n }\n\n return function (props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || \'<>\';\n var propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== \'undefined\') {\n return new Error("The ".concat(location, " `").concat(propFullNameSafe, "` of ") + "`".concat(componentNameSafe, "` is deprecated. ").concat(reason));\n }\n\n return null;\n };\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/utils/deprecatedPropType.js?')},"./node_modules/@material-ui/core/esm/utils/index.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "capitalize": () => (/* reexport safe */ _capitalize__WEBPACK_IMPORTED_MODULE_0__["default"]),\n/* harmony export */ "createChainedFunction": () => (/* reexport safe */ _createChainedFunction__WEBPACK_IMPORTED_MODULE_1__["default"]),\n/* harmony export */ "createSvgIcon": () => (/* reexport safe */ _createSvgIcon__WEBPACK_IMPORTED_MODULE_2__["default"]),\n/* harmony export */ "debounce": () => (/* reexport safe */ _debounce__WEBPACK_IMPORTED_MODULE_3__["default"]),\n/* harmony export */ "deprecatedPropType": () => (/* reexport safe */ _deprecatedPropType__WEBPACK_IMPORTED_MODULE_4__["default"]),\n/* harmony export */ "isMuiElement": () => (/* reexport safe */ _isMuiElement__WEBPACK_IMPORTED_MODULE_5__["default"]),\n/* harmony export */ "ownerDocument": () => (/* reexport safe */ _ownerDocument__WEBPACK_IMPORTED_MODULE_6__["default"]),\n/* harmony export */ "ownerWindow": () => (/* reexport safe */ _ownerWindow__WEBPACK_IMPORTED_MODULE_7__["default"]),\n/* harmony export */ "requirePropFactory": () => (/* reexport safe */ _requirePropFactory__WEBPACK_IMPORTED_MODULE_8__["default"]),\n/* harmony export */ "setRef": () => (/* reexport safe */ _setRef__WEBPACK_IMPORTED_MODULE_9__["default"]),\n/* harmony export */ "unsupportedProp": () => (/* reexport safe */ _unsupportedProp__WEBPACK_IMPORTED_MODULE_10__["default"]),\n/* harmony export */ "useControlled": () => (/* reexport safe */ _useControlled__WEBPACK_IMPORTED_MODULE_11__["default"]),\n/* harmony export */ "useEventCallback": () => (/* reexport safe */ _useEventCallback__WEBPACK_IMPORTED_MODULE_12__["default"]),\n/* harmony export */ "useForkRef": () => (/* reexport safe */ _useForkRef__WEBPACK_IMPORTED_MODULE_13__["default"]),\n/* harmony export */ "unstable_useId": () => (/* reexport safe */ _unstable_useId__WEBPACK_IMPORTED_MODULE_14__["default"]),\n/* harmony export */ "useIsFocusVisible": () => (/* reexport safe */ _useIsFocusVisible__WEBPACK_IMPORTED_MODULE_15__["default"])\n/* harmony export */ });\n/* harmony import */ var _capitalize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./capitalize */ "./node_modules/@material-ui/core/esm/utils/capitalize.js");\n/* harmony import */ var _createChainedFunction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createChainedFunction */ "./node_modules/@material-ui/core/esm/utils/createChainedFunction.js");\n/* harmony import */ var _createSvgIcon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createSvgIcon */ "./node_modules/@material-ui/core/esm/utils/createSvgIcon.js");\n/* harmony import */ var _debounce__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./debounce */ "./node_modules/@material-ui/core/esm/utils/debounce.js");\n/* harmony import */ var _deprecatedPropType__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./deprecatedPropType */ "./node_modules/@material-ui/core/esm/utils/deprecatedPropType.js");\n/* harmony import */ var _isMuiElement__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isMuiElement */ "./node_modules/@material-ui/core/esm/utils/isMuiElement.js");\n/* harmony import */ var _ownerDocument__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ownerDocument */ "./node_modules/@material-ui/core/esm/utils/ownerDocument.js");\n/* harmony import */ var _ownerWindow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ownerWindow */ "./node_modules/@material-ui/core/esm/utils/ownerWindow.js");\n/* harmony import */ var _requirePropFactory__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./requirePropFactory */ "./node_modules/@material-ui/core/esm/utils/requirePropFactory.js");\n/* harmony import */ var _setRef__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./setRef */ "./node_modules/@material-ui/core/esm/utils/setRef.js");\n/* harmony import */ var _unsupportedProp__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./unsupportedProp */ "./node_modules/@material-ui/core/esm/utils/unsupportedProp.js");\n/* harmony import */ var _useControlled__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./useControlled */ "./node_modules/@material-ui/core/esm/utils/useControlled.js");\n/* harmony import */ var _useEventCallback__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./useEventCallback */ "./node_modules/@material-ui/core/esm/utils/useEventCallback.js");\n/* harmony import */ var _useForkRef__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./useForkRef */ "./node_modules/@material-ui/core/esm/utils/useForkRef.js");\n/* harmony import */ var _unstable_useId__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./unstable_useId */ "./node_modules/@material-ui/core/esm/utils/unstable_useId.js");\n/* harmony import */ var _useIsFocusVisible__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./useIsFocusVisible */ "./node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js");\n\n\n\n\n\n\n\n\n\n\n\n\n\n // eslint-disable-next-line camelcase\n\n\n\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/utils/index.js?')},"./node_modules/@material-ui/core/esm/utils/isMuiElement.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ isMuiElement)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n\nfunction isMuiElement(element, muiNames) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1;\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/utils/isMuiElement.js?')},"./node_modules/@material-ui/core/esm/utils/ownerDocument.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ ownerDocument)\n/* harmony export */ });\nfunction ownerDocument(node) {\n return node && node.ownerDocument || document;\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/utils/ownerDocument.js?')},"./node_modules/@material-ui/core/esm/utils/ownerWindow.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ ownerWindow)\n/* harmony export */ });\n/* harmony import */ var _ownerDocument__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ownerDocument */ "./node_modules/@material-ui/core/esm/utils/ownerDocument.js");\n\nfunction ownerWindow(node) {\n var doc = (0,_ownerDocument__WEBPACK_IMPORTED_MODULE_0__["default"])(node);\n return doc.defaultView || window;\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/utils/ownerWindow.js?')},"./node_modules/@material-ui/core/esm/utils/requirePropFactory.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ requirePropFactory)\n/* harmony export */ });\nfunction requirePropFactory(componentNameInError) {\n if (true) {\n return function () {\n return null;\n };\n }\n\n var requireProp = function requireProp(requiredProp) {\n return function (props, propName, componentName, location, propFullName) {\n var propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== \'undefined\' && !props[requiredProp]) {\n return new Error("The prop `".concat(propFullNameSafe, "` of ") + "`".concat(componentNameInError, "` must be used on `").concat(requiredProp, "`."));\n }\n\n return null;\n };\n };\n\n return requireProp;\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/utils/requirePropFactory.js?')},"./node_modules/@material-ui/core/esm/utils/setRef.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ setRef)\n/* harmony export */ });\n// TODO v5: consider to make it private\nfunction setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/utils/setRef.js?")},"./node_modules/@material-ui/core/esm/utils/unstable_useId.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ useId)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n\n/**\n * Private module reserved for @material-ui/x packages.\n */\n\nfunction useId(idOverride) {\n var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(idOverride),\n defaultId = _React$useState[0],\n setDefaultId = _React$useState[1];\n\n var id = idOverride || defaultId;\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the random value for client-side rendering only.\n // We can\'t use it server-side.\n setDefaultId("mui-".concat(Math.round(Math.random() * 1e5)));\n }\n }, [defaultId]);\n return id;\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/utils/unstable_useId.js?')},"./node_modules/@material-ui/core/esm/utils/unsupportedProp.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ unsupportedProp)\n/* harmony export */ });\nfunction unsupportedProp(props, propName, componentName, location, propFullName) {\n if (true) {\n return null;\n }\n\n var propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== \'undefined\') {\n return new Error("The prop `".concat(propFullNameSafe, "` is not supported. Please remove it."));\n }\n\n return null;\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/utils/unsupportedProp.js?')},"./node_modules/@material-ui/core/esm/utils/useControlled.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ useControlled)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\n\nfunction useControlled(_ref) {\n var controlled = _ref.controlled,\n defaultProp = _ref.default,\n name = _ref.name,\n _ref$state = _ref.state,\n state = _ref$state === void 0 ? \'value\' : _ref$state;\n\n var _React$useRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(controlled !== undefined),\n isControlled = _React$useRef.current;\n\n var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(defaultProp),\n valueState = _React$useState[0],\n setValue = _React$useState[1];\n\n var value = isControlled ? controlled : valueState;\n\n if (false) { var _React$useRef2, defaultValue; }\n\n var setValueIfUncontrolled = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (newValue) {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/utils/useControlled.js?')},"./node_modules/@material-ui/core/esm/utils/useEventCallback.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ useEventCallback)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n\nvar useEnhancedEffect = typeof window !== \'undefined\' ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n *\n * @param {function} fn\n */\n\nfunction useEventCallback(fn) {\n var ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(fn);\n useEnhancedEffect(function () {\n ref.current = fn;\n });\n return react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function () {\n return (0, ref.current).apply(void 0, arguments);\n }, []);\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/utils/useEventCallback.js?')},"./node_modules/@material-ui/core/esm/utils/useForkRef.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ useForkRef)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var _setRef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setRef */ "./node_modules/@material-ui/core/esm/utils/setRef.js");\n\n\nfunction useForkRef(refA, refB) {\n /**\n * This will create a new function if the ref props change and are defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior\n */\n return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(function () {\n if (refA == null && refB == null) {\n return null;\n }\n\n return function (refValue) {\n (0,_setRef__WEBPACK_IMPORTED_MODULE_1__["default"])(refA, refValue);\n (0,_setRef__WEBPACK_IMPORTED_MODULE_1__["default"])(refB, refValue);\n };\n }, [refA, refB]);\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/utils/useForkRef.js?')},"./node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"teardown\": () => (/* binding */ teardown),\n/* harmony export */ \"default\": () => (/* binding */ useIsFocusVisible)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\n\n\nvar hadKeyboardEvent = true;\nvar hadFocusVisibleRecently = false;\nvar hadFocusVisibleRecentlyTimeout = null;\nvar inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @return {boolean}\n */\n\nfunction focusTriggersKeyboardModality(node) {\n var type = node.type,\n tagName = node.tagName;\n\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n\n if (node.isContentEditable) {\n return true;\n }\n\n return false;\n}\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\n\n\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n\n hadKeyboardEvent = true;\n}\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\n\n\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\n\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\n\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nfunction teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nfunction isFocusVisible(event) {\n var target = event.target;\n\n try {\n return target.matches(':focus-visible');\n } catch (error) {} // browsers not implementing :focus-visible will throw a SyntaxError\n // we use our own heuristic for those browsers\n // rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n // no need for validFocusTarget check. the user does that by attaching it to\n // focusable events only\n\n\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\n/**\n * Should be called if a blur event is fired on a focus-visible element\n */\n\n\nfunction handleBlurVisible() {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function () {\n hadFocusVisibleRecently = false;\n }, 100);\n}\n\nfunction useIsFocusVisible() {\n var ref = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (instance) {\n var node = react_dom__WEBPACK_IMPORTED_MODULE_1__.findDOMNode(instance);\n\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n\n if (false) {}\n\n return {\n isFocusVisible: isFocusVisible,\n onBlurVisible: handleBlurVisible,\n ref: ref\n };\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js?")},"./node_modules/@material-ui/icons/BrokenImage.js":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";eval('\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");\n\nvar _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/@babel/runtime/helpers/interopRequireWildcard.js");\n\nObject.defineProperty(exports, "__esModule", ({\n value: true\n}));\nexports["default"] = void 0;\n\nvar React = _interopRequireWildcard(__webpack_require__(/*! react */ "./node_modules/react/index.js"));\n\nvar _createSvgIcon = _interopRequireDefault(__webpack_require__(/*! ./utils/createSvgIcon */ "./node_modules/@material-ui/icons/utils/createSvgIcon.js"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement("path", {\n d: "M21 5v6.59l-3-3.01-4 4.01-4-4-4 4-3-3.01V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2zm-3 6.42l3 3.01V19c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2v-6.58l3 2.99 4-4 4 4 4-3.99z"\n}), \'BrokenImage\');\n\nexports["default"] = _default;\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/icons/BrokenImage.js?')},"./node_modules/@material-ui/icons/utils/createSvgIcon.js":(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", ({\n value: true\n}));\nObject.defineProperty(exports, "default", ({\n enumerable: true,\n get: function get() {\n return _utils.createSvgIcon;\n }\n}));\n\nvar _utils = __webpack_require__(/*! @material-ui/core/utils */ "./node_modules/@material-ui/core/esm/utils/index.js");\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/icons/utils/createSvgIcon.js?')},"./node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "sheetsManager": () => (/* binding */ sheetsManager),\n/* harmony export */ "StylesContext": () => (/* binding */ StylesContext),\n/* harmony export */ "default": () => (/* binding */ StylesProvider)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var _createGenerateClassName__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../createGenerateClassName */ "./node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js");\n/* harmony import */ var jss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! jss */ "./node_modules/jss/dist/jss.esm.js");\n/* harmony import */ var _jssPreset__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../jssPreset */ "./node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js");\n\n\n\n\n\n\n\n // Default JSS instance.\n\nvar jss = (0,jss__WEBPACK_IMPORTED_MODULE_3__.create)((0,_jssPreset__WEBPACK_IMPORTED_MODULE_4__["default"])()); // Use a singleton or the provided one by the context.\n//\n// The counter-based approach doesn\'t tolerate any mistake.\n// It\'s much safer to use the same counter everywhere.\n\nvar generateClassName = (0,_createGenerateClassName__WEBPACK_IMPORTED_MODULE_5__["default"])(); // Exported for test purposes\n\nvar sheetsManager = new Map();\nvar defaultOptions = {\n disableGeneration: false,\n generateClassName: generateClassName,\n jss: jss,\n sheetsCache: null,\n sheetsManager: sheetsManager,\n sheetsRegistry: null\n};\nvar StylesContext = react__WEBPACK_IMPORTED_MODULE_2__.createContext(defaultOptions);\n\nif (false) {}\n\nvar injectFirstNode;\nfunction StylesProvider(props) {\n var children = props.children,\n _props$injectFirst = props.injectFirst,\n injectFirst = _props$injectFirst === void 0 ? false : _props$injectFirst,\n _props$disableGenerat = props.disableGeneration,\n disableGeneration = _props$disableGenerat === void 0 ? false : _props$disableGenerat,\n localOptions = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__["default"])(props, ["children", "injectFirst", "disableGeneration"]);\n\n var outerOptions = react__WEBPACK_IMPORTED_MODULE_2__.useContext(StylesContext);\n\n var context = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, outerOptions, {\n disableGeneration: disableGeneration\n }, localOptions);\n\n if (false) {}\n\n if (false) {}\n\n if (false) {}\n\n if (!context.jss.options.insertionPoint && injectFirst && typeof window !== \'undefined\') {\n if (!injectFirstNode) {\n var head = document.head;\n injectFirstNode = document.createComment(\'mui-inject-first\');\n head.insertBefore(injectFirstNode, head.firstChild);\n }\n\n context.jss = (0,jss__WEBPACK_IMPORTED_MODULE_3__.create)({\n plugins: (0,_jssPreset__WEBPACK_IMPORTED_MODULE_4__["default"])().plugins,\n insertionPoint: injectFirstNode\n });\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(StylesContext.Provider, {\n value: context\n }, children);\n}\n false ? 0 : void 0;\n\nif (false) {}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js?')},"./node_modules/@material-ui/styles/esm/ThemeProvider/nested.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__');\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/styles/esm/ThemeProvider/nested.js?")},"./node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ createGenerateClassName)\n/* harmony export */ });\n/* harmony import */ var _ThemeProvider_nested__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ThemeProvider/nested */ "./node_modules/@material-ui/styles/esm/ThemeProvider/nested.js");\n\n/**\n * This is the list of the style rule name we use as drop in replacement for the built-in\n * pseudo classes (:checked, :disabled, :focused, etc.).\n *\n * Why do they exist in the first place?\n * These classes are used at a specificity of 2.\n * It allows them to override previously definied styles as well as\n * being untouched by simple user overrides.\n */\n\nvar pseudoClasses = [\'checked\', \'disabled\', \'error\', \'focused\', \'focusVisible\', \'required\', \'expanded\', \'selected\']; // Returns a function which generates unique class names based on counters.\n// When new generator function is created, rule counter is reset.\n// We need to reset the rule counter for SSR for each request.\n//\n// It\'s inspired by\n// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js\n\nfunction createGenerateClassName() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$disableGloba = options.disableGlobal,\n disableGlobal = _options$disableGloba === void 0 ? false : _options$disableGloba,\n _options$productionPr = options.productionPrefix,\n productionPrefix = _options$productionPr === void 0 ? \'jss\' : _options$productionPr,\n _options$seed = options.seed,\n seed = _options$seed === void 0 ? \'\' : _options$seed;\n var seedPrefix = seed === \'\' ? \'\' : "".concat(seed, "-");\n var ruleCounter = 0;\n\n var getNextCounterId = function getNextCounterId() {\n ruleCounter += 1;\n\n if (false) {}\n\n return ruleCounter;\n };\n\n return function (rule, styleSheet) {\n var name = styleSheet.options.name; // Is a global static MUI style?\n\n if (name && name.indexOf(\'Mui\') === 0 && !styleSheet.options.link && !disableGlobal) {\n // We can use a shorthand class name, we never use the keys to style the components.\n if (pseudoClasses.indexOf(rule.key) !== -1) {\n return "Mui-".concat(rule.key);\n }\n\n var prefix = "".concat(seedPrefix).concat(name, "-").concat(rule.key);\n\n if (!styleSheet.options.theme[_ThemeProvider_nested__WEBPACK_IMPORTED_MODULE_0__["default"]] || seed !== \'\') {\n return prefix;\n }\n\n return "".concat(prefix, "-").concat(getNextCounterId());\n }\n\n if (true) {\n return "".concat(seedPrefix).concat(productionPrefix).concat(getNextCounterId());\n }\n\n var suffix = "".concat(rule.key, "-").concat(getNextCounterId()); // Help with debuggability.\n\n if (styleSheet.options.classNamePrefix) {\n return "".concat(seedPrefix).concat(styleSheet.options.classNamePrefix, "-").concat(suffix);\n }\n\n return "".concat(seedPrefix).concat(suffix);\n };\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js?')},"./node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ getStylesCreator)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ "./node_modules/@babel/runtime/helpers/esm/typeof.js");\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material-ui/utils */ "./node_modules/@material-ui/utils/esm/deepmerge.js");\n\n\n\n\nfunction getStylesCreator(stylesOrCreator) {\n var themingEnabled = typeof stylesOrCreator === \'function\';\n\n if (false) {}\n\n return {\n create: function create(theme, name) {\n var styles;\n\n try {\n styles = themingEnabled ? stylesOrCreator(theme) : stylesOrCreator;\n } catch (err) {\n if (false) {}\n\n throw err;\n }\n\n if (!name || !theme.overrides || !theme.overrides[name]) {\n return styles;\n }\n\n var overrides = theme.overrides[name];\n\n var stylesWithOverrides = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, styles);\n\n Object.keys(overrides).forEach(function (key) {\n if (false) {}\n\n stylesWithOverrides[key] = (0,_material_ui_utils__WEBPACK_IMPORTED_MODULE_2__["default"])(stylesWithOverrides[key], overrides[key]);\n });\n return stylesWithOverrides;\n },\n options: {}\n };\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js?')},"./node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n// We use the same empty object to ref count the styles that don\'t need a theme object.\nvar noopTheme = {};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (noopTheme);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js?')},"./node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ getThemeProps)\n/* harmony export */ });\n/* eslint-disable no-restricted-syntax */\nfunction getThemeProps(params) {\n var theme = params.theme,\n name = params.name,\n props = params.props;\n\n if (!theme || !theme.props || !theme.props[name]) {\n return props;\n } // Resolve default props, code borrow from React source.\n // https://github.com/facebook/react/blob/15a8f031838a553e41c0b66eb1bcf1da8448104d/packages/react/src/ReactElement.js#L221\n\n\n var defaultProps = theme.props[name];\n var propName;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n\n return props;\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js?')},"./node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ jssPreset)\n/* harmony export */ });\n/* harmony import */ var jss_plugin_rule_value_function__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jss-plugin-rule-value-function */ "./node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js");\n/* harmony import */ var jss_plugin_global__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jss-plugin-global */ "./node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js");\n/* harmony import */ var jss_plugin_nested__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! jss-plugin-nested */ "./node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js");\n/* harmony import */ var jss_plugin_camel_case__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! jss-plugin-camel-case */ "./node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js");\n/* harmony import */ var jss_plugin_default_unit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! jss-plugin-default-unit */ "./node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js");\n/* harmony import */ var jss_plugin_vendor_prefixer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! jss-plugin-vendor-prefixer */ "./node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js");\n/* harmony import */ var jss_plugin_props_sort__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! jss-plugin-props-sort */ "./node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js");\n\n\n\n\n\n\n // Subset of jss-preset-default with only the plugins the Material-UI components are using.\n\nfunction jssPreset() {\n return {\n plugins: [(0,jss_plugin_rule_value_function__WEBPACK_IMPORTED_MODULE_0__["default"])(), (0,jss_plugin_global__WEBPACK_IMPORTED_MODULE_1__["default"])(), (0,jss_plugin_nested__WEBPACK_IMPORTED_MODULE_2__["default"])(), (0,jss_plugin_camel_case__WEBPACK_IMPORTED_MODULE_3__["default"])(), (0,jss_plugin_default_unit__WEBPACK_IMPORTED_MODULE_4__["default"])(), // Disable the vendor prefixer server-side, it does nothing.\n // This way, we can get a performance boost.\n // In the documentation, we are using `autoprefixer` to solve this problem.\n typeof window === \'undefined\' ? null : (0,jss_plugin_vendor_prefixer__WEBPACK_IMPORTED_MODULE_5__["default"])(), (0,jss_plugin_props_sort__WEBPACK_IMPORTED_MODULE_6__["default"])()]\n };\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js?')},"./node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "increment": () => (/* binding */ increment)\n/* harmony export */ });\n/* eslint-disable import/prefer-default-export */\n// Global index counter to preserve source order.\n// We create the style sheet during the creation of the component,\n// children are handled after the parents, so the order of style elements would be parent->child.\n// It is a problem though when a parent passes a className\n// which needs to override any child\'s styles.\n// StyleSheet of the child has a higher specificity, because of the source order.\n// So our solution is to render sheets them in the reverse order child->sheet, so\n// that parent has a higher specificity.\nvar indexCounter = -1e9;\nfunction increment() {\n indexCounter += 1;\n\n if (false) {}\n\n return indexCounter;\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js?')},"./node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ makeStyles)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var jss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! jss */ "./node_modules/jss/dist/jss.esm.js");\n/* harmony import */ var _mergeClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../mergeClasses */ "./node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js");\n/* harmony import */ var _multiKeyStore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./multiKeyStore */ "./node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js");\n/* harmony import */ var _useTheme__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../useTheme */ "./node_modules/@material-ui/styles/esm/useTheme/useTheme.js");\n/* harmony import */ var _StylesProvider__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../StylesProvider */ "./node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js");\n/* harmony import */ var _indexCounter__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./indexCounter */ "./node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js");\n/* harmony import */ var _getStylesCreator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../getStylesCreator */ "./node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js");\n/* harmony import */ var _getStylesCreator_noopTheme__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../getStylesCreator/noopTheme */ "./node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js");\n\n\n\n\n\n\n\n\n\n\n\n\nfunction getClasses(_ref, classes, Component) {\n var state = _ref.state,\n stylesOptions = _ref.stylesOptions;\n\n if (stylesOptions.disableGeneration) {\n return classes || {};\n }\n\n if (!state.cacheClasses) {\n state.cacheClasses = {\n // Cache for the finalized classes value.\n value: null,\n // Cache for the last used classes prop pointer.\n lastProp: null,\n // Cache for the last used rendered classes pointer.\n lastJSS: {}\n };\n } // Tracks if either the rendered classes or classes prop has changed,\n // requiring the generation of a new finalized classes object.\n\n\n var generate = false;\n\n if (state.classes !== state.cacheClasses.lastJSS) {\n state.cacheClasses.lastJSS = state.classes;\n generate = true;\n }\n\n if (classes !== state.cacheClasses.lastProp) {\n state.cacheClasses.lastProp = classes;\n generate = true;\n }\n\n if (generate) {\n state.cacheClasses.value = (0,_mergeClasses__WEBPACK_IMPORTED_MODULE_3__["default"])({\n baseClasses: state.cacheClasses.lastJSS,\n newClasses: classes,\n Component: Component\n });\n }\n\n return state.cacheClasses.value;\n}\n\nfunction attach(_ref2, props) {\n var state = _ref2.state,\n theme = _ref2.theme,\n stylesOptions = _ref2.stylesOptions,\n stylesCreator = _ref2.stylesCreator,\n name = _ref2.name;\n\n if (stylesOptions.disableGeneration) {\n return;\n }\n\n var sheetManager = _multiKeyStore__WEBPACK_IMPORTED_MODULE_4__["default"].get(stylesOptions.sheetsManager, stylesCreator, theme);\n\n if (!sheetManager) {\n sheetManager = {\n refs: 0,\n staticSheet: null,\n dynamicStyles: null\n };\n _multiKeyStore__WEBPACK_IMPORTED_MODULE_4__["default"].set(stylesOptions.sheetsManager, stylesCreator, theme, sheetManager);\n }\n\n var options = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, stylesCreator.options, stylesOptions, {\n theme: theme,\n flip: typeof stylesOptions.flip === \'boolean\' ? stylesOptions.flip : theme.direction === \'rtl\'\n });\n\n options.generateId = options.serverGenerateClassName || options.generateClassName;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n\n if (sheetManager.refs === 0) {\n var staticSheet;\n\n if (stylesOptions.sheetsCache) {\n staticSheet = _multiKeyStore__WEBPACK_IMPORTED_MODULE_4__["default"].get(stylesOptions.sheetsCache, stylesCreator, theme);\n }\n\n var styles = stylesCreator.create(theme, name);\n\n if (!staticSheet) {\n staticSheet = stylesOptions.jss.createStyleSheet(styles, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({\n link: false\n }, options));\n staticSheet.attach();\n\n if (stylesOptions.sheetsCache) {\n _multiKeyStore__WEBPACK_IMPORTED_MODULE_4__["default"].set(stylesOptions.sheetsCache, stylesCreator, theme, staticSheet);\n }\n }\n\n if (sheetsRegistry) {\n sheetsRegistry.add(staticSheet);\n }\n\n sheetManager.staticSheet = staticSheet;\n sheetManager.dynamicStyles = (0,jss__WEBPACK_IMPORTED_MODULE_5__.getDynamicStyles)(styles);\n }\n\n if (sheetManager.dynamicStyles) {\n var dynamicSheet = stylesOptions.jss.createStyleSheet(sheetManager.dynamicStyles, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({\n link: true\n }, options));\n dynamicSheet.update(props);\n dynamicSheet.attach();\n state.dynamicSheet = dynamicSheet;\n state.classes = (0,_mergeClasses__WEBPACK_IMPORTED_MODULE_3__["default"])({\n baseClasses: sheetManager.staticSheet.classes,\n newClasses: dynamicSheet.classes\n });\n\n if (sheetsRegistry) {\n sheetsRegistry.add(dynamicSheet);\n }\n } else {\n state.classes = sheetManager.staticSheet.classes;\n }\n\n sheetManager.refs += 1;\n}\n\nfunction update(_ref3, props) {\n var state = _ref3.state;\n\n if (state.dynamicSheet) {\n state.dynamicSheet.update(props);\n }\n}\n\nfunction detach(_ref4) {\n var state = _ref4.state,\n theme = _ref4.theme,\n stylesOptions = _ref4.stylesOptions,\n stylesCreator = _ref4.stylesCreator;\n\n if (stylesOptions.disableGeneration) {\n return;\n }\n\n var sheetManager = _multiKeyStore__WEBPACK_IMPORTED_MODULE_4__["default"].get(stylesOptions.sheetsManager, stylesCreator, theme);\n sheetManager.refs -= 1;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n\n if (sheetManager.refs === 0) {\n _multiKeyStore__WEBPACK_IMPORTED_MODULE_4__["default"]["delete"](stylesOptions.sheetsManager, stylesCreator, theme);\n stylesOptions.jss.removeStyleSheet(sheetManager.staticSheet);\n\n if (sheetsRegistry) {\n sheetsRegistry.remove(sheetManager.staticSheet);\n }\n }\n\n if (state.dynamicSheet) {\n stylesOptions.jss.removeStyleSheet(state.dynamicSheet);\n\n if (sheetsRegistry) {\n sheetsRegistry.remove(state.dynamicSheet);\n }\n }\n}\n\nfunction useSynchronousEffect(func, values) {\n var key = react__WEBPACK_IMPORTED_MODULE_2__.useRef([]);\n var output; // Store "generation" key. Just returns a new object every time\n\n var currentKey = react__WEBPACK_IMPORTED_MODULE_2__.useMemo(function () {\n return {};\n }, values); // eslint-disable-line react-hooks/exhaustive-deps\n // "the first render", or "memo dropped the value"\n\n if (key.current !== currentKey) {\n key.current = currentKey;\n output = func();\n }\n\n react__WEBPACK_IMPORTED_MODULE_2__.useEffect(function () {\n return function () {\n if (output) {\n output();\n }\n };\n }, [currentKey] // eslint-disable-line react-hooks/exhaustive-deps\n );\n}\n\nfunction makeStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var name = options.name,\n classNamePrefixOption = options.classNamePrefix,\n Component = options.Component,\n _options$defaultTheme = options.defaultTheme,\n defaultTheme = _options$defaultTheme === void 0 ? _getStylesCreator_noopTheme__WEBPACK_IMPORTED_MODULE_6__["default"] : _options$defaultTheme,\n stylesOptions2 = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__["default"])(options, ["name", "classNamePrefix", "Component", "defaultTheme"]);\n\n var stylesCreator = (0,_getStylesCreator__WEBPACK_IMPORTED_MODULE_7__["default"])(stylesOrCreator);\n var classNamePrefix = name || classNamePrefixOption || \'makeStyles\';\n stylesCreator.options = {\n index: (0,_indexCounter__WEBPACK_IMPORTED_MODULE_8__.increment)(),\n name: name,\n meta: classNamePrefix,\n classNamePrefix: classNamePrefix\n };\n\n var useStyles = function useStyles() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var theme = (0,_useTheme__WEBPACK_IMPORTED_MODULE_9__["default"])() || defaultTheme;\n\n var stylesOptions = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, react__WEBPACK_IMPORTED_MODULE_2__.useContext(_StylesProvider__WEBPACK_IMPORTED_MODULE_10__.StylesContext), stylesOptions2);\n\n var instance = react__WEBPACK_IMPORTED_MODULE_2__.useRef();\n var shouldUpdate = react__WEBPACK_IMPORTED_MODULE_2__.useRef();\n useSynchronousEffect(function () {\n var current = {\n name: name,\n state: {},\n stylesCreator: stylesCreator,\n stylesOptions: stylesOptions,\n theme: theme\n };\n attach(current, props);\n shouldUpdate.current = false;\n instance.current = current;\n return function () {\n detach(current);\n };\n }, [theme, stylesCreator]);\n react__WEBPACK_IMPORTED_MODULE_2__.useEffect(function () {\n if (shouldUpdate.current) {\n update(instance.current, props);\n }\n\n shouldUpdate.current = true;\n });\n var classes = getClasses(instance.current, props.classes, Component);\n\n if (false) {}\n\n return classes;\n };\n\n return useStyles;\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js?')},"./node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n// Used https://github.com/thinkloop/multi-key-cache as inspiration\nvar multiKeyStore = {\n set: function set(cache, key1, key2, value) {\n var subCache = cache.get(key1);\n\n if (!subCache) {\n subCache = new Map();\n cache.set(key1, subCache);\n }\n\n subCache.set(key2, value);\n },\n get: function get(cache, key1, key2) {\n var subCache = cache.get(key1);\n return subCache ? subCache.get(key2) : undefined;\n },\n delete: function _delete(cache, key1, key2) {\n var subCache = cache.get(key1);\n subCache.delete(key2);\n }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (multiKeyStore);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js?')},"./node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ mergeClasses)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n\n\nfunction mergeClasses() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var baseClasses = options.baseClasses,\n newClasses = options.newClasses,\n Component = options.Component;\n\n if (!newClasses) {\n return baseClasses;\n }\n\n var nextClasses = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, baseClasses);\n\n if (false) {}\n\n Object.keys(newClasses).forEach(function (key) {\n if (false) {}\n\n if (newClasses[key]) {\n nextClasses[key] = "".concat(baseClasses[key], " ").concat(newClasses[key]);\n }\n });\n return nextClasses;\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js?')},"./node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n\nvar ThemeContext = react__WEBPACK_IMPORTED_MODULE_0__.createContext(null);\n\nif (false) {}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ThemeContext);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js?')},"./node_modules/@material-ui/styles/esm/useTheme/useTheme.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ useTheme)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var _ThemeContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ThemeContext */ "./node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js");\n\n\nfunction useTheme() {\n var theme = react__WEBPACK_IMPORTED_MODULE_0__.useContext(_ThemeContext__WEBPACK_IMPORTED_MODULE_1__["default"]);\n\n if (false) {}\n\n return theme;\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/styles/esm/useTheme/useTheme.js?')},"./node_modules/@material-ui/styles/esm/withStyles/withStyles.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! hoist-non-react-statics */ "./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _makeStyles__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../makeStyles */ "./node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js");\n/* harmony import */ var _getThemeProps__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../getThemeProps */ "./node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js");\n/* harmony import */ var _useTheme__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../useTheme */ "./node_modules/@material-ui/styles/esm/useTheme/useTheme.js");\n\n\n\n\n\n\n\n\n // Link a style sheet with a component.\n// It does not modify the component passed to it;\n// instead, it returns a new component, with a `classes` property.\n\nvar withStyles = function withStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function (Component) {\n var defaultTheme = options.defaultTheme,\n _options$withTheme = options.withTheme,\n withTheme = _options$withTheme === void 0 ? false : _options$withTheme,\n name = options.name,\n stylesOptions = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__["default"])(options, ["defaultTheme", "withTheme", "name"]);\n\n if (false) {}\n\n var classNamePrefix = name;\n\n if (false) { var displayName; }\n\n var useStyles = (0,_makeStyles__WEBPACK_IMPORTED_MODULE_4__["default"])(stylesOrCreator, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n defaultTheme: defaultTheme,\n Component: Component,\n name: name || Component.displayName,\n classNamePrefix: classNamePrefix\n }, stylesOptions));\n var WithStyles = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.forwardRef(function WithStyles(props, ref) {\n var classesProp = props.classes,\n innerRef = props.innerRef,\n other = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__["default"])(props, ["classes", "innerRef"]); // The wrapper receives only user supplied props, which could be a subset of\n // the actual props Component might receive due to merging with defaultProps.\n // So copying it here would give us the same result in the wrapper as well.\n\n\n var classes = useStyles((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, Component.defaultProps, props));\n var theme;\n var more = other;\n\n if (typeof name === \'string\' || withTheme) {\n // name and withTheme are invariant in the outer scope\n // eslint-disable-next-line react-hooks/rules-of-hooks\n theme = (0,_useTheme__WEBPACK_IMPORTED_MODULE_5__["default"])() || defaultTheme;\n\n if (name) {\n more = (0,_getThemeProps__WEBPACK_IMPORTED_MODULE_6__["default"])({\n theme: theme,\n name: name,\n props: other\n });\n } // Provide the theme to the wrapped component.\n // So we don\'t have to use the `withTheme()` Higher-order Component.\n\n\n if (withTheme && !more.theme) {\n more.theme = theme;\n }\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(Component, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n ref: innerRef || ref,\n classes: classes\n }, more));\n });\n false ? 0 : void 0;\n\n if (false) {}\n\n hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_3___default()(WithStyles, Component);\n\n if (false) {}\n\n return WithStyles;\n };\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (withStyles);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/styles/esm/withStyles/withStyles.js?')},"./node_modules/@material-ui/system/esm/breakpoints.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"handleBreakpoints\": () => (/* binding */ handleBreakpoints),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"./node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _merge__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./merge */ \"./node_modules/@material-ui/system/esm/merge.js\");\n\n\n\n\n // The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\n\nvar values = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n};\nvar defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: function up(key) {\n return \"@media (min-width:\".concat(values[key], \"px)\");\n }\n};\nfunction handleBreakpoints(props, propValue, styleFromPropValue) {\n if (false) {}\n\n if (Array.isArray(propValue)) {\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n return propValue.reduce(function (acc, item, index) {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n\n if ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(propValue) === 'object') {\n var _themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n\n return Object.keys(propValue).reduce(function (acc, breakpoint) {\n acc[_themeBreakpoints.up(breakpoint)] = styleFromPropValue(propValue[breakpoint]);\n return acc;\n }, {});\n }\n\n var output = styleFromPropValue(propValue);\n return output;\n}\n\nfunction breakpoints(styleFunction) {\n var newStyleFunction = function newStyleFunction(props) {\n var base = styleFunction(props);\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n var extended = themeBreakpoints.keys.reduce(function (acc, key) {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n theme: props.theme\n }, props[key]));\n }\n\n return acc;\n }, null);\n return (0,_merge__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(base, extended);\n };\n\n newStyleFunction.propTypes = false ? 0 : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl'].concat((0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(styleFunction.filterProps));\n return newStyleFunction;\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (breakpoints);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/system/esm/breakpoints.js?")},"./node_modules/@material-ui/system/esm/memoize.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ memoize)\n/* harmony export */ });\nfunction memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n\n return cache[arg];\n };\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/system/esm/memoize.js?')},"./node_modules/@material-ui/system/esm/merge.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _material_ui_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material-ui/utils */ "./node_modules/@material-ui/utils/esm/deepmerge.js");\n\n\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n\n return (0,_material_ui_utils__WEBPACK_IMPORTED_MODULE_0__["default"])(acc, item, {\n clone: false // No need to clone deep, it\'s way faster.\n\n });\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (merge);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/system/esm/merge.js?')},"./node_modules/@material-ui/system/esm/spacing.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"createUnarySpacing\": () => (/* binding */ createUnarySpacing),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _breakpoints__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./breakpoints */ \"./node_modules/@material-ui/system/esm/breakpoints.js\");\n/* harmony import */ var _merge__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./merge */ \"./node_modules/@material-ui/system/esm/merge.js\");\n/* harmony import */ var _memoize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./memoize */ \"./node_modules/@material-ui/system/esm/memoize.js\");\n\n\n\n\n\nvar properties = {\n m: 'margin',\n p: 'padding'\n};\nvar directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nvar aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n}; // memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\n\nvar getCssProperties = (0,_memoize__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (prop) {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n\n var _prop$split = prop.split(''),\n _prop$split2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_prop$split, 2),\n a = _prop$split2[0],\n b = _prop$split2[1];\n\n var property = properties[a];\n var direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(function (dir) {\n return property + dir;\n }) : [property + direction];\n});\nvar spacingKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY'];\nfunction createUnarySpacing(theme) {\n var themeSpacing = theme.spacing || 8;\n\n if (typeof themeSpacing === 'number') {\n return function (abs) {\n if (false) {}\n\n return themeSpacing * abs;\n };\n }\n\n if (Array.isArray(themeSpacing)) {\n return function (abs) {\n if (false) {}\n\n return themeSpacing[abs];\n };\n }\n\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n\n if (false) {}\n\n return function () {\n return undefined;\n };\n}\n\nfunction getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n\n var abs = Math.abs(propValue);\n var transformed = transformer(abs);\n\n if (propValue >= 0) {\n return transformed;\n }\n\n if (typeof transformed === 'number') {\n return -transformed;\n }\n\n return \"-\".concat(transformed);\n}\n\nfunction getStyleFromPropValue(cssProperties, transformer) {\n return function (propValue) {\n return cssProperties.reduce(function (acc, cssProperty) {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n };\n}\n\nfunction spacing(props) {\n var theme = props.theme;\n var transformer = createUnarySpacing(theme);\n return Object.keys(props).map(function (prop) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (spacingKeys.indexOf(prop) === -1) {\n return null;\n }\n\n var cssProperties = getCssProperties(prop);\n var styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n var propValue = props[prop];\n return (0,_breakpoints__WEBPACK_IMPORTED_MODULE_2__.handleBreakpoints)(props, propValue, styleFromPropValue);\n }).reduce(_merge__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {});\n}\n\nspacing.propTypes = false ? 0 : {};\nspacing.filterProps = spacingKeys;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (spacing);\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/system/esm/spacing.js?")},"./node_modules/@material-ui/utils/esm/deepmerge.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "isPlainObject": () => (/* binding */ isPlainObject),\n/* harmony export */ "default": () => (/* binding */ deepmerge)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ "./node_modules/@babel/runtime/helpers/esm/typeof.js");\n\n\nfunction isPlainObject(item) {\n return item && (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__["default"])(item) === \'object\' && item.constructor === Object;\n}\nfunction deepmerge(target, source) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n clone: true\n };\n var output = options.clone ? (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, target) : target;\n\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(function (key) {\n // Avoid prototype pollution\n if (key === \'__proto__\') {\n return;\n }\n\n if (isPlainObject(source[key]) && key in target) {\n output[key] = deepmerge(target[key], source[key], options);\n } else {\n output[key] = source[key];\n }\n });\n }\n\n return output;\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/utils/esm/deepmerge.js?')},"./node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ formatMuiErrorMessage)\n/* harmony export */ });\n/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@material-ui/utils/macros/MuiError.macro` instead.\n * @param {number} code\n */\nfunction formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe iff we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n\n /* eslint-disable prefer-template */\n var url = 'https://material-ui.com/production-error/?code=' + code;\n\n for (var i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n\n return 'Minified Material-UI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js?")},"./node_modules/@mui/base/AutocompleteUnstyled/useAutocomplete.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"createFilterOptions\": () => (/* binding */ createFilterOptions),\n/* harmony export */ \"default\": () => (/* binding */ useAutocomplete)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"./node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/utils */ \"./node_modules/@mui/utils/esm/useId.js\");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/utils */ \"./node_modules/@mui/utils/esm/useControlled.js\");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/utils */ \"./node_modules/@mui/utils/esm/useEventCallback.js\");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/utils */ \"./node_modules/@mui/utils/esm/setRef.js\");\n\n\n/* eslint-disable no-constant-condition */\n\n // https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript\n// Give up on IE11 support for this feature\n\nfunction stripDiacritics(string) {\n return typeof string.normalize !== 'undefined' ? string.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '') : string;\n}\n\nfunction createFilterOptions(config = {}) {\n const {\n ignoreAccents = true,\n ignoreCase = true,\n limit,\n matchFrom = 'any',\n stringify,\n trim = false\n } = config;\n return (options, {\n inputValue,\n getOptionLabel\n }) => {\n let input = trim ? inputValue.trim() : inputValue;\n\n if (ignoreCase) {\n input = input.toLowerCase();\n }\n\n if (ignoreAccents) {\n input = stripDiacritics(input);\n }\n\n const filteredOptions = options.filter(option => {\n let candidate = (stringify || getOptionLabel)(option);\n\n if (ignoreCase) {\n candidate = candidate.toLowerCase();\n }\n\n if (ignoreAccents) {\n candidate = stripDiacritics(candidate);\n }\n\n return matchFrom === 'start' ? candidate.indexOf(input) === 0 : candidate.indexOf(input) > -1;\n });\n return typeof limit === 'number' ? filteredOptions.slice(0, limit) : filteredOptions;\n };\n} // To replace with .findIndex() once we stop IE11 support.\n\nfunction findIndex(array, comp) {\n for (let i = 0; i < array.length; i += 1) {\n if (comp(array[i])) {\n return i;\n }\n }\n\n return -1;\n}\n\nconst defaultFilterOptions = createFilterOptions(); // Number of options to jump in list box when pageup and pagedown keys are used.\n\nconst pageSize = 5;\nfunction useAutocomplete(props) {\n const {\n autoComplete = false,\n autoHighlight = false,\n autoSelect = false,\n blurOnSelect = false,\n disabled: disabledProp,\n clearOnBlur = !props.freeSolo,\n clearOnEscape = false,\n componentName = 'useAutocomplete',\n defaultValue = props.multiple ? [] : null,\n disableClearable = false,\n disableCloseOnSelect = false,\n disabledItemsFocusable = false,\n disableListWrap = false,\n filterOptions = defaultFilterOptions,\n filterSelectedOptions = false,\n freeSolo = false,\n getOptionDisabled,\n getOptionLabel: getOptionLabelProp = option => {\n var _option$label;\n\n return (_option$label = option.label) != null ? _option$label : option;\n },\n isOptionEqualToValue = (option, value) => option === value,\n groupBy,\n handleHomeEndKeys = !props.freeSolo,\n id: idProp,\n includeInputInList = false,\n inputValue: inputValueProp,\n multiple = false,\n onChange,\n onClose,\n onHighlightChange,\n onInputChange,\n onOpen,\n open: openProp,\n openOnFocus = false,\n options,\n selectOnFocus = !props.freeSolo,\n value: valueProp\n } = props;\n const id = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(idProp);\n let getOptionLabel = getOptionLabelProp;\n\n getOptionLabel = option => {\n const optionLabel = getOptionLabelProp(option);\n\n if (typeof optionLabel !== 'string') {\n if (false) {}\n\n return String(optionLabel);\n }\n\n return optionLabel;\n };\n\n const ignoreFocus = react__WEBPACK_IMPORTED_MODULE_1__.useRef(false);\n const firstFocus = react__WEBPACK_IMPORTED_MODULE_1__.useRef(true);\n const inputRef = react__WEBPACK_IMPORTED_MODULE_1__.useRef(null);\n const listboxRef = react__WEBPACK_IMPORTED_MODULE_1__.useRef(null);\n const [anchorEl, setAnchorEl] = react__WEBPACK_IMPORTED_MODULE_1__.useState(null);\n const [focusedTag, setFocusedTag] = react__WEBPACK_IMPORTED_MODULE_1__.useState(-1);\n const defaultHighlighted = autoHighlight ? 0 : -1;\n const highlightedIndexRef = react__WEBPACK_IMPORTED_MODULE_1__.useRef(defaultHighlighted);\n const [value, setValueState] = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n controlled: valueProp,\n default: defaultValue,\n name: componentName\n });\n const [inputValue, setInputValueState] = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n controlled: inputValueProp,\n default: '',\n name: componentName,\n state: 'inputValue'\n });\n const [focused, setFocused] = react__WEBPACK_IMPORTED_MODULE_1__.useState(false);\n const resetInputValue = react__WEBPACK_IMPORTED_MODULE_1__.useCallback((event, newValue) => {\n // retain current `inputValue` if new option isn't selected and `clearOnBlur` is false\n // When `multiple` is enabled, `newValue` is an array of all selected items including the newly selected item\n const isOptionSelected = multiple ? value.length < newValue.length : newValue !== null;\n\n if (!isOptionSelected && !clearOnBlur) {\n return;\n }\n\n let newInputValue;\n\n if (multiple) {\n newInputValue = '';\n } else if (newValue == null) {\n newInputValue = '';\n } else {\n const optionLabel = getOptionLabel(newValue);\n newInputValue = typeof optionLabel === 'string' ? optionLabel : '';\n }\n\n if (inputValue === newInputValue) {\n return;\n }\n\n setInputValueState(newInputValue);\n\n if (onInputChange) {\n onInputChange(event, newInputValue, 'reset');\n }\n }, [getOptionLabel, inputValue, multiple, onInputChange, setInputValueState, clearOnBlur, value]);\n const prevValue = react__WEBPACK_IMPORTED_MODULE_1__.useRef();\n react__WEBPACK_IMPORTED_MODULE_1__.useEffect(() => {\n const valueChange = value !== prevValue.current;\n prevValue.current = value;\n\n if (focused && !valueChange) {\n return;\n } // Only reset the input's value when freeSolo if the component's value changes.\n\n\n if (freeSolo && !valueChange) {\n return;\n }\n\n resetInputValue(null, value);\n }, [value, resetInputValue, focused, prevValue, freeSolo]);\n const [open, setOpenState] = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n controlled: openProp,\n default: false,\n name: componentName,\n state: 'open'\n });\n const [inputPristine, setInputPristine] = react__WEBPACK_IMPORTED_MODULE_1__.useState(true);\n const inputValueIsSelectedValue = !multiple && value != null && inputValue === getOptionLabel(value);\n const popupOpen = open;\n const filteredOptions = popupOpen ? filterOptions(options.filter(option => {\n if (filterSelectedOptions && (multiple ? value : [value]).some(value2 => value2 !== null && isOptionEqualToValue(option, value2))) {\n return false;\n }\n\n return true;\n }), // we use the empty string to manipulate `filterOptions` to not filter any options\n // i.e. the filter predicate always returns true\n {\n inputValue: inputValueIsSelectedValue && inputPristine ? '' : inputValue,\n getOptionLabel\n }) : [];\n const listboxAvailable = open && filteredOptions.length > 0;\n\n if (false) {}\n\n const focusTag = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(tagToFocus => {\n if (tagToFocus === -1) {\n inputRef.current.focus();\n } else {\n anchorEl.querySelector(`[data-tag-index=\"${tagToFocus}\"]`).focus();\n }\n }); // Ensure the focusedTag is never inconsistent\n\n react__WEBPACK_IMPORTED_MODULE_1__.useEffect(() => {\n if (multiple && focusedTag > value.length - 1) {\n setFocusedTag(-1);\n focusTag(-1);\n }\n }, [value, multiple, focusedTag, focusTag]);\n\n function validOptionIndex(index, direction) {\n if (!listboxRef.current || index === -1) {\n return -1;\n }\n\n let nextFocus = index;\n\n while (true) {\n // Out of range\n if (direction === 'next' && nextFocus === filteredOptions.length || direction === 'previous' && nextFocus === -1) {\n return -1;\n }\n\n const option = listboxRef.current.querySelector(`[data-option-index=\"${nextFocus}\"]`); // Same logic as MenuList.js\n\n const nextFocusDisabled = disabledItemsFocusable ? false : !option || option.disabled || option.getAttribute('aria-disabled') === 'true';\n\n if (option && !option.hasAttribute('tabindex') || nextFocusDisabled) {\n // Move to the next element.\n nextFocus += direction === 'next' ? 1 : -1;\n } else {\n return nextFocus;\n }\n }\n }\n\n const setHighlightedIndex = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(({\n event,\n index,\n reason = 'auto'\n }) => {\n highlightedIndexRef.current = index; // does the index exist?\n\n if (index === -1) {\n inputRef.current.removeAttribute('aria-activedescendant');\n } else {\n inputRef.current.setAttribute('aria-activedescendant', `${id}-option-${index}`);\n }\n\n if (onHighlightChange) {\n onHighlightChange(event, index === -1 ? null : filteredOptions[index], reason);\n }\n\n if (!listboxRef.current) {\n return;\n }\n\n const prev = listboxRef.current.querySelector('[role=\"option\"].Mui-focused');\n\n if (prev) {\n prev.classList.remove('Mui-focused');\n prev.classList.remove('Mui-focusVisible');\n }\n\n const listboxNode = listboxRef.current.parentElement.querySelector('[role=\"listbox\"]'); // \"No results\"\n\n if (!listboxNode) {\n return;\n }\n\n if (index === -1) {\n listboxNode.scrollTop = 0;\n return;\n }\n\n const option = listboxRef.current.querySelector(`[data-option-index=\"${index}\"]`);\n\n if (!option) {\n return;\n }\n\n option.classList.add('Mui-focused');\n\n if (reason === 'keyboard') {\n option.classList.add('Mui-focusVisible');\n } // Scroll active descendant into view.\n // Logic copied from https://www.w3.org/TR/wai-aria-practices/examples/listbox/js/listbox.js\n //\n // Consider this API instead once it has a better browser support:\n // .scrollIntoView({ scrollMode: 'if-needed', block: 'nearest' });\n\n\n if (listboxNode.scrollHeight > listboxNode.clientHeight && reason !== 'mouse') {\n const element = option;\n const scrollBottom = listboxNode.clientHeight + listboxNode.scrollTop;\n const elementBottom = element.offsetTop + element.offsetHeight;\n\n if (elementBottom > scrollBottom) {\n listboxNode.scrollTop = elementBottom - listboxNode.clientHeight;\n } else if (element.offsetTop - element.offsetHeight * (groupBy ? 1.3 : 0) < listboxNode.scrollTop) {\n listboxNode.scrollTop = element.offsetTop - element.offsetHeight * (groupBy ? 1.3 : 0);\n }\n }\n });\n const changeHighlightedIndex = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(({\n event,\n diff,\n direction = 'next',\n reason = 'auto'\n }) => {\n if (!popupOpen) {\n return;\n }\n\n const getNextIndex = () => {\n const maxIndex = filteredOptions.length - 1;\n\n if (diff === 'reset') {\n return defaultHighlighted;\n }\n\n if (diff === 'start') {\n return 0;\n }\n\n if (diff === 'end') {\n return maxIndex;\n }\n\n const newIndex = highlightedIndexRef.current + diff;\n\n if (newIndex < 0) {\n if (newIndex === -1 && includeInputInList) {\n return -1;\n }\n\n if (disableListWrap && highlightedIndexRef.current !== -1 || Math.abs(diff) > 1) {\n return 0;\n }\n\n return maxIndex;\n }\n\n if (newIndex > maxIndex) {\n if (newIndex === maxIndex + 1 && includeInputInList) {\n return -1;\n }\n\n if (disableListWrap || Math.abs(diff) > 1) {\n return maxIndex;\n }\n\n return 0;\n }\n\n return newIndex;\n };\n\n const nextIndex = validOptionIndex(getNextIndex(), direction);\n setHighlightedIndex({\n index: nextIndex,\n reason,\n event\n }); // Sync the content of the input with the highlighted option.\n\n if (autoComplete && diff !== 'reset') {\n if (nextIndex === -1) {\n inputRef.current.value = inputValue;\n } else {\n const option = getOptionLabel(filteredOptions[nextIndex]);\n inputRef.current.value = option; // The portion of the selected suggestion that has not been typed by the user,\n // a completion string, appears inline after the input cursor in the textbox.\n\n const index = option.toLowerCase().indexOf(inputValue.toLowerCase());\n\n if (index === 0 && inputValue.length > 0) {\n inputRef.current.setSelectionRange(inputValue.length, option.length);\n }\n }\n }\n });\n const syncHighlightedIndex = react__WEBPACK_IMPORTED_MODULE_1__.useCallback(() => {\n if (!popupOpen) {\n return;\n }\n\n const valueItem = multiple ? value[0] : value; // The popup is empty, reset\n\n if (filteredOptions.length === 0 || valueItem == null) {\n changeHighlightedIndex({\n diff: 'reset'\n });\n return;\n }\n\n if (!listboxRef.current) {\n return;\n } // Synchronize the value with the highlighted index\n\n\n if (valueItem != null) {\n const currentOption = filteredOptions[highlightedIndexRef.current]; // Keep the current highlighted index if possible\n\n if (multiple && currentOption && findIndex(value, val => isOptionEqualToValue(currentOption, val)) !== -1) {\n return;\n }\n\n const itemIndex = findIndex(filteredOptions, optionItem => isOptionEqualToValue(optionItem, valueItem));\n\n if (itemIndex === -1) {\n changeHighlightedIndex({\n diff: 'reset'\n });\n } else {\n setHighlightedIndex({\n index: itemIndex\n });\n }\n\n return;\n } // Prevent the highlighted index to leak outside the boundaries.\n\n\n if (highlightedIndexRef.current >= filteredOptions.length - 1) {\n setHighlightedIndex({\n index: filteredOptions.length - 1\n });\n return;\n } // Restore the focus to the previous index.\n\n\n setHighlightedIndex({\n index: highlightedIndexRef.current\n }); // Ignore filteredOptions (and options, isOptionEqualToValue, getOptionLabel) not to break the scroll position\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [// Only sync the highlighted index when the option switch between empty and not\n filteredOptions.length, // Don't sync the highlighted index with the value when multiple\n // eslint-disable-next-line react-hooks/exhaustive-deps\n multiple ? false : value, filterSelectedOptions, changeHighlightedIndex, setHighlightedIndex, popupOpen, inputValue, multiple]);\n const handleListboxRef = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(node => {\n (0,_mui_utils__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(listboxRef, node);\n\n if (!node) {\n return;\n }\n\n syncHighlightedIndex();\n });\n\n if (false) {}\n\n react__WEBPACK_IMPORTED_MODULE_1__.useEffect(() => {\n syncHighlightedIndex();\n }, [syncHighlightedIndex]);\n\n const handleOpen = event => {\n if (open) {\n return;\n }\n\n setOpenState(true);\n setInputPristine(true);\n\n if (onOpen) {\n onOpen(event);\n }\n };\n\n const handleClose = (event, reason) => {\n if (!open) {\n return;\n }\n\n setOpenState(false);\n\n if (onClose) {\n onClose(event, reason);\n }\n };\n\n const handleValue = (event, newValue, reason, details) => {\n if (Array.isArray(value)) {\n if (value.length === newValue.length && value.every((val, i) => val === newValue[i])) {\n return;\n }\n } else if (value === newValue) {\n return;\n }\n\n if (onChange) {\n onChange(event, newValue, reason, details);\n }\n\n setValueState(newValue);\n };\n\n const isTouch = react__WEBPACK_IMPORTED_MODULE_1__.useRef(false);\n\n const selectNewValue = (event, option, reasonProp = 'selectOption', origin = 'options') => {\n let reason = reasonProp;\n let newValue = option;\n\n if (multiple) {\n newValue = Array.isArray(value) ? value.slice() : [];\n\n if (false) {}\n\n const itemIndex = findIndex(newValue, valueItem => isOptionEqualToValue(option, valueItem));\n\n if (itemIndex === -1) {\n newValue.push(option);\n } else if (origin !== 'freeSolo') {\n newValue.splice(itemIndex, 1);\n reason = 'removeOption';\n }\n }\n\n resetInputValue(event, newValue);\n handleValue(event, newValue, reason, {\n option\n });\n\n if (!disableCloseOnSelect && !event.ctrlKey && !event.metaKey) {\n handleClose(event, reason);\n }\n\n if (blurOnSelect === true || blurOnSelect === 'touch' && isTouch.current || blurOnSelect === 'mouse' && !isTouch.current) {\n inputRef.current.blur();\n }\n };\n\n function validTagIndex(index, direction) {\n if (index === -1) {\n return -1;\n }\n\n let nextFocus = index;\n\n while (true) {\n // Out of range\n if (direction === 'next' && nextFocus === value.length || direction === 'previous' && nextFocus === -1) {\n return -1;\n }\n\n const option = anchorEl.querySelector(`[data-tag-index=\"${nextFocus}\"]`); // Same logic as MenuList.js\n\n if (!option || !option.hasAttribute('tabindex') || option.disabled || option.getAttribute('aria-disabled') === 'true') {\n nextFocus += direction === 'next' ? 1 : -1;\n } else {\n return nextFocus;\n }\n }\n }\n\n const handleFocusTag = (event, direction) => {\n if (!multiple) {\n return;\n }\n\n handleClose(event, 'toggleInput');\n let nextTag = focusedTag;\n\n if (focusedTag === -1) {\n if (inputValue === '' && direction === 'previous') {\n nextTag = value.length - 1;\n }\n } else {\n nextTag += direction === 'next' ? 1 : -1;\n\n if (nextTag < 0) {\n nextTag = 0;\n }\n\n if (nextTag === value.length) {\n nextTag = -1;\n }\n }\n\n nextTag = validTagIndex(nextTag, direction);\n setFocusedTag(nextTag);\n focusTag(nextTag);\n };\n\n const handleClear = event => {\n ignoreFocus.current = true;\n setInputValueState('');\n\n if (onInputChange) {\n onInputChange(event, '', 'clear');\n }\n\n handleValue(event, multiple ? [] : null, 'clear');\n };\n\n const handleKeyDown = other => event => {\n if (other.onKeyDown) {\n other.onKeyDown(event);\n }\n\n if (event.defaultMuiPrevented) {\n return;\n }\n\n if (focusedTag !== -1 && ['ArrowLeft', 'ArrowRight'].indexOf(event.key) === -1) {\n setFocusedTag(-1);\n focusTag(-1);\n } // Wait until IME is settled.\n\n\n if (event.which !== 229) {\n switch (event.key) {\n case 'Home':\n if (popupOpen && handleHomeEndKeys) {\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: 'start',\n direction: 'next',\n reason: 'keyboard',\n event\n });\n }\n\n break;\n\n case 'End':\n if (popupOpen && handleHomeEndKeys) {\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: 'end',\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n }\n\n break;\n\n case 'PageUp':\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: -pageSize,\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n\n case 'PageDown':\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: pageSize,\n direction: 'next',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n\n case 'ArrowDown':\n // Prevent cursor move\n event.preventDefault();\n changeHighlightedIndex({\n diff: 1,\n direction: 'next',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n\n case 'ArrowUp':\n // Prevent cursor move\n event.preventDefault();\n changeHighlightedIndex({\n diff: -1,\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n\n case 'ArrowLeft':\n handleFocusTag(event, 'previous');\n break;\n\n case 'ArrowRight':\n handleFocusTag(event, 'next');\n break;\n\n case 'Enter':\n if (highlightedIndexRef.current !== -1 && popupOpen) {\n const option = filteredOptions[highlightedIndexRef.current];\n const disabled = getOptionDisabled ? getOptionDisabled(option) : false; // Avoid early form validation, let the end-users continue filling the form.\n\n event.preventDefault();\n\n if (disabled) {\n return;\n }\n\n selectNewValue(event, option, 'selectOption'); // Move the selection to the end.\n\n if (autoComplete) {\n inputRef.current.setSelectionRange(inputRef.current.value.length, inputRef.current.value.length);\n }\n } else if (freeSolo && inputValue !== '' && inputValueIsSelectedValue === false) {\n if (multiple) {\n // Allow people to add new values before they submit the form.\n event.preventDefault();\n }\n\n selectNewValue(event, inputValue, 'createOption', 'freeSolo');\n }\n\n break;\n\n case 'Escape':\n if (popupOpen) {\n // Avoid Opera to exit fullscreen mode.\n event.preventDefault(); // Avoid the Modal to handle the event.\n\n event.stopPropagation();\n handleClose(event, 'escape');\n } else if (clearOnEscape && (inputValue !== '' || multiple && value.length > 0)) {\n // Avoid Opera to exit fullscreen mode.\n event.preventDefault(); // Avoid the Modal to handle the event.\n\n event.stopPropagation();\n handleClear(event);\n }\n\n break;\n\n case 'Backspace':\n if (multiple && inputValue === '' && value.length > 0) {\n const index = focusedTag === -1 ? value.length - 1 : focusedTag;\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n }\n\n break;\n\n default:\n }\n }\n };\n\n const handleFocus = event => {\n setFocused(true);\n\n if (openOnFocus && !ignoreFocus.current) {\n handleOpen(event);\n }\n };\n\n const handleBlur = event => {\n // Ignore the event when using the scrollbar with IE11\n if (listboxRef.current !== null && listboxRef.current.parentElement.contains(document.activeElement)) {\n inputRef.current.focus();\n return;\n }\n\n setFocused(false);\n firstFocus.current = true;\n ignoreFocus.current = false;\n\n if (autoSelect && highlightedIndexRef.current !== -1 && popupOpen) {\n selectNewValue(event, filteredOptions[highlightedIndexRef.current], 'blur');\n } else if (autoSelect && freeSolo && inputValue !== '') {\n selectNewValue(event, inputValue, 'blur', 'freeSolo');\n } else if (clearOnBlur) {\n resetInputValue(event, value);\n }\n\n handleClose(event, 'blur');\n };\n\n const handleInputChange = event => {\n const newValue = event.target.value;\n\n if (inputValue !== newValue) {\n setInputValueState(newValue);\n setInputPristine(false);\n\n if (onInputChange) {\n onInputChange(event, newValue, 'input');\n }\n }\n\n if (newValue === '') {\n if (!disableClearable && !multiple) {\n handleValue(event, null, 'clear');\n }\n } else {\n handleOpen(event);\n }\n };\n\n const handleOptionMouseOver = event => {\n setHighlightedIndex({\n event,\n index: Number(event.currentTarget.getAttribute('data-option-index')),\n reason: 'mouse'\n });\n };\n\n const handleOptionTouchStart = () => {\n isTouch.current = true;\n };\n\n const handleOptionClick = event => {\n const index = Number(event.currentTarget.getAttribute('data-option-index'));\n selectNewValue(event, filteredOptions[index], 'selectOption');\n isTouch.current = false;\n };\n\n const handleTagDelete = index => event => {\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n };\n\n const handlePopupIndicator = event => {\n if (open) {\n handleClose(event, 'toggleInput');\n } else {\n handleOpen(event);\n }\n }; // Prevent input blur when interacting with the combobox\n\n\n const handleMouseDown = event => {\n if (event.target.getAttribute('id') !== id) {\n event.preventDefault();\n }\n }; // Focus the input when interacting with the combobox\n\n\n const handleClick = () => {\n inputRef.current.focus();\n\n if (selectOnFocus && firstFocus.current && inputRef.current.selectionEnd - inputRef.current.selectionStart === 0) {\n inputRef.current.select();\n }\n\n firstFocus.current = false;\n };\n\n const handleInputMouseDown = event => {\n if (inputValue === '' || !open) {\n handlePopupIndicator(event);\n }\n };\n\n let dirty = freeSolo && inputValue.length > 0;\n dirty = dirty || (multiple ? value.length > 0 : value !== null);\n let groupedOptions = filteredOptions;\n\n if (groupBy) {\n // used to keep track of key and indexes in the result array\n const indexBy = new Map();\n let warn = false;\n groupedOptions = filteredOptions.reduce((acc, option, index) => {\n const group = groupBy(option);\n\n if (acc.length > 0 && acc[acc.length - 1].group === group) {\n acc[acc.length - 1].options.push(option);\n } else {\n if (false) {}\n\n acc.push({\n key: index,\n index,\n group,\n options: [option]\n });\n }\n\n return acc;\n }, []);\n }\n\n if (disabledProp && focused) {\n handleBlur();\n }\n\n return {\n getRootProps: (other = {}) => (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n 'aria-owns': listboxAvailable ? `${id}-listbox` : null,\n role: 'combobox',\n 'aria-expanded': listboxAvailable\n }, other, {\n onKeyDown: handleKeyDown(other),\n onMouseDown: handleMouseDown,\n onClick: handleClick\n }),\n getInputLabelProps: () => ({\n id: `${id}-label`,\n htmlFor: id\n }),\n getInputProps: () => ({\n id,\n value: inputValue,\n onBlur: handleBlur,\n onFocus: handleFocus,\n onChange: handleInputChange,\n onMouseDown: handleInputMouseDown,\n // if open then this is handled imperativeley so don't let react override\n // only have an opinion about this when closed\n 'aria-activedescendant': popupOpen ? '' : null,\n 'aria-autocomplete': autoComplete ? 'both' : 'list',\n 'aria-controls': listboxAvailable ? `${id}-listbox` : undefined,\n // Disable browser's suggestion that might overlap with the popup.\n // Handle autocomplete but not autofill.\n autoComplete: 'off',\n ref: inputRef,\n autoCapitalize: 'none',\n spellCheck: 'false'\n }),\n getClearProps: () => ({\n tabIndex: -1,\n onClick: handleClear\n }),\n getPopupIndicatorProps: () => ({\n tabIndex: -1,\n onClick: handlePopupIndicator\n }),\n getTagProps: ({\n index\n }) => ({\n key: index,\n 'data-tag-index': index,\n tabIndex: -1,\n onDelete: handleTagDelete(index)\n }),\n getListboxProps: () => ({\n role: 'listbox',\n id: `${id}-listbox`,\n 'aria-labelledby': `${id}-label`,\n ref: handleListboxRef,\n onMouseDown: event => {\n // Prevent blur\n event.preventDefault();\n }\n }),\n getOptionProps: ({\n index,\n option\n }) => {\n const selected = (multiple ? value : [value]).some(value2 => value2 != null && isOptionEqualToValue(option, value2));\n const disabled = getOptionDisabled ? getOptionDisabled(option) : false;\n return {\n key: getOptionLabel(option),\n tabIndex: -1,\n role: 'option',\n id: `${id}-option-${index}`,\n onMouseOver: handleOptionMouseOver,\n onClick: handleOptionClick,\n onTouchStart: handleOptionTouchStart,\n 'data-option-index': index,\n 'aria-disabled': disabled,\n 'aria-selected': selected\n };\n },\n id,\n inputValue,\n value,\n dirty,\n popupOpen,\n focused: focused || focusedTag !== -1,\n anchorEl,\n setAnchorEl,\n focusedTag,\n groupedOptions\n };\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@mui/base/AutocompleteUnstyled/useAutocomplete.js?")},"./node_modules/@mui/base/BackdropUnstyled/BackdropUnstyled.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! clsx */ "./node_modules/clsx/dist/clsx.m.js");\n/* harmony import */ var _composeClasses__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../composeClasses */ "./node_modules/@mui/base/composeClasses/composeClasses.js");\n/* harmony import */ var _utils_isHostComponent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/isHostComponent */ "./node_modules/@mui/base/utils/isHostComponent.js");\n/* harmony import */ var _backdropUnstyledClasses__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./backdropUnstyledClasses */ "./node_modules/@mui/base/BackdropUnstyled/backdropUnstyledClasses.js");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");\n\n\nconst _excluded = ["classes", "className", "invisible", "component", "components", "componentsProps", "theme"];\n\n\n\n\n\n\n\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n invisible\n } = ownerState;\n const slots = {\n root: [\'root\', invisible && \'invisible\']\n };\n return (0,_composeClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(slots, _backdropUnstyledClasses__WEBPACK_IMPORTED_MODULE_6__.getBackdropUtilityClass, classes);\n};\n\nconst BackdropUnstyled = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.forwardRef(function BackdropUnstyled(props, ref) {\n const {\n classes: classesProp,\n className,\n invisible = false,\n component = \'div\',\n components = {},\n componentsProps = {},\n\n /* eslint-disable react/prop-types */\n theme\n } = props,\n other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__["default"])(props, _excluded);\n\n const ownerState = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, props, {\n classes: classesProp,\n invisible\n });\n\n const classes = useUtilityClasses(ownerState);\n const Root = components.Root || component;\n const rootProps = componentsProps.root || {};\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(Root, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n "aria-hidden": true\n }, rootProps, !(0,_utils_isHostComponent__WEBPACK_IMPORTED_MODULE_7__["default"])(Root) && {\n as: component,\n ownerState: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, ownerState, rootProps.ownerState),\n theme\n }, {\n ref: ref\n }, other, {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_3__["default"])(classes.root, rootProps.className, className)\n }));\n});\n false ? 0 : void 0;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (BackdropUnstyled);\n\n//# sourceURL=webpack://frontend/./node_modules/@mui/base/BackdropUnstyled/BackdropUnstyled.js?')},"./node_modules/@mui/base/BackdropUnstyled/backdropUnstyledClasses.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "getBackdropUtilityClass": () => (/* binding */ getBackdropUtilityClass),\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _generateUtilityClasses__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../generateUtilityClasses */ "./node_modules/@mui/base/generateUtilityClasses/generateUtilityClasses.js");\n/* harmony import */ var _generateUtilityClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../generateUtilityClass */ "./node_modules/@mui/base/generateUtilityClass/generateUtilityClass.js");\n\n\nfunction getBackdropUtilityClass(slot) {\n return (0,_generateUtilityClass__WEBPACK_IMPORTED_MODULE_0__["default"])(\'MuiBackdrop\', slot);\n}\nconst backdropUnstyledClasses = (0,_generateUtilityClasses__WEBPACK_IMPORTED_MODULE_1__["default"])(\'MuiBackdrop\', [\'root\', \'invisible\']);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (backdropUnstyledClasses);\n\n//# sourceURL=webpack://frontend/./node_modules/@mui/base/BackdropUnstyled/backdropUnstyledClasses.js?')},"./node_modules/@mui/base/BadgeUnstyled/BadgeUnstyled.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! clsx */ "./node_modules/clsx/dist/clsx.m.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/capitalize.js");\n/* harmony import */ var _composeClasses__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../composeClasses */ "./node_modules/@mui/base/composeClasses/composeClasses.js");\n/* harmony import */ var _utils_appendOwnerState__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../utils/appendOwnerState */ "./node_modules/@mui/base/utils/appendOwnerState.js");\n/* harmony import */ var _useBadge__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./useBadge */ "./node_modules/@mui/base/BadgeUnstyled/useBadge.js");\n/* harmony import */ var _badgeUnstyledClasses__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./badgeUnstyledClasses */ "./node_modules/@mui/base/BadgeUnstyled/badgeUnstyledClasses.js");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");\n\n\nconst _excluded = ["anchorOrigin", "classes", "badgeContent", "component", "children", "className", "components", "componentsProps", "invisible", "max", "showZero", "variant"];\n\n\n\n\n\n\n\n\n\n\n\nconst useUtilityClasses = ownerState => {\n const {\n variant,\n anchorOrigin,\n invisible,\n classes\n } = ownerState;\n const slots = {\n root: [\'root\'],\n badge: [\'badge\', variant, `anchorOrigin${(0,_mui_utils__WEBPACK_IMPORTED_MODULE_5__["default"])(anchorOrigin.vertical)}${(0,_mui_utils__WEBPACK_IMPORTED_MODULE_5__["default"])(anchorOrigin.horizontal)}`, invisible && \'invisible\']\n };\n return (0,_composeClasses__WEBPACK_IMPORTED_MODULE_6__["default"])(slots, _badgeUnstyledClasses__WEBPACK_IMPORTED_MODULE_7__.getBadgeUtilityClass, classes);\n};\n\nconst BadgeUnstyled = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.forwardRef(function BadgeUnstyled(props, ref) {\n const {\n anchorOrigin: anchorOriginProp = {\n vertical: \'top\',\n horizontal: \'right\'\n },\n classes: classesProp,\n component,\n children,\n className,\n components = {},\n componentsProps = {},\n max: maxProp = 99,\n showZero = false,\n variant: variantProp = \'standard\'\n } = props,\n other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__["default"])(props, _excluded);\n\n const {\n anchorOrigin,\n badgeContent,\n max,\n variant,\n displayValue,\n invisible\n } = (0,_useBadge__WEBPACK_IMPORTED_MODULE_8__["default"])((0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, props, {\n anchorOrigin: anchorOriginProp,\n max: maxProp,\n variant: variantProp\n }));\n\n const ownerState = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, props, {\n anchorOrigin,\n badgeContent,\n classes: classesProp,\n invisible,\n max,\n variant,\n showZero\n });\n\n const classes = useUtilityClasses(ownerState);\n const Root = component || components.Root || \'span\';\n const rootProps = (0,_utils_appendOwnerState__WEBPACK_IMPORTED_MODULE_9__["default"])(Root, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, other, componentsProps.root), ownerState);\n const Badge = components.Badge || \'span\';\n const badgeProps = (0,_utils_appendOwnerState__WEBPACK_IMPORTED_MODULE_9__["default"])(Badge, componentsProps.badge, ownerState);\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(Root, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, rootProps, {\n ref: ref\n }, other, {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_3__["default"])(classes.root, rootProps.className, className),\n children: [children, /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(Badge, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, badgeProps, {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_3__["default"])(classes.badge, badgeProps.className),\n children: displayValue\n }))]\n }));\n});\n false ? 0 : void 0;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (BadgeUnstyled);\n\n//# sourceURL=webpack://frontend/./node_modules/@mui/base/BadgeUnstyled/BadgeUnstyled.js?')},"./node_modules/@mui/base/BadgeUnstyled/badgeUnstyledClasses.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getBadgeUtilityClass\": () => (/* binding */ getBadgeUtilityClass),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _generateUtilityClasses__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../generateUtilityClasses */ \"./node_modules/@mui/base/generateUtilityClasses/generateUtilityClasses.js\");\n/* harmony import */ var _generateUtilityClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../generateUtilityClass */ \"./node_modules/@mui/base/generateUtilityClass/generateUtilityClass.js\");\n\n\nfunction getBadgeUtilityClass(slot) {\n return (0,_generateUtilityClass__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('MuiBadge', slot);\n}\nconst badgeUnstyledClasses = (0,_generateUtilityClasses__WEBPACK_IMPORTED_MODULE_1__[\"default\"])('MuiBadge', ['root', 'badge', 'dot', 'standard', 'anchorOriginTopLeft', 'anchorOriginTopRight', 'anchorOriginBottomLeft', 'anchorOriginBottomRight', 'invisible']);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (badgeUnstyledClasses);\n\n//# sourceURL=webpack://frontend/./node_modules/@mui/base/BadgeUnstyled/badgeUnstyledClasses.js?")},"./node_modules/@mui/base/BadgeUnstyled/useBadge.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ useBadge)\n/* harmony export */ });\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @mui/utils */ \"./node_modules/@mui/utils/esm/usePreviousProps.js\");\n\nfunction useBadge(props) {\n const {\n anchorOrigin: anchorOriginProp = {\n vertical: 'top',\n horizontal: 'right'\n },\n badgeContent: badgeContentProp,\n invisible: invisibleProp,\n max: maxProp = 99,\n showZero = false,\n variant: variantProp = 'standard'\n } = props;\n const prevProps = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n anchorOrigin: anchorOriginProp,\n badgeContent: badgeContentProp,\n max: maxProp,\n variant: variantProp\n });\n let invisible = invisibleProp;\n\n if (invisibleProp == null && (badgeContentProp === 0 && !showZero || badgeContentProp == null && variantProp !== 'dot')) {\n invisible = true;\n }\n\n const {\n anchorOrigin = anchorOriginProp,\n badgeContent,\n max = maxProp,\n variant = variantProp\n } = invisible ? prevProps : props;\n let displayValue = '';\n\n if (variant !== 'dot') {\n displayValue = badgeContent && Number(badgeContent) > max ? `${max}+` : badgeContent;\n }\n\n return {\n anchorOrigin,\n badgeContent,\n invisible,\n max,\n variant,\n displayValue\n };\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@mui/base/BadgeUnstyled/useBadge.js?")},"./node_modules/@mui/base/ClickAwayListener/ClickAwayListener.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/useForkRef.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/useEventCallback.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/ownerDocument.js");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");\n\n\n // TODO: return `EventHandlerName extends `on${infer EventName}` ? Lowercase : never` once generatePropTypes runs with TS 4.1\n\n\n\nfunction mapEventPropToEvent(eventProp) {\n return eventProp.substring(2).toLowerCase();\n}\n\nfunction clickedRootScrollbar(event, doc) {\n return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n\n/**\n * Listen for click events that occur somewhere in the document, outside of the element itself.\n * For instance, if you need to hide a menu when people click anywhere else on your page.\n *\n * Demos:\n *\n * - [Click Away Listener](https://mui.com/components/click-away-listener/)\n * - [Menus](https://mui.com/components/menus/)\n *\n * API:\n *\n * - [ClickAwayListener API](https://mui.com/api/click-away-listener/)\n */\nfunction ClickAwayListener(props) {\n const {\n children,\n disableReactTree = false,\n mouseEvent = \'onClick\',\n onClickAway,\n touchEvent = \'onTouchEnd\'\n } = props;\n const movedRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const nodeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n const activatedRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n const syntheticEventRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n // Ensure that this component is not "activated" synchronously.\n // https://github.com/facebook/react/issues/20074\n setTimeout(() => {\n activatedRef.current = true;\n }, 0);\n return () => {\n activatedRef.current = false;\n };\n }, []);\n const handleRef = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_2__["default"])( // @ts-expect-error TODO upstream fix\n children.ref, nodeRef); // The handler doesn\'t take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n\n const handleClickAway = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_3__["default"])(event => {\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = syntheticEventRef.current;\n syntheticEventRef.current = false;\n const doc = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_4__["default"])(nodeRef.current); // 1. IE11 support, which trigger the handleClickAway even after the unbind\n // 2. The child might render null.\n // 3. Behave like a blur listener.\n\n if (!activatedRef.current || !nodeRef.current || \'clientX\' in event && clickedRootScrollbar(event, doc)) {\n return;\n } // Do not act if user performed touchmove\n\n\n if (movedRef.current) {\n movedRef.current = false;\n return;\n }\n\n let insideDOM; // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n\n if (event.composedPath) {\n insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;\n } else {\n insideDOM = !doc.documentElement.contains( // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target) || nodeRef.current.contains( // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target);\n }\n\n if (!insideDOM && (disableReactTree || !insideReactTree)) {\n onClickAway(event);\n }\n }); // Keep track of mouse/touch events that bubbled up through the portal.\n\n const createHandleSynthetic = handlerName => event => {\n syntheticEventRef.current = true;\n const childrenPropsHandler = children.props[handlerName];\n\n if (childrenPropsHandler) {\n childrenPropsHandler(event);\n }\n };\n\n const childrenProps = {\n ref: handleRef\n };\n\n if (touchEvent !== false) {\n childrenProps[touchEvent] = createHandleSynthetic(touchEvent);\n }\n\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n if (touchEvent !== false) {\n const mappedTouchEvent = mapEventPropToEvent(touchEvent);\n const doc = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_4__["default"])(nodeRef.current);\n\n const handleTouchMove = () => {\n movedRef.current = true;\n };\n\n doc.addEventListener(mappedTouchEvent, handleClickAway);\n doc.addEventListener(\'touchmove\', handleTouchMove);\n return () => {\n doc.removeEventListener(mappedTouchEvent, handleClickAway);\n doc.removeEventListener(\'touchmove\', handleTouchMove);\n };\n }\n\n return undefined;\n }, [handleClickAway, touchEvent]);\n\n if (mouseEvent !== false) {\n childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);\n }\n\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n if (mouseEvent !== false) {\n const mappedMouseEvent = mapEventPropToEvent(mouseEvent);\n const doc = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_4__["default"])(nodeRef.current);\n doc.addEventListener(mappedMouseEvent, handleClickAway);\n return () => {\n doc.removeEventListener(mappedMouseEvent, handleClickAway);\n };\n }\n\n return undefined;\n }, [handleClickAway, mouseEvent]);\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(children, childrenProps)\n });\n}\n\n false ? 0 : void 0;\n\nif (false) {}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ClickAwayListener);\n\n//# sourceURL=webpack://frontend/./node_modules/@mui/base/ClickAwayListener/ClickAwayListener.js?')},"./node_modules/@mui/base/ModalUnstyled/ModalManager.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ariaHidden\": () => (/* binding */ ariaHidden),\n/* harmony export */ \"default\": () => (/* binding */ ModalManager)\n/* harmony export */ });\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @mui/utils */ \"./node_modules/@mui/utils/esm/ownerDocument.js\");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @mui/utils */ \"./node_modules/@mui/utils/esm/ownerWindow.js\");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/utils */ \"./node_modules/@mui/utils/esm/getScrollbarSize.js\");\n\n\n// Is a vertical scrollbar displayed?\nfunction isOverflowing(container) {\n const doc = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(container);\n\n if (doc.body === container) {\n return (0,_mui_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(container).innerWidth > doc.documentElement.clientWidth;\n }\n\n return container.scrollHeight > container.clientHeight;\n}\n\nfunction ariaHidden(element, show) {\n if (show) {\n element.setAttribute('aria-hidden', 'true');\n } else {\n element.removeAttribute('aria-hidden');\n }\n}\n\nfunction getPaddingRight(element) {\n return parseInt((0,_mui_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(element).getComputedStyle(element).paddingRight, 10) || 0;\n}\n\nfunction ariaHiddenSiblings(container, mountElement, currentElement, elementsToExclude = [], show) {\n const blacklist = [mountElement, currentElement, ...elementsToExclude];\n const blacklistTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE'];\n [].forEach.call(container.children, element => {\n if (blacklist.indexOf(element) === -1 && blacklistTagNames.indexOf(element.tagName) === -1) {\n ariaHidden(element, show);\n }\n });\n}\n\nfunction findIndexOf(items, callback) {\n let idx = -1;\n items.some((item, index) => {\n if (callback(item)) {\n idx = index;\n return true;\n }\n\n return false;\n });\n return idx;\n}\n\nfunction handleContainer(containerInfo, props) {\n const restoreStyle = [];\n const container = containerInfo.container;\n\n if (!props.disableScrollLock) {\n if (isOverflowing(container)) {\n // Compute the size before applying overflow hidden to avoid any scroll jumps.\n const scrollbarSize = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_2__[\"default\"])((0,_mui_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(container));\n restoreStyle.push({\n value: container.style.paddingRight,\n property: 'padding-right',\n el: container\n }); // Use computed style, here to get the real padding to add our scrollbar width.\n\n container.style.paddingRight = `${getPaddingRight(container) + scrollbarSize}px`; // .mui-fixed is a global helper.\n\n const fixedElements = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(container).querySelectorAll('.mui-fixed');\n [].forEach.call(fixedElements, element => {\n restoreStyle.push({\n value: element.style.paddingRight,\n property: 'padding-right',\n el: element\n });\n element.style.paddingRight = `${getPaddingRight(element) + scrollbarSize}px`;\n });\n } // Improve Gatsby support\n // https://css-tricks.com/snippets/css/force-vertical-scrollbar/\n\n\n const parent = container.parentElement;\n const containerWindow = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(container);\n const scrollContainer = (parent == null ? void 0 : parent.nodeName) === 'HTML' && containerWindow.getComputedStyle(parent).overflowY === 'scroll' ? parent : container; // Block the scroll even if no scrollbar is visible to account for mobile keyboard\n // screensize shrink.\n\n restoreStyle.push({\n value: scrollContainer.style.overflow,\n property: 'overflow',\n el: scrollContainer\n }, {\n value: scrollContainer.style.overflowX,\n property: 'overflow-x',\n el: scrollContainer\n }, {\n value: scrollContainer.style.overflowY,\n property: 'overflow-y',\n el: scrollContainer\n });\n scrollContainer.style.overflow = 'hidden';\n }\n\n const restore = () => {\n restoreStyle.forEach(({\n value,\n el,\n property\n }) => {\n if (value) {\n el.style.setProperty(property, value);\n } else {\n el.style.removeProperty(property);\n }\n });\n };\n\n return restore;\n}\n\nfunction getHiddenSiblings(container) {\n const hiddenSiblings = [];\n [].forEach.call(container.children, element => {\n if (element.getAttribute('aria-hidden') === 'true') {\n hiddenSiblings.push(element);\n }\n });\n return hiddenSiblings;\n}\n\n/**\n * @ignore - do not document.\n *\n * Proper state management for containers and the modals in those containers.\n * Simplified, but inspired by react-overlay's ModalManager class.\n * Used by the Modal to ensure proper styling of containers.\n */\nclass ModalManager {\n constructor() {\n this.containers = void 0;\n this.modals = void 0;\n this.modals = [];\n this.containers = [];\n }\n\n add(modal, container) {\n let modalIndex = this.modals.indexOf(modal);\n\n if (modalIndex !== -1) {\n return modalIndex;\n }\n\n modalIndex = this.modals.length;\n this.modals.push(modal); // If the modal we are adding is already in the DOM.\n\n if (modal.modalRef) {\n ariaHidden(modal.modalRef, false);\n }\n\n const hiddenSiblings = getHiddenSiblings(container);\n ariaHiddenSiblings(container, modal.mount, modal.modalRef, hiddenSiblings, true);\n const containerIndex = findIndexOf(this.containers, item => item.container === container);\n\n if (containerIndex !== -1) {\n this.containers[containerIndex].modals.push(modal);\n return modalIndex;\n }\n\n this.containers.push({\n modals: [modal],\n container,\n restore: null,\n hiddenSiblings\n });\n return modalIndex;\n }\n\n mount(modal, props) {\n const containerIndex = findIndexOf(this.containers, item => item.modals.indexOf(modal) !== -1);\n const containerInfo = this.containers[containerIndex];\n\n if (!containerInfo.restore) {\n containerInfo.restore = handleContainer(containerInfo, props);\n }\n }\n\n remove(modal) {\n const modalIndex = this.modals.indexOf(modal);\n\n if (modalIndex === -1) {\n return modalIndex;\n }\n\n const containerIndex = findIndexOf(this.containers, item => item.modals.indexOf(modal) !== -1);\n const containerInfo = this.containers[containerIndex];\n containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);\n this.modals.splice(modalIndex, 1); // If that was the last modal in a container, clean up the container.\n\n if (containerInfo.modals.length === 0) {\n // The modal might be closed before it had the chance to be mounted in the DOM.\n if (containerInfo.restore) {\n containerInfo.restore();\n }\n\n if (modal.modalRef) {\n // In case the modal wasn't in the DOM yet.\n ariaHidden(modal.modalRef, true);\n }\n\n ariaHiddenSiblings(containerInfo.container, modal.mount, modal.modalRef, containerInfo.hiddenSiblings, false);\n this.containers.splice(containerIndex, 1);\n } else {\n // Otherwise make sure the next top modal is visible to a screen reader.\n const nextTop = containerInfo.modals[containerInfo.modals.length - 1]; // as soon as a modal is adding its modalRef is undefined. it can't set\n // aria-hidden because the dom element doesn't exist either\n // when modal was unmounted before modalRef gets null\n\n if (nextTop.modalRef) {\n ariaHidden(nextTop.modalRef, false);\n }\n }\n\n return modalIndex;\n }\n\n isTopModal(modal) {\n return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;\n }\n\n}\n\n//# sourceURL=webpack://frontend/./node_modules/@mui/base/ModalUnstyled/ModalManager.js?")},"./node_modules/@mui/base/ModalUnstyled/ModalUnstyled.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! clsx */ "./node_modules/clsx/dist/clsx.m.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/useForkRef.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/ownerDocument.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/useEventCallback.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/createChainedFunction.js");\n/* harmony import */ var _composeClasses__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../composeClasses */ "./node_modules/@mui/base/composeClasses/composeClasses.js");\n/* harmony import */ var _utils_isHostComponent__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/isHostComponent */ "./node_modules/@mui/base/utils/isHostComponent.js");\n/* harmony import */ var _Portal__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../Portal */ "./node_modules/@mui/base/Portal/Portal.js");\n/* harmony import */ var _ModalManager__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ModalManager */ "./node_modules/@mui/base/ModalUnstyled/ModalManager.js");\n/* harmony import */ var _Unstable_TrapFocus__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../Unstable_TrapFocus */ "./node_modules/@mui/base/Unstable_TrapFocus/Unstable_TrapFocus.js");\n/* harmony import */ var _modalUnstyledClasses__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modalUnstyledClasses */ "./node_modules/@mui/base/ModalUnstyled/modalUnstyledClasses.js");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");\n\n\nconst _excluded = ["BackdropComponent", "BackdropProps", "children", "classes", "className", "closeAfterTransition", "component", "components", "componentsProps", "container", "disableAutoFocus", "disableEnforceFocus", "disableEscapeKeyDown", "disablePortal", "disableRestoreFocus", "disableScrollLock", "hideBackdrop", "keepMounted", "manager", "onBackdropClick", "onClose", "onKeyDown", "open", "theme", "onTransitionEnter", "onTransitionExited"];\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst useUtilityClasses = ownerState => {\n const {\n open,\n exited,\n classes\n } = ownerState;\n const slots = {\n root: [\'root\', !open && exited && \'hidden\']\n };\n return (0,_composeClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(slots, _modalUnstyledClasses__WEBPACK_IMPORTED_MODULE_6__.getModalUtilityClass, classes);\n};\n\nfunction getContainer(container) {\n return typeof container === \'function\' ? container() : container;\n}\n\nfunction getHasTransition(props) {\n return props.children ? props.children.props.hasOwnProperty(\'in\') : false;\n} // A modal manager used to track and manage the state of open Modals.\n// Modals don\'t open on the server so this won\'t conflict with concurrent requests.\n\n\nconst defaultManager = new _ModalManager__WEBPACK_IMPORTED_MODULE_7__["default"]();\n/**\n * Modal is a lower-level construct that is leveraged by the following components:\n *\n * - [Dialog](/api/dialog/)\n * - [Drawer](/api/drawer/)\n * - [Menu](/api/menu/)\n * - [Popover](/api/popover/)\n *\n * If you are creating a modal dialog, you probably want to use the [Dialog](/api/dialog/) component\n * rather than directly using Modal.\n *\n * This component shares many concepts with [react-overlays](https://react-bootstrap.github.io/react-overlays/#modals).\n */\n\nconst ModalUnstyled = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.forwardRef(function ModalUnstyled(props, ref) {\n const {\n BackdropComponent,\n BackdropProps,\n children,\n classes: classesProp,\n className,\n closeAfterTransition = false,\n component = \'div\',\n components = {},\n componentsProps = {},\n container,\n disableAutoFocus = false,\n disableEnforceFocus = false,\n disableEscapeKeyDown = false,\n disablePortal = false,\n disableRestoreFocus = false,\n disableScrollLock = false,\n hideBackdrop = false,\n keepMounted = false,\n // private\n // eslint-disable-next-line react/prop-types\n manager = defaultManager,\n onBackdropClick,\n onClose,\n onKeyDown,\n open,\n\n /* eslint-disable react/prop-types */\n theme,\n onTransitionEnter,\n onTransitionExited\n } = props,\n other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__["default"])(props, _excluded);\n\n const [exited, setExited] = react__WEBPACK_IMPORTED_MODULE_2__.useState(true);\n const modal = react__WEBPACK_IMPORTED_MODULE_2__.useRef({});\n const mountNodeRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(null);\n const modalRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(null);\n const handleRef = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_8__["default"])(modalRef, ref);\n const hasTransition = getHasTransition(props);\n\n const getDoc = () => (0,_mui_utils__WEBPACK_IMPORTED_MODULE_9__["default"])(mountNodeRef.current);\n\n const getModal = () => {\n modal.current.modalRef = modalRef.current;\n modal.current.mountNode = mountNodeRef.current;\n return modal.current;\n };\n\n const handleMounted = () => {\n manager.mount(getModal(), {\n disableScrollLock\n }); // Fix a bug on Chrome where the scroll isn\'t initially 0.\n\n modalRef.current.scrollTop = 0;\n };\n\n const handleOpen = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_10__["default"])(() => {\n const resolvedContainer = getContainer(container) || getDoc().body;\n manager.add(getModal(), resolvedContainer); // The element was already mounted.\n\n if (modalRef.current) {\n handleMounted();\n }\n });\n const isTopModal = react__WEBPACK_IMPORTED_MODULE_2__.useCallback(() => manager.isTopModal(getModal()), [manager]);\n const handlePortalRef = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_10__["default"])(node => {\n mountNodeRef.current = node;\n\n if (!node) {\n return;\n }\n\n if (open && isTopModal()) {\n handleMounted();\n } else {\n (0,_ModalManager__WEBPACK_IMPORTED_MODULE_7__.ariaHidden)(modalRef.current, true);\n }\n });\n const handleClose = react__WEBPACK_IMPORTED_MODULE_2__.useCallback(() => {\n manager.remove(getModal());\n }, [manager]);\n react__WEBPACK_IMPORTED_MODULE_2__.useEffect(() => {\n return () => {\n handleClose();\n };\n }, [handleClose]);\n react__WEBPACK_IMPORTED_MODULE_2__.useEffect(() => {\n if (open) {\n handleOpen();\n } else if (!hasTransition || !closeAfterTransition) {\n handleClose();\n }\n }, [open, handleClose, hasTransition, closeAfterTransition, handleOpen]);\n\n const ownerState = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, props, {\n classes: classesProp,\n closeAfterTransition,\n disableAutoFocus,\n disableEnforceFocus,\n disableEscapeKeyDown,\n disablePortal,\n disableRestoreFocus,\n disableScrollLock,\n exited,\n hideBackdrop,\n keepMounted\n });\n\n const classes = useUtilityClasses(ownerState);\n\n if (!keepMounted && !open && (!hasTransition || exited)) {\n return null;\n }\n\n const handleEnter = () => {\n setExited(false);\n\n if (onTransitionEnter) {\n onTransitionEnter();\n }\n };\n\n const handleExited = () => {\n setExited(true);\n\n if (onTransitionExited) {\n onTransitionExited();\n }\n\n if (closeAfterTransition) {\n handleClose();\n }\n };\n\n const handleBackdropClick = event => {\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (onBackdropClick) {\n onBackdropClick(event);\n }\n\n if (onClose) {\n onClose(event, \'backdropClick\');\n }\n };\n\n const handleKeyDown = event => {\n if (onKeyDown) {\n onKeyDown(event);\n } // The handler doesn\'t take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n\n\n if (event.key !== \'Escape\' || !isTopModal()) {\n return;\n }\n\n if (!disableEscapeKeyDown) {\n // Swallow the event, in case someone is listening for the escape key on the body.\n event.stopPropagation();\n\n if (onClose) {\n onClose(event, \'escapeKeyDown\');\n }\n }\n };\n\n const childProps = {};\n\n if (children.props.tabIndex === undefined) {\n childProps.tabIndex = \'-1\';\n } // It\'s a Transition like component\n\n\n if (hasTransition) {\n childProps.onEnter = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_11__["default"])(handleEnter, children.props.onEnter);\n childProps.onExited = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_11__["default"])(handleExited, children.props.onExited);\n }\n\n const Root = components.Root || component;\n const rootProps = componentsProps.root || {};\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_Portal__WEBPACK_IMPORTED_MODULE_12__["default"], {\n ref: handlePortalRef,\n container: container,\n disablePortal: disablePortal,\n children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(Root, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n role: "presentation"\n }, rootProps, !(0,_utils_isHostComponent__WEBPACK_IMPORTED_MODULE_13__["default"])(Root) && {\n as: component,\n ownerState: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, ownerState, rootProps.ownerState),\n theme\n }, other, {\n ref: handleRef,\n onKeyDown: handleKeyDown,\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_3__["default"])(classes.root, rootProps.className, className),\n children: [!hideBackdrop && BackdropComponent ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(BackdropComponent, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n open: open,\n onClick: handleBackdropClick\n }, BackdropProps)) : null, /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_Unstable_TrapFocus__WEBPACK_IMPORTED_MODULE_14__["default"], {\n disableEnforceFocus: disableEnforceFocus,\n disableAutoFocus: disableAutoFocus,\n disableRestoreFocus: disableRestoreFocus,\n isEnabled: isTopModal,\n open: open,\n children: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.cloneElement(children, childProps)\n })]\n }))\n });\n});\n false ? 0 : void 0;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ModalUnstyled);\n\n//# sourceURL=webpack://frontend/./node_modules/@mui/base/ModalUnstyled/ModalUnstyled.js?')},"./node_modules/@mui/base/ModalUnstyled/modalUnstyledClasses.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "getModalUtilityClass": () => (/* binding */ getModalUtilityClass),\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _generateUtilityClasses__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../generateUtilityClasses */ "./node_modules/@mui/base/generateUtilityClasses/generateUtilityClasses.js");\n/* harmony import */ var _generateUtilityClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../generateUtilityClass */ "./node_modules/@mui/base/generateUtilityClass/generateUtilityClass.js");\n\n\nfunction getModalUtilityClass(slot) {\n return (0,_generateUtilityClass__WEBPACK_IMPORTED_MODULE_0__["default"])(\'MuiModal\', slot);\n}\nconst modalUnstyledClasses = (0,_generateUtilityClasses__WEBPACK_IMPORTED_MODULE_1__["default"])(\'MuiModal\', [\'root\', \'hidden\']);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (modalUnstyledClasses);\n\n//# sourceURL=webpack://frontend/./node_modules/@mui/base/ModalUnstyled/modalUnstyledClasses.js?')},"./node_modules/@mui/base/NoSsr/NoSsr.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/useEnhancedEffect.js");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");\n\n\n\n/**\n * NoSsr purposely removes components from the subject of Server Side Rendering (SSR).\n *\n * This component can be useful in a variety of situations:\n * - Escape hatch for broken dependencies not supporting SSR.\n * - Improve the time-to-first paint on the client by only rendering above the fold.\n * - Reduce the rendering time on the server.\n * - Under too heavy server load, you can turn on service degradation.\n */\n\n\n\nfunction NoSsr(props) {\n const {\n children,\n defer = false,\n fallback = null\n } = props;\n const [mountedState, setMountedState] = react__WEBPACK_IMPORTED_MODULE_0__.useState(false);\n (0,_mui_utils__WEBPACK_IMPORTED_MODULE_2__["default"])(() => {\n if (!defer) {\n setMountedState(true);\n }\n }, [defer]);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => {\n if (defer) {\n setMountedState(true);\n }\n }, [defer]); // We need the Fragment here to force react-docgen to recognise NoSsr as a component.\n\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: mountedState ? children : fallback\n });\n}\n\n false ? 0 : void 0;\n\nif (false) {}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NoSsr);\n\n//# sourceURL=webpack://frontend/./node_modules/@mui/base/NoSsr/NoSsr.js?')},"./node_modules/@mui/base/PopperUnstyled/PopperUnstyled.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/useForkRef.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/useEnhancedEffect.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/ownerDocument.js");\n/* harmony import */ var _popperjs_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @popperjs/core */ "./node_modules/@popperjs/core/lib/popper.js");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var _Portal__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Portal */ "./node_modules/@mui/base/Portal/Portal.js");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");\n\n\nconst _excluded = ["anchorEl", "children", "direction", "disablePortal", "modifiers", "open", "placement", "popperOptions", "popperRef", "TransitionProps"],\n _excluded2 = ["anchorEl", "children", "container", "direction", "disablePortal", "keepMounted", "modifiers", "open", "placement", "popperOptions", "popperRef", "style", "transition"];\n\n\n\n\n\n\n\nfunction flipPlacement(placement, direction) {\n if (direction === \'ltr\') {\n return placement;\n }\n\n switch (placement) {\n case \'bottom-end\':\n return \'bottom-start\';\n\n case \'bottom-start\':\n return \'bottom-end\';\n\n case \'top-end\':\n return \'top-start\';\n\n case \'top-start\':\n return \'top-end\';\n\n default:\n return placement;\n }\n}\n\nfunction resolveAnchorEl(anchorEl) {\n return typeof anchorEl === \'function\' ? anchorEl() : anchorEl;\n}\n\nconst defaultPopperOptions = {};\n/* eslint-disable react/prop-types */\n\nconst PopperTooltip = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.forwardRef(function PopperTooltip(props, ref) {\n const {\n anchorEl,\n children,\n direction,\n disablePortal,\n modifiers,\n open,\n placement: initialPlacement,\n popperOptions,\n popperRef: popperRefProp,\n TransitionProps\n } = props,\n other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__["default"])(props, _excluded);\n\n const tooltipRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(null);\n const ownRef = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_4__["default"])(tooltipRef, ref);\n const popperRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(null);\n const handlePopperRef = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_4__["default"])(popperRef, popperRefProp);\n const handlePopperRefRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(handlePopperRef);\n (0,_mui_utils__WEBPACK_IMPORTED_MODULE_5__["default"])(() => {\n handlePopperRefRef.current = handlePopperRef;\n }, [handlePopperRef]);\n react__WEBPACK_IMPORTED_MODULE_2__.useImperativeHandle(popperRefProp, () => popperRef.current, []);\n const rtlPlacement = flipPlacement(initialPlacement, direction);\n /**\n * placement initialized from prop but can change during lifetime if modifiers.flip.\n * modifiers.flip is essentially a flip for controlled/uncontrolled behavior\n */\n\n const [placement, setPlacement] = react__WEBPACK_IMPORTED_MODULE_2__.useState(rtlPlacement);\n react__WEBPACK_IMPORTED_MODULE_2__.useEffect(() => {\n if (popperRef.current) {\n popperRef.current.forceUpdate();\n }\n });\n (0,_mui_utils__WEBPACK_IMPORTED_MODULE_5__["default"])(() => {\n if (!anchorEl || !open) {\n return undefined;\n }\n\n const handlePopperUpdate = data => {\n setPlacement(data.placement);\n };\n\n const resolvedAnchorEl = resolveAnchorEl(anchorEl);\n\n if (false) {}\n\n let popperModifiers = [{\n name: \'preventOverflow\',\n options: {\n altBoundary: disablePortal\n }\n }, {\n name: \'flip\',\n options: {\n altBoundary: disablePortal\n }\n }, {\n name: \'onUpdate\',\n enabled: true,\n phase: \'afterWrite\',\n fn: ({\n state\n }) => {\n handlePopperUpdate(state);\n }\n }];\n\n if (modifiers != null) {\n popperModifiers = popperModifiers.concat(modifiers);\n }\n\n if (popperOptions && popperOptions.modifiers != null) {\n popperModifiers = popperModifiers.concat(popperOptions.modifiers);\n }\n\n const popper = (0,_popperjs_core__WEBPACK_IMPORTED_MODULE_6__.createPopper)(resolveAnchorEl(anchorEl), tooltipRef.current, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n placement: rtlPlacement\n }, popperOptions, {\n modifiers: popperModifiers\n }));\n handlePopperRefRef.current(popper);\n return () => {\n popper.destroy();\n handlePopperRefRef.current(null);\n };\n }, [anchorEl, disablePortal, modifiers, open, popperOptions, rtlPlacement]);\n const childProps = {\n placement\n };\n\n if (TransitionProps !== null) {\n childProps.TransitionProps = TransitionProps;\n }\n\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n ref: ownRef,\n role: "tooltip"\n }, other, {\n children: typeof children === \'function\' ? children(childProps) : children\n }));\n});\n/* eslint-enable react/prop-types */\n\n/**\n * Poppers rely on the 3rd party library [Popper.js](https://popper.js.org/docs/v2/) for positioning.\n */\n\nconst PopperUnstyled = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.forwardRef(function PopperUnstyled(props, ref) {\n const {\n anchorEl,\n children,\n container: containerProp,\n direction = \'ltr\',\n disablePortal = false,\n keepMounted = false,\n modifiers,\n open,\n placement = \'bottom\',\n popperOptions = defaultPopperOptions,\n popperRef,\n style,\n transition = false\n } = props,\n other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__["default"])(props, _excluded2);\n\n const [exited, setExited] = react__WEBPACK_IMPORTED_MODULE_2__.useState(true);\n\n const handleEnter = () => {\n setExited(false);\n };\n\n const handleExited = () => {\n setExited(true);\n };\n\n if (!keepMounted && !open && (!transition || exited)) {\n return null;\n } // If the container prop is provided, use that\n // If the anchorEl prop is provided, use its parent body element as the container\n // If neither are provided let the Modal take care of choosing the container\n\n\n const container = containerProp || (anchorEl ? (0,_mui_utils__WEBPACK_IMPORTED_MODULE_7__["default"])(resolveAnchorEl(anchorEl)).body : undefined);\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_Portal__WEBPACK_IMPORTED_MODULE_8__["default"], {\n disablePortal: disablePortal,\n container: container,\n children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(PopperTooltip, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n anchorEl: anchorEl,\n direction: direction,\n disablePortal: disablePortal,\n modifiers: modifiers,\n ref: ref,\n open: transition ? !exited : open,\n placement: placement,\n popperOptions: popperOptions,\n popperRef: popperRef\n }, other, {\n style: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n // Prevents scroll issue, waiting for Popper.js to add this style once initiated.\n position: \'fixed\',\n // Fix Popper.js display issue\n top: 0,\n left: 0,\n display: !open && keepMounted && (!transition || exited) ? \'none\' : null\n }, style),\n TransitionProps: transition ? {\n in: open,\n onEnter: handleEnter,\n onExited: handleExited\n } : null,\n children: children\n }))\n });\n});\n false ? 0 : void 0;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PopperUnstyled);\n\n//# sourceURL=webpack://frontend/./node_modules/@mui/base/PopperUnstyled/PopperUnstyled.js?')},"./node_modules/@mui/base/Portal/Portal.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ "./node_modules/react-dom/index.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/useForkRef.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/useEnhancedEffect.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/setRef.js");\n\n\n\n\n\nfunction getContainer(container) {\n return typeof container === \'function\' ? container() : container;\n}\n/**\n * Portals provide a first-class way to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n */\n\n\nconst Portal = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function Portal(props, ref) {\n const {\n children,\n container,\n disablePortal = false\n } = props;\n const [mountNode, setMountNode] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\n const handleRef = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_2__["default"])( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(children) ? children.ref : null, ref);\n (0,_mui_utils__WEBPACK_IMPORTED_MODULE_3__["default"])(() => {\n if (!disablePortal) {\n setMountNode(getContainer(container) || document.body);\n }\n }, [container, disablePortal]);\n (0,_mui_utils__WEBPACK_IMPORTED_MODULE_3__["default"])(() => {\n if (mountNode && !disablePortal) {\n (0,_mui_utils__WEBPACK_IMPORTED_MODULE_4__["default"])(ref, mountNode);\n return () => {\n (0,_mui_utils__WEBPACK_IMPORTED_MODULE_4__["default"])(ref, null);\n };\n }\n\n return undefined;\n }, [ref, mountNode, disablePortal]);\n\n if (disablePortal) {\n if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(children)) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(children, {\n ref: handleRef\n });\n }\n\n return children;\n }\n\n return mountNode ? /*#__PURE__*/react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal(children, mountNode) : mountNode;\n});\n false ? 0 : void 0;\n\nif (false) {}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Portal);\n\n//# sourceURL=webpack://frontend/./node_modules/@mui/base/Portal/Portal.js?')},"./node_modules/@mui/base/SliderUnstyled/SliderUnstyled.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! clsx */ "./node_modules/clsx/dist/clsx.m.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/ownerDocument.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/useControlled.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/useIsFocusVisible.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/useForkRef.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/useEventCallback.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/useEnhancedEffect.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/visuallyHidden.js");\n/* harmony import */ var _utils_isHostComponent__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../utils/isHostComponent */ "./node_modules/@mui/base/utils/isHostComponent.js");\n/* harmony import */ var _composeClasses__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../composeClasses */ "./node_modules/@mui/base/composeClasses/composeClasses.js");\n/* harmony import */ var _sliderUnstyledClasses__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./sliderUnstyledClasses */ "./node_modules/@mui/base/SliderUnstyled/sliderUnstyledClasses.js");\n/* harmony import */ var _SliderValueLabelUnstyled__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./SliderValueLabelUnstyled */ "./node_modules/@mui/base/SliderUnstyled/SliderValueLabelUnstyled.js");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");\n\n\nconst _excluded = ["aria-label", "aria-labelledby", "aria-valuetext", "className", "component", "classes", "defaultValue", "disableSwap", "disabled", "getAriaLabel", "getAriaValueText", "marks", "max", "min", "name", "onChange", "onChangeCommitted", "onMouseDown", "orientation", "scale", "step", "tabIndex", "track", "value", "valueLabelDisplay", "valueLabelFormat", "isRtl", "components", "componentsProps"];\n\n\n\n\n\n\n\n\n\n\nconst INTENTIONAL_DRAG_COUNT_THRESHOLD = 2;\n\nfunction asc(a, b) {\n return a - b;\n}\n\nfunction clamp(value, min, max) {\n if (value == null) {\n return min;\n }\n\n return Math.min(Math.max(min, value), max);\n}\n\nfunction findClosest(values, currentValue) {\n const {\n index: closestIndex\n } = values.reduce((acc, value, index) => {\n const distance = Math.abs(currentValue - value);\n\n if (acc === null || distance < acc.distance || distance === acc.distance) {\n return {\n distance,\n index\n };\n }\n\n return acc;\n }, null);\n return closestIndex;\n}\n\nfunction trackFinger(event, touchId) {\n if (touchId.current !== undefined && event.changedTouches) {\n for (let i = 0; i < event.changedTouches.length; i += 1) {\n const touch = event.changedTouches[i];\n\n if (touch.identifier === touchId.current) {\n return {\n x: touch.clientX,\n y: touch.clientY\n };\n }\n }\n\n return false;\n }\n\n return {\n x: event.clientX,\n y: event.clientY\n };\n}\n\nfunction valueToPercent(value, min, max) {\n return (value - min) * 100 / (max - min);\n}\n\nfunction percentToValue(percent, min, max) {\n return (max - min) * percent + min;\n}\n\nfunction getDecimalPrecision(num) {\n // This handles the case when num is very small (0.00000001), js will turn this into 1e-8.\n // When num is bigger than 1 or less than -1 it won\'t get converted to this notation so it\'s fine.\n if (Math.abs(num) < 1) {\n const parts = num.toExponential().split(\'e-\');\n const matissaDecimalPart = parts[0].split(\'.\')[1];\n return (matissaDecimalPart ? matissaDecimalPart.length : 0) + parseInt(parts[1], 10);\n }\n\n const decimalPart = num.toString().split(\'.\')[1];\n return decimalPart ? decimalPart.length : 0;\n}\n\nfunction roundValueToStep(value, step, min) {\n const nearest = Math.round((value - min) / step) * step + min;\n return Number(nearest.toFixed(getDecimalPrecision(step)));\n}\n\nfunction setValueIndex({\n values,\n newValue,\n index\n}) {\n const output = values.slice();\n output[index] = newValue;\n return output.sort(asc);\n}\n\nfunction focusThumb({\n sliderRef,\n activeIndex,\n setActive\n}) {\n const doc = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_5__["default"])(sliderRef.current);\n\n if (!sliderRef.current.contains(doc.activeElement) || Number(doc.activeElement.getAttribute(\'data-index\')) !== activeIndex) {\n sliderRef.current.querySelector(`[type="range"][data-index="${activeIndex}"]`).focus();\n }\n\n if (setActive) {\n setActive(activeIndex);\n }\n}\n\nconst axisProps = {\n horizontal: {\n offset: percent => ({\n left: `${percent}%`\n }),\n leap: percent => ({\n width: `${percent}%`\n })\n },\n \'horizontal-reverse\': {\n offset: percent => ({\n right: `${percent}%`\n }),\n leap: percent => ({\n width: `${percent}%`\n })\n },\n vertical: {\n offset: percent => ({\n bottom: `${percent}%`\n }),\n leap: percent => ({\n height: `${percent}%`\n })\n }\n};\n\nconst Identity = x => x; // TODO: remove support for Safari < 13.\n// https://caniuse.com/#search=touch-action\n//\n// Safari, on iOS, supports touch action since v13.\n// Over 80% of the iOS phones are compatible\n// in August 2020.\n// Utilizing the CSS.supports method to check if touch-action is supported.\n// Since CSS.supports is supported on all but Edge@12 and IE and touch-action\n// is supported on both Edge@12 and IE if CSS.supports is not available that means that\n// touch-action will be supported\n\n\nlet cachedSupportsTouchActionNone;\n\nfunction doesSupportTouchActionNone() {\n if (cachedSupportsTouchActionNone === undefined) {\n if (typeof CSS !== \'undefined\' && typeof CSS.supports === \'function\') {\n cachedSupportsTouchActionNone = CSS.supports(\'touch-action\', \'none\');\n } else {\n cachedSupportsTouchActionNone = true;\n }\n }\n\n return cachedSupportsTouchActionNone;\n}\n\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n dragging,\n marked,\n orientation,\n track,\n classes\n } = ownerState;\n const slots = {\n root: [\'root\', disabled && \'disabled\', dragging && \'dragging\', marked && \'marked\', orientation === \'vertical\' && \'vertical\', track === \'inverted\' && \'trackInverted\', track === false && \'trackFalse\'],\n rail: [\'rail\'],\n track: [\'track\'],\n mark: [\'mark\'],\n markActive: [\'markActive\'],\n markLabel: [\'markLabel\'],\n markLabelActive: [\'markLabelActive\'],\n valueLabel: [\'valueLabel\'],\n thumb: [\'thumb\', disabled && \'disabled\'],\n active: [\'active\'],\n disabled: [\'disabled\'],\n focusVisible: [\'focusVisible\']\n };\n return (0,_composeClasses__WEBPACK_IMPORTED_MODULE_6__["default"])(slots, _sliderUnstyledClasses__WEBPACK_IMPORTED_MODULE_7__.getSliderUtilityClass, classes);\n};\n\nconst Forward = ({\n children\n}) => children;\n\nconst SliderUnstyled = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.forwardRef(function SliderUnstyled(props, ref) {\n const {\n \'aria-label\': ariaLabel,\n \'aria-labelledby\': ariaLabelledby,\n \'aria-valuetext\': ariaValuetext,\n className,\n component = \'span\',\n classes: classesProp,\n defaultValue,\n disableSwap = false,\n disabled = false,\n getAriaLabel,\n getAriaValueText,\n marks: marksProp = false,\n max = 100,\n min = 0,\n name,\n onChange,\n onChangeCommitted,\n onMouseDown,\n orientation = \'horizontal\',\n scale = Identity,\n step = 1,\n tabIndex,\n track = \'normal\',\n value: valueProp,\n valueLabelDisplay = \'off\',\n valueLabelFormat = Identity,\n isRtl = false,\n components = {},\n componentsProps = {}\n } = props,\n other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__["default"])(props, _excluded);\n\n const touchId = react__WEBPACK_IMPORTED_MODULE_2__.useRef(); // We can\'t use the :active browser pseudo-classes.\n // - The active state isn\'t triggered when clicking on the rail.\n // - The active state isn\'t transferred when inversing a range slider.\n\n const [active, setActive] = react__WEBPACK_IMPORTED_MODULE_2__.useState(-1);\n const [open, setOpen] = react__WEBPACK_IMPORTED_MODULE_2__.useState(-1);\n const [dragging, setDragging] = react__WEBPACK_IMPORTED_MODULE_2__.useState(false);\n const moveCount = react__WEBPACK_IMPORTED_MODULE_2__.useRef(0);\n const [valueDerived, setValueState] = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_8__["default"])({\n controlled: valueProp,\n default: defaultValue != null ? defaultValue : min,\n name: \'Slider\'\n });\n\n const handleChange = onChange && ((event, value, thumbIndex) => {\n // Redefine target to allow name and value to be read.\n // This allows seamless integration with the most popular form libraries.\n // https://github.com/mui-org/material-ui/issues/13485#issuecomment-676048492\n // Clone the event to not override `target` of the original event.\n const nativeEvent = event.nativeEvent || event;\n const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);\n Object.defineProperty(clonedEvent, \'target\', {\n writable: true,\n value: {\n value,\n name\n }\n });\n onChange(clonedEvent, value, thumbIndex);\n });\n\n const range = Array.isArray(valueDerived);\n let values = range ? valueDerived.slice().sort(asc) : [valueDerived];\n values = values.map(value => clamp(value, min, max));\n const marks = marksProp === true && step !== null ? [...Array(Math.floor((max - min) / step) + 1)].map((_, index) => ({\n value: min + step * index\n })) : marksProp || [];\n const {\n isFocusVisibleRef,\n onBlur: handleBlurVisible,\n onFocus: handleFocusVisible,\n ref: focusVisibleRef\n } = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_9__["default"])();\n const [focusVisible, setFocusVisible] = react__WEBPACK_IMPORTED_MODULE_2__.useState(-1);\n const sliderRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef();\n const handleFocusRef = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_10__["default"])(focusVisibleRef, sliderRef);\n const handleRef = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_10__["default"])(ref, handleFocusRef);\n\n const handleFocus = event => {\n const index = Number(event.currentTarget.getAttribute(\'data-index\'));\n handleFocusVisible(event);\n\n if (isFocusVisibleRef.current === true) {\n setFocusVisible(index);\n }\n\n setOpen(index);\n };\n\n const handleBlur = event => {\n handleBlurVisible(event);\n\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(-1);\n }\n\n setOpen(-1);\n };\n\n const handleMouseOver = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_11__["default"])(event => {\n const index = Number(event.currentTarget.getAttribute(\'data-index\'));\n setOpen(index);\n });\n const handleMouseLeave = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_11__["default"])(() => {\n setOpen(-1);\n });\n (0,_mui_utils__WEBPACK_IMPORTED_MODULE_12__["default"])(() => {\n if (disabled && sliderRef.current.contains(document.activeElement)) {\n // This is necessary because Firefox and Safari will keep focus\n // on a disabled element:\n // https://codesandbox.io/s/mui-pr-22247-forked-h151h?file=/src/App.js\n document.activeElement.blur();\n }\n }, [disabled]);\n\n if (disabled && active !== -1) {\n setActive(-1);\n }\n\n if (disabled && focusVisible !== -1) {\n setFocusVisible(-1);\n }\n\n const handleHiddenInputChange = event => {\n const index = Number(event.currentTarget.getAttribute(\'data-index\'));\n const value = values[index];\n const marksValues = marks.map(mark => mark.value);\n const marksIndex = marksValues.indexOf(value);\n let newValue = event.target.valueAsNumber;\n\n if (marks && step == null) {\n newValue = newValue < value ? marksValues[marksIndex - 1] : marksValues[marksIndex + 1];\n }\n\n newValue = clamp(newValue, min, max);\n\n if (marks && step == null) {\n const markValues = marks.map(mark => mark.value);\n const currentMarkIndex = markValues.indexOf(values[index]);\n newValue = newValue < values[index] ? markValues[currentMarkIndex - 1] : markValues[currentMarkIndex + 1];\n }\n\n if (range) {\n // Bound the new value to the thumb\'s neighbours.\n if (disableSwap) {\n newValue = clamp(newValue, values[index - 1] || -Infinity, values[index + 1] || Infinity);\n }\n\n const previousValue = newValue;\n newValue = setValueIndex({\n values,\n newValue,\n index\n });\n let activeIndex = index; // Potentially swap the index if needed.\n\n if (!disableSwap) {\n activeIndex = newValue.indexOf(previousValue);\n }\n\n focusThumb({\n sliderRef,\n activeIndex\n });\n }\n\n setValueState(newValue);\n setFocusVisible(index);\n\n if (handleChange) {\n handleChange(event, newValue, index);\n }\n\n if (onChangeCommitted) {\n onChangeCommitted(event, newValue);\n }\n };\n\n const previousIndex = react__WEBPACK_IMPORTED_MODULE_2__.useRef();\n let axis = orientation;\n\n if (isRtl && orientation !== "vertical") {\n axis += \'-reverse\';\n }\n\n const getFingerNewValue = ({\n finger,\n move = false,\n values: values2\n }) => {\n const {\n current: slider\n } = sliderRef;\n const {\n width,\n height,\n bottom,\n left\n } = slider.getBoundingClientRect();\n let percent;\n\n if (axis.indexOf(\'vertical\') === 0) {\n percent = (bottom - finger.y) / height;\n } else {\n percent = (finger.x - left) / width;\n }\n\n if (axis.indexOf(\'-reverse\') !== -1) {\n percent = 1 - percent;\n }\n\n let newValue;\n newValue = percentToValue(percent, min, max);\n\n if (step) {\n newValue = roundValueToStep(newValue, step, min);\n } else {\n const marksValues = marks.map(mark => mark.value);\n const closestIndex = findClosest(marksValues, newValue);\n newValue = marksValues[closestIndex];\n }\n\n newValue = clamp(newValue, min, max);\n let activeIndex = 0;\n\n if (range) {\n if (!move) {\n activeIndex = findClosest(values2, newValue);\n } else {\n activeIndex = previousIndex.current;\n } // Bound the new value to the thumb\'s neighbours.\n\n\n if (disableSwap) {\n newValue = clamp(newValue, values2[activeIndex - 1] || -Infinity, values2[activeIndex + 1] || Infinity);\n }\n\n const previousValue = newValue;\n newValue = setValueIndex({\n values: values2,\n newValue,\n index: activeIndex\n }); // Potentially swap the index if needed.\n\n if (!(disableSwap && move)) {\n activeIndex = newValue.indexOf(previousValue);\n previousIndex.current = activeIndex;\n }\n }\n\n return {\n newValue,\n activeIndex\n };\n };\n\n const handleTouchMove = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_11__["default"])(nativeEvent => {\n const finger = trackFinger(nativeEvent, touchId);\n\n if (!finger) {\n return;\n }\n\n moveCount.current += 1; // Cancel move in case some other element consumed a mouseup event and it was not fired.\n\n if (nativeEvent.type === \'mousemove\' && nativeEvent.buttons === 0) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleTouchEnd(nativeEvent);\n return;\n }\n\n const {\n newValue,\n activeIndex\n } = getFingerNewValue({\n finger,\n move: true,\n values\n });\n focusThumb({\n sliderRef,\n activeIndex,\n setActive\n });\n setValueState(newValue);\n\n if (!dragging && moveCount.current > INTENTIONAL_DRAG_COUNT_THRESHOLD) {\n setDragging(true);\n }\n\n if (handleChange) {\n handleChange(nativeEvent, newValue, activeIndex);\n }\n });\n const handleTouchEnd = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_11__["default"])(nativeEvent => {\n const finger = trackFinger(nativeEvent, touchId);\n setDragging(false);\n\n if (!finger) {\n return;\n }\n\n const {\n newValue\n } = getFingerNewValue({\n finger,\n values\n });\n setActive(-1);\n\n if (nativeEvent.type === \'touchend\') {\n setOpen(-1);\n }\n\n if (onChangeCommitted) {\n onChangeCommitted(nativeEvent, newValue);\n }\n\n touchId.current = undefined; // eslint-disable-next-line @typescript-eslint/no-use-before-define\n\n stopListening();\n });\n const handleTouchStart = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_11__["default"])(nativeEvent => {\n // If touch-action: none; is not supported we need to prevent the scroll manually.\n if (!doesSupportTouchActionNone()) {\n nativeEvent.preventDefault();\n }\n\n const touch = nativeEvent.changedTouches[0];\n\n if (touch != null) {\n // A number that uniquely identifies the current finger in the touch session.\n touchId.current = touch.identifier;\n }\n\n const finger = trackFinger(nativeEvent, touchId);\n const {\n newValue,\n activeIndex\n } = getFingerNewValue({\n finger,\n values\n });\n focusThumb({\n sliderRef,\n activeIndex,\n setActive\n });\n setValueState(newValue);\n\n if (handleChange) {\n handleChange(nativeEvent, newValue, activeIndex);\n }\n\n moveCount.current = 0;\n const doc = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_5__["default"])(sliderRef.current);\n doc.addEventListener(\'touchmove\', handleTouchMove);\n doc.addEventListener(\'touchend\', handleTouchEnd);\n });\n const stopListening = react__WEBPACK_IMPORTED_MODULE_2__.useCallback(() => {\n const doc = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_5__["default"])(sliderRef.current);\n doc.removeEventListener(\'mousemove\', handleTouchMove);\n doc.removeEventListener(\'mouseup\', handleTouchEnd);\n doc.removeEventListener(\'touchmove\', handleTouchMove);\n doc.removeEventListener(\'touchend\', handleTouchEnd);\n }, [handleTouchEnd, handleTouchMove]);\n react__WEBPACK_IMPORTED_MODULE_2__.useEffect(() => {\n const {\n current: slider\n } = sliderRef;\n slider.addEventListener(\'touchstart\', handleTouchStart, {\n passive: doesSupportTouchActionNone()\n });\n return () => {\n slider.removeEventListener(\'touchstart\', handleTouchStart, {\n passive: doesSupportTouchActionNone()\n });\n stopListening();\n };\n }, [stopListening, handleTouchStart]);\n react__WEBPACK_IMPORTED_MODULE_2__.useEffect(() => {\n if (disabled) {\n stopListening();\n }\n }, [disabled, stopListening]);\n const handleMouseDown = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_11__["default"])(event => {\n if (onMouseDown) {\n onMouseDown(event);\n } // Only handle left clicks\n\n\n if (event.button !== 0) {\n return;\n } // Avoid text selection\n\n\n event.preventDefault();\n const finger = trackFinger(event, touchId);\n const {\n newValue,\n activeIndex\n } = getFingerNewValue({\n finger,\n values\n });\n focusThumb({\n sliderRef,\n activeIndex,\n setActive\n });\n setValueState(newValue);\n\n if (handleChange) {\n handleChange(event, newValue, activeIndex);\n }\n\n moveCount.current = 0;\n const doc = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_5__["default"])(sliderRef.current);\n doc.addEventListener(\'mousemove\', handleTouchMove);\n doc.addEventListener(\'mouseup\', handleTouchEnd);\n });\n const trackOffset = valueToPercent(range ? values[0] : min, min, max);\n const trackLeap = valueToPercent(values[values.length - 1], min, max) - trackOffset;\n\n const trackStyle = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, axisProps[axis].offset(trackOffset), axisProps[axis].leap(trackLeap));\n\n const Root = components.Root || component;\n const rootProps = componentsProps.root || {};\n const Rail = components.Rail || \'span\';\n const railProps = componentsProps.rail || {};\n const Track = components.Track || \'span\';\n const trackProps = componentsProps.track || {};\n const Thumb = components.Thumb || \'span\';\n const thumbProps = componentsProps.thumb || {};\n const ValueLabel = components.ValueLabel || _SliderValueLabelUnstyled__WEBPACK_IMPORTED_MODULE_13__["default"];\n const valueLabelProps = componentsProps.valueLabel || {};\n const Mark = components.Mark || \'span\';\n const markProps = componentsProps.mark || {};\n const MarkLabel = components.MarkLabel || \'span\';\n const markLabelProps = componentsProps.markLabel || {}; // all props with defaults\n // consider extracting to hook an reusing the lint rule for the varints\n\n const ownerState = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, props, {\n classes: classesProp,\n disabled,\n dragging,\n isRtl,\n marked: marks.length > 0 && marks.some(mark => mark.label),\n max,\n min,\n orientation,\n scale,\n step,\n track,\n valueLabelDisplay,\n valueLabelFormat\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(Root, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n ref: handleRef,\n onMouseDown: handleMouseDown\n }, rootProps, !(0,_utils_isHostComponent__WEBPACK_IMPORTED_MODULE_14__["default"])(Root) && {\n as: component,\n ownerState: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, ownerState, rootProps.ownerState)\n }, other, {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_3__["default"])(classes.root, rootProps.className, className),\n children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(Rail, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, railProps, !(0,_utils_isHostComponent__WEBPACK_IMPORTED_MODULE_14__["default"])(Rail) && {\n ownerState: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, ownerState, railProps.ownerState)\n }, {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_3__["default"])(classes.rail, railProps.className)\n })), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(Track, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, trackProps, !(0,_utils_isHostComponent__WEBPACK_IMPORTED_MODULE_14__["default"])(Track) && {\n ownerState: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, ownerState, trackProps.ownerState)\n }, {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_3__["default"])(classes.track, trackProps.className),\n style: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, trackStyle, trackProps.style)\n })), marks.map((mark, index) => {\n const percent = valueToPercent(mark.value, min, max);\n const style = axisProps[axis].offset(percent);\n let markActive;\n\n if (track === false) {\n markActive = values.indexOf(mark.value) !== -1;\n } else {\n markActive = track === \'normal\' && (range ? mark.value >= values[0] && mark.value <= values[values.length - 1] : mark.value <= values[0]) || track === \'inverted\' && (range ? mark.value <= values[0] || mark.value >= values[values.length - 1] : mark.value >= values[0]);\n }\n\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(Mark, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n "data-index": index\n }, markProps, !(0,_utils_isHostComponent__WEBPACK_IMPORTED_MODULE_14__["default"])(Mark) && {\n ownerState: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, ownerState, markProps.ownerState),\n markActive\n }, {\n style: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, style, markProps.style),\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_3__["default"])(classes.mark, markProps.className, markActive && classes.markActive)\n })), mark.label != null ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(MarkLabel, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n "aria-hidden": true,\n "data-index": index\n }, markLabelProps, !(0,_utils_isHostComponent__WEBPACK_IMPORTED_MODULE_14__["default"])(MarkLabel) && {\n ownerState: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, ownerState, markLabelProps.ownerState)\n }, {\n markLabelActive: markActive,\n style: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, style, markLabelProps.style),\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_3__["default"])(classes.markLabel, markLabelProps.className, markActive && classes.markLabelActive),\n children: mark.label\n })) : null]\n }, mark.value);\n }), values.map((value, index) => {\n const percent = valueToPercent(value, min, max);\n const style = axisProps[axis].offset(percent);\n const ValueLabelComponent = valueLabelDisplay === \'off\' ? Forward : ValueLabel;\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(ValueLabelComponent, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n valueLabelFormat: valueLabelFormat,\n valueLabelDisplay: valueLabelDisplay,\n value: typeof valueLabelFormat === \'function\' ? valueLabelFormat(scale(value), index) : valueLabelFormat,\n index: index,\n open: open === index || active === index || valueLabelDisplay === \'on\',\n disabled: disabled\n }, valueLabelProps, {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_3__["default"])(classes.valueLabel, valueLabelProps.className)\n }, !(0,_utils_isHostComponent__WEBPACK_IMPORTED_MODULE_14__["default"])(ValueLabel) && {\n ownerState: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, ownerState, valueLabelProps.ownerState)\n }, {\n children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(Thumb, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n "data-index": index,\n onMouseOver: handleMouseOver,\n onMouseLeave: handleMouseLeave\n }, thumbProps, {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_3__["default"])(classes.thumb, thumbProps.className, active === index && classes.active, focusVisible === index && classes.focusVisible)\n }, !(0,_utils_isHostComponent__WEBPACK_IMPORTED_MODULE_14__["default"])(Thumb) && {\n ownerState: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, ownerState, thumbProps.ownerState)\n }, {\n style: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, style, {\n pointerEvents: disableSwap && active !== index ? \'none\' : undefined\n }, thumbProps.style),\n children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("input", {\n tabIndex: tabIndex,\n "data-index": index,\n "aria-label": getAriaLabel ? getAriaLabel(index) : ariaLabel,\n "aria-labelledby": ariaLabelledby,\n "aria-orientation": orientation,\n "aria-valuemax": scale(max),\n "aria-valuemin": scale(min),\n "aria-valuenow": scale(value),\n "aria-valuetext": getAriaValueText ? getAriaValueText(scale(value), index) : ariaValuetext,\n onFocus: handleFocus,\n onBlur: handleBlur,\n name: name,\n type: "range",\n min: props.min,\n max: props.max,\n step: props.step,\n disabled: disabled,\n value: values[index],\n onChange: handleHiddenInputChange,\n style: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, _mui_utils__WEBPACK_IMPORTED_MODULE_15__["default"], {\n direction: isRtl ? \'rtl\' : \'ltr\',\n // So that VoiceOver\'s focus indicator matches the thumb\'s dimensions\n width: \'100%\',\n height: \'100%\'\n })\n })\n }))\n }))\n }, index);\n })]\n }));\n});\n false ? 0 : void 0;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SliderUnstyled);\n\n//# sourceURL=webpack://frontend/./node_modules/@mui/base/SliderUnstyled/SliderUnstyled.js?')},"./node_modules/@mui/base/SliderUnstyled/SliderValueLabelUnstyled.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! clsx */ "./node_modules/clsx/dist/clsx.m.js");\n/* harmony import */ var _sliderUnstyledClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./sliderUnstyledClasses */ "./node_modules/@mui/base/SliderUnstyled/sliderUnstyledClasses.js");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");\n\n\n\n\n\n\n\nconst useValueLabelClasses = props => {\n const {\n open\n } = props;\n const utilityClasses = {\n offset: (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])(open && _sliderUnstyledClasses__WEBPACK_IMPORTED_MODULE_3__["default"].valueLabelOpen),\n circle: _sliderUnstyledClasses__WEBPACK_IMPORTED_MODULE_3__["default"].valueLabelCircle,\n label: _sliderUnstyledClasses__WEBPACK_IMPORTED_MODULE_3__["default"].valueLabelLabel\n };\n return utilityClasses;\n};\n/**\n * @ignore - internal component.\n */\n\n\nfunction SliderValueLabelUnstyled(props) {\n const {\n children,\n className,\n value,\n theme\n } = props;\n const classes = useValueLabelClasses(props);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(children, {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])(children.props.className)\n }, /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [children.props.children, /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("span", {\n className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])(classes.offset, className),\n theme: theme,\n "aria-hidden": true,\n children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("span", {\n className: classes.circle,\n children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("span", {\n className: classes.label,\n children: value\n })\n })\n })]\n }));\n}\n\n false ? 0 : void 0;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SliderValueLabelUnstyled);\n\n//# sourceURL=webpack://frontend/./node_modules/@mui/base/SliderUnstyled/SliderValueLabelUnstyled.js?')},"./node_modules/@mui/base/SliderUnstyled/sliderUnstyledClasses.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getSliderUtilityClass\": () => (/* binding */ getSliderUtilityClass),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _generateUtilityClasses__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../generateUtilityClasses */ \"./node_modules/@mui/base/generateUtilityClasses/generateUtilityClasses.js\");\n/* harmony import */ var _generateUtilityClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../generateUtilityClass */ \"./node_modules/@mui/base/generateUtilityClass/generateUtilityClass.js\");\n\n\nfunction getSliderUtilityClass(slot) {\n return (0,_generateUtilityClass__WEBPACK_IMPORTED_MODULE_0__[\"default\"])('MuiSlider', slot);\n}\nconst sliderUnstyledClasses = (0,_generateUtilityClasses__WEBPACK_IMPORTED_MODULE_1__[\"default\"])('MuiSlider', ['root', 'active', 'focusVisible', 'disabled', 'dragging', 'marked', 'vertical', 'trackInverted', 'trackFalse', 'rail', 'track', 'mark', 'markActive', 'markLabel', 'markLabelActive', 'thumb', 'valueLabel', 'valueLabelOpen', 'valueLabelCircle', 'valueLabelLabel']);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (sliderUnstyledClasses);\n\n//# sourceURL=webpack://frontend/./node_modules/@mui/base/SliderUnstyled/sliderUnstyledClasses.js?")},"./node_modules/@mui/base/TextareaAutosize/TextareaAutosize.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/useForkRef.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/ownerWindow.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/debounce.js");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/utils */ "./node_modules/@mui/utils/esm/useEnhancedEffect.js");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");\n\n\nconst _excluded = ["onChange", "maxRows", "minRows", "style", "value"];\n\n\n\n\n\n\nfunction getStyleValue(computedStyle, property) {\n return parseInt(computedStyle[property], 10) || 0;\n}\n\nconst styles = {\n shadow: {\n // Visibility needed to hide the extra text area on iPads\n visibility: \'hidden\',\n // Remove from the content flow\n position: \'absolute\',\n // Ignore the scrollbar width\n overflow: \'hidden\',\n height: 0,\n top: 0,\n left: 0,\n // Create a new layer, increase the isolation of the computed values\n transform: \'translateZ(0)\'\n }\n};\nconst TextareaAutosize = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.forwardRef(function TextareaAutosize(props, ref) {\n const {\n onChange,\n maxRows,\n minRows = 1,\n style,\n value\n } = props,\n other = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__["default"])(props, _excluded);\n\n const {\n current: isControlled\n } = react__WEBPACK_IMPORTED_MODULE_2__.useRef(value != null);\n const inputRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(null);\n const handleRef = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_4__["default"])(ref, inputRef);\n const shadowRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(null);\n const renders = react__WEBPACK_IMPORTED_MODULE_2__.useRef(0);\n const [state, setState] = react__WEBPACK_IMPORTED_MODULE_2__.useState({});\n const syncHeight = react__WEBPACK_IMPORTED_MODULE_2__.useCallback(() => {\n const input = inputRef.current;\n const containerWindow = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_5__["default"])(input);\n const computedStyle = containerWindow.getComputedStyle(input); // If input\'s width is shrunk and it\'s not visible, don\'t sync height.\n\n if (computedStyle.width === \'0px\') {\n return;\n }\n\n const inputShallow = shadowRef.current;\n inputShallow.style.width = computedStyle.width;\n inputShallow.value = input.value || props.placeholder || \'x\';\n\n if (inputShallow.value.slice(-1) === \'\\n\') {\n // Certain fonts which overflow the line height will cause the textarea\n // to report a different scrollHeight depending on whether the last line\n // is empty. Make it non-empty to avoid this issue.\n inputShallow.value += \' \';\n }\n\n const boxSizing = computedStyle[\'box-sizing\'];\n const padding = getStyleValue(computedStyle, \'padding-bottom\') + getStyleValue(computedStyle, \'padding-top\');\n const border = getStyleValue(computedStyle, \'border-bottom-width\') + getStyleValue(computedStyle, \'border-top-width\'); // The height of the inner content\n\n const innerHeight = inputShallow.scrollHeight; // Measure height of a textarea with a single row\n\n inputShallow.value = \'x\';\n const singleRowHeight = inputShallow.scrollHeight; // The height of the outer content\n\n let outerHeight = innerHeight;\n\n if (minRows) {\n outerHeight = Math.max(Number(minRows) * singleRowHeight, outerHeight);\n }\n\n if (maxRows) {\n outerHeight = Math.min(Number(maxRows) * singleRowHeight, outerHeight);\n }\n\n outerHeight = Math.max(outerHeight, singleRowHeight); // Take the box sizing into account for applying this value as a style.\n\n const outerHeightStyle = outerHeight + (boxSizing === \'border-box\' ? padding + border : 0);\n const overflow = Math.abs(outerHeight - innerHeight) <= 1;\n setState(prevState => {\n // Need a large enough difference to update the height.\n // This prevents infinite rendering loop.\n if (renders.current < 20 && (outerHeightStyle > 0 && Math.abs((prevState.outerHeightStyle || 0) - outerHeightStyle) > 1 || prevState.overflow !== overflow)) {\n renders.current += 1;\n return {\n overflow,\n outerHeightStyle\n };\n }\n\n if (false) {}\n\n return prevState;\n });\n }, [maxRows, minRows, props.placeholder]);\n react__WEBPACK_IMPORTED_MODULE_2__.useEffect(() => {\n const handleResize = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_6__["default"])(() => {\n renders.current = 0;\n syncHeight();\n });\n const containerWindow = (0,_mui_utils__WEBPACK_IMPORTED_MODULE_5__["default"])(inputRef.current);\n containerWindow.addEventListener(\'resize\', handleResize);\n let resizeObserver;\n\n if (typeof ResizeObserver !== \'undefined\') {\n resizeObserver = new ResizeObserver(handleResize);\n resizeObserver.observe(inputRef.current);\n }\n\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener(\'resize\', handleResize);\n\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n };\n }, [syncHeight]);\n (0,_mui_utils__WEBPACK_IMPORTED_MODULE_7__["default"])(() => {\n syncHeight();\n });\n react__WEBPACK_IMPORTED_MODULE_2__.useEffect(() => {\n renders.current = 0;\n }, [value]);\n\n const handleChange = event => {\n renders.current = 0;\n\n if (!isControlled) {\n syncHeight();\n }\n\n if (onChange) {\n onChange(event);\n }\n };\n\n return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("textarea", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n value: value,\n onChange: handleChange,\n ref: handleRef // Apply the rows prop to get a "correct" first SSR paint\n ,\n rows: minRows,\n style: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({\n height: state.outerHeightStyle,\n // Need a large enough difference to allow scrolling.\n // This prevents infinite rendering loop.\n overflow: state.overflow ? \'hidden\' : null\n }, style)\n }, other)), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("textarea", {\n "aria-hidden": true,\n className: props.className,\n readOnly: true,\n ref: shadowRef,\n tabIndex: -1,\n style: (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, styles.shadow, style, {\n padding: 0\n })\n })]\n });\n});\n false ? 0 : void 0;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TextareaAutosize);\n\n//# sourceURL=webpack://frontend/./node_modules/@mui/base/TextareaAutosize/TextareaAutosize.js?')},"./node_modules/@mui/base/Unstable_TrapFocus/Unstable_TrapFocus.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/utils */ \"./node_modules/@mui/utils/esm/useForkRef.js\");\n/* harmony import */ var _mui_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/utils */ \"./node_modules/@mui/utils/esm/ownerDocument.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n/* eslint-disable @typescript-eslint/naming-convention, consistent-return, jsx-a11y/no-noninteractive-tabindex */\n\n\n // Inspired by https://github.com/focus-trap/tabbable\n\n\n\nconst candidatesSelector = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'].join(',');\n\nfunction getTabIndex(node) {\n const tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);\n\n if (!Number.isNaN(tabindexAttr)) {\n return tabindexAttr;\n } // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // https://bugs.chromium.org/p/chromium/issues/detail?id=661108&q=contenteditable%20tabindex&can=2\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n // in Chrome,
,