Index: components/Complain.jsx
===================================================================
--- components/Complain.jsx	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
+++ components/Complain.jsx	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -0,0 +1,113 @@
+import React from 'react'
+
+import { useSelector, useDispatch } from 'react-redux'
+
+import { useRef } from 'react'
+
+import { setStyle } from '../redux/reducers/styleSlice';
+
+import axios from 'axios';
+
+const ComplainScreen = () => {
+    const ref = useRef(null);
+
+    const dispatch = useDispatch();
+
+    const styleState = useSelector(state => state.style);
+
+    setTimeout(() => {
+        if (styleState.style.displayComplainScreen && styleState.style.complainScreenInfo.setFocus) {
+            ref.current.focus();
+            dispatch(setStyle({
+                ...styleState.style,
+                complainScreenInfo: {
+                    ...styleState.style.complainScreenInfo,
+                    setFocus: false
+                }
+            }))
+        }
+    }, 10);
+
+    function onChangeDescription(e) {
+        dispatch(setStyle({
+            ...styleState.style,
+            complainScreenInfo: {
+                ...styleState.style.complainScreenInfo,
+                description: e.target.value,
+            }
+        }))
+    }
+
+    function keyUp(e) {
+        if (e.key === 'Enter') {
+            complain();
+        }
+    }
+
+    function closeForm() {
+        dispatch(setStyle({
+            ...styleState.style,
+            displayComplainScreen: false,
+            complainScreenInfo: {
+                description: '',
+            },
+            inlineAlertText: '',
+        }));
+
+    }
+    function complain() {
+        dispatch(setStyle({
+            ...styleState.style,
+            displayLoadingScreen: true,
+        }))
+
+        axios.post(`/api/postgre`, {
+            action: 'complain',
+            session_id: localStorage.CAESSINO_SESSION_ID,
+            description: styleState.style.complainScreenInfo.description,
+        })
+            .then(res => {
+                if (res.data?.success) {
+                    dispatch(setStyle({
+                        ...styleState.style,
+                        displayLoadingScreen: false,
+                        displayComplainScreen: false,
+                        complainScreenInfo: {
+                            description: '',
+                        },
+                        notification: {
+                            show: true,
+                            text: 'Complain sent successfully',
+                            status: 'success',
+                        },
+                        inlineAlertText: '',
+                    }));
+                }
+                else {
+                    dispatch(setStyle({
+                        ...styleState.style,
+                        displayComplainScreen: true,
+                        inlineAlertText: res.data?.message,
+                    }));
+                }
+            })
+    }
+
+    return (
+        <div className="fullscreen fs-centered complainScreen" style={{display: styleState.style.displayComplainScreen ? 'block' : 'none'}}>
+            <div className="fs-inputs-container">
+                {styleState.style.inlineAlertText.length > 0 && <span className="inlineAlert">{styleState.style.inlineAlertText}</span>}
+                <div>
+                    <span>Describe the problem:</span>
+                    <textarea ref={ref} type="text" onChange={(e) => {onChangeDescription(e)}} onKeyUp={(e) => keyUp(e)} value={styleState.style.complainScreenInfo.description} placeholder="I have a problem with..."/>
+                    <div style={{width: '100%', display: 'flex', flexDirection: 'row', justifyContent: 'space-between'}}>
+                        <button className="primaryButton" onClick={() => closeForm()}>Close Form</button>
+                        <button className="secondaryButton" onClick={() => complain()}>Send Complaint</button>
+                    </div>
+                </div>
+            </div>
+        </div>
+    )
+}
+
+export default ComplainScreen
Index: components/Header.jsx
===================================================================
--- components/Header.jsx	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ components/Header.jsx	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -54,4 +54,11 @@
   }
 
+  function complain() {
+    dispatch(setStyle({
+      ...styleState.style,
+      displayComplainScreen: true,
+    }))
+  }
+
   function showStats() {
     axios.get(`/api/postgre?action=get_stats&session_id=${localStorage.CAESSINO_SESSION_ID}`).then(res => {
@@ -87,4 +94,6 @@
       ...styleState.style,
       displayManageCreditsScreen: true,
+      displayDepositModal: false,
+      displayWithdrawModal: false,
     }))
   }
@@ -144,5 +153,6 @@
               <>
                 <li onClick={() => {manageCredits()}}>Manage Credits</li>
-                <li onClick={() => {showStats()}}>Stats</li>
+                <li onClick={() => {showStats()}}>Statistics</li>
+                <li onClick={() => {complain()}}>Complain</li>
                 <li onClick={() => {logout()}}>Logout</li>
               </>
Index: components/LostConnection.jsx
===================================================================
--- components/LostConnection.jsx	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
+++ components/LostConnection.jsx	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -0,0 +1,19 @@
+import React from 'react'
+
+import { useSelector } from 'react-redux'
+
+const LostConnection = () => {
+    const styleState = useSelector(state => state.style);
+    
+    return (
+        <div className="fullscreen fs-centered lostConnectionScreen" style={{display: styleState.style.lostConnectionInfo.show ? 'block' : 'none', zIndex: 100}}>
+            <div>
+                <h3>Lost connection to the server.</h3>
+                <h3>This is a server error. Nothing you can do.</h3>
+                <h3>{styleState.style.lostConnectionInfo.message}</h3>
+            </div>
+        </div>
+    )
+}
+
+export default LostConnection
Index: components/ManageCredits.jsx
===================================================================
--- components/ManageCredits.jsx	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ components/ManageCredits.jsx	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -15,20 +15,110 @@
     const dispatch = useDispatch();
 
-    function close() {
+    function close(action = '') {
         dispatch(setStyle({
             ...styleState.style,
             displayManageCreditsScreen: false,
+            displayDepositModal: false,
+            displayWithdrawModal: false,
+            depositModalInputs: {
+                name: '',
+                card: '',
+                expire: '',
+                ccv: '',
+                amount: '',
+            },
+            displayWithdrawModal: false,
+            withdrawModalInputs: {
+                citibank: '',
+                iban: '',
+                bic: '',
+                beneficiary: '',
+                address: '',
+                amount: '',
+            },
+            inlineAlertText: '',
+            notification: action === 'deposit' ? {
+                show: true,
+                text: `Deposited $${styleState.style.depositModalInputs.amount} successfully`,
+                status: 'success',
+            } : action === 'withdraw' ? {
+                show: true,
+                text: `Withdrawed $${styleState.style.withdrawModalInputs.amount} successfully`,
+                status: 'success',
+            } : {
+                show: false,
+                text: '',
+                status: ''
+            },
+        }))
+    }
+
+    
+    function openDepositModal() {
+        dispatch(setStyle({
+            ...styleState.style,
+            displayDepositModal: true,
+            displayWithdrawModal: false,
+            inlineAlertText: '',
+        }))
+    }
+
+    function openWithdrawModal() {
+        dispatch(setStyle({
+            ...styleState.style,
+            displayDepositModal: false,
+            displayWithdrawModal: true,
+            inlineAlertText: '',
         }))
     }
 
     function buyCredits() {
-        axios.get(`/api/postgre/?action=add_credits&session_id=${localStorage.CAESSINO_SESSION_ID}&credits=${500}&dont_update_stats=true`).then(res => {
-            if (res.data?.success) {
-                dispatch(setPlayer({
-                    ...playerState.player,
-                    credits: res.data.credits,
-                }))
-            }
-        });
+        axios.post(`/api/postgre`, {
+            action: 'deposit',
+            session_id: localStorage.CAESSINO_SESSION_ID,
+            data: styleState.style.depositModalInputs
+        })
+            .then(res => {
+                if (res.data?.success) {
+                    dispatch(setPlayer({
+                        ...playerState.player,
+                        credits: res.data.credits,
+                    }))
+
+                    close('deposit');
+                }
+                else {
+                    dispatch(setStyle({
+                        ...styleState.style,
+                        displayManageCreditsScreen: true,
+                        inlineAlertText: res.data?.message,
+                    }));
+                }
+            })
+    }
+
+    function sellCredits() {
+        axios.post(`/api/postgre`, {
+            action: 'withdraw',
+            session_id: localStorage.CAESSINO_SESSION_ID,
+            data: styleState.style.withdrawModalInputs
+        })
+            .then(res => {
+                if (res.data?.success) {
+                    dispatch(setPlayer({
+                        ...playerState.player,
+                        credits: res.data.credits,
+                    }))
+
+                    close('withdraw');
+                }
+                else {
+                    dispatch(setStyle({
+                        ...styleState.style,
+                        displayManageCreditsScreen: true,
+                        inlineAlertText: res.data?.message,
+                    }));
+                }
+            })
     }
 
@@ -37,12 +127,84 @@
             <AiOutlineClose onClick={() => close()} style={{position: 'absolute', top: '20px', right: '20px'}}/>
             <div>
-                <h1>Manage Credits:</h1>
-                <p>You currently have: ${playerState.player.credits}</p>
                 <div>
-                    <button className="primaryButton" onClick={() => buyCredits()}>Buy Credits</button>
+                    <h2>Manage (In-Game) Credits:</h2>
+                    <p>You currently have: ${playerState.player.credits}</p>
+                </div>
+                <div className="main">
+                    <div>
+                        { styleState.style.displayDepositModal && styleState.style.inlineAlertText.length > 0 && <span className="inlineAlert">{styleState.style.inlineAlertText}</span>}
+                        { !styleState.style.displayDepositModal && <button className="primaryButton" onClick={() => openDepositModal()}>Deposit From Credit Card<br/><span>Buy (In-Game) Credits</span></button> }
+                        { styleState.style.displayDepositModal && (
+                            <div className="fs-inputs-container">
+                                <div>
+                                    <label>Name and Surname</label>
+                                    <input type="text" className="primaryInput" onChange={(e) => {onChangeDeposit(e, 'name')}} value={styleState.style.depositModalInputs.name} placeholder="John Doe"/>
+                                    <label>Card Number</label>
+                                    <input type="text" className="primaryInput" onChange={(e) => {onChangeDeposit(e, 'card')}} value={styleState.style.depositModalInputs.card} placeholder="2333 9298 9821 1111"/>
+                                    <label>Expire Date</label>
+                                    <input type="text" className="primaryInput" onChange={(e) => {onChangeDeposit(e, 'expire')}} value={styleState.style.depositModalInputs.expire} placeholder="07/24"/>
+                                    <label>CCV</label>
+                                    <input type="text" className="primaryInput" onChange={(e) => {onChangeDeposit(e, 'ccv')}} value={styleState.style.depositModalInputs.ccv} placeholder="337"/>
+                                    <label><span>Amount</span></label>
+                                    <input type="text" className="primaryInput" onChange={(e) => {onChangeDeposit(e, 'amount')}} value={styleState.style.depositModalInputs.amount} placeholder="500"/>
+                                    <button className="primaryButton" onClick={() => buyCredits()}>Deposit</button>
+                                </div>
+                            </div>
+                        )}
+                    </div>
+                    <div>
+                        { styleState.style.displayWithdrawModal && styleState.style.inlineAlertText.length > 0 && <span className="inlineAlert">{styleState.style.inlineAlertText}</span>}
+                        { !styleState.style.displayWithdrawModal && <button className="primaryButton" onClick={() => openWithdrawModal()}>Withdraw To Personal Account<br/><span>Sell (In-Game) Credits</span></button> }
+                        { styleState.style.displayWithdrawModal && (
+                            <div className="fs-inputs-container">
+                                <div>
+                                    <label>Bank name</label>
+                                    <input type="text" className="primaryInput" onChange={(e) => {onChangeWithdraw(e, 'citibank')}} value={styleState.style.withdrawModalInputs.citibank} placeholder="Swedbank"/>
+                                    <label>IBAN</label>
+                                    <input type="text" className="primaryInput" onChange={(e) => {onChangeWithdraw(e, 'iban')}} value={styleState.style.withdrawModalInputs.iban} placeholder="SE45 5000 0000 0583 9825 7466"/>
+                                    <label>BIC</label>
+                                    <input type="text" className="primaryInput" onChange={(e) => {onChangeWithdraw(e, 'bic')}} value={styleState.style.withdrawModalInputs.bic} placeholder="SWEDSESSXXX"/>
+                                    <label>Beneficiary Name</label>
+                                    <input type="text" className="primaryInput" onChange={(e) => {onChangeWithdraw(e, 'beneficiary')}} value={styleState.style.withdrawModalInputs.beneficiary} placeholder="John Doe"/>
+                                    <label>Bank Address</label>
+                                    <input type="text" className="primaryInput" onChange={(e) => {onChangeWithdraw(e, 'address')}} value={styleState.style.withdrawModalInputs.address} placeholder="Landsvägen 40, Sundbyberg"/>
+                                    <label><span>Amount</span></label>
+                                    <input type="text" className="primaryInput" onChange={(e) => {onChangeWithdraw(e, 'amount')}} value={styleState.style.withdrawModalInputs.amount} placeholder="500"/>
+                                    <button className="primaryButton" onClick={() => sellCredits()}>Withdraw</button>
+                                </div>
+                            </div>
+                        )}
+                    </div>
                 </div>
             </div>
         </div>
     )
+
+    function onChangeDeposit(e, what) {
+        dispatch(setStyle({
+            ...styleState.style,
+            depositModalInputs: {
+                name: what === 'name' ? e.target.value : styleState.style.depositModalInputs.name,
+                card: what === 'card' ? e.target.value : styleState.style.depositModalInputs.card,
+                expire: what === 'expire' ? e.target.value : styleState.style.depositModalInputs.expire,
+                ccv: what === 'ccv' ? e.target.value : styleState.style.depositModalInputs.ccv,
+                amount: what === 'amount' ? e.target.value : styleState.style.depositModalInputs.amount,
+            }
+        }))
+    }
+
+    function onChangeWithdraw(e, what) {
+        dispatch(setStyle({
+            ...styleState.style,
+            withdrawModalInputs: {
+                citibank: what === 'citibank' ? e.target.value : styleState.style.depositModalInputs.citibank,
+                iban: what === 'iban' ? e.target.value : styleState.style.depositModalInputs.iban,
+                bic: what === 'bic' ? e.target.value : styleState.style.depositModalInputs.bic,
+                beneficiary: what === 'beneficiary' ? e.target.value : styleState.style.depositModalInputs.beneficiary,
+                address: what === 'address' ? e.target.value : styleState.style.depositModalInputs.address,
+                amount: what === 'amount' ? e.target.value : styleState.style.depositModalInputs.amount,
+            }
+        }))
+    }
 }
 
Index: components/blackjack/Blackjack.jsx
===================================================================
--- components/blackjack/Blackjack.jsx	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ components/blackjack/Blackjack.jsx	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -10,4 +10,5 @@
 import Alert from '../Alert'
 import Notification from '../Notification'
+import LostConnection from '../LostConnection'
 
 const Blackjack = () => {
@@ -31,4 +32,6 @@
 
       <Notification/>
+
+      <LostConnection/>
     </div>
   )
Index: components/poker/Poker.jsx
===================================================================
--- components/poker/Poker.jsx	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ components/poker/Poker.jsx	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -8,4 +8,5 @@
 import Notification from '../Notification'
 import PokerSections from './PokerSections'
+import LostConnection from '../LostConnection'
 
 const Poker = () => {
@@ -25,4 +26,6 @@
 
       <Notification/>
+
+      <LostConnection/>
     </div>
   )
Index: components/poker/PokerHeader.jsx
===================================================================
--- components/poker/PokerHeader.jsx	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ components/poker/PokerHeader.jsx	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -10,5 +10,5 @@
 import { useDispatch, useSelector } from 'react-redux'
 
-import { setPlayer, setPokerGame, setSocket } from '../../redux/reducers/playerSlice'
+import { setPlayer, setPokerGame } from '../../redux/reducers/playerSlice'
 import { setStyle } from '../../redux/reducers/styleSlice'
 
@@ -36,16 +36,4 @@
                 if (interval !== null) clearInterval(interval);
 
-                dispatch(setPlayer({
-                    ...playerState.player,
-                    displayName: res.data?.displayName,
-                    session_id: res.data?.session_id,
-                    credits: res.data?.credits,
-                }));
-
-                dispatch(setStyle({
-                    ...styleState.style,
-                    displayLoadingScreen: false,
-                }))
-
                 interval = setInterval(() => {
                     axios.get(`/api/poker?action=update_state&session_id=${localStorage.CAESSINO_SESSION_ID}`).then(newRes => {
@@ -56,10 +44,34 @@
                                 dispatch(setPlayer({
                                     ...playerState.player,
+                                    displayName: res.data?.displayName,
+                                    session_id: res.data?.session_id,
                                     credits: newRes.data?.pokerGame?.player?.credits,
                                 }))
                             }
                         }
+
+                        dispatch(setStyle({
+                            ...styleState.style,
+                            displayLoadingScreen: false,
+                            notification: {
+                                ...styleState.style.notification,
+                                show: false,
+                            },
+                            lostConnectionInfo: {
+                                show: false,
+                                message: ''
+                            }
+                        }))
+                    }).catch(error => {
+                        dispatch(setStyle({
+                            ...styleState.style,
+                            displayLoadingScreen: false,
+                            lostConnectionInfo: {
+                                show: true,
+                                message: 'Game will be played until the end upon server gets live. You cannot continue your game, but the money earned / lost will be updated.'
+                            }
+                        }))
                     });
-                }, 2000);
+                }, 1000);
             }
             else {
Index: components/poker/PokerSections.jsx
===================================================================
--- components/poker/PokerSections.jsx	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ components/poker/PokerSections.jsx	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -1,5 +1,4 @@
 import React from 'react'
 
-import Cards from './sections/Cards'
 import CardsInTheMiddle from './sections/CardsInTheMiddle'
 import Chairs from './sections/Chairs'
@@ -8,5 +7,5 @@
 import PickATable from './sections/PickATable'
 
-import { useSelector, useDispatch } from 'react-redux'
+import { useSelector } from 'react-redux'
 import Pot from './sections/Pot'
 import RaiseModal from './sections/RaiseModal'
@@ -21,6 +20,4 @@
 
           <Chairs/>
-
-          <Cards/>
 
           <CardsInTheMiddle/>
Index: mponents/poker/sections/Cards.jsx
===================================================================
--- components/poker/sections/Cards.jsx	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ 	(revision )
@@ -1,11 +1,0 @@
-import React from 'react'
-
-const Cards = () => {
-  return (
-    <div>
-        
-    </div>
-  )
-}
-
-export default Cards
Index: components/poker/sections/PickATable.jsx
===================================================================
--- components/poker/sections/PickATable.jsx	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ components/poker/sections/PickATable.jsx	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -6,5 +6,4 @@
 
 import axios from 'axios';
-import { setPokerGame } from '../../../redux/reducers/playerSlice';
 
 const PickATable = () => {
Index: components/roulette/BetModal.jsx
===================================================================
--- components/roulette/BetModal.jsx	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ components/roulette/BetModal.jsx	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -8,5 +8,4 @@
 
 import axios from 'axios';
-import { setPlayer, setRouletteGame } from '../../redux/reducers/playerSlice';
 
 const BetModal = () => {
Index: components/roulette/Roulette.jsx
===================================================================
--- components/roulette/Roulette.jsx	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ components/roulette/Roulette.jsx	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -8,4 +8,5 @@
 import Notification from '../Notification'
 import Sections from './Sections'
+import LostConnection from '../LostConnection'
 
 const Roulette = () => {
@@ -25,4 +26,6 @@
 
       <Notification/>
+
+      <LostConnection/>
     </div>
   )
Index: components/roulette/RouletteHeader.jsx
===================================================================
--- components/roulette/RouletteHeader.jsx	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ components/roulette/RouletteHeader.jsx	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -79,8 +79,34 @@
                                 dispatch(setPlayer({
                                     ...playerState.player,
+                                    displayName: res.data?.displayName,
+                                    session_id: res.data?.session_id,
                                     credits: newRes.data?.rouletteGame?.player?.credits,
                                 }))
                             }
                         }
+
+                        if (newRes.data?.extraAction && newRes.data?.extraAction !== "spin_wheel") {
+                            dispatch(setStyle({
+                                ...styleState.style,
+                                displayLoadingScreen: false,
+                                notification: {
+                                    ...styleState.style.notification,
+                                    show: false,
+                                },
+                                lostConnectionInfo: {
+                                    show: false,
+                                    message: ''
+                                }
+                            }))
+                        }
+                    }).catch(error => {
+                        dispatch(setStyle({
+                            ...styleState.style,
+                            displayLoadingScreen: false,
+                            lostConnectionInfo: {
+                                show: true,
+                                message: 'Game will resume upon reconnection to the server.'
+                            }
+                        }))
                     });
                 }, 1000);
@@ -97,9 +123,4 @@
                     showCoin: false,
                 }));
-
-                dispatch(setStyle({
-                    ...styleState.style,
-                    displayLoadingScreen: false,
-                }))
             }
             else {
Index: components/roulette/Timer.jsx
===================================================================
--- components/roulette/Timer.jsx	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ components/roulette/Timer.jsx	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -1,16 +1,8 @@
 import React from 'react'
 
-import { useEffect } from 'react';
-import { useDispatch, useSelector } from 'react-redux'
-import { setPlayer, setRouletteGame } from '../../redux/reducers/playerSlice';
-
-import axios from 'axios';
-import { setRoulette, setStyle } from '../../redux/reducers/styleSlice';
+import { useSelector } from 'react-redux'
 
 const Timer = () => {
-    const dispatch = useDispatch();
-
     const playerState = useSelector(state => state.player);
-    const styleState = useSelector(state => state.style);
 
     function getTimer() {
Index: pages/api/blackjack/index.js
===================================================================
--- pages/api/blackjack/index.js	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ pages/api/blackjack/index.js	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -6,5 +6,5 @@
 import { calculateEarnings, calculateSideBetEarnings } from './calculateEarnings';
 
-let rooms = []
+import { rooms, update_rooms_to_database } from '../postgre/index'
 
 /**
@@ -43,4 +43,6 @@
           game: rooms[session_id],
         })
+
+        update_rooms_to_database();
 
         return ;
@@ -99,4 +101,6 @@
               credits: postgreRes.data?.credits,
             })
+
+            update_rooms_to_database();
           }
           else {
@@ -150,4 +154,6 @@
                 credits: postgreRes.data?.credits,
               })
+            
+              update_rooms_to_database();
             }
             else {
@@ -166,4 +172,6 @@
             earnings: rooms[session_id].earnings,
           })
+            
+          update_rooms_to_database();
         }
 
@@ -212,4 +220,6 @@
                 credits: postgreRes.data?.credits,
               })
+            
+              update_rooms_to_database();
             }
             else {
@@ -229,4 +239,6 @@
             sideBetEarnings: rooms[session_id].sideBetEarnings,
           })
+            
+          update_rooms_to_database();
         }
 
@@ -270,4 +282,6 @@
               credits: postgreRes.data?.credits,
             })
+            
+            update_rooms_to_database();
           }
         });
@@ -308,4 +322,6 @@
               credits: postgreRes.data?.credits,
             })
+            
+            update_rooms_to_database();
           }
           else {
@@ -340,4 +356,6 @@
         success: true,
       })
+            
+      update_rooms_to_database();
     }
 
@@ -390,4 +408,6 @@
             credits: postgreRes.data?.credits,
           })
+            
+          update_rooms_to_database();
         }
         else {
Index: pages/api/postgre/index.js
===================================================================
--- pages/api/postgre/index.js	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ pages/api/postgre/index.js	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -275,4 +275,190 @@
     /**
      * /---------------------- POST ----------------------/
+     * Deposits money from credit card to game account.
+     * @action register
+     * @param session_id
+     * @param data
+     */
+    if (body?.action === 'deposit') {
+      // checks
+      if (body?.session_id == "undefined" || body?.session_id == "null" || body?.session_id == "") {
+        res.json({
+          success: false,
+          message: 'You are not logged in. Please log in first.',
+        });
+        return ;
+      }
+      if (body?.data?.name == "undefined" || body?.data?.name == "null" || body?.data?.name == "") {
+        res.json({
+          success: false,
+          message: 'Name field cannot be empty',
+        });
+        return ;
+      }
+      if (body?.data?.card == "undefined" || body?.data?.card == "null" || body?.data?.card == "") {
+        res.json({
+          success: false,
+          message: 'Card numbers field cannot be empty',
+        });
+        return ;
+      }
+      if (body?.data?.expire == "undefined" || body?.data?.expire == "null" || body?.data?.expire == "") {
+        res.json({
+          success: false,
+          message: 'Expiration date field cannot be empty',
+        });
+        return ;
+      }
+      if (body?.data?.ccv == "undefined" || body?.data?.ccv == "null" || body?.data?.ccv == "") {
+        res.json({
+          success: false,
+          message: 'CCV field cannot be empty',
+        });
+        return ;
+      }
+      if (body?.data?.amount == "undefined" || body?.data?.amount == "null" || body?.data?.amount == "") {
+        res.json({
+          success: false,
+          message: 'Amount field cannot be empty',
+        });
+        return ;
+      }
+
+      let session = sessions.find(session => session.id === body?.session_id)
+
+      if (session) {
+        if (parseInt(body.data.amount) > 0) {
+          session.credits = session.credits + parseInt(body.data.amount)
+
+          pool.query('UPDATE players SET credits = $1 WHERE username = $2', [session.credits, session.username], (error, results) => {
+            if (error) throw error;
+            
+            res.json({
+              success: true,
+              credits: session.credits
+            })
+          });
+        }
+      }
+    }
+
+    /**
+     * /---------------------- POST ----------------------/
+     * Withdraws money from game account to personal account.
+     * @action register
+     * @param session_id
+     * @param data
+     */
+     if (body?.action === 'withdraw') {
+      // checks
+      if (body?.session_id == "undefined" || body?.session_id == "null" || body?.session_id == "") {
+        res.json({
+          success: false,
+          message: 'You are not logged in. Please log in first.',
+        });
+        return ;
+      }
+      if (body?.data?.citibank == "undefined" || body?.data?.citibank == "null" || body?.data?.citibank == "") {
+        res.json({
+          success: false,
+          message: 'Bank name field cannot be empty',
+        });
+        return ;
+      }
+      if (body?.data?.iban == "undefined" || body?.data?.iban == "null" || body?.data?.iban == "") {
+        res.json({
+          success: false,
+          message: 'IBAN code field cannot be empty',
+        });
+        return ;
+      }
+      if (body?.data?.bic == "undefined" || body?.data?.bic == "null" || body?.data?.bic == "") {
+        res.json({
+          success: false,
+          message: 'BIC code field cannot be empty',
+        });
+        return ;
+      }
+      if (body?.data?.beneficiary == "undefined" || body?.data?.beneficiary == "null" || body?.data?.beneficiary == "") {
+        res.json({
+          success: false,
+          message: 'Beneficiary name field cannot be empty',
+        });
+        return ;
+      }
+      if (body?.data?.address == "undefined" || body?.data?.address == "null" || body?.data?.address == "") {
+        res.json({
+          success: false,
+          message: 'Bank address field cannot be empty',
+        });
+        return ;
+      }
+      if (body?.data?.amount == "undefined" || body?.data?.amount == "null" || body?.data?.amount == "") {
+        res.json({
+          success: false,
+          message: 'Amount field cannot be empty',
+        });
+        return ;
+      }
+
+      let session = sessions.find(session => session.id === body?.session_id)
+
+      if (session) {
+        if (parseInt(body.data.amount) > 0) {
+          session.credits = Math.max(session.credits - parseInt(body.data.amount), 0)
+
+          pool.query('UPDATE players SET credits = $1 WHERE username = $2', [session.credits, session.username], (error, results) => {
+            if (error) throw error;
+
+            res.json({
+              success: true,
+              credits: session.credits
+            })
+          });
+        }
+      }
+    }
+
+    /**
+     * /---------------------- POST ----------------------/
+     * Sends a complaint.
+     * @action complain
+     * @param session_id
+     * @param description
+     */
+     if (body?.action === 'complain') {
+      // checks
+      if (body?.session_id == "undefined" || body?.session_id == "null" || body?.session_id == "") {
+        res.json({
+          success: false,
+          message: 'You are not logged in. Please log in first.',
+        });
+        return ;
+      }
+      if (body?.description == "undefined" || body?.description == "null" || body?.description == "") {
+        res.json({
+          success: false,
+          message: 'You cannot submit an empty complaint.',
+        });
+        return ;
+      }
+
+      let session = sessions.find(session => session.id === body.session_id)
+
+      if (session) {
+        // date, by, description, answered
+        const date = new Date();
+        pool.query('INSERT INTO complaints (date, by, description, answered) VALUES ($1, $2, $3, $4)', [date, session.username, body.description, false], (error, complaintResults) => {
+          if (error) throw error;
+
+          res.json({
+            success: true,
+          })
+        });
+      }
+    }
+
+    /**
+     * /---------------------- POST ----------------------/
      * Checks if the entered account info is good, and registers a new user in the database if so.
      * @action register
@@ -539,3 +725,40 @@
 }
 load_game_from_database();
- 
+
+/**
+ *  Blackjack game data
+ */
+export var rooms = []
+  
+export function update_rooms_to_database() {
+  let tmpRooms = [];
+  
+  for (let key in rooms) {
+    if (key === "loaded") continue ;
+
+    tmpRooms.push(rooms[key]);
+    tmpRooms[tmpRooms.length - 1].id = key;
+  }
+
+  pool.query('UPDATE blackjack SET data = $1 WHERE identifier = $2', [JSON.stringify(tmpRooms), 'blackjack_data'], (error, results) => {
+    if (error) throw error;
+  });
+}
+     
+export async function load_rooms_from_database() {
+  pool.query('SELECT data FROM blackjack WHERE identifier = $1', ['blackjack_data'], (error, results) => {
+    if (error) throw error;
+
+    if (results?.rows[0]?.data) {
+      const tmpRooms = JSON.parse(results.rows[0].data);
+
+      tmpRooms.forEach(room => {
+        rooms[room.id] = {...room, id: ''}
+      })
+      
+      rooms["loaded"] = true;
+    }
+  });
+}
+load_rooms_from_database();
+  
Index: pages/api/roulette/calculateWinnings.js
===================================================================
--- pages/api/roulette/calculateWinnings.js	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
+++ pages/api/roulette/calculateWinnings.js	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -0,0 +1,49 @@
+export function getWinningBets(magicNumber) {
+    let winningBets = [];
+    winningBets.push(magicNumber);
+    
+    if (magicNumber != 0) {
+        if ((magicNumber <= 9 && magicNumber % 2 == 1) || (magicNumber > 10 && magicNumber <= 18 && magicNumber % 2 == 0) ||
+            (magicNumber > 19 && magicNumber <= 27 && magicNumber % 2 == 1) || (magicNumber > 27 && magicNumber % 2 == 0)) {
+
+            winningBets.push('Red');
+        }
+        else {
+            winningBets.push('Black');
+        }
+
+        if (magicNumber % 2 === 0)      winningBets.push('Even');
+        else                            winningBets.push('Odd');
+
+        if (magicNumber <= 12)          winningBets.push('1-12');
+        else if (magicNumber <= 24)     winningBets.push('13-24');
+        else                            winningBets.push('25-36');
+
+        if (magicNumber <= 18)          winningBets.push('1-18');
+        else                            winningBets.push('19-36');
+
+        if (magicNumber % 3 === 0)      winningBets.push('Remainder3');
+        else if (magicNumber % 3 === 2) winningBets.push('Remainder2');
+        else                            winningBets.push('Remainder1');
+    }
+
+    return winningBets;
+}
+
+export function calculateWinnings(player) {
+    if (player.outcome === 'lost') return 0;
+
+    let bets = player.whichBets;
+    let bet = player.betAmount;
+
+    if (bets[0] === 'Even' || bets[0] === 'Odd') return 2 * bet;
+    else if (bets[0] === 'Red' || bets[0] === 'Black') return 2 * bet;
+    else if (bets[0].includes('Remainder')) return 3 * bet;
+    else if (bets[0] === '1-12' || bets[0] === '13-24' || bets[0] === '25-36') return 3 * bet;
+    else if (bets[0] === '1-18' || bets[0] === '19-36') return 2 * bet;
+    else if (bets.length === 4) return 9 * bet;
+    else if (bets.length === 2) return 18 * bet;
+    else if (bets.length === 1) return 36 * bet;
+
+    return 0;
+}
Index: pages/api/roulette/gameStates.js
===================================================================
--- pages/api/roulette/gameStates.js	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
+++ pages/api/roulette/gameStates.js	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -0,0 +1,113 @@
+import { calculateWinnings } from './calculateWinnings'
+
+import { game } from '../postgre/index'
+
+import axios from 'axios';
+
+export let samplePlayer = {
+    session_id: '',
+    name: '',
+    whichBets: [],
+    coinPlaced: {
+        x: -1,
+        y: -1,                
+    },
+    credits: -1,
+    betAmount: 0,
+    wonAmount: 0,
+    status: '_1_',
+    outcome: 'none',
+    gotResults: false,
+}
+
+export function resetGame() {
+    game.magicNumber = -1;
+    game.winningBets = [];
+    game.status = '_1_ongoing_timer';
+
+    game.players.forEach(player => {
+        player.whichBets = [];
+        player.betAmount = 0;
+        player.wonAmount = 0;
+        player.coinPlaced = {
+            x: -1,
+            y: -1,                
+        },
+        player.outcome = 'none';
+        player.status = '_1_no_placed_bet';
+        player.gotResults = false;
+    })
+}
+
+export function updateGameWithWinners() {
+    for (let i = 0; i < game.players.length; i++) {
+        const player = game.players[i];
+
+        let playerWon = false;
+        player.whichBets.forEach(bet => {
+            if (game.winningBets.indexOf(bet) !== -1) {
+                playerWon = true;
+            }
+        })
+
+        if (playerWon) {
+            player.outcome = 'won';
+        }
+        else {
+            player.outcome = 'lost';
+        }
+
+        player.wonAmount = calculateWinnings(player);
+
+        axios.get(`${process.env.HOME_URL}/api/postgre/?action=add_credits&session_id=${player.session_id}&credits=${player.wonAmount}&game=roulette&outcome=${player.outcome}`).then(postgreRes => {
+            if (postgreRes.data?.success) {
+                player.credits = postgreRes.data?.credits;
+            }
+        });
+    }
+}
+
+export function addPlayer(session_id, name) {
+    if (game.players.map(e=>e.session_id).indexOf(session_id) === -1) {
+        game.players.push({
+            session_id: session_id,
+            name: name,
+            whichBets: [],
+            coinPlaced: {
+                x: -1,
+                y: -1,                
+            },
+            credits: -1,
+            betAmount: 0,
+            wonAmount: 0,
+            status: '_1_no_placed_bet',
+            outcome: 'none',
+            gotResults: false,
+        })
+    }
+}
+
+export function getPlayer(session_id) {
+    const playerIdx = game.players.map(e=>e.session_id).indexOf(session_id);
+
+    if (playerIdx !== -1) {
+        return {
+            success: true,
+            player: game.players[playerIdx],
+        }
+    }
+
+    return {
+        success: false,
+        player: {...samplePlayer},
+    };
+}
+
+export function restrictGameInfo() {
+    const restrictedPlayers = game.players.map(player=>({...player, session_id: ""}))
+
+    return {
+        ...game,
+        players: restrictedPlayers,
+    }
+}
Index: pages/api/roulette/index.js
===================================================================
--- pages/api/roulette/index.js	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ pages/api/roulette/index.js	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -5,116 +5,7 @@
 require('dotenv').config();
 
-let samplePlayer = {
-    session_id: '',
-    name: '',
-    whichBets: [],
-    coinPlaced: {
-        x: -1,
-        y: -1,                
-    },
-    credits: -1,
-    betAmount: 0,
-    wonAmount: 0,
-    status: '_1_',
-    outcome: 'none',
-    gotResults: false,
-}
+import { resetGame, updateGameWithWinners, addPlayer, getPlayer, restrictGameInfo } from './gameStates'
 
-function getWinningBets(magicNumber) {
-    let winningBets = [];
-    winningBets.push(magicNumber);
-    
-    if (magicNumber != 0) {
-        if ((magicNumber <= 9 && magicNumber % 2 == 1) || (magicNumber > 10 && magicNumber <= 18 && magicNumber % 2 == 0) ||
-            (magicNumber > 19 && magicNumber <= 27 && magicNumber % 2 == 1) || (magicNumber > 27 && magicNumber % 2 == 0)) {
-
-            winningBets.push('Red');
-        }
-        else {
-            winningBets.push('Black');
-        }
-
-        if (magicNumber % 2 === 0)      winningBets.push('Even');
-        else                            winningBets.push('Odd');
-
-        if (magicNumber <= 12)          winningBets.push('1-12');
-        else if (magicNumber <= 24)     winningBets.push('13-24');
-        else                            winningBets.push('25-36');
-
-        if (magicNumber <= 18)          winningBets.push('1-18');
-        else                            winningBets.push('19-36');
-
-        if (magicNumber % 3 === 0)      winningBets.push('Remainder3');
-        else if (magicNumber % 3 === 2) winningBets.push('Remainder2');
-        else                            winningBets.push('Remainder1');
-    }
-
-    return winningBets;
-}
-
-function updateGameWithWinners() {
-    for (let i = 0; i < game.players.length; i++) {
-        const player = game.players[i];
-
-        let playerWon = false;
-        player.whichBets.forEach(bet => {
-            if (game.winningBets.indexOf(bet) !== -1) {
-                playerWon = true;
-            }
-        })
-
-        if (playerWon) {
-            player.outcome = 'won';
-        }
-        else {
-            player.outcome = 'lost';
-        }
-
-        player.wonAmount = calculateWinnings(player);
-
-        axios.get(`${process.env.HOME_URL}/api/postgre/?action=add_credits&session_id=${player.session_id}&credits=${player.wonAmount}&game=roulette&outcome=${player.outcome}`).then(postgreRes => {
-            if (postgreRes.data?.success) {
-                player.credits = postgreRes.data?.credits;
-            }
-        });
-    }
-}
-
-function resetGame() {
-    game.magicNumber = -1;
-    game.winningBets = [];
-    game.status = '_1_ongoing_timer';
-
-    game.players.forEach(player => {
-        player.whichBets = [];
-        player.betAmount = 0;
-        player.wonAmount = 0;
-        player.coinPlaced = {
-            x: -1,
-            y: -1,                
-        },
-        player.outcome = 'none';
-        player.status = '_1_no_placed_bet';
-        player.gotResults = false;
-    })
-}
-
-function calculateWinnings(player) {
-    if (player.outcome === 'lost') return 0;
-
-    let bets = player.whichBets;
-    let bet = player.betAmount;
-
-    if (bets[0] === 'Even' || bets[0] === 'Odd') return 2 * bet;
-    else if (bets[0] === 'Red' || bets[0] === 'Black') return 2 * bet;
-    else if (bets[0].includes('Remainder')) return 3 * bet;
-    else if (bets[0] === '1-12' || bets[0] === '13-24' || bets[0] === '25-36') return 3 * bet;
-    else if (bets[0] === '1-18' || bets[0] === '19-36') return 2 * bet;
-    else if (bets.length === 4) return 9 * bet;
-    else if (bets.length === 2) return 18 * bet;
-    else if (bets.length === 1) return 36 * bet;
-
-    return 0;
-}
+import { getWinningBets } from './calculateWinnings'
 
 (function() {
@@ -151,49 +42,4 @@
     game.winningBets = [];
     game.players = [];
-}
-
-function addPlayer(session_id, name) {
-    if (game.players.map(e=>e.session_id).indexOf(session_id) === -1) {
-        game.players.push({
-            session_id: session_id,
-            name: name,
-            whichBets: [],
-            coinPlaced: {
-                x: -1,
-                y: -1,                
-            },
-            credits: -1,
-            betAmount: 0,
-            wonAmount: 0,
-            status: '_1_no_placed_bet',
-            outcome: 'none',
-            gotResults: false,
-        })
-    }
-}
-
-export function getPlayer(session_id) {
-    const playerIdx = game.players.map(e=>e.session_id).indexOf(session_id);
-
-    if (playerIdx !== -1) {
-        return {
-            success: true,
-            player: game.players[playerIdx],
-        }
-    }
-
-    return {
-        success: false,
-        player: {...samplePlayer},
-    };
-}
-
-export function restrictGameInfo() {
-    const restrictedPlayers = game.players.map(player=>({...player, session_id: ""}))
-
-    return {
-        ...game,
-        players: restrictedPlayers,
-    }
 }
 
Index: pages/index.js
===================================================================
--- pages/index.js	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ pages/index.js	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -11,4 +11,5 @@
 import Stats from '../components/Stats'
 import ManageCredits from '../components/ManageCredits'
+import ComplainScreen from '../components/Complain'
 
 export default function Home() {
@@ -49,4 +50,6 @@
 
       <ManageCredits/>
+
+      <ComplainScreen/>
     </div>
   )
Index: redux/reducers/styleSlice.js
===================================================================
--- redux/reducers/styleSlice.js	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ redux/reducers/styleSlice.js	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -56,4 +56,32 @@
         // manage credits
         displayManageCreditsScreen: false,
+        displayDepositModal: false,
+        depositModalInputs: {
+            name: '',
+            card: '',
+            expire: '',
+            ccv: '',
+            amount: '',
+        },
+        displayWithdrawModal: false,
+        withdrawModalInputs: {
+            citibank: '',
+            iban: '',
+            bic: '',
+            beneficiary: '',
+            address: '',
+            amount: '',
+        },
+        // complain
+        displayComplainScreen: false,
+        complainScreenInfo: {
+            setFocus: true,
+            description: '',
+        },
+        // lost connection
+        lostConnectionInfo: {
+            show: false,
+            message: ''
+        }
     },
     // blackjack
Index: styles/globals.css
===================================================================
--- styles/globals.css	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ styles/globals.css	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -418,5 +418,11 @@
 }
 
+.manageCreditsScreen .inlineAlert {
+  font-size: 1.5rem !important;
+  cursor: auto;
+}
+
 .manageCreditsScreen svg {
+  z-index: 100;
   cursor: pointer;
   font-size: 2.5rem;
@@ -424,5 +430,12 @@
 }
 
-.manageCreditsScreen > div h1 {
+.manageCreditsScreen > div {
+  top: 0%;
+  -webkit-transform: translate(-50%, 0);
+          transform: translate(-50%, 0);
+  width: 100%;
+}
+
+.manageCreditsScreen > div h2 {
   font-size: 1.5rem;
   margin-bottom: 1rem;
@@ -434,6 +447,71 @@
 }
 
-.manageCreditsScreen > div button {
+.manageCreditsScreen > div button span {
+  color: white;
+}
+
+.manageCreditsScreen > div > div:not(.main) {
+  margin-top: 5vh;
+  height: 15vh;
+}
+
+.manageCreditsScreen > div > div.main {
+  height: 70vh;
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+}
+
+.manageCreditsScreen > div > div.main > div {
+  -webkit-box-flex: 1;
+      -ms-flex: 1;
+          flex: 1;
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-orient: vertical;
+  -webkit-box-direction: normal;
+      -ms-flex-direction: column;
+          flex-direction: column;
+  -webkit-box-pack: center;
+      -ms-flex-pack: center;
+          justify-content: center;
+  -webkit-box-align: center;
+      -ms-flex-align: center;
+          align-items: center;
+}
+
+.manageCreditsScreen > div > div.main > div .fs-inputs-container {
+  width: 40%;
+}
+
+.manageCreditsScreen > div > div.main > div .fs-inputs-container > div {
   width: 100%;
+}
+
+.manageCreditsScreen > div > div.main > div .fs-inputs-container > div label {
+  color: white;
+}
+
+.manageCreditsScreen > div > div.main > div .fs-inputs-container > div span {
+  color: #ead24d;
+}
+
+.manageCreditsScreen > div > div.main > div .fs-inputs-container > div input {
+  font-size: 1.2rem;
+  width: 100%;
+  text-align: center;
+}
+
+.complainScreen .inlineAlert {
+  cursor: auto;
+}
+
+.complainScreen > div > div textarea {
+  width: 50vw;
+  height: 40vh;
+  font-size: 2rem;
+  margin-top: 1rem;
+  margin-bottom: 3rem;
 }
 
@@ -454,4 +532,13 @@
 .loadingScreen h1 {
   font-size: 5rem;
+}
+
+.lostConnectionScreen h3 {
+  font-size: 2rem;
+  margin-bottom: 1rem;
+}
+
+.lostConnectionScreen h3:nth-child(2) {
+  color: white;
 }
 
Index: styles/globals.css.map
===================================================================
--- styles/globals.css.map	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ styles/globals.css.map	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -1,5 +1,5 @@
 {
     "version": 3,
-    "mappings": "AAAA,OAAO,CAAC,6FAAI;AAEZ,AAAA,IAAI;AACJ,IAAI,CAAC;EACH,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CAAC;EAIT,WAAW,EAAE,mBAAmB;EAEhC,QAAQ,EAAE,MAAM;CACjB;;AAED,AAAA,CAAC,CAAC;EACA,KAAK,EAAE,OAAO;EACd,eAAe,EAAE,IAAI;CACtB;;AAED,AAAA,CAAC,CAAC;EACA,UAAU,EAAE,UAAU;CACvB;;AAGD,AAAA,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;EACR,MAAM,EAAE,CAAC;CACV;;AAED,AAAA,IAAI,CAAC;EACH,KAAK,EAAE,KAAK;EAEZ,cAAc,EAAE,GAAG;EAEnB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EAEb,MAAM,EAAE,IAAI;EAEZ,QAAQ,EAAE,MAAM;EAEhB,eAAe,EAAE,KAAK;EACtB,iBAAiB,EAAE,SAAS;EAC5B,mBAAmB,EAAE,MAAM;EAE3B,UAAU,EAAE,MAAM;CACnB;;AAED;;IAEI;AACJ,AAAA,MAAM,AAAA,OAAO,CAAC;EACZ,OAAO,EAAE,IAAI;EACb,eAAe,EAAE,aAAa;EAC9B,WAAW,EAAE,MAAM;EAEnB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,IAAI;EAEhB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,CAAC;CA0CX;;AApDD,AAYE,MAZI,AAAA,OAAO,CAYX,KAAK,CAAC;EACJ,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,CAAC;EACf,aAAa,EAAE,IAAI;EAEnB,gBAAgB,EAAE,uBAAuB;EACzC,eAAe,EAAE,KAAK;EAEtB,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,wBAAwB;EAE1C,MAAM,EAAE,OAAO;CAChB;;AAvBH,AAyBE,MAzBI,AAAA,OAAO,CAyBX,EAAE,CAAC;EACD,MAAM,EAAE,OAAO;CAChB;;AA3BH,AA8BI,MA9BE,AAAA,OAAO,CA6BX,GAAG,CACD,EAAE,CAAC;EACD,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,GAAG;EACnB,eAAe,EAAE,IAAI;CAStB;;AA1CL,AAmCM,MAnCA,AAAA,OAAO,CA6BX,GAAG,CACD,EAAE,CAKA,EAAE,CAAC;EACD,YAAY,EAAE,IAAI;CAKnB;;AAzCP,AAsCQ,MAtCF,AAAA,OAAO,CA6BX,GAAG,CACD,EAAE,CAKA,EAAE,AAGC,WAAW,CAAC;EACX,YAAY,EAAE,CAAC;CAChB;;AAxCT,AA8CQ,MA9CF,AAAA,OAAO,CA6BX,GAAG,AAeA,qBAAqB,CACpB,EAAE,CACA,EAAE,CAAC;EACD,MAAM,EAAE,OAAO;CAChB;;AAMT;;;;IAII;AACJ,AAAA,cAAc,CAAC;EACb,KAAK,EAAE,KAAK;EAEZ,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,eAAe,EAAE,MAAM;EACvB,WAAW,EAAE,MAAM;EAEnB,UAAU,EAAE,IAAI;EAEhB,OAAO,EAAE,aAAa;EAEtB,gBAAgB,EAAE,kBAAiB;CAYpC;;AAxBD,AAcE,cAdY,CAcZ,EAAE,CAAC;EACD,KAAK,EAAE,OAAO;EACd,WAAW,EAAE,OAAO;EACpB,SAAS,EAAE,MAAM;CAClB;;AAlBH,AAoBE,cApBY,CAoBZ,EAAE,CAAC;EACD,UAAU,EAAE,IAAI;EAChB,WAAW,EAAE,OAAO;CACrB;;AAGH;;;;IAII;AACJ,AAAA,MAAM,CAAC;EACL,OAAO,EAAE,EAAE;EAEX,KAAK,EAAE,KAAK;EAEZ,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,eAAe,EAAE,MAAM;EACvB,WAAW,EAAE,MAAM;EAEnB,OAAO,EAAE,aAAa;EAEtB,gBAAgB,EAAE,kBAAiB;EAEnC,QAAQ,EAAE,QAAQ;EAElB,SAAS,EAAE,gBAAgB;EAE3B,UAAU,EAAE,YAAY;CAiBzB;;AAnCD,AAoBE,MApBI,CAoBJ,EAAE,CAAC;EACD,KAAK,EAAE,OAAO;EACd,WAAW,EAAE,OAAO;EACpB,SAAS,EAAE,MAAM;CAClB;;AAxBH,AA0BE,MA1BI,CA0BJ,EAAE,CAAC;EACD,UAAU,EAAE,IAAI;EAChB,WAAW,EAAE,OAAO;CACrB;;AA7BH,AA+BE,MA/BI,CA+BJ,MAAM,CAAC;EACL,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,IAAI;CACjB;;AAGH;;;;IAII;AACJ,AAAA,aAAa,CAAC;EACZ,OAAO,EAAE,EAAE;EAEX,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,IAAI;EACT,KAAK,EAAE,IAAI;EAEX,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,KAAK;EAEjB,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,eAAe,EAAE,MAAM;EACvB,WAAW,EAAE,QAAQ;EAsBrB,SAAS,EAAE,IAAI;EAEf,OAAO,EAAE,IAAI;EACb,aAAa,EAAE,IAAI;EAEnB,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB;CAC3C;;AAzCD,AAeE,aAfW,CAeX,GAAG,CAAC;EACF,MAAM,EAAE,OAAO;CAChB;;AAjBH,AAmBE,aAnBW,GAmBT,GAAG,CAAC;EACJ,IAAI,EAAE,CAAC;EAEP,KAAK,EAAE,IAAI;EAEX,OAAO,EAAE,IAAI;EACb,eAAe,EAAE,MAAM;EACvB,WAAW,EAAE,MAAM;EAEnB,SAAS,EAAE,MAAM;EAEjB,aAAa,EAAE,MAAM;EAErB,UAAU,EAAE,MAAM;CACnB;;AAUH;;;;IAII;AACJ,AAAA,YAAY,CAAC;EACX,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,GAAG;EACnB,eAAe,EAAE,aAAa;EAC9B,WAAW,EAAE,MAAM;EAEnB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,IAAI;CA2EjB;;AAnFD,AAUE,YAVU,CAUV,WAAW,CAAC;EACV,UAAU,EAAE,cAAc;EAC1B,MAAM,EAAE,OAAO;EAEf,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,eAAe,EAAE,MAAM;EACvB,WAAW,EAAE,MAAM;CAyDpB;;AA1EH,AAmBI,YAnBQ,CAUV,WAAW,CAST,YAAY,CAAC;EACX,UAAU,EAAE,cAAc;EAE1B,KAAK,EAAE,IAAI;EACX,YAAY,EAAE,CAAC;EAEf,aAAa,EAAE,IAAI;EAEnB,UAAU,EAAE,iDAAiD;EAC7D,OAAO,EAAE,GAAG;EAEZ,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;CASvB;;AAxCL,AAiCM,YAjCM,CAUV,WAAW,CAST,YAAY,CAcV,OAAO,CAAC;EACN,aAAa,EAAE,IAAI;EACnB,KAAK,EAAE,GAAG;EACV,eAAe,EAAE,KAAK;EACtB,MAAM,EAAE,IAAI;EACZ,YAAY,EAAE,CAAC;CAChB;;AAvCP,AA0CI,YA1CQ,CAUV,WAAW,CAgCT,EAAE,CAAC;EACD,UAAU,EAAE,cAAc;EAE1B,WAAW,EAAE,OAAO;EACpB,UAAU,EAAE,IAAI;EAEhB,OAAO,EAAE,CAAC;CACX;;AAjDL,AAmDI,YAnDQ,CAUV,WAAW,CAyCT,EAAE,AAAA,QAAQ,CAAC;EACT,KAAK,EAAE,KAAK;EACZ,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,KAAK;EACZ,GAAG,EAAE,IAAI;EACT,IAAI,EAAE,IAAI;EACV,SAAS,EAAE,qBAAqB;EAEhC,SAAS,EAAE,IAAI;EAEf,OAAO,EAAE,EAAE;CACZ;;AA9DL,AAiEM,YAjEM,CAUV,WAAW,AAsDR,MAAM,CACL,YAAY,CAAC;EACX,SAAS,EAAE,UAAU;EACrB,OAAO,EAAE,CAAC;CACX;;AApEP,AAsEM,YAtEM,CAUV,WAAW,AAsDR,MAAM,CAML,EAAE,CAAC;EACD,OAAO,EAAE,CAAC;CACX;;AAxEP,AA8EM,YA9EM,AA4ET,MAAM,CACL,WAAW,CACT,YAAY,CAAC;EACX,OAAO,EAAE,YAAY;CACtB;;AAKP;;IAEI;AACJ,AAAA,WAAW,CAAC;EACV,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,IAAI,EAAE,CAAC;EAEP,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EAEb,UAAU,EAAE,2CAA2C;EACvD,KAAK,EAAE,OAAO;EAEd,OAAO,EAAE,EAAE;CACZ;;AAED,AACE,YADU,GACR,GAAG,CAAC;EACJ,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,IAAI;EACT,IAAI,EAAE,IAAI;EACV,SAAS,EAAE,qBAAqB;CACjC;;AAGH,AACE,oBADkB,GAChB,GAAG,CAAC;EACJ,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,MAAM;EAClB,KAAK,EAAE,WAAW;EAElB,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,eAAe,EAAE,MAAM;EACvB,WAAW,EAAE,MAAM;CAgBpB;;AAzBH,AAWI,oBAXgB,GAChB,GAAG,GAUD,IAAI,CAAC;EACL,aAAa,EAAE,KAAK;EAEpB,SAAS,EAAE,MAAM;CAClB;;AAfL,AAiBI,oBAjBgB,GAChB,GAAG,GAgBD,KAAK,CAAC;EACN,aAAa,EAAE,IAAI;EAEnB,YAAY,EAAE,GAAG;EACjB,aAAa,EAAE,GAAG;EAElB,SAAS,EAAE,IAAI;CAChB;;AAIL,AACE,YADU,CACV,GAAG,CAAC;EACF,MAAM,EAAE,OAAO;EACf,SAAS,EAAE,MAAM;EACjB,KAAK,EAAE,KAAK;CACb;;AALH,AAQI,YARQ,GAOR,GAAG,CACH,EAAE,CAAC;EACD,SAAS,EAAE,MAAM;EACjB,aAAa,EAAE,IAAI;CACpB;;AAXL,AAaI,YAbQ,GAOR,GAAG,CAMH,CAAC,CAAC;EACA,OAAO,EAAE,IAAI;EACb,eAAe,EAAE,aAAa;EAE9B,SAAS,EAAE,MAAM;EACjB,aAAa,EAAE,IAAI;CASpB;;AA3BL,AAoBM,YApBM,GAOR,GAAG,CAMH,CAAC,AAOE,UAAW,CAAA,EAAE,EAAE;EACd,KAAK,EAAE,KAAK;CACb;;AAtBP,AAwBM,YAxBM,GAOR,GAAG,CAMH,CAAC,CAWC,IAAI,CAAC;EACH,WAAW,EAAE,IAAI;CAClB;;AAKP,AACE,oBADkB,CAClB,GAAG,CAAC;EACF,MAAM,EAAE,OAAO;EACf,SAAS,EAAE,MAAM;EACjB,KAAK,EAAE,KAAK;CACb;;AALH,AAQI,oBARgB,GAOhB,GAAG,CACH,EAAE,CAAC;EACD,SAAS,EAAE,MAAM;EACjB,aAAa,EAAE,IAAI;CACpB;;AAXL,AAaI,oBAbgB,GAOhB,GAAG,CAMH,CAAC,CAAC;EACA,aAAa,EAAE,IAAI;EACnB,KAAK,EAAE,KAAK;CACb;;AAhBL,AAkBI,oBAlBgB,GAOhB,GAAG,CAWH,MAAM,CAAC;EACL,KAAK,EAAE,IAAI;CACZ;;AAIL,AAAA,YAAY,CAAC;EACX,MAAM,EAAE,OAAO;EAEf,gBAAgB,EAAE,OAAO;EACzB,OAAO,EAAE,YAAY;EACrB,aAAa,EAAE,IAAI;EAEnB,KAAK,EAAE,OAAO;EACd,SAAS,EAAE,iBAAiB;EAC5B,WAAW,EAAE,GAAG;EAChB,cAAc,EAAE,OAAO;CACxB;;AAED;;IAEI;AACJ,AACE,cADY,CACZ,EAAE,CAAC;EACD,SAAS,EAAE,IAAI;CAChB;;AAGH;;IAEI;AAEJ;;IAEI;AACJ,AAAA,cAAc,CAAC;EACb,UAAU,EAAE,2CAA2C;EACvD,KAAK,EAAE,OAAO;EAEd,OAAO,EAAE,IAAI;EACb,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,IAAI;EAEnB,SAAS,EAAE,MAAM;EACjB,WAAW,EAAE,IAAI;EACjB,OAAO,EAAE,QAAQ;EAEjB,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB;EAE1C,MAAM,EAAE,OAAO;EACf,UAAU,EAAE,cAAc;CAW3B;;AA1BD,AAiBE,cAjBY,AAiBX,MAAM,CAAC;EACN,SAAS,EAAE,UAAU,CAAC,cAAc;CAErC;;AApBH,AAsBE,cAtBY,AAsBX,OAAO,CAAC;EACP,UAAU,EAAE,WAAW;EACvB,SAAS,EAAE,QAAQ,CAAC,cAAc;CACnC;;AAGH,AAAA,gBAAgB,CAAC;EACf,UAAU,EAAE,2CAA2C;EACvD,KAAK,EAAE,KAAK;EAEZ,OAAO,EAAE,IAAI;EACb,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,IAAI;EAEnB,SAAS,EAAE,MAAM;EACjB,WAAW,EAAE,IAAI;EACjB,OAAO,EAAE,QAAQ;EAEjB,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB;EAE1C,MAAM,EAAE,OAAO;EACf,UAAU,EAAE,cAAc;CAW3B;;AA1BD,AAiBE,gBAjBc,AAiBb,MAAM,CAAC;EACN,SAAS,EAAE,UAAU,CAAC,cAAc;CAErC;;AApBH,AAsBE,gBAtBc,AAsBb,OAAO,CAAC;EACP,UAAU,EAAE,WAAW;EACvB,SAAS,EAAE,QAAQ,CAAC,cAAc;CACnC;;AAGH,AAAA,eAAe,CAAC;EACd,UAAU,EAAE,2CAA2C;EACvD,KAAK,EAAE,KAAK;EAEZ,OAAO,EAAE,IAAI;EACb,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,IAAI;EAEnB,SAAS,EAAE,MAAM;EACjB,WAAW,EAAE,IAAI;EACjB,OAAO,EAAE,QAAQ;EAEjB,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB;EAE1C,MAAM,EAAE,OAAO;EACf,UAAU,EAAE,cAAc;CAU3B;;AAzBD,AAiBE,eAjBa,AAiBZ,MAAM,CAAC;EACN,UAAU,EAAE,2CAA2C;CACxD;;AAnBH,AAqBE,eArBa,AAqBZ,OAAO,CAAC;EACP,UAAU,EAAE,WAAW;EACvB,UAAU,EAAE,2CAA2C;CACxD;;AAGH;;IAEI;AACJ,AAAA,cAAc,CAAC;EACb,kBAAkB,EAAE,IAAI;EACxB,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,IAAI;EACZ,UAAU,EAAE,OAAO;EACnB,OAAO,EAAE,IAAI;EACb,aAAa,EAAE,IAAI;EACnB,kBAAkB,EAAE,GAAG;EACvB,UAAU,EAAE,WAAW;EAEvB,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB;CAChD;;AAED,AAAA,cAAc,AAAA,MAAM,CAAC;EACnB,OAAO,EAAE,CAAC;CACX;;AAED,AAAA,cAAc,AAAA,sBAAsB,CAAC;EACnC,kBAAkB,EAAE,IAAI;EACxB,UAAU,EAAE,IAAI;EAChB,OAAO,EAAE,IAAI;EACb,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,GAAG;EAClB,UAAU,EAAE,4BAA4B;EACxC,eAAe,EAAE,OAAO;EACxB,gBAAgB,EAAE,OAAO;EACzB,MAAM,EAAE,OAAO;CAChB;;AAED,AAAA,cAAc,AAAA,kBAAkB,CAAC;EAC/B,UAAU,EAAE,IAAI;EAChB,OAAO,EAAE,IAAI;EACb,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,GAAG;EAClB,UAAU,EAAE,4BAA4B;EACxC,eAAe,EAAE,OAAO;EACxB,gBAAgB,EAAE,OAAO;EACzB,MAAM,EAAE,OAAO;CAChB;;AAED;;IAEI;AAEJ,WAAW;AACX,AAAA,mBAAmB,CAAC;EAClB,KAAK,EAAE,IAAI;CACZ;;AAED,WAAW;AACX,AAAA,yBAAyB,CAAC;EACxB,UAAU,EAAE,OAAO;CACpB;;AAED,YAAY;AACZ,AAAA,yBAAyB,CAAC;EACxB,UAAU,EAAE,OAAO;CACpB;;AAED,qBAAqB;AACrB,AAAA,yBAAyB,AAAA,MAAM,CAAC;EAC9B,UAAU,EAAE,OAAO;CACpB;;AAED;;IAEI;AACJ,AAAA,iBAAiB,CAAC;EAChB,QAAQ,EAAE,QAAQ;EAElB,IAAI,EAAE,CAAC;EACP,GAAG,EAAE,IAAI;EAET,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,IAAI;EAEZ,QAAQ,EAAE,MAAM;CAkBjB;;AA3BD,AAWE,iBAXe,GAWb,GAAG,CAAC;EACJ,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,GAAG;EACnB,eAAe,EAAE,MAAM;EACvB,WAAW,EAAE,MAAM;EAEnB,UAAU,EAAE,eAAe;CAS5B;;AA1BH,AAmBI,iBAnBa,GAWb,GAAG,GAQD,MAAM,CAAC;EACP,KAAK,EAAE,KAAK;CACb;;AArBL,AAuBI,iBAvBa,GAWb,GAAG,GAYD,MAAM,AAAA,UAAW,CAAA,CAAC,EAAE;EACpB,WAAW,EAAE,IAAI;CAClB;;AAIL,AAAA,KAAK,CAAC;EACJ,YAAY,EAAE,OAAO;EACrB,MAAM,EAAE,KAAK;EAEb,eAAe,EAAE,OAAO;EAExB,QAAQ,EAAE,QAAQ;EAElB,UAAU,EAAE,eAAe;EAE3B,aAAa,EAAE,IAAI;EAEnB,MAAM,EAAE,eAAe;CACxB;;AAED,AAAA,oBAAoB,CAAC;EACnB,QAAQ,EAAE,QAAQ;EAElB,SAAS,EAAE,qBAAqB;EAEhC,IAAI,EAAE,IAAI;EACV,GAAG,EAAE,MAAM;CACZ;;AAED,AAAA,uBAAuB,CAAC;EACtB,OAAO,EAAE,EAAE;EAEX,cAAc,EAAE,iBAAiB;EAEjC,QAAQ,EAAE,KAAK;EACf,IAAI,EAAE,IAAI;EACV,GAAG,EAAE,IAAI;EAET,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EAEZ,OAAO,EAAE,IAAI;EAEb,SAAS,EAAE,qBAAqB;EAEhC,UAAU,EAAE,+CAA+C;EAE3D,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB;EAE1C,aAAa,EAAE,IAAI;EAEnB,UAAU,EAAE,MAAM;CA0CnB;;AAhED,AAwBE,uBAxBqB,CAwBrB,uBAAuB,CAAC;EAKtB,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,KAAK,EAAE,IAAI;CAgCZ;;AA/DH,AAyBI,uBAzBmB,CAwBrB,uBAAuB,AACpB,YAAY,CAAC;EACZ,UAAU,EAAE,KAAK;CAClB;;AA3BL,AAiCI,uBAjCmB,CAwBrB,uBAAuB,CASrB,EAAE,CAAC;EACD,aAAa,EAAE,IAAI;EAEnB,KAAK,EAAE,OAAO;CACf;;AArCL,AAuCI,uBAvCmB,CAwBrB,uBAAuB,GAenB,GAAG,CAAC;EACJ,UAAU,EAAE,IAAI;CAsBjB;;AA9DL,AA0CM,uBA1CiB,CAwBrB,uBAAuB,GAenB,GAAG,CAGH,CAAC,CAAC;EACA,aAAa,EAAE,IAAI;EAEnB,OAAO,EAAE,SAAS;EAClB,aAAa,EAAE,GAAG;EAElB,MAAM,EAAE,OAAO;EAEf,UAAU,EAAE,eAAe;CAW5B;;AA7DP,AAoDQ,uBApDe,CAwBrB,uBAAuB,GAenB,GAAG,CAGH,CAAC,CAUC,IAAI,CAAC;EACH,SAAS,EAAE,MAAM;EACjB,KAAK,EAAE,OAAO;CACf;;AAvDT,AAyDQ,uBAzDe,CAwBrB,uBAAuB,GAenB,GAAG,CAGH,CAAC,AAeE,MAAM,CAAC;EACN,KAAK,EAAE,OAAO;EACd,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB;CAC3C;;AAMT,AAAA,oCAAoC,CAAC;EACnC,OAAO,EAAE,EAAE;EAEX,cAAc,EAAE,iBAAiB;EAEjC,QAAQ,EAAE,KAAK;EACf,IAAI,EAAE,IAAI;EACV,GAAG,EAAE,IAAI;EAET,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EAEZ,OAAO,EAAE,IAAI;EAEb,SAAS,EAAE,qBAAqB;EAEhC,UAAU,EAAE,+CAA+C;EAE3D,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB;EAE1C,aAAa,EAAE,IAAI;CAepB;;AAnCD,AAsBE,oCAtBkC,CAsBlC,CAAC,CAAC;EACA,aAAa,EAAE,IAAI;EAEnB,OAAO,EAAE,SAAS;EAClB,aAAa,EAAE,GAAG;EAElB,UAAU,EAAE,eAAe;CAM5B;;AAlCH,AA8BI,oCA9BgC,CAsBlC,CAAC,CAQC,IAAI,CAAC;EACH,SAAS,EAAE,MAAM;EACjB,KAAK,EAAE,KAAK;CACb;;AAIL;;IAEI;AACJ,AAAA,sBAAsB,CAAC;EACrB,gBAAgB,EAAE,OAAO;CAC1B;;AAED,AAAA,aAAa,CAAC;EACZ,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,KAAK;EACV,IAAI,EAAE,KAAK;EAEX,KAAK,EAAE,IAAI;CACZ;;AAED,AAAA,gBAAgB,CAAC;EACf,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,GAAG;EACR,IAAI,EAAE,GAAG;EAET,SAAS,EAAE,qBAAqB;EAEhC,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EAEZ,MAAM,EAAE,mBAAmB,EAAE,IAAI;CAClC;;AAED,AAAA,iBAAiB,CAAC;EAChB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,GAAG;EACR,IAAI,EAAE,GAAG;EAET,UAAU,EAAE,mBAAmB;EAE/B,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,IAAI;CACb;;AAED,AAAA,iBAAiB,CAAC;EAChB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,GAAG;EAER,KAAK,EAAE,KAAK;EAEZ,UAAU,EAAE,MAAM;EAElB,SAAS,EAAE,MAAM;CAClB;;AAED,AAAA,yBAAyB,CAAC;EACxB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,GAAG;EACR,KAAK,EAAE,EAAE;EAET,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EAEZ,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAsB;EAE3C,OAAO,EAAE,IAAI;EAEb,OAAO,EAAE,IAAI;EACb,kBAAkB,EAAE,yBAAyB;EAE7C,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,MAAM;CAMnB;;AAtBD,AAkBE,yBAlBuB,CAkBvB,CAAC,CAAC;EACA,SAAS,EAAE,UAAU;EACrB,UAAU,EAAE,KAAK;CAClB;;AAGH,AAAA,cAAc,CAAC;EACb,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,uBAAuB;EAC5B,IAAI,EAAE,WAAW;EAEjB,SAAS,EAAE,qBAAqB;EAEhC,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,eAAe,EAAE,MAAM;EACvB,WAAW,EAAE,MAAM;EACnB,GAAG,EAAE,GAAG;EAER,SAAS,EAAE,MAAM;EAEjB,KAAK,EAAE,KAAK;CACb;;AAED,AAAA,iBAAiB,CAAC;EAChB,OAAO,EAAE,EAAE;EAEX,cAAc,EAAE,MAAM;EACtB,eAAe,EAAE,MAAM;EACvB,WAAW,EAAE,MAAM;EAEnB,QAAQ,EAAE,KAAK;EACf,IAAI,EAAE,CAAC;EACP,GAAG,EAAE,CAAC;EAEN,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EAEb,UAAU,EAAE,SAAS;CAetB;;AA7BD,AAgBE,iBAhBe,CAgBf,CAAC,CAAC;EACA,aAAa,EAAE,IAAI;EAEnB,OAAO,EAAE,SAAS;EAClB,aAAa,EAAE,GAAG;EAElB,UAAU,EAAE,eAAe;CAM5B;;AA5BH,AAwBI,iBAxBa,CAgBf,CAAC,CAQC,IAAI,CAAC;EACH,SAAS,EAAE,MAAM;EACjB,KAAK,EAAE,OAAO;CACf;;AAIL,AAAA,gBAAgB,CAAC;EACf,OAAO,EAAE,EAAE;EAEX,cAAc,EAAE,MAAM;EACtB,eAAe,EAAE,MAAM;EACvB,WAAW,EAAE,MAAM;EAEnB,QAAQ,EAAE,KAAK;EACf,IAAI,EAAE,CAAC;EACP,GAAG,EAAE,CAAC;EAEN,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EAEb,UAAU,EAAE,SAAS;CAetB;;AA7BD,AAgBE,gBAhBc,CAgBd,CAAC,CAAC;EACA,aAAa,EAAE,IAAI;EAEnB,OAAO,EAAE,SAAS;EAClB,aAAa,EAAE,GAAG;EAElB,UAAU,EAAE,eAAe;CAM5B;;AA5BH,AAwBI,gBAxBY,CAgBd,CAAC,CAQC,IAAI,CAAC;EACH,SAAS,EAAE,MAAM;EACjB,KAAK,EAAE,OAAO;CACf;;AAIL;;IAEI;AACJ,AAAA,KAAK,CAAC;EACJ,SAAS,EAAE,mBAAmB;EAC9B,yBAAyB,EAAE,WAAW;CACvC;;AAED,UAAU,CAAV,OAAU;EACR,EAAE;IACA,SAAS,EAAE,qBAAqB,CAAC,aAAa;;EAEhD,GAAG;IACD,SAAS,EAAE,qBAAqB,CAAC,0BAA0B;;EAE7D,GAAG;IACD,SAAS,EAAE,qBAAqB,CAAC,0BAA0B;;EAE7D,GAAG;IACD,SAAS,EAAE,qBAAqB,CAAC,0BAA0B;;EAE7D,GAAG;IACD,SAAS,EAAE,qBAAqB,CAAC,0BAA0B;;EAE7D,GAAG;IACD,SAAS,EAAE,qBAAqB,CAAC,0BAA0B;;EAE7D,GAAG;IACD,SAAS,EAAE,qBAAqB,CAAC,2BAA2B;;EAE9D,GAAG;IACD,SAAS,EAAE,qBAAqB,CAAC,2BAA2B;;EAE9D,GAAG;IACD,SAAS,EAAE,qBAAqB,CAAC,2BAA2B;;EAE9D,GAAG;IACD,SAAS,EAAE,qBAAqB,CAAC,2BAA2B;;EAE9D,IAAI;IACF,SAAS,EAAE,qBAAqB,CAAC,2BAA2B;;;;AAIhE;;IAEI;AACJ,AACE,mBADiB,CACjB,yBAAyB,CAAC;EACxB,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,CAAC;EACP,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EAEb,gBAAgB,EAAE,IAAI;EAEtB,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,eAAe,EAAE,MAAM;EACvB,WAAW,EAAE,MAAM;EACnB,GAAG,EAAE,IAAI;CA0DV;;AAxEH,AAiBM,mBAjBa,CACjB,yBAAyB,CAevB,aAAa,GACT,KAAK,CAAC;EACN,aAAa,EAAE,IAAI;EAEnB,YAAY,EAAE,GAAG;EACjB,aAAa,EAAE,GAAG;EAElB,SAAS,EAAE,MAAM;EAEjB,YAAY,EAAE,IAAI;EAElB,aAAa,EAAE,KAAK;CACrB;;AA5BP,AAgCM,mBAhCa,CACjB,yBAAyB,GA8BrB,GAAG,AAAA,IAAK,CAAA,aAAa,IACnB,EAAE,CAAC;EACH,aAAa,EAAE,IAAI;CACpB;;AAlCP,AAoCM,mBApCa,CACjB,yBAAyB,GA8BrB,GAAG,AAAA,IAAK,CAAA,aAAa,IAKnB,GAAG,CAAC;EACJ,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,WAAW,EAAE,MAAM;EACnB,GAAG,EAAE,IAAI;EAET,KAAK,EAAE,KAAK;EACZ,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,IAAI;EAEnB,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,MAAM;CAuBnB;;AAtEP,AAiDQ,mBAjDW,CACjB,yBAAyB,GA8BrB,GAAG,AAAA,IAAK,CAAA,aAAa,IAKnB,GAAG,GAaD,GAAG,CAAC;EACJ,UAAU,EAAE,oBAAoB;EAEhC,KAAK,EAAE,IAAI;EAEX,OAAO,EAAE,SAAS;EAClB,aAAa,EAAE,KAAK;EAEpB,MAAM,EAAE,OAAO;EAEf,OAAO,EAAE,IAAI;EACb,qBAAqB,EAAE,yBAAyB;EAChD,WAAW,EAAE,MAAM;EAEnB,UAAU,EAAE,gBAAgB;CAM7B;;AArET,AAiEU,mBAjES,CACjB,yBAAyB,GA8BrB,GAAG,AAAA,IAAK,CAAA,aAAa,IAKnB,GAAG,GAaD,GAAG,AAgBF,MAAM,CAAC;EACN,SAAS,EAAE,WAAW;EACtB,UAAU,EAAE,qBAAqB;CAClC;;AApEX,AA2EI,mBA3Ee,CA0EjB,qBAAqB,CACnB,WAAW,CAAC;EACV,QAAQ,EAAE,QAAQ;EAElB,SAAS,EAAE,qBAAqB;EAEhC,KAAK,EAAE,KAAK;EACZ,YAAY,EAAE,CAAC;EAEf,aAAa,EAAE,GAAG;EAElB,MAAM,EAAE,mBAAmB;EAC3B,gBAAgB,EAAE,KAAK;EAEvB,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,MAAM;EAEnB,SAAS,EAAE,KAAK;CA8CjB;;AAzIL,AA6FM,mBA7Fa,CA0EjB,qBAAqB,CACnB,WAAW,AAkBR,OAAO,CAAC;EACP,MAAM,EAAE,kBAAkB;EAC1B,gBAAgB,EAAE,SAAS;CAC5B;;AAhGP,AAkGM,mBAlGa,CA0EjB,qBAAqB,CACnB,WAAW,AAuBR,OAAO,CAAC;EACP,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,uBAAuB;EACzC,gBAAgB,EAAE,uBAAuB;CAC1C;;AArGP,AAwGQ,mBAxGW,CA0EjB,qBAAqB,CACnB,WAAW,GA4BP,GAAG,CACH,CAAC,CAAC;EACA,YAAY,EAAE,GAAG;CAClB;;AA1GT,AA6GM,mBA7Ga,CA0EjB,qBAAqB,CACnB,WAAW,CAkCT,0BAA0B,CAAC;EACzB,QAAQ,EAAE,QAAQ;CA0BnB;;AAxIP,AAgHQ,mBAhHW,CA0EjB,qBAAqB,CACnB,WAAW,CAkCT,0BAA0B,GAGtB,GAAG,CAAC;EACJ,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,IAAI;EAET,SAAS,EAAE,qBAAqB;EAEhC,OAAO,EAAE,IAAI;CAiBd;;AAvIT,AAwHU,mBAxHS,CA0EjB,qBAAqB,CACnB,WAAW,CAkCT,0BAA0B,GAGtB,GAAG,CAQH,KAAK,CAAC;EACJ,MAAM,EAAE,IAAI;EAEZ,aAAa,EAAE,KAAK;EAEpB,QAAQ,EAAE,QAAQ;CASnB;;AAtIX,AA+HY,mBA/HO,CA0EjB,qBAAqB,CACnB,WAAW,CAkCT,0BAA0B,GAGtB,GAAG,CAQH,KAAK,AAOF,YAAY,CAAC;EACZ,SAAS,EAAE,cAAc;CAC1B;;AAjIb,AAmIY,mBAnIO,CA0EjB,qBAAqB,CACnB,WAAW,CAkCT,0BAA0B,GAGtB,GAAG,CAQH,KAAK,AAWF,WAAW,CAAC;EACX,SAAS,EAAE,aAAa;CACzB;;AArIb,AA4IE,mBA5IiB,CA4IjB,kBAAkB,CAAC;EACjB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,IAAI;EACT,IAAI,EAAE,IAAI;EAEV,SAAS,EAAE,qBAAqB;CACjC;;AAlJH,AAoJE,mBApJiB,CAoJjB,0BAA0B,CAAC;EACzB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,IAAI;EACT,IAAI,EAAE,IAAI;EAEV,SAAS,EAAE,qBAAqB;EAEhC,OAAO,EAAE,IAAI;EACb,eAAe,EAAE,MAAM;EACvB,GAAG,EAAE,IAAI;CAKV;;AAlKH,AA+JI,mBA/Je,CAoJjB,0BAA0B,CAWxB,MAAM,CAAC;EACL,SAAS,EAAE,KAAK;CACjB;;AAjKL,AAoKE,mBApKiB,CAoKjB,0BAA0B,CAAC;EACzB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,IAAI;EACT,IAAI,EAAE,IAAI;EAEV,SAAS,EAAE,qBAAqB;EAEhC,OAAO,EAAE,IAAI;EACb,eAAe,EAAE,MAAM;CAQxB;;AApLH,AA8KI,mBA9Ke,CAoKjB,0BAA0B,CAUxB,KAAK,CAAC;EACJ,MAAM,EAAE,KAAK;EAEb,QAAQ,EAAE,QAAQ;EAClB,aAAa,EAAE,GAAG;CACnB;;AAnLL,AAsLE,mBAtLiB,CAsLjB,uBAAuB,CAAC;EACtB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,GAAG;EACR,IAAI,EAAE,IAAI;EAEV,SAAS,EAAE,gBAAgB;CAgB5B;;AA3MH,AA6LI,mBA7Le,CAsLjB,uBAAuB,GAOnB,CAAC,AAAA,YAAY,CAAC;EACd,UAAU,EAAE,MAAM;EAClB,KAAK,EAAE,OAAO;CACf;;AAhML,AAkMI,mBAlMe,CAsLjB,uBAAuB,GAYnB,CAAC,AAAA,IAAK,CAAA,YAAY,CAAC,IAAK,CAAA,WAAW,EAAE;EACrC,SAAS,EAAE,MAAM;EACjB,UAAU,EAAE,IAAI;CACjB;;AArML,AAuMI,mBAvMe,CAsLjB,uBAAuB,GAiBnB,CAAC,AAAA,WAAW,CAAC;EACb,UAAU,EAAE,KAAK;EACjB,KAAK,EAAE,IAAI;CACZ",
+    "mappings": "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",
     "sources": [
         "globals.scss"
Index: styles/globals.scss
===================================================================
--- styles/globals.scss	(revision 1df3fdea19f18833062284bf7d5869fe3e72f104)
+++ styles/globals.scss	(revision 433e0c5f4289ea953d6d2c2d010c6bd651bd0c8f)
@@ -400,5 +400,11 @@
 
 .manageCreditsScreen {
+  .inlineAlert {
+    font-size: 1.5rem !important;
+    cursor: auto;
+  }
+
   svg {
+    z-index: 100;
     cursor: pointer;
     font-size: 2.5rem;
@@ -407,5 +413,9 @@
 
   &>div {
-    h1 {
+    top: 0%;
+    transform: translate(-50%, 0);
+    width: 100%;
+
+    h2 {
       font-size: 1.5rem;
       margin-bottom: 1rem;
@@ -418,5 +428,69 @@
 
     button {
-      width: 100%;
+      span {
+        color: white;
+      }
+    }
+
+    &>div:not(.main) {
+      margin-top: 5vh;
+      height: 15vh;
+    }
+  
+    &>div.main {
+      height: 70vh;
+
+      display: flex;
+
+      &>div {
+        flex: 1;
+
+        display: flex;
+        flex-direction: column;
+        justify-content: center;
+        align-items: center;
+
+
+        .fs-inputs-container {
+          width: 40%;
+
+          &>div {
+            width: 100%;
+
+            label {
+              color: white;
+            }
+
+            span {
+              color: #ead24d;
+            }
+
+            input {
+              font-size: 1.2rem;
+              width: 100%;
+
+              text-align: center;
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+.complainScreen {
+  .inlineAlert {
+    cursor: auto;
+  }
+
+  &>div {
+    &>div {
+      textarea {
+        width: 50vw;
+        height: 40vh;
+        font-size: 2rem;
+        margin-top: 1rem;
+        margin-bottom: 3rem;
+      }
     }
   }
@@ -442,4 +516,15 @@
   h1 {
     font-size: 5rem;
+  }
+}
+
+.lostConnectionScreen {
+  h3 {
+    font-size: 2rem;
+    margin-bottom: 1rem;
+
+    &:nth-child(2) {
+      color: white;
+    }
   }
 }
